{"openapi":"3.0.3","info":{"title":"Portal my.innocom.co — API cho agent","version":"1.0.0","description":"Sinh tự động từ router đang chạy, không viết tay từng endpoint.\nĐã liệt kê **241** endpoint.\nCòn **92** endpoint nằm trong router lồng (CMS) — Express 5 không lộ prefix của router lồng nên không tự liệt kê được. Xem `/api/v1/agent/guide`.\nBản công khai này **không liệt kê các nhóm chỉ dành cho ADMINISTRATOR** (vd đối soát ví, duyệt yêu cầu dịch vụ). Đăng nhập bằng JWT của ADMINISTRATOR để xem đầy đủ.\nAuth: `X-API-Key: inn_ak_…` (khuyến nghị cho bot) hoặc `Authorization: Bearer <JWT>`.\nKey kế thừa đúng quyền của user sở hữu tại thời điểm gọi."},"servers":[{"url":"https://api-my.innocom.co"}],"tags":[{"name":"Agent","description":"Tài liệu cho bot, danh tính key, cấp/thu hồi key."},{"name":"Auth","description":"Đăng nhập, đăng ký, OAuth, refresh token."},{"name":"Me","description":"Hồ sơ, KYC, tài khoản ngân hàng, tenant của chính người gọi."},{"name":"Owner permissions","description":"Chủ tài khoản phân quyền cho thành viên trong tenant."},{"name":"Users","description":"Quản trị người dùng (admin)."},{"name":"Products","description":"Danh mục sản phẩm và gói dịch vụ."},{"name":"Push","description":"App điện thoại đăng ký / gỡ token nhận thông báo đẩy."},{"name":"Partner connect","description":"Khách đồng ý/gỡ liên kết với đối tác (AppMkr, CMS) dùng API tên miền."},{"name":"Orders","description":"Giỏ hàng → đơn hàng → thanh toán. Đơn tên miền tự provision khi đã trả tiền."},{"name":"Subscriptions","description":"Thuê bao định kỳ, tự động gia hạn."},{"name":"Wallet","description":"Ví trả trước: số dư, nạp tiền, sổ giao dịch."},{"name":"Auto-pay","description":"Magic-link gia hạn tự động — token chính là auth."},{"name":"Domains","description":"Tên miền của khách + bản ghi DNS Cloudflare."},{"name":"Assistant","description":"Trợ lý AI trong portal (SSE). LLM chỉ đề xuất, không tự thay đổi."},{"name":"Support","description":"Ticket hỗ trợ của khách, đồng bộ ABMS HelpDesk."},{"name":"Notifications","description":"Thông báo trong ứng dụng và push."},{"name":"Dashboard","description":"Số liệu tổng hợp cho trang chủ."},{"name":"Partners","description":"Chương trình KOC/PARTNER_MANAGER."},{"name":"Affiliate links","description":"Link giới thiệu và số liệu click."},{"name":"Commissions","description":"Hoa hồng đối tác."},{"name":"Payouts","description":"Yêu cầu và duyệt chi trả hoa hồng."},{"name":"Marketing","description":"Thư viện nội dung marketing cho đối tác."},{"name":"Academy","description":"Khoá đào tạo KOC."},{"name":"Resources","description":"Tài nguyên tải về."},{"name":"Whitelabel","description":"Yêu cầu whitelabel của đối tác."},{"name":"Service admin","description":"Định nghĩa dịch vụ, cấp phát instance cho tenant."},{"name":"CMS","description":"Blog/CMS (DB riêng innocom_cms)."},{"name":"Sync","description":"Đồng bộ nội bộ giữa các hệ thống Innocom."},{"name":"ABMS sync","description":"Đồng bộ dữ liệu với ABMS."},{"name":"InnoMail","description":"Proxy sang dịch vụ email InnoMail."},{"name":"InnoCall","description":"Tổng đài InnoCall — máy nhánh, lịch sử cuộc gọi."},{"name":"DNC","description":"Proxy dịch vụ DNC."},{"name":"ABMS proxy","description":"Dữ liệu ABMS của khách (dịch vụ, hoá đơn, HelpDesk)."},{"name":"ABMS integration","description":"Server-to-server, xác thực bằng X-ABMS-API-Key."},{"name":"Mobile OTA","description":"App mobile (Capacitor) hỏi bản web mới và tải gói zip. Công khai: gói chỉ chứa asset web đã công khai."},{"name":"Public tools","description":"Công cụ không cần đăng nhập: kiểm tra tên miền, QR, rút gọn link."}],"paths":{"/api/v1/agent/docs":{"get":{"tags":["Agent"],"summary":"GET /api/v1/agent/docs","operationId":"get__api_v1_agent_docs","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/agent/guide":{"get":{"tags":["Agent"],"summary":"Runbook markdown cho bot (công khai, không cần key)","operationId":"get__api_v1_agent_guide","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/agent/openapi.json":{"get":{"tags":["Agent"],"summary":"Chính tài liệu này (công khai, không cần key)","operationId":"get__api_v1_agent_openapi_json","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/agent/me":{"get":{"tags":["Agent"],"summary":"Bot là ai — user sở hữu key, role, scope, hạn key","operationId":"get__api_v1_agent_me","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"description":"Gọi đầu tiên mỗi phiên để biết mình được phép làm gì."}},"/api/v1/agent/overview":{"get":{"tags":["Agent"],"summary":"GET /api/v1/agent/overview","operationId":"get__api_v1_agent_overview","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/agent/keys":{"post":{"tags":["Agent"],"summary":"Cấp key mới (chỉ JWT ADMINISTRATOR — key không tự cấp key)","operationId":"post__api_v1_agent_keys","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"name":"Bot vận hành domain","scope":"READ_WRITE","expiresInDays":180,"ownerEmail":"admin@innocom.vn"}}}}},"get":{"tags":["Agent"],"summary":"Liệt kê key đã cấp (JWT ADMINISTRATOR)","operationId":"get__api_v1_agent_keys","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/agent/keys/{id}":{"delete":{"tags":["Agent"],"summary":"Thu hồi key (JWT ADMINISTRATOR)","operationId":"delete__api_v1_agent_keys_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/auth/register":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/register","operationId":"post__api_v1_auth_register","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/login","operationId":"post__api_v1_auth_login","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/refresh":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/refresh","operationId":"post__api_v1_auth_refresh","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/logout","operationId":"post__api_v1_auth_logout","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/forgot-password":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/forgot-password","operationId":"post__api_v1_auth_forgot_password","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/reset-password":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/reset-password","operationId":"post__api_v1_auth_reset_password","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/verify-email/{token}":{"get":{"tags":["Auth"],"summary":"GET /api/v1/auth/verify-email/{token}","operationId":"get__api_v1_auth_verify_email_token_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/auth/resend-verification":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/resend-verification","operationId":"post__api_v1_auth_resend_verification","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/profile":{"get":{"tags":["Auth"],"summary":"GET /api/v1/auth/profile","operationId":"get__api_v1_auth_profile","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"tags":["Auth"],"summary":"PATCH /api/v1/auth/profile","operationId":"patch__api_v1_auth_profile","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/change-password":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/change-password","operationId":"post__api_v1_auth_change_password","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/oauth/innocom":{"get":{"tags":["Auth"],"summary":"GET /api/v1/auth/oauth/innocom","operationId":"get__api_v1_auth_oauth_innocom","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/oauth/innocom/token":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/oauth/innocom/token","operationId":"post__api_v1_auth_oauth_innocom_token","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/oauth/google":{"get":{"tags":["Auth"],"summary":"GET /api/v1/auth/oauth/google","operationId":"get__api_v1_auth_oauth_google","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/oauth/google/token":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/oauth/google/token","operationId":"post__api_v1_auth_oauth_google_token","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/oauth/zalo/callback":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/oauth/zalo/callback","operationId":"post__api_v1_auth_oauth_zalo_callback","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/phone-otp/status":{"get":{"tags":["Auth"],"summary":"GET /api/v1/auth/phone-otp/status","operationId":"get__api_v1_auth_phone_otp_status","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/phone-otp/request":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/phone-otp/request","operationId":"post__api_v1_auth_phone_otp_request","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/phone-otp/verify":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/phone-otp/verify","operationId":"post__api_v1_auth_phone_otp_verify","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/contact-change/request":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/contact-change/request","operationId":"post__api_v1_auth_contact_change_request","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/contact-change/verify":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/contact-change/verify","operationId":"post__api_v1_auth_contact_change_verify","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/complete-email/request":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/complete-email/request","operationId":"post__api_v1_auth_complete_email_request","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/complete-email/verify":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/complete-email/verify","operationId":"post__api_v1_auth_complete_email_verify","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/auth/complete-email/dismiss":{"post":{"tags":["Auth"],"summary":"POST /api/v1/auth/complete-email/dismiss","operationId":"post__api_v1_auth_complete_email_dismiss","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/me/tenants":{"get":{"tags":["Me"],"summary":"Các tenant người dùng thuộc về","operationId":"get__api_v1_me_tenants","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/me/switch-tenant":{"post":{"tags":["Me"],"summary":"Đổi tenant đang hoạt động — trả JWT mới","operationId":"post__api_v1_me_switch_tenant","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"description":"Với agent key thì không cần: key gắn theo user, đọc tenant từ hồ sơ.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"tenantId":"<tenant id>"}}}}}},"/api/v1/me/services":{"get":{"tags":["Me"],"summary":"Dịch vụ đang dùng của người gọi","operationId":"get__api_v1_me_services","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/me/service-catalog":{"get":{"tags":["Me"],"summary":"GET /api/v1/me/service-catalog","operationId":"get__api_v1_me_service_catalog","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/me/service-catalog/{serviceSlug}/subscribe":{"post":{"tags":["Me"],"summary":"POST /api/v1/me/service-catalog/{serviceSlug}/subscribe","operationId":"post__api_v1_me_service_catalog_serviceSlug_subscribe","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"serviceSlug","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/me/service-catalog/{serviceSlug}/cancel":{"post":{"tags":["Me"],"summary":"POST /api/v1/me/service-catalog/{serviceSlug}/cancel","operationId":"post__api_v1_me_service_catalog_serviceSlug_cancel","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"serviceSlug","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/me/account/{tenantId}/contacts":{"get":{"tags":["Owner permissions"],"summary":"GET /api/v1/me/account/{tenantId}/contacts","operationId":"get__api_v1_me_account_tenantId_contacts","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/me/account/{tenantId}/audit-log":{"get":{"tags":["Owner permissions"],"summary":"GET /api/v1/me/account/{tenantId}/audit-log","operationId":"get__api_v1_me_account_tenantId_audit_log","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/me/account/{tenantId}/service-members":{"get":{"tags":["Owner permissions"],"summary":"GET /api/v1/me/account/{tenantId}/service-members","operationId":"get__api_v1_me_account_tenantId_service_members","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}]},"post":{"tags":["Owner permissions"],"summary":"POST /api/v1/me/account/{tenantId}/service-members","operationId":"post__api_v1_me_account_tenantId_service_members","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/me/account/{tenantId}/service-members/{id}":{"patch":{"tags":["Owner permissions"],"summary":"PATCH /api/v1/me/account/{tenantId}/service-members/{id}","operationId":"patch__api_v1_me_account_tenantId_service_members_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Owner permissions"],"summary":"DELETE /api/v1/me/account/{tenantId}/service-members/{id}","operationId":"delete__api_v1_me_account_tenantId_service_members_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/me/account/{tenantId}/billing-members":{"get":{"tags":["Owner permissions"],"summary":"GET /api/v1/me/account/{tenantId}/billing-members","operationId":"get__api_v1_me_account_tenantId_billing_members","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}]},"post":{"tags":["Owner permissions"],"summary":"POST /api/v1/me/account/{tenantId}/billing-members","operationId":"post__api_v1_me_account_tenantId_billing_members","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/me/account/{tenantId}/billing-members/{id}":{"patch":{"tags":["Owner permissions"],"summary":"PATCH /api/v1/me/account/{tenantId}/billing-members/{id}","operationId":"patch__api_v1_me_account_tenantId_billing_members_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Owner permissions"],"summary":"DELETE /api/v1/me/account/{tenantId}/billing-members/{id}","operationId":"delete__api_v1_me_account_tenantId_billing_members_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/users":{"get":{"tags":["Users"],"summary":"Danh sách người dùng (ADMINISTRATOR)","operationId":"get__api_v1_users","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/users/{id}":{"get":{"tags":["Users"],"summary":"GET /api/v1/users/{id}","operationId":"get__api_v1_users_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"patch":{"tags":["Users"],"summary":"PATCH /api/v1/users/{id}","operationId":"patch__api_v1_users_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/users/{id}/role":{"patch":{"tags":["Users"],"summary":"Đổi vai trò người dùng (ADMINISTRATOR)","operationId":"patch__api_v1_users_id_role","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Leo thang quyền — chỉ làm khi có yêu cầu rõ ràng từ người vận hành.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"role":"SUPPORT"}}}}}},"/api/v1/users/{id}/status":{"patch":{"tags":["Users"],"summary":"Khoá/mở tài khoản (ADMINISTRATOR)","operationId":"patch__api_v1_users_id_status","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"status":"SUSPENDED"}}}}}},"/api/v1/users/{id}/kyc":{"post":{"tags":["Users"],"summary":"POST /api/v1/users/{id}/kyc","operationId":"post__api_v1_users_id_kyc","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/users/{id}/kyc/review":{"patch":{"tags":["Users"],"summary":"PATCH /api/v1/users/{id}/kyc/review","operationId":"patch__api_v1_users_id_kyc_review","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/users/{id}/bank-details":{"patch":{"tags":["Users"],"summary":"PATCH /api/v1/users/{id}/bank-details","operationId":"patch__api_v1_users_id_bank_details","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/users/{id}/avatar":{"post":{"tags":["Users"],"summary":"POST /api/v1/users/{id}/avatar","operationId":"post__api_v1_users_id_avatar","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/products":{"get":{"tags":["Products"],"summary":"GET /api/v1/products","operationId":"get__api_v1_products","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"tags":["Products"],"summary":"POST /api/v1/products","operationId":"post__api_v1_products","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/products/plans/{planId}":{"get":{"tags":["Products"],"summary":"GET /api/v1/products/plans/{planId}","operationId":"get__api_v1_products_plans_planId_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string"}}]},"patch":{"tags":["Products"],"summary":"PATCH /api/v1/products/plans/{planId}","operationId":"patch__api_v1_products_plans_planId_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Products"],"summary":"DELETE /api/v1/products/plans/{planId}","operationId":"delete__api_v1_products_plans_planId_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/products/{id}":{"get":{"tags":["Products"],"summary":"GET /api/v1/products/{id}","operationId":"get__api_v1_products_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"patch":{"tags":["Products"],"summary":"PATCH /api/v1/products/{id}","operationId":"patch__api_v1_products_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Products"],"summary":"DELETE /api/v1/products/{id}","operationId":"delete__api_v1_products_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/products/{id}/plans":{"get":{"tags":["Products"],"summary":"GET /api/v1/products/{id}/plans","operationId":"get__api_v1_products_id_plans","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"post":{"tags":["Products"],"summary":"POST /api/v1/products/{id}/plans","operationId":"post__api_v1_products_id_plans","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/push/devices":{"post":{"tags":["Push"],"summary":"POST /api/v1/push/devices","operationId":"post__api_v1_push_devices","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"tags":["Push"],"summary":"DELETE /api/v1/push/devices","operationId":"delete__api_v1_push_devices","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/partner-connect/partners/{slug}":{"get":{"tags":["Partner connect"],"summary":"GET /api/v1/partner-connect/partners/{slug}","operationId":"get__api_v1_partner_connect_partners_slug_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/partner-connect/links":{"post":{"tags":["Partner connect"],"summary":"POST /api/v1/partner-connect/links","operationId":"post__api_v1_partner_connect_links","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"tags":["Partner connect"],"summary":"GET /api/v1/partner-connect/links","operationId":"get__api_v1_partner_connect_links","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/partner-connect/links/{linkId}":{"delete":{"tags":["Partner connect"],"summary":"DELETE /api/v1/partner-connect/links/{linkId}","operationId":"delete__api_v1_partner_connect_links_linkId_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"linkId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/partner-connect/orders/{orderId}/return":{"get":{"tags":["Partner connect"],"summary":"GET /api/v1/partner-connect/orders/{orderId}/return","operationId":"get__api_v1_partner_connect_orders_orderId_return","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/partner-connect/nameserver-requests/{id}":{"get":{"tags":["Partner connect"],"summary":"GET /api/v1/partner-connect/nameserver-requests/{id}","operationId":"get__api_v1_partner_connect_nameserver_requests_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/partner-connect/nameserver-requests/{id}/approve":{"post":{"tags":["Partner connect"],"summary":"POST /api/v1/partner-connect/nameserver-requests/{id}/approve","operationId":"post__api_v1_partner_connect_nameserver_requests_id_approve","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/partner-connect/nameserver-requests/{id}/reject":{"post":{"tags":["Partner connect"],"summary":"POST /api/v1/partner-connect/nameserver-requests/{id}/reject","operationId":"post__api_v1_partner_connect_nameserver_requests_id_reject","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/orders":{"get":{"tags":["Orders"],"summary":"Danh sách đơn hàng của người gọi","operationId":"get__api_v1_orders","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."},"post":{"tags":["Orders"],"summary":"Tạo đơn từ giỏ hàng","operationId":"post__api_v1_orders","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"description":"Chỉ tạo đơn ở trạng thái chờ — chưa trừ tiền, chưa provision.\n\n⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi.","x-sensitive":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"items":[{"productId":"<id>","planId":"<id>","quantity":1}]}}}}}},"/api/v1/orders/{id}":{"get":{"tags":["Orders"],"summary":"Chi tiết một đơn","operationId":"get__api_v1_orders_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/orders/domain":{"post":{"tags":["Orders"],"summary":"Tạo đơn mua tên miền","operationId":"post__api_v1_orders_domain","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"description":"Sau khi đơn được thanh toán, hệ thống TỰ ĐỘNG gọi đăng ký ở Pa Vietnam. Đây là đường tiêu tiền thật — xem kill switch trong guide.\n\n⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi.","x-sensitive":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"domain":"example.vn","years":1,"contact":{"name":"…","email":"…","phone":"…"}}}}}}},"/api/v1/orders/{id}/domain-contact":{"post":{"tags":["Orders"],"summary":"POST /api/v1/orders/{id}/domain-contact","operationId":"post__api_v1_orders_id_domain_contact","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/orders/{id}/confirm":{"patch":{"tags":["Orders"],"summary":"Xác nhận đơn","operationId":"patch__api_v1_orders_id_confirm","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/orders/{id}/cancel":{"patch":{"tags":["Orders"],"summary":"Huỷ đơn","operationId":"patch__api_v1_orders_id_cancel","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/orders/{id}/pay-9pay":{"post":{"tags":["Orders"],"summary":"Tạo link thanh toán 9Pay cho đơn","operationId":"post__api_v1_orders_id_pay_9pay","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Trả URL cổng thanh toán. Không tự trừ tiền, nhưng là bước ngay trước khi tiêu tiền.\n\n⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi.","x-sensitive":true}},"/api/v1/orders/{id}/pay-wallet":{"post":{"tags":["Orders"],"summary":"POST /api/v1/orders/{id}/pay-wallet","operationId":"post__api_v1_orders_id_pay_wallet","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/orders/{id}/sync-9pay-return":{"post":{"tags":["Orders"],"summary":"POST /api/v1/orders/{id}/sync-9pay-return","operationId":"post__api_v1_orders_id_sync_9pay_return","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/subscriptions":{"get":{"tags":["Subscriptions"],"summary":"GET /api/v1/subscriptions","operationId":"get__api_v1_subscriptions","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/subscriptions/{id}":{"get":{"tags":["Subscriptions"],"summary":"GET /api/v1/subscriptions/{id}","operationId":"get__api_v1_subscriptions_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."},"patch":{"tags":["Subscriptions"],"summary":"PATCH /api/v1/subscriptions/{id}","operationId":"patch__api_v1_subscriptions_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/subscriptions/{id}/cancel":{"post":{"tags":["Subscriptions"],"summary":"POST /api/v1/subscriptions/{id}/cancel","operationId":"post__api_v1_subscriptions_id_cancel","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/wallet":{"get":{"tags":["Wallet"],"summary":"GET /api/v1/wallet","operationId":"get__api_v1_wallet","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/wallet/entries":{"get":{"tags":["Wallet"],"summary":"GET /api/v1/wallet/entries","operationId":"get__api_v1_wallet_entries","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/wallet/topups":{"get":{"tags":["Wallet"],"summary":"GET /api/v1/wallet/topups","operationId":"get__api_v1_wallet_topups","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."},"post":{"tags":["Wallet"],"summary":"POST /api/v1/wallet/topups","operationId":"post__api_v1_wallet_topups","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/wallet/topups/{id}":{"get":{"tags":["Wallet"],"summary":"GET /api/v1/wallet/topups/{id}","operationId":"get__api_v1_wallet_topups_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/wallet/topups/{id}/sync":{"post":{"tags":["Wallet"],"summary":"POST /api/v1/wallet/topups/{id}/sync","operationId":"post__api_v1_wallet_topups_id_sync","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/auto-pay/redirect":{"get":{"tags":["Auto-pay"],"summary":"GET /api/v1/auto-pay/redirect","operationId":"get__api_v1_auto_pay_redirect","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/my/domains":{"get":{"tags":["Domains"],"summary":"Tên miền của khách, kèm trạng thái và ngày hết hạn","operationId":"get__api_v1_my_domains","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/my/domains/{name}":{"get":{"tags":["Domains"],"summary":"Chi tiết một tên miền","operationId":"get__api_v1_my_domains_name_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/my/domains/{name}/use-cloudflare":{"post":{"tags":["Domains"],"summary":"POST /api/v1/my/domains/{name}/use-cloudflare","operationId":"post__api_v1_my_domains_name_use_cloudflare","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-human-session":true,"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/my/domains/{name}/use-pa-default":{"post":{"tags":["Domains"],"summary":"POST /api/v1/my/domains/{name}/use-pa-default","operationId":"post__api_v1_my_domains_name_use_pa_default","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-human-session":true,"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/my/domains/{name}/nameservers":{"post":{"tags":["Domains"],"summary":"Đổi nameserver tại nhà đăng ký","operationId":"post__api_v1_my_domains_name_nameservers","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-human-session":true,"description":"Chặn sau `PAVIETNAM_REGISTER_ENABLED`. Đổi sai là site sập — xác nhận với người dùng trước.\n\n⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi.","x-sensitive":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"nameservers":["ns1.example.com","ns2.example.com"]}}}}}},"/api/v1/my/domains/{name}/records":{"get":{"tags":["Domains"],"summary":"Bản ghi DNS hiện tại (Cloudflare)","operationId":"get__api_v1_my_domains_name_records","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."},"post":{"tags":["Domains"],"summary":"Thêm bản ghi DNS","operationId":"post__api_v1_my_domains_name_records","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"description":"Chặn sau kill switch `CLOUDFLARE_WRITE_ENABLED`. Tắt cờ → trả `{ ok: \"dry-run\", wouldSend }`, KHÔNG gọi ra Cloudflare. Đọc `ok` trước khi báo là đã xong.\n\n⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi.","x-sensitive":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"type":"A","name":"www","content":"1.2.3.4","ttl":3600,"proxied":false}}}}}},"/api/v1/my/domains/{name}/records/{recordId}":{"patch":{"tags":["Domains"],"summary":"Sửa bản ghi DNS","operationId":"patch__api_v1_my_domains_name_records_recordId_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","required":true,"schema":{"type":"string"}}],"description":"Cũng chặn sau `CLOUDFLARE_WRITE_ENABLED`.\n\n⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi.","x-sensitive":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"type":"A","name":"www","content":"5.6.7.8","ttl":3600}}}}},"delete":{"tags":["Domains"],"summary":"Xoá bản ghi DNS","operationId":"delete__api_v1_my_domains_name_records_recordId_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","required":true,"schema":{"type":"string"}}],"description":"Không hoàn tác được. Đọc lại bằng GET .../records trước khi xoá.\n\n⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi.","x-sensitive":true}},"/api/v1/my/domains/{name}/dns/parse":{"post":{"tags":["Domains"],"summary":"POST /api/v1/my/domains/{name}/dns/parse","operationId":"post__api_v1_my_domains_name_dns_parse","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/my/domains/{name}/dns/plan":{"post":{"tags":["Domains"],"summary":"POST /api/v1/my/domains/{name}/dns/plan","operationId":"post__api_v1_my_domains_name_dns_plan","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/my/domains/{name}/dns/apply":{"post":{"tags":["Domains"],"summary":"POST /api/v1/my/domains/{name}/dns/apply","operationId":"post__api_v1_my_domains_name_dns_apply","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/my/domains/{name}/dns/restore/preview":{"post":{"tags":["Domains"],"summary":"POST /api/v1/my/domains/{name}/dns/restore/preview","operationId":"post__api_v1_my_domains_name_dns_restore_preview","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/my/domains/{name}/dns/restore":{"post":{"tags":["Domains"],"summary":"POST /api/v1/my/domains/{name}/dns/restore","operationId":"post__api_v1_my_domains_name_dns_restore","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/my/domains/{name}/dns/history":{"get":{"tags":["Domains"],"summary":"GET /api/v1/my/domains/{name}/dns/history","operationId":"get__api_v1_my_domains_name_dns_history","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/assistant/chat":{"post":{"tags":["Assistant"],"summary":"POST /api/v1/assistant/chat","operationId":"post__api_v1_assistant_chat","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/assistant/conversations":{"get":{"tags":["Assistant"],"summary":"GET /api/v1/assistant/conversations","operationId":"get__api_v1_assistant_conversations","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/assistant/conversations/{id}":{"get":{"tags":["Assistant"],"summary":"GET /api/v1/assistant/conversations/{id}","operationId":"get__api_v1_assistant_conversations_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Assistant"],"summary":"DELETE /api/v1/assistant/conversations/{id}","operationId":"delete__api_v1_assistant_conversations_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/assistant/actions/{id}/confirm":{"post":{"tags":["Assistant"],"summary":"POST /api/v1/assistant/actions/{id}/confirm","operationId":"post__api_v1_assistant_actions_id_confirm","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-human-session":true}},"/api/v1/assistant/actions/{id}/reject":{"post":{"tags":["Assistant"],"summary":"POST /api/v1/assistant/actions/{id}/reject","operationId":"post__api_v1_assistant_actions_id_reject","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-human-session":true}},"/api/v1/support/tickets":{"post":{"tags":["Support"],"summary":"Tạo ticket hỗ trợ","operationId":"post__api_v1_support_tickets","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"description":"Đồng bộ sang ABMS HelpDesk. Đây là việc ghi an toàn nhất cho bot.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"subject":"Tên miền chưa trỏ được","description":"<p>Mô tả HTML</p>","priority":"MEDIUM","category":"TECHNICAL"}}}}},"get":{"tags":["Support"],"summary":"Ticket của người gọi","operationId":"get__api_v1_support_tickets","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/support/tickets/stats":{"get":{"tags":["Support"],"summary":"GET /api/v1/support/tickets/stats","operationId":"get__api_v1_support_tickets_stats","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/support/tickets/{id}":{"get":{"tags":["Support"],"summary":"Chi tiết ticket + hội thoại","operationId":"get__api_v1_support_tickets_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/support/tickets/{id}/status":{"patch":{"tags":["Support"],"summary":"Đổi trạng thái ticket","operationId":"patch__api_v1_support_tickets_id_status","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"status":"IN_PROGRESS"}}}}}},"/api/v1/support/tickets/{id}/assign":{"patch":{"tags":["Support"],"summary":"PATCH /api/v1/support/tickets/{id}/assign","operationId":"patch__api_v1_support_tickets_id_assign","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/support/tickets/{id}/archive":{"patch":{"tags":["Support"],"summary":"PATCH /api/v1/support/tickets/{id}/archive","operationId":"patch__api_v1_support_tickets_id_archive","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/support/upload-inline":{"post":{"tags":["Support"],"summary":"POST /api/v1/support/upload-inline","operationId":"post__api_v1_support_upload_inline","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/support/tickets/{id}/messages":{"post":{"tags":["Support"],"summary":"Trả lời trong ticket","operationId":"post__api_v1_support_tickets_id_messages","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"content":"<p>Nội dung trả lời</p>"}}}}}},"/api/v1/support/tickets/{id}/attachments":{"post":{"tags":["Support"],"summary":"POST /api/v1/support/tickets/{id}/attachments","operationId":"post__api_v1_support_tickets_id_attachments","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/support/tickets/{id}/attachments/{attachmentId}/file":{"get":{"tags":["Support"],"summary":"GET /api/v1/support/tickets/{id}/attachments/{attachmentId}/file","operationId":"get__api_v1_support_tickets_id_attachments_attachmentId_file","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"attachmentId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/notifications":{"get":{"tags":["Notifications"],"summary":"Thông báo của người gọi","operationId":"get__api_v1_notifications","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/notifications/unread-count":{"get":{"tags":["Notifications"],"summary":"Số thông báo chưa đọc","operationId":"get__api_v1_notifications_unread_count","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/notifications/read-all":{"patch":{"tags":["Notifications"],"summary":"Đánh dấu đã đọc tất cả","operationId":"patch__api_v1_notifications_read_all","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/notifications/{id}/read":{"patch":{"tags":["Notifications"],"summary":"PATCH /api/v1/notifications/{id}/read","operationId":"patch__api_v1_notifications_id_read","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/notifications/{id}":{"delete":{"tags":["Notifications"],"summary":"DELETE /api/v1/notifications/{id}","operationId":"delete__api_v1_notifications_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/dashboard":{"get":{"tags":["Dashboard"],"summary":"Số liệu tổng hợp của người gọi","operationId":"get__api_v1_dashboard","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/dashboard/admin":{"get":{"tags":["Dashboard"],"summary":"GET /api/v1/dashboard/admin","operationId":"get__api_v1_dashboard_admin","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/partners/register":{"post":{"tags":["Partners"],"summary":"POST /api/v1/partners/register","operationId":"post__api_v1_partners_register","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/partners/me":{"get":{"tags":["Partners"],"summary":"GET /api/v1/partners/me","operationId":"get__api_v1_partners_me","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/partners/me/downlines":{"get":{"tags":["Partners"],"summary":"GET /api/v1/partners/me/downlines","operationId":"get__api_v1_partners_me_downlines","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/partners/me/stats":{"get":{"tags":["Partners"],"summary":"GET /api/v1/partners/me/stats","operationId":"get__api_v1_partners_me_stats","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/partners/me/onboarding":{"patch":{"tags":["Partners"],"summary":"PATCH /api/v1/partners/me/onboarding","operationId":"patch__api_v1_partners_me_onboarding","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/partners":{"get":{"tags":["Partners"],"summary":"GET /api/v1/partners","operationId":"get__api_v1_partners","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/partners/{id}":{"get":{"tags":["Partners"],"summary":"GET /api/v1/partners/{id}","operationId":"get__api_v1_partners_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"patch":{"tags":["Partners"],"summary":"PATCH /api/v1/partners/{id}","operationId":"patch__api_v1_partners_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/partners/me/affiliate-links":{"post":{"tags":["Affiliate links"],"summary":"POST /api/v1/partners/me/affiliate-links","operationId":"post__api_v1_partners_me_affiliate_links","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"tags":["Affiliate links"],"summary":"GET /api/v1/partners/me/affiliate-links","operationId":"get__api_v1_partners_me_affiliate_links","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/partners/me/affiliate-links/{id}":{"get":{"tags":["Affiliate links"],"summary":"GET /api/v1/partners/me/affiliate-links/{id}","operationId":"get__api_v1_partners_me_affiliate_links_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"patch":{"tags":["Affiliate links"],"summary":"PATCH /api/v1/partners/me/affiliate-links/{id}","operationId":"patch__api_v1_partners_me_affiliate_links_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Affiliate links"],"summary":"DELETE /api/v1/partners/me/affiliate-links/{id}","operationId":"delete__api_v1_partners_me_affiliate_links_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/partners/me/affiliate-links/{id}/clicks":{"get":{"tags":["Affiliate links"],"summary":"GET /api/v1/partners/me/affiliate-links/{id}/clicks","operationId":"get__api_v1_partners_me_affiliate_links_id_clicks","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/commissions":{"get":{"tags":["Commissions"],"summary":"GET /api/v1/commissions","operationId":"get__api_v1_commissions","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/commissions/{id}":{"get":{"tags":["Commissions"],"summary":"GET /api/v1/commissions/{id}","operationId":"get__api_v1_commissions_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/commissions/{id}/approve":{"patch":{"tags":["Commissions"],"summary":"PATCH /api/v1/commissions/{id}/approve","operationId":"patch__api_v1_commissions_id_approve","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/commissions/{id}/cancel":{"patch":{"tags":["Commissions"],"summary":"PATCH /api/v1/commissions/{id}/cancel","operationId":"patch__api_v1_commissions_id_cancel","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/payouts/request":{"post":{"tags":["Payouts"],"summary":"POST /api/v1/payouts/request","operationId":"post__api_v1_payouts_request","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/payouts":{"get":{"tags":["Payouts"],"summary":"GET /api/v1/payouts","operationId":"get__api_v1_payouts","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/payouts/{id}":{"get":{"tags":["Payouts"],"summary":"GET /api/v1/payouts/{id}","operationId":"get__api_v1_payouts_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/payouts/{id}/approve":{"patch":{"tags":["Payouts"],"summary":"PATCH /api/v1/payouts/{id}/approve","operationId":"patch__api_v1_payouts_id_approve","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/payouts/{id}/process":{"patch":{"tags":["Payouts"],"summary":"PATCH /api/v1/payouts/{id}/process","operationId":"patch__api_v1_payouts_id_process","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/payouts/{id}/complete":{"patch":{"tags":["Payouts"],"summary":"PATCH /api/v1/payouts/{id}/complete","operationId":"patch__api_v1_payouts_id_complete","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/payouts/{id}/reject":{"patch":{"tags":["Payouts"],"summary":"PATCH /api/v1/payouts/{id}/reject","operationId":"patch__api_v1_payouts_id_reject","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-sensitive":true,"description":"⚠️ Nhóm này có thể tiêu tiền hoặc đổi trạng thái ở nhà cung cấp bên ngoài. Đọc mục \"Kill switch\" trong /agent/guide trước khi gọi."}},"/api/v1/marketing-content":{"post":{"tags":["Marketing"],"summary":"POST /api/v1/marketing-content","operationId":"post__api_v1_marketing_content","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"tags":["Marketing"],"summary":"GET /api/v1/marketing-content","operationId":"get__api_v1_marketing_content","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/marketing-content/{id}":{"patch":{"tags":["Marketing"],"summary":"PATCH /api/v1/marketing-content/{id}","operationId":"patch__api_v1_marketing_content_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Marketing"],"summary":"DELETE /api/v1/marketing-content/{id}","operationId":"delete__api_v1_marketing_content_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"get":{"tags":["Marketing"],"summary":"GET /api/v1/marketing-content/{id}","operationId":"get__api_v1_marketing_content_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/marketing-content/{id}/download":{"post":{"tags":["Marketing"],"summary":"POST /api/v1/marketing-content/{id}/download","operationId":"post__api_v1_marketing_content_id_download","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/academy/courses":{"get":{"tags":["Academy"],"summary":"GET /api/v1/academy/courses","operationId":"get__api_v1_academy_courses","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"tags":["Academy"],"summary":"POST /api/v1/academy/courses","operationId":"post__api_v1_academy_courses","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/academy/courses/{id}":{"get":{"tags":["Academy"],"summary":"GET /api/v1/academy/courses/{id}","operationId":"get__api_v1_academy_courses_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"patch":{"tags":["Academy"],"summary":"PATCH /api/v1/academy/courses/{id}","operationId":"patch__api_v1_academy_courses_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Academy"],"summary":"DELETE /api/v1/academy/courses/{id}","operationId":"delete__api_v1_academy_courses_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/academy/courses/{id}/lessons":{"get":{"tags":["Academy"],"summary":"GET /api/v1/academy/courses/{id}/lessons","operationId":"get__api_v1_academy_courses_id_lessons","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"post":{"tags":["Academy"],"summary":"POST /api/v1/academy/courses/{id}/lessons","operationId":"post__api_v1_academy_courses_id_lessons","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/academy/lessons/{id}":{"patch":{"tags":["Academy"],"summary":"PATCH /api/v1/academy/lessons/{id}","operationId":"patch__api_v1_academy_lessons_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Academy"],"summary":"DELETE /api/v1/academy/lessons/{id}","operationId":"delete__api_v1_academy_lessons_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/academy/lessons/{id}/progress":{"post":{"tags":["Academy"],"summary":"POST /api/v1/academy/lessons/{id}/progress","operationId":"post__api_v1_academy_lessons_id_progress","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/academy/my-progress":{"get":{"tags":["Academy"],"summary":"GET /api/v1/academy/my-progress","operationId":"get__api_v1_academy_my_progress","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/resources":{"get":{"tags":["Resources"],"summary":"GET /api/v1/resources","operationId":"get__api_v1_resources","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"tags":["Resources"],"summary":"POST /api/v1/resources","operationId":"post__api_v1_resources","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/resources/{id}":{"get":{"tags":["Resources"],"summary":"GET /api/v1/resources/{id}","operationId":"get__api_v1_resources_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"patch":{"tags":["Resources"],"summary":"PATCH /api/v1/resources/{id}","operationId":"patch__api_v1_resources_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Resources"],"summary":"DELETE /api/v1/resources/{id}","operationId":"delete__api_v1_resources_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/resources/{id}/download":{"get":{"tags":["Resources"],"summary":"GET /api/v1/resources/{id}/download","operationId":"get__api_v1_resources_id_download","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/whitelabel/requests":{"post":{"tags":["Whitelabel"],"summary":"POST /api/v1/whitelabel/requests","operationId":"post__api_v1_whitelabel_requests","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"tags":["Whitelabel"],"summary":"GET /api/v1/whitelabel/requests","operationId":"get__api_v1_whitelabel_requests","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/whitelabel/requests/{id}":{"get":{"tags":["Whitelabel"],"summary":"GET /api/v1/whitelabel/requests/{id}","operationId":"get__api_v1_whitelabel_requests_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/whitelabel/requests/{id}/review":{"patch":{"tags":["Whitelabel"],"summary":"PATCH /api/v1/whitelabel/requests/{id}/review","operationId":"patch__api_v1_whitelabel_requests_id_review","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/whitelabel/requests/{id}/status":{"patch":{"tags":["Whitelabel"],"summary":"PATCH /api/v1/whitelabel/requests/{id}/status","operationId":"patch__api_v1_whitelabel_requests_id_status","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/service-admin/definitions":{"get":{"tags":["Service admin"],"summary":"GET /api/v1/service-admin/definitions","operationId":"get__api_v1_service_admin_definitions","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"tags":["Service admin"],"summary":"POST /api/v1/service-admin/definitions","operationId":"post__api_v1_service_admin_definitions","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/service-admin/definitions/{id}":{"get":{"tags":["Service admin"],"summary":"GET /api/v1/service-admin/definitions/{id}","operationId":"get__api_v1_service_admin_definitions_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"patch":{"tags":["Service admin"],"summary":"PATCH /api/v1/service-admin/definitions/{id}","operationId":"patch__api_v1_service_admin_definitions_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Service admin"],"summary":"DELETE /api/v1/service-admin/definitions/{id}","operationId":"delete__api_v1_service_admin_definitions_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/service-admin/instances":{"get":{"tags":["Service admin"],"summary":"GET /api/v1/service-admin/instances","operationId":"get__api_v1_service_admin_instances","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"tags":["Service admin"],"summary":"POST /api/v1/service-admin/instances","operationId":"post__api_v1_service_admin_instances","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/service-admin/instances/{id}/status":{"patch":{"tags":["Service admin"],"summary":"PATCH /api/v1/service-admin/instances/{id}/status","operationId":"patch__api_v1_service_admin_instances_id_status","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/service-admin/instances/{id}/credentials":{"patch":{"tags":["Service admin"],"summary":"PATCH /api/v1/service-admin/instances/{id}/credentials","operationId":"patch__api_v1_service_admin_instances_id_credentials","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/service-admin/instances/{id}/members":{"post":{"tags":["Service admin"],"summary":"POST /api/v1/service-admin/instances/{id}/members","operationId":"post__api_v1_service_admin_instances_id_members","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/service-admin/instances/{id}/members/{userId}":{"patch":{"tags":["Service admin"],"summary":"PATCH /api/v1/service-admin/instances/{id}/members/{userId}","operationId":"patch__api_v1_service_admin_instances_id_members_userId_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}]},"delete":{"tags":["Service admin"],"summary":"DELETE /api/v1/service-admin/instances/{id}/members/{userId}","operationId":"delete__api_v1_service_admin_instances_id_members_userId_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/service-admin/my-services":{"get":{"tags":["Service admin"],"summary":"GET /api/v1/service-admin/my-services","operationId":"get__api_v1_service_admin_my_services","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/service-admin/my-services/{serviceSlug}":{"get":{"tags":["Service admin"],"summary":"GET /api/v1/service-admin/my-services/{serviceSlug}","operationId":"get__api_v1_service_admin_my_services_serviceSlug_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"serviceSlug","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/service-admin/my-services/{instanceId}/label":{"patch":{"tags":["Service admin"],"summary":"PATCH /api/v1/service-admin/my-services/{instanceId}/label","operationId":"patch__api_v1_service_admin_my_services_instanceId_label","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"instanceId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/service-admin/health/{serviceSlug}":{"get":{"tags":["Service admin"],"summary":"GET /api/v1/service-admin/health/{serviceSlug}","operationId":"get__api_v1_service_admin_health_serviceSlug_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"serviceSlug","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/sync/health":{"get":{"tags":["Sync"],"summary":"GET /api/v1/sync/health","operationId":"get__api_v1_sync_health","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/sync/tickets/push":{"post":{"tags":["Sync"],"summary":"POST /api/v1/sync/tickets/push","operationId":"post__api_v1_sync_tickets_push","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/sync/products/push":{"post":{"tags":["Sync"],"summary":"POST /api/v1/sync/products/push","operationId":"post__api_v1_sync_products_push","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/sync/contacts/push":{"post":{"tags":["Sync"],"summary":"POST /api/v1/sync/contacts/push","operationId":"post__api_v1_sync_contacts_push","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/sync/tickets/pull":{"get":{"tags":["Sync"],"summary":"GET /api/v1/sync/tickets/pull","operationId":"get__api_v1_sync_tickets_pull","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/sync/subscriptions/pull":{"get":{"tags":["Sync"],"summary":"GET /api/v1/sync/subscriptions/pull","operationId":"get__api_v1_sync_subscriptions_pull","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/sync/partners/pull":{"get":{"tags":["Sync"],"summary":"GET /api/v1/sync/partners/pull","operationId":"get__api_v1_sync_partners_pull","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/sync/users/pull":{"get":{"tags":["Sync"],"summary":"GET /api/v1/sync/users/pull","operationId":"get__api_v1_sync_users_pull","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/sync/orders/pull":{"get":{"tags":["Sync"],"summary":"GET /api/v1/sync/orders/pull","operationId":"get__api_v1_sync_orders_pull","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/sync/service-instances/pull":{"get":{"tags":["Sync"],"summary":"GET /api/v1/sync/service-instances/pull","operationId":"get__api_v1_sync_service_instances_pull","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/sync/service-audit-logs/pull":{"get":{"tags":["Sync"],"summary":"GET /api/v1/sync/service-audit-logs/pull","operationId":"get__api_v1_sync_service_audit_logs_pull","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/sync/academy/pull":{"get":{"tags":["Sync"],"summary":"GET /api/v1/sync/academy/pull","operationId":"get__api_v1_sync_academy_pull","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/abms-sync/refresh-user":{"post":{"tags":["ABMS sync"],"summary":"POST /api/v1/abms-sync/refresh-user","operationId":"post__api_v1_abms_sync_refresh_user","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/abms-sync/refresh-self":{"post":{"tags":["ABMS sync"],"summary":"POST /api/v1/abms-sync/refresh-self","operationId":"post__api_v1_abms_sync_refresh_self","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/my/innomail/mailboxes":{"get":{"tags":["InnoMail"],"summary":"GET /api/v1/my/innomail/mailboxes","operationId":"get__api_v1_my_innomail_mailboxes","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/my/innomail/domains/{domainId}/mailboxes":{"get":{"tags":["InnoMail"],"summary":"GET /api/v1/my/innomail/domains/{domainId}/mailboxes","operationId":"get__api_v1_my_innomail_domains_domainId_mailboxes","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"domainId","in":"path","required":true,"schema":{"type":"string"}}]},"post":{"tags":["InnoMail"],"summary":"POST /api/v1/my/innomail/domains/{domainId}/mailboxes","operationId":"post__api_v1_my_innomail_domains_domainId_mailboxes","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"domainId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/my/innocall/health":{"get":{"tags":["InnoCall"],"summary":"GET /api/v1/my/innocall/health","operationId":"get__api_v1_my_innocall_health","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/my/innocall/auth/pbx-token":{"post":{"tags":["InnoCall"],"summary":"POST /api/v1/my/innocall/auth/pbx-token","operationId":"post__api_v1_my_innocall_auth_pbx_token","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/my/innocall/recordings/{id}/download":{"get":{"tags":["InnoCall"],"summary":"GET /api/v1/my/innocall/recordings/{id}/download","operationId":"get__api_v1_my_innocall_recordings_id_download","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/my/innocall/extensions/{id}":{"delete":{"tags":["InnoCall"],"summary":"DELETE /api/v1/my/innocall/extensions/{id}","operationId":"delete__api_v1_my_innocall_extensions_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/my/dnc/token-info":{"get":{"tags":["DNC"],"summary":"GET /api/v1/my/dnc/token-info","operationId":"get__api_v1_my_dnc_token_info","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/my/dnc/token-info/unmask":{"get":{"tags":["DNC"],"summary":"GET /api/v1/my/dnc/token-info/unmask","operationId":"get__api_v1_my_dnc_token_info_unmask","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/my/services":{"get":{"tags":["ABMS proxy"],"summary":"Dịch vụ khách đang dùng (nguồn ABMS)","operationId":"get__api_v1_my_services","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/my/services/{id}":{"get":{"tags":["ABMS proxy"],"summary":"GET /api/v1/my/services/{id}","operationId":"get__api_v1_my_services_id_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/my/crm-tickets":{"get":{"tags":["ABMS proxy"],"summary":"Ticket phía CRM/ABMS","operationId":"get__api_v1_my_crm_tickets","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/my/account":{"get":{"tags":["ABMS proxy"],"summary":"Hồ sơ khách hàng bên ABMS","operationId":"get__api_v1_my_account","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/my/opportunities":{"get":{"tags":["ABMS proxy"],"summary":"GET /api/v1/my/opportunities","operationId":"get__api_v1_my_opportunities","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/my/invoices":{"get":{"tags":["ABMS proxy"],"summary":"Hoá đơn từ ABMS","operationId":"get__api_v1_my_invoices","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/my/crm-picklist/{moduleName}/{fieldName}":{"get":{"tags":["ABMS proxy"],"summary":"GET /api/v1/my/crm-picklist/{moduleName}/{fieldName}","operationId":"get__api_v1_my_crm_picklist_moduleName_fieldName_","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"moduleName","in":"path","required":true,"schema":{"type":"string"}},{"name":"fieldName","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/integrations/abms/innocall/pbx-token":{"post":{"tags":["ABMS integration"],"summary":"POST /api/v1/integrations/abms/innocall/pbx-token","operationId":"post__api_v1_integrations_abms_innocall_pbx_token","security":[{"AgentApiKey":[]},{"BearerJWT":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/mobile/update":{"post":{"tags":["Mobile OTA"],"summary":"POST /api/v1/mobile/update","operationId":"post__api_v1_mobile_update","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/mobile/bundle/{file}":{"get":{"tags":["Mobile OTA"],"summary":"GET /api/v1/mobile/bundle/{file}","operationId":"get__api_v1_mobile_bundle_file_","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"file","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/public/tools/domain-lookup":{"get":{"tags":["Public tools"],"summary":"Tra cứu WHOIS (không cần auth)","operationId":"get__api_v1_public_tools_domain_lookup","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/public/tools/domain-availability":{"get":{"tags":["Public tools"],"summary":"Kiểm tra tên miền còn trống (không cần auth, không tốn tiền)","operationId":"get__api_v1_public_tools_domain_availability","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSuccess"}}}},"401":{"description":"Thiếu hoặc sai credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Không đủ quyền, hoặc key READ_ONLY gọi method ghi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}},"components":{"securitySchemes":{"AgentApiKey":{"type":"apiKey","in":"header","name":"X-API-Key"},"BearerJWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"ApiSuccess":{"type":"object","properties":{"success":{"type":"boolean","example":true},"data":{},"message":{"type":"string"}}},"ApiError":{"type":"object","properties":{"success":{"type":"boolean","example":false},"message":{"type":"string"},"error":{"type":"string","description":"Mã lỗi dạng chuỗi, ví dụ UNAUTHORIZED"}}}}}}