diff --git a/common.json b/common.json new file mode 100644 index 0000000..edb009d --- /dev/null +++ b/common.json @@ -0,0 +1,5379 @@ +{ + "swagger": "2.0", + "info": { + "title": "common API", + "description": "API for ppanel", + "version": "0.0.1" + }, + "schemes": [ + "http", + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/v1/auth/check": { + "get": { + "summary": "Check user is exist", + "operationId": "CheckUser", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/CheckUserResponse" + } + } + }, + "parameters": [ + { + "name": "email", + "in": "query", + "required": true, + "type": "string" + } + ], + "tags": [ + "auth" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/auth/check/telephone": { + "get": { + "summary": "Check user telephone is exist", + "operationId": "CheckUserTelephone", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/TelephoneCheckUserResponse" + } + } + }, + "parameters": [ + { + "name": "telephone", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "telephone_area_code", + "in": "query", + "required": true, + "type": "string" + } + ], + "tags": [ + "auth" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/auth/login": { + "post": { + "summary": "User login", + "operationId": "UserLogin", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/LoginResponse" + } + } + }, + "parameters": [ + { + "name": "X-Original-Forwarded-For", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "User-Agent", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "Login-Type", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "body", + "description": " User login request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UserLoginRequest" + } + } + ], + "tags": [ + "auth" + ] + } + }, + "/v1/auth/login/device": { + "post": { + "summary": "Device Login", + "operationId": "DeviceLogin", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/LoginResponse" + } + } + }, + "parameters": [ + { + "name": "X-Original-Forwarded-For", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DeviceLoginRequest" + } + } + ], + "tags": [ + "auth" + ] + } + }, + "/v1/auth/login/telephone": { + "post": { + "summary": "User Telephone login", + "operationId": "TelephoneLogin", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/LoginResponse" + } + } + }, + "parameters": [ + { + "name": "X-Original-Forwarded-For", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "User-Agent", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "Login-Type", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "body", + "description": " login request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TelephoneLoginRequest" + } + } + ], + "tags": [ + "auth" + ] + } + }, + "/v1/auth/oauth/callback/apple": { + "post": { + "summary": "Apple Login Callback", + "operationId": "AppleLoginCallback", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AppleLoginCallbackRequest" + } + } + ], + "tags": [ + "auth/oauth" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/auth/oauth/login": { + "post": { + "summary": "OAuth login", + "operationId": "OAuthLogin", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/OAuthLoginResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OAthLoginRequest" + } + } + ], + "tags": [ + "auth/oauth" + ] + } + }, + "/v1/auth/oauth/login/token": { + "post": { + "summary": "OAuth login get token", + "operationId": "OAuthLoginGetToken", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/LoginResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OAuthLoginGetTokenRequest" + } + } + ], + "tags": [ + "auth/oauth" + ] + } + }, + "/v1/auth/register": { + "post": { + "summary": "User register", + "operationId": "UserRegister", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/LoginResponse" + } + } + }, + "parameters": [ + { + "name": "X-Original-Forwarded-For", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "User-Agent", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "Login-Type", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "body", + "description": " User login response", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UserRegisterRequest" + } + } + ], + "tags": [ + "auth" + ] + } + }, + "/v1/auth/register/telephone": { + "post": { + "summary": "User Telephone register", + "operationId": "TelephoneUserRegister", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/LoginResponse" + } + } + }, + "parameters": [ + { + "name": "X-Original-Forwarded-For", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "User-Agent", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "Login-Type", + "in": "header", + "required": false, + "type": "string" + }, + { + "name": "body", + "description": " User login response", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TelephoneRegisterRequest" + } + } + ], + "tags": [ + "auth" + ] + } + }, + "/v1/auth/reset": { + "post": { + "summary": "Reset password", + "operationId": "ResetPassword", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/LoginResponse" + } + } + }, + "parameters": [ + { + "name": "X-Original-Forwarded-For", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "User-Agent", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "Login-Type", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "body", + "description": " User login response", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ResetPasswordRequest" + } + } + ], + "tags": [ + "auth" + ] + } + }, + "/v1/auth/reset/telephone": { + "post": { + "summary": "Reset password", + "operationId": "TelephoneResetPassword", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/LoginResponse" + } + } + }, + "parameters": [ + { + "name": "X-Original-Forwarded-For", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "User-Agent", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "Login-Type", + "in": "header", + "required": false, + "type": "string" + }, + { + "name": "body", + "description": " User login response", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TelephoneResetPasswordRequest" + } + } + ], + "tags": [ + "auth" + ] + } + }, + "/v1/common/ads": { + "get": { + "summary": "Get Ads", + "operationId": "GetAds", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetAdsResponse" + } + } + }, + "parameters": [ + { + "name": "device", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "position", + "in": "query", + "required": true, + "type": "string" + } + ], + "tags": [ + "common" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/common/check_verification_code": { + "post": { + "summary": "Check verification code", + "operationId": "CheckVerificationCode", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/CheckVerificationCodeRespone" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CheckVerificationCodeRequest" + } + } + ], + "tags": [ + "common" + ] + } + }, + "/v1/common/client": { + "get": { + "summary": "Get Client", + "operationId": "GetClient", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetSubscribeClientResponse" + } + } + }, + "tags": [ + "common" + ] + } + }, + "/v1/common/heartbeat": { + "get": { + "summary": "Heartbeat", + "operationId": "Heartbeat", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/HeartbeatResponse" + } + } + }, + "tags": [ + "common" + ] + } + }, + "/v1/common/send_code": { + "post": { + "summary": "Get verification code", + "operationId": "SendEmailCode", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/SendCodeResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "description": " GetCodeRequest Get code request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendCodeRequest" + } + } + ], + "tags": [ + "common" + ] + } + }, + "/v1/common/send_sms_code": { + "post": { + "summary": "Get sms verification code", + "operationId": "SendSmsCode", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/SendCodeResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SendSmsCodeRequest" + } + } + ], + "tags": [ + "common" + ] + } + }, + "/v1/common/site/config": { + "get": { + "summary": "Get global config", + "operationId": "GetGlobalConfig", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetGlobalConfigResponse" + } + } + }, + "tags": [ + "common" + ] + } + }, + "/v1/common/site/privacy": { + "get": { + "summary": "Get Privacy Policy", + "operationId": "GetPrivacyPolicy", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PrivacyPolicyConfig" + } + } + }, + "tags": [ + "common" + ] + } + }, + "/v1/common/site/stat": { + "get": { + "summary": "Get stat", + "operationId": "GetStat", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetStatResponse" + } + } + }, + "tags": [ + "common" + ] + } + }, + "/v1/common/site/tos": { + "get": { + "summary": "Get Tos Content", + "operationId": "GetTos", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetTosResponse" + } + } + }, + "tags": [ + "common" + ] + } + } + }, + "definitions": { + "Ads": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "content": { + "type": "string" + }, + "description": { + "type": "string" + }, + "target_url": { + "type": "string" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "end_time": { + "type": "integer", + "format": "int64" + }, + "status": { + "type": "integer", + "format": "int32" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Ads", + "required": [ + "id", + "title", + "type", + "content", + "description", + "target_url", + "start_time", + "end_time", + "status", + "created_at", + "updated_at" + ] + }, + "AlipayNotifyResponse": { + "type": "object", + "properties": { + "return_code": { + "type": "string" + } + }, + "title": "AlipayNotifyResponse", + "required": [ + "return_code" + ] + }, + "Announcement": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "title": { + "type": "string" + }, + "content": { + "type": "string" + }, + "show": { + "type": "boolean", + "format": "boolean" + }, + "pinned": { + "type": "boolean", + "format": "boolean" + }, + "popup": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Announcement", + "required": [ + "id", + "title", + "content", + "show", + "pinned", + "popup", + "created_at", + "updated_at" + ] + }, + "AnyTLS": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "AnyTLS", + "required": [ + "port", + "security_config" + ] + }, + "AppUserSubcbribe": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + }, + "device_limit": { + "type": "integer", + "format": "int64" + }, + "start_time": { + "type": "string" + }, + "expire_time": { + "type": "string" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/AppUserSubscbribeNode" + } + } + }, + "title": "AppUserSubcbribe", + "required": [ + "id", + "name", + "upload", + "traffic", + "download", + "device_limit", + "start_time", + "expire_time", + "list" + ] + }, + "AppUserSubscbribeNode": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "relay_mode": { + "type": "string" + }, + "relay_node": { + "type": "string" + }, + "server_addr": { + "type": "string" + }, + "speed_limit": { + "type": "integer", + "format": "int32" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "traffic_ratio": { + "type": "number", + "format": "double" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "config": { + "type": "string" + }, + "country": { + "type": "string" + }, + "city": { + "type": "string" + }, + "latitude": { + "type": "string" + }, + "longitude": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + } + }, + "title": "AppUserSubscbribeNode", + "required": [ + "id", + "name", + "uuid", + "protocol", + "relay_mode", + "relay_node", + "server_addr", + "speed_limit", + "tags", + "traffic", + "traffic_ratio", + "upload", + "config", + "country", + "city", + "latitude", + "longitude", + "created_at", + "download" + ] + }, + "AppleLoginCallbackRequest": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "id_token": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "title": "AppleLoginCallbackRequest", + "required": [ + "code", + "id_token", + "state" + ] + }, + "Application": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "subscribe_type": { + "type": "string" + } + }, + "title": "Application", + "required": [ + "id", + "icon", + "name", + "description", + "subscribe_type" + ] + }, + "ApplicationPlatform": { + "type": "object", + "properties": { + "ios": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "macos": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "linux": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "android": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "windows": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "harmony": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + } + }, + "title": "ApplicationPlatform" + }, + "ApplicationResponse": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationResponseInfo" + } + } + }, + "title": "ApplicationResponse", + "required": [ + "applications" + ] + }, + "ApplicationResponseInfo": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "description": { + "type": "string" + }, + "subscribe_type": { + "type": "string" + }, + "platform": { + "$ref": "#/definitions/ApplicationPlatform" + } + }, + "title": "ApplicationResponseInfo", + "required": [ + "id", + "name", + "icon", + "description", + "subscribe_type", + "platform" + ] + }, + "ApplicationVersion": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string" + }, + "version": { + "type": "string" + }, + "description": { + "type": "string" + }, + "is_default": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "ApplicationVersion", + "required": [ + "id", + "url", + "version", + "description", + "is_default" + ] + }, + "AttachAppleTransactionByIdRequest": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + }, + "transaction_id": { + "type": "string" + }, + "sandbox": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "AttachAppleTransactionByIdRequest", + "required": [ + "order_no", + "transaction_id" + ] + }, + "AttachAppleTransactionRequest": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + }, + "signed_transaction_jws": { + "type": "string" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "duration_days": { + "type": "integer", + "format": "int64" + }, + "tier": { + "type": "string" + } + }, + "title": "AttachAppleTransactionRequest", + "required": [ + "order_no", + "signed_transaction_jws" + ] + }, + "AttachAppleTransactionResponse": { + "type": "object", + "properties": { + "expires_at": { + "type": "integer", + "format": "int64" + }, + "tier": { + "type": "string" + } + }, + "title": "AttachAppleTransactionResponse", + "required": [ + "expires_at", + "tier" + ] + }, + "AuthConfig": { + "type": "object", + "properties": { + "mobile": { + "$ref": "#/definitions/MobileAuthenticateConfig" + }, + "email": { + "$ref": "#/definitions/EmailAuthticateConfig" + }, + "device": { + "$ref": "#/definitions/DeviceAuthticateConfig" + }, + "register": { + "$ref": "#/definitions/PubilcRegisterConfig" + } + }, + "title": "AuthConfig", + "required": [ + "mobile", + "email", + "device", + "register" + ] + }, + "AuthMethodConfig": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "method": { + "type": "string" + }, + "config": { + "type": "object" + }, + "enabled": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "AuthMethodConfig", + "required": [ + "id", + "method", + "config", + "enabled" + ] + }, + "BalanceLog": { + "type": "object", + "properties": { + "type": { + "type": "integer", + "format": "uin16" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "balance": { + "type": "integer", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "BalanceLog", + "required": [ + "type", + "user_id", + "amount", + "balance", + "timestamp" + ] + }, + "CheckUserRequest": { + "type": "object", + "properties": { + "email": { + "type": "string" + } + }, + "title": "CheckUserRequest", + "required": [ + "email" + ] + }, + "CheckUserResponse": { + "type": "object", + "properties": { + "exist": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "CheckUserResponse", + "required": [ + "exist" + ] + }, + "CheckVerificationCodeRequest": { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "account": { + "type": "string" + }, + "code": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + } + }, + "title": "CheckVerificationCodeRequest", + "required": [ + "method", + "account", + "code", + "type" + ] + }, + "CheckVerificationCodeRespone": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "format": "boolean" + }, + "exist": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "CheckVerificationCodeRespone", + "required": [ + "status", + "exist" + ] + }, + "CheckoutOrderRequest": { + "type": "object", + "properties": { + "orderNo": { + "type": "string" + }, + "returnUrl": { + "type": "string" + } + }, + "title": "CheckoutOrderRequest", + "required": [ + "orderNo" + ] + }, + "CheckoutOrderResponse": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "checkout_url": { + "type": "string" + }, + "stripe": { + "$ref": "#/definitions/StripePayment" + }, + "product_ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "CheckoutOrderResponse", + "required": [ + "type" + ] + }, + "CloseOrderRequest": { + "type": "object", + "properties": { + "orderNo": { + "type": "string" + } + }, + "title": "CloseOrderRequest", + "required": [ + "orderNo" + ] + }, + "CommissionLog": { + "type": "object", + "properties": { + "type": { + "type": "integer", + "format": "uin16" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "CommissionLog", + "required": [ + "type", + "user_id", + "amount", + "order_no", + "timestamp" + ] + }, + "Coupon": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + }, + "count": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "expire_time": { + "type": "integer", + "format": "int64" + }, + "user_limit": { + "type": "integer", + "format": "int64" + }, + "subscribe": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "used_count": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Coupon", + "required": [ + "id", + "name", + "code", + "count", + "type", + "discount", + "start_time", + "expire_time", + "user_limit", + "subscribe", + "used_count", + "enable", + "created_at", + "updated_at" + ] + }, + "Currency": { + "type": "object", + "properties": { + "currency_unit": { + "type": "string" + }, + "currency_symbol": { + "type": "string" + } + }, + "title": "Currency", + "required": [ + "currency_unit", + "currency_symbol" + ] + }, + "CurrencyConfig": { + "type": "object", + "properties": { + "access_key": { + "type": "string" + }, + "currency_unit": { + "type": "string" + }, + "currency_symbol": { + "type": "string" + } + }, + "title": "CurrencyConfig", + "required": [ + "access_key", + "currency_unit", + "currency_symbol" + ] + }, + "DeviceAuthticateConfig": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "format": "boolean" + }, + "show_ads": { + "type": "boolean", + "format": "boolean" + }, + "enable_security": { + "type": "boolean", + "format": "boolean" + }, + "only_real_device": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "DeviceAuthticateConfig", + "required": [ + "enable", + "show_ads", + "enable_security", + "only_real_device" + ] + }, + "DeviceLoginRequest": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "user_agent": { + "type": "string" + }, + "cf_token": { + "type": "string" + }, + "short_code": { + "type": "string" + } + }, + "title": "DeviceLoginRequest", + "required": [ + "identifier", + "user_agent" + ] + }, + "Document": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "title": { + "type": "string" + }, + "content": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "show": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Document", + "required": [ + "id", + "title", + "content", + "tags", + "show", + "created_at", + "updated_at" + ] + }, + "DownloadLink": { + "type": "object", + "properties": { + "ios": { + "type": "string" + }, + "android": { + "type": "string" + }, + "windows": { + "type": "string" + }, + "mac": { + "type": "string" + }, + "linux": { + "type": "string" + }, + "harmony": { + "type": "string" + } + }, + "title": "DownloadLink" + }, + "EPayNotifyRequest": { + "type": "object", + "properties": { + "pid": { + "type": "integer", + "format": "int64" + }, + "trade_no": { + "type": "string" + }, + "out_trade_no": { + "type": "string" + }, + "type": { + "type": "string" + }, + "name": { + "type": "string" + }, + "money": { + "type": "string" + }, + "trade_status": { + "type": "string" + }, + "param": { + "type": "string" + }, + "sign": { + "type": "string" + }, + "sign_type": { + "type": "string" + } + }, + "title": "EPayNotifyRequest", + "required": [ + "pid", + "trade_no", + "out_trade_no", + "type", + "name", + "money", + "trade_status", + "param", + "sign", + "sign_type" + ] + }, + "EmailAuthticateConfig": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "format": "boolean" + }, + "enable_verify": { + "type": "boolean", + "format": "boolean" + }, + "enable_domain_suffix": { + "type": "boolean", + "format": "boolean" + }, + "domain_suffix_list": { + "type": "string" + } + }, + "title": "EmailAuthticateConfig", + "required": [ + "enable", + "enable_verify", + "enable_domain_suffix", + "domain_suffix_list" + ] + }, + "FamilyDetail": { + "type": "object", + "properties": { + "summary": { + "$ref": "#/definitions/FamilySummary" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/FamilyMemberItem" + } + } + }, + "title": "FamilyDetail", + "required": [ + "summary", + "members" + ] + }, + "FamilyMemberItem": { + "type": "object", + "properties": { + "user_id": { + "type": "integer", + "format": "int64" + }, + "identifier": { + "type": "string" + }, + "role": { + "type": "integer", + "format": "uint8" + }, + "role_name": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "status_name": { + "type": "string" + }, + "join_source": { + "type": "string" + }, + "joined_at": { + "type": "integer", + "format": "int64" + }, + "left_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "FamilyMemberItem", + "required": [ + "user_id", + "identifier", + "role", + "role_name", + "status", + "status_name", + "join_source", + "joined_at" + ] + }, + "FamilySummary": { + "type": "object", + "properties": { + "family_id": { + "type": "integer", + "format": "int64" + }, + "owner_user_id": { + "type": "integer", + "format": "int64" + }, + "owner_identifier": { + "type": "string" + }, + "status": { + "type": "string" + }, + "active_member_count": { + "type": "integer", + "format": "int64" + }, + "max_members": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "FamilySummary", + "required": [ + "family_id", + "owner_user_id", + "owner_identifier", + "status", + "active_member_count", + "max_members", + "created_at", + "updated_at" + ] + }, + "Follow": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "ticket_id": { + "type": "integer", + "format": "int64" + }, + "from": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "content": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Follow", + "required": [ + "id", + "ticket_id", + "from", + "type", + "content", + "created_at" + ] + }, + "GetAdsRequest": { + "type": "object", + "properties": { + "device": { + "type": "string" + }, + "position": { + "type": "string" + } + }, + "title": "GetAdsRequest", + "required": [ + "device", + "position" + ] + }, + "GetAdsResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Ads" + } + } + }, + "title": "GetAdsResponse", + "required": [ + "list" + ] + }, + "GetAppleStatusResponse": { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "format": "boolean" + }, + "expires_at": { + "type": "integer", + "format": "int64" + }, + "tier": { + "type": "string" + } + }, + "title": "GetAppleStatusResponse", + "required": [ + "active", + "expires_at", + "tier" + ] + }, + "GetAvailablePaymentMethodsResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/PaymentMethod" + } + } + }, + "title": "GetAvailablePaymentMethodsResponse", + "required": [ + "list" + ] + }, + "GetGlobalConfigResponse": { + "type": "object", + "properties": { + "site": { + "$ref": "#/definitions/SiteConfig" + }, + "verify": { + "$ref": "#/definitions/VeifyConfig" + }, + "auth": { + "$ref": "#/definitions/AuthConfig" + }, + "invite": { + "$ref": "#/definitions/InviteConfig" + }, + "currency": { + "$ref": "#/definitions/Currency" + }, + "subscribe": { + "$ref": "#/definitions/SubscribeConfig" + }, + "signature": { + "$ref": "#/definitions/SignatureConfig" + }, + "verify_code": { + "$ref": "#/definitions/PubilcVerifyCodeConfig" + }, + "oauth_methods": { + "type": "array", + "items": { + "type": "string" + } + }, + "web_ad": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "GetGlobalConfigResponse", + "required": [ + "site", + "verify", + "auth", + "invite", + "currency", + "subscribe", + "signature", + "verify_code", + "oauth_methods", + "web_ad" + ] + }, + "GetStatResponse": { + "type": "object", + "properties": { + "user": { + "type": "integer", + "format": "int64" + }, + "node": { + "type": "integer", + "format": "int64" + }, + "country": { + "type": "integer", + "format": "int64" + }, + "protocol": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "GetStatResponse", + "required": [ + "user", + "node", + "country", + "protocol" + ] + }, + "GetSubscribeClientResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/SubscribeClient" + } + } + }, + "title": "GetSubscribeClientResponse", + "required": [ + "total", + "list" + ] + }, + "GetTosResponse": { + "type": "object", + "properties": { + "tos_content": { + "type": "string" + } + }, + "title": "GetTosResponse", + "required": [ + "tos_content" + ] + }, + "GetUserSubscribeTrafficLogsRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "end_time": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetUserSubscribeTrafficLogsRequest", + "required": [ + "page", + "size", + "user_id", + "subscribe_id", + "start_time", + "end_time" + ] + }, + "GetUserSubscribeTrafficLogsResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/TrafficLog" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetUserSubscribeTrafficLogsResponse", + "required": [ + "list", + "total" + ] + }, + "GoogleLoginCallbackRequest": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "title": "GoogleLoginCallbackRequest", + "required": [ + "code", + "state" + ] + }, + "HeartbeatResponse": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "format": "boolean" + }, + "message": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "HeartbeatResponse", + "required": [ + "status" + ] + }, + "Hysteria2": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "hop_ports": { + "type": "string" + }, + "hop_interval": { + "type": "integer", + "format": "int32" + }, + "obfs_password": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Hysteria2", + "required": [ + "port", + "hop_ports", + "hop_interval", + "obfs_password", + "security_config" + ] + }, + "InviteConfig": { + "type": "object", + "properties": { + "forced_invite": { + "type": "boolean", + "format": "boolean" + }, + "referral_percentage": { + "type": "integer", + "format": "int64" + }, + "only_first_purchase": { + "type": "boolean", + "format": "boolean" + }, + "gift_days": { + "type": "integer", + "format": "int64" + } + }, + "title": "InviteConfig", + "required": [ + "forced_invite", + "referral_percentage", + "only_first_purchase", + "gift_days" + ] + }, + "LoginResponse": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + }, + "title": "LoginResponse", + "required": [ + "token" + ] + }, + "MessageLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "platform": { + "type": "string" + }, + "to": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "content": { + "type": "object" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "created_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "MessageLog", + "required": [ + "id", + "type", + "platform", + "to", + "subject", + "content", + "status", + "created_at" + ] + }, + "MobileAuthenticateConfig": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "format": "boolean" + }, + "enable_whitelist": { + "type": "boolean", + "format": "boolean" + }, + "whitelist": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "MobileAuthenticateConfig", + "required": [ + "enable", + "enable_whitelist", + "whitelist" + ] + }, + "NodeConfig": { + "type": "object", + "properties": { + "node_secret": { + "type": "string" + }, + "node_pull_interval": { + "type": "integer", + "format": "int64" + }, + "node_push_interval": { + "type": "integer", + "format": "int64" + }, + "traffic_report_threshold": { + "type": "integer", + "format": "int64" + }, + "ip_strategy": { + "type": "string" + }, + "dns": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeDNS" + } + }, + "block": { + "type": "array", + "items": { + "type": "string" + } + }, + "outbound": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeOutbound" + } + } + }, + "title": "NodeConfig", + "required": [ + "node_secret", + "node_pull_interval", + "node_push_interval", + "traffic_report_threshold", + "ip_strategy", + "dns", + "block", + "outbound" + ] + }, + "NodeDNS": { + "type": "object", + "properties": { + "proto": { + "type": "string" + }, + "address": { + "type": "string" + }, + "domains": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "NodeDNS", + "required": [ + "proto", + "address", + "domains" + ] + }, + "NodeOutbound": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int64" + }, + "password": { + "type": "string" + }, + "rules": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "NodeOutbound", + "required": [ + "name", + "protocol", + "address", + "port", + "password", + "rules" + ] + }, + "NodeRelay": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "prefix": { + "type": "string" + } + }, + "title": "NodeRelay", + "required": [ + "host", + "port", + "prefix" + ] + }, + "OAthLoginRequest": { + "type": "object", + "properties": { + "method": { + "type": "string", + "description": " google, facebook, apple, telegram, github etc." + }, + "redirect": { + "type": "string" + } + }, + "title": "OAthLoginRequest", + "required": [ + "method", + "redirect" + ] + }, + "OAuthLoginGetTokenRequest": { + "type": "object", + "properties": { + "method": { + "type": "string", + "description": " google, facebook, apple, telegram, github etc." + }, + "callback": { + "type": "object" + } + }, + "title": "OAuthLoginGetTokenRequest", + "required": [ + "method", + "callback" + ] + }, + "OAuthLoginResponse": { + "type": "object", + "properties": { + "redirect": { + "type": "string" + } + }, + "title": "OAuthLoginResponse", + "required": [ + "redirect" + ] + }, + "Order": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "price": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "coupon_discount": { + "type": "integer", + "format": "int64" + }, + "commission": { + "type": "integer", + "format": "int64" + }, + "payment": { + "$ref": "#/definitions/PaymentMethod" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "trade_no": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Order", + "required": [ + "id", + "user_id", + "order_no", + "type", + "quantity", + "price", + "amount", + "gift_amount", + "discount", + "coupon", + "coupon_discount", + "payment", + "fee_amount", + "trade_no", + "status", + "subscribe_id", + "created_at", + "updated_at" + ] + }, + "OrderDetail": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "price": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "coupon_discount": { + "type": "integer", + "format": "int64" + }, + "commission": { + "type": "integer", + "format": "int64" + }, + "payment": { + "$ref": "#/definitions/PaymentMethod" + }, + "method": { + "type": "string" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "trade_no": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "subscribe": { + "$ref": "#/definitions/Subscribe" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "OrderDetail", + "required": [ + "id", + "user_id", + "order_no", + "type", + "quantity", + "price", + "amount", + "gift_amount", + "discount", + "coupon", + "coupon_discount", + "payment", + "method", + "fee_amount", + "trade_no", + "status", + "subscribe_id", + "subscribe", + "created_at", + "updated_at" + ] + }, + "PaymentConfig": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "config": { + "type": "object" + }, + "fee_mode": { + "type": "integer", + "format": "uint32" + }, + "fee_percent": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "PaymentConfig", + "required": [ + "id", + "name", + "platform", + "description", + "config", + "fee_mode", + "enable" + ] + }, + "PaymentMethod": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "fee_mode": { + "type": "integer", + "format": "uint32" + }, + "fee_percent": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + } + }, + "title": "PaymentMethod", + "required": [ + "id", + "name", + "platform", + "description", + "icon", + "fee_mode", + "fee_percent", + "fee_amount" + ] + }, + "PaymentMethodDetail": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "config": { + "type": "object" + }, + "fee_mode": { + "type": "integer", + "format": "uint32" + }, + "fee_percent": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "notify_url": { + "type": "string" + } + }, + "title": "PaymentMethodDetail", + "required": [ + "id", + "name", + "platform", + "description", + "icon", + "domain", + "config", + "fee_mode", + "fee_percent", + "fee_amount", + "enable", + "notify_url" + ] + }, + "PlatformInfo": { + "type": "object", + "properties": { + "platform": { + "type": "string" + }, + "platform_url": { + "type": "string" + }, + "platform_field_description": { + "type": "object" + } + }, + "title": "PlatformInfo", + "required": [ + "platform", + "platform_url", + "platform_field_description" + ] + }, + "PlatformResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/PlatformInfo" + } + } + }, + "title": "PlatformResponse", + "required": [ + "list" + ] + }, + "PreOrderResponse": { + "type": "object", + "properties": { + "price": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "coupon_discount": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + } + }, + "title": "PreOrderResponse", + "required": [ + "price", + "amount", + "discount", + "gift_amount", + "coupon", + "coupon_discount", + "fee_amount" + ] + }, + "PreRenewalOrderResponse": { + "type": "object", + "properties": { + "orderNo": { + "type": "string" + } + }, + "title": "PreRenewalOrderResponse", + "required": [ + "orderNo" + ] + }, + "PrivacyPolicyConfig": { + "type": "object", + "properties": { + "privacy_policy": { + "type": "string" + } + }, + "title": "PrivacyPolicyConfig", + "required": [ + "privacy_policy" + ] + }, + "Protocol": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "uin16" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "security": { + "type": "string" + }, + "sni": { + "type": "string" + }, + "allow_insecure": { + "type": "boolean", + "format": "boolean" + }, + "fingerprint": { + "type": "string" + }, + "reality_server_addr": { + "type": "string" + }, + "reality_server_port": { + "type": "integer", + "format": "int32" + }, + "reality_private_key": { + "type": "string" + }, + "reality_public_key": { + "type": "string" + }, + "reality_short_id": { + "type": "string" + }, + "transport": { + "type": "string" + }, + "host": { + "type": "string" + }, + "path": { + "type": "string" + }, + "service_name": { + "type": "string" + }, + "cipher": { + "type": "string" + }, + "server_key": { + "type": "string" + }, + "flow": { + "type": "string" + }, + "hop_ports": { + "type": "string" + }, + "hop_interval": { + "type": "integer", + "format": "int32" + }, + "obfs_password": { + "type": "string" + }, + "disable_sni": { + "type": "boolean", + "format": "boolean" + }, + "reduce_rtt": { + "type": "boolean", + "format": "boolean" + }, + "udp_relay_mode": { + "type": "string" + }, + "congestion_controller": { + "type": "string" + }, + "multiplex": { + "type": "string", + "description": " mux, eg: off/low/medium/high" + }, + "padding_scheme": { + "type": "string", + "description": " padding scheme" + }, + "up_mbps": { + "type": "integer", + "format": "int32", + "description": " upload speed limit" + }, + "down_mbps": { + "type": "integer", + "format": "int32", + "description": " download speed limit" + }, + "obfs": { + "type": "string", + "description": " obfs, 'none', 'http', 'tls'" + }, + "obfs_host": { + "type": "string", + "description": " obfs host" + }, + "obfs_path": { + "type": "string", + "description": " obfs path" + }, + "xhttp_mode": { + "type": "string", + "description": " xhttp mode" + }, + "xhttp_extra": { + "type": "string", + "description": " xhttp extra path" + }, + "encryption": { + "type": "string", + "description": " encryption,'none', 'mlkem768x25519plus'" + }, + "encryption_mode": { + "type": "string", + "description": " encryption mode,'native', 'xorpub', 'random'" + }, + "encryption_rtt": { + "type": "string", + "description": " encryption rtt,'0rtt', '1rtt'" + }, + "encryption_ticket": { + "type": "string", + "description": " encryption ticket" + }, + "encryption_server_padding": { + "type": "string", + "description": " encryption server padding" + }, + "encryption_private_key": { + "type": "string", + "description": " encryption private key" + }, + "encryption_client_padding": { + "type": "string", + "description": " encryption client padding" + }, + "encryption_password": { + "type": "string", + "description": " encryption password" + }, + "ratio": { + "type": "number", + "format": "double", + "description": " Traffic ratio, default is 1" + }, + "cert_mode": { + "type": "string", + "description": " Certificate mode, `none`|`http`|`dns`|`self`" + }, + "cert_dns_provider": { + "type": "string", + "description": " DNS provider for certificate" + }, + "cert_dns_env": { + "type": "string", + "description": " Environment for DNS provider" + } + }, + "title": "Protocol", + "required": [ + "type", + "port", + "enable" + ] + }, + "PubilcRegisterConfig": { + "type": "object", + "properties": { + "stop_register": { + "type": "boolean", + "format": "boolean" + }, + "enable_ip_register_limit": { + "type": "boolean", + "format": "boolean" + }, + "ip_register_limit": { + "type": "integer", + "format": "int64" + }, + "ip_register_limit_duration": { + "type": "integer", + "format": "int64" + } + }, + "title": "PubilcRegisterConfig", + "required": [ + "stop_register", + "enable_ip_register_limit", + "ip_register_limit", + "ip_register_limit_duration" + ] + }, + "PubilcVerifyCodeConfig": { + "type": "object", + "properties": { + "verify_code_interval": { + "type": "integer", + "format": "int64" + } + }, + "title": "PubilcVerifyCodeConfig", + "required": [ + "verify_code_interval" + ] + }, + "PurchaseOrderRequest": { + "type": "object", + "properties": { + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + } + }, + "title": "PurchaseOrderRequest", + "required": [ + "subscribe_id", + "quantity" + ] + }, + "PurchaseOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "PurchaseOrderResponse", + "required": [ + "order_no" + ] + }, + "QueryAnnouncementRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32", + "default": "15" + }, + "pinned": { + "type": "boolean", + "format": "boolean" + }, + "popup": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "QueryAnnouncementRequest", + "required": [ + "page", + "size", + "pinned", + "popup" + ] + }, + "QueryAnnouncementResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "announcements": { + "type": "array", + "items": { + "$ref": "#/definitions/Announcement" + } + } + }, + "title": "QueryAnnouncementResponse", + "required": [ + "total", + "announcements" + ] + }, + "QueryDocumentDetailRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryDocumentDetailRequest", + "required": [ + "id" + ] + }, + "QueryDocumentListResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Document" + } + } + }, + "title": "QueryDocumentListResponse", + "required": [ + "total", + "list" + ] + }, + "QueryOrderDetailRequest": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "QueryOrderDetailRequest", + "required": [ + "order_no" + ] + }, + "QueryOrderListRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "status": { + "type": "integer", + "format": "int32" + }, + "search": { + "type": "string" + } + }, + "title": "QueryOrderListRequest", + "required": [ + "page", + "size" + ] + }, + "QueryOrderListResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/OrderDetail" + } + } + }, + "title": "QueryOrderListResponse", + "required": [ + "total", + "list" + ] + }, + "QuerySubscribeGroupListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/SubscribeGroup" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QuerySubscribeGroupListResponse", + "required": [ + "list", + "total" + ] + }, + "QuerySubscribeListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Subscribe" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QuerySubscribeListResponse", + "required": [ + "list", + "total" + ] + }, + "QueryUserAffiliateCountResponse": { + "type": "object", + "properties": { + "registers": { + "type": "integer", + "format": "int64" + }, + "total_commission": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryUserAffiliateCountResponse", + "required": [ + "registers", + "total_commission" + ] + }, + "QueryUserAffiliateListRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "title": "QueryUserAffiliateListRequest", + "required": [ + "page", + "size" + ] + }, + "QueryUserAffiliateListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAffiliate" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryUserAffiliateListResponse", + "required": [ + "list", + "total" + ] + }, + "RechargeOrderRequest": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + } + }, + "title": "RechargeOrderRequest", + "required": [ + "amount", + "payment" + ] + }, + "RechargeOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "RechargeOrderResponse", + "required": [ + "order_no" + ] + }, + "RedemptionCode": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "code": { + "type": "string" + }, + "total_count": { + "type": "integer", + "format": "int64" + }, + "used_count": { + "type": "integer", + "format": "int64" + }, + "subscribe_plan": { + "type": "integer", + "format": "int64" + }, + "unit_time": { + "type": "string" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "status": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "RedemptionCode", + "required": [ + "id", + "code", + "total_count", + "used_count", + "subscribe_plan", + "unit_time", + "quantity", + "status", + "created_at", + "updated_at" + ] + }, + "RedemptionRecord": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "redemption_code_id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "unit_time": { + "type": "string" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "redeemed_at": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "RedemptionRecord", + "required": [ + "id", + "redemption_code_id", + "user_id", + "subscribe_id", + "unit_time", + "quantity", + "redeemed_at", + "created_at" + ] + }, + "RegisterConfig": { + "type": "object", + "properties": { + "stop_register": { + "type": "boolean", + "format": "boolean" + }, + "enable_trial": { + "type": "boolean", + "format": "boolean" + }, + "trial_subscribe": { + "type": "integer", + "format": "int64" + }, + "trial_time": { + "type": "integer", + "format": "int64" + }, + "trial_time_unit": { + "type": "string" + }, + "enable_ip_register_limit": { + "type": "boolean", + "format": "boolean" + }, + "ip_register_limit": { + "type": "integer", + "format": "int64" + }, + "ip_register_limit_duration": { + "type": "integer", + "format": "int64" + }, + "device_limit": { + "type": "integer", + "format": "int64" + } + }, + "title": "RegisterConfig", + "required": [ + "stop_register", + "enable_trial", + "trial_subscribe", + "trial_time", + "trial_time_unit", + "enable_ip_register_limit", + "ip_register_limit", + "ip_register_limit_duration", + "device_limit" + ] + }, + "RenewalOrderRequest": { + "type": "object", + "properties": { + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + } + }, + "title": "RenewalOrderRequest", + "required": [ + "user_subscribe_id", + "quantity", + "payment" + ] + }, + "RenewalOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "RenewalOrderResponse", + "required": [ + "order_no" + ] + }, + "ResetPasswordRequest": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "email": { + "type": "string" + }, + "password": { + "type": "string" + }, + "code": { + "type": "string" + }, + "cf_token": { + "type": "string" + } + }, + "title": "ResetPasswordRequest", + "required": [ + "identifier", + "email", + "password" + ] + }, + "ResetSubscribeTrafficLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "integer", + "format": "uin16" + }, + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "ResetSubscribeTrafficLog", + "required": [ + "id", + "type", + "user_subscribe_id", + "timestamp" + ] + }, + "ResetTrafficOrderRequest": { + "type": "object", + "properties": { + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + } + }, + "title": "ResetTrafficOrderRequest", + "required": [ + "user_subscribe_id", + "payment" + ] + }, + "ResetTrafficOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "ResetTrafficOrderResponse", + "required": [ + "order_no" + ] + }, + "ResetUserSubscribeTokenRequest": { + "type": "object", + "properties": { + "user_subscribe_id": { + "type": "integer", + "format": "int64" + } + }, + "title": "ResetUserSubscribeTokenRequest", + "required": [ + "user_subscribe_id" + ] + }, + "RestoreAppleTransactionsRequest": { + "type": "object", + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "RestoreAppleTransactionsRequest", + "required": [ + "transactions" + ] + }, + "SecurityConfig": { + "type": "object", + "properties": { + "sni": { + "type": "string" + }, + "allow_insecure": { + "type": "boolean", + "format": "boolean" + }, + "fingerprint": { + "type": "string" + }, + "reality_server_addr": { + "type": "string" + }, + "reality_server_port": { + "type": "integer", + "format": "int32" + }, + "reality_private_key": { + "type": "string" + }, + "reality_public_key": { + "type": "string" + }, + "reality_short_id": { + "type": "string" + } + }, + "title": "SecurityConfig", + "required": [ + "sni", + "allow_insecure", + "fingerprint", + "reality_server_addr", + "reality_server_port", + "reality_private_key", + "reality_public_key", + "reality_short_id" + ] + }, + "SendCodeRequest": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + } + }, + "title": "SendCodeRequest", + "required": [ + "email", + "type" + ] + }, + "SendCodeResponse": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "status": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "SendCodeResponse", + "required": [ + "status" + ] + }, + "SendSmsCodeRequest": { + "type": "object", + "properties": { + "type": { + "type": "integer", + "format": "uint8" + }, + "telephone": { + "type": "string" + }, + "telephone_area_code": { + "type": "string" + } + }, + "title": "SendSmsCodeRequest", + "required": [ + "type", + "telephone", + "telephone_area_code" + ] + }, + "ServerGroup": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "ServerGroup", + "required": [ + "id", + "name", + "description", + "created_at", + "updated_at" + ] + }, + "ServerRuleGroup": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "rules": { + "type": "string" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "default": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "ServerRuleGroup", + "required": [ + "id", + "icon", + "name", + "type", + "tags", + "rules", + "enable", + "default", + "created_at", + "updated_at" + ] + }, + "Shadowsocks": { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "server_key": { + "type": "string" + } + }, + "title": "Shadowsocks", + "required": [ + "method", + "port", + "server_key" + ] + }, + "SignatureConfig": { + "type": "object", + "properties": { + "enable_signature": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "SignatureConfig", + "required": [ + "enable_signature" + ] + }, + "SiteConfig": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "site_name": { + "type": "string" + }, + "site_desc": { + "type": "string" + }, + "site_logo": { + "type": "string" + }, + "keywords": { + "type": "string" + }, + "custom_html": { + "type": "string" + }, + "custom_data": { + "type": "string" + } + }, + "title": "SiteConfig", + "required": [ + "host", + "site_name", + "site_desc", + "site_logo", + "keywords", + "custom_html", + "custom_data" + ] + }, + "SiteCustomDataContacts": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "telephone": { + "type": "string" + }, + "address": { + "type": "string" + } + }, + "title": "SiteCustomDataContacts", + "required": [ + "email", + "telephone", + "address" + ] + }, + "SortItem": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "sort": { + "type": "integer", + "format": "int64" + } + }, + "title": "SortItem", + "required": [ + "id", + "sort" + ] + }, + "StripePayment": { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "client_secret": { + "type": "string" + }, + "publishable_key": { + "type": "string" + } + }, + "title": "StripePayment", + "required": [ + "method", + "client_secret", + "publishable_key" + ] + }, + "Subscribe": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "language": { + "type": "string" + }, + "description": { + "type": "string" + }, + "unit_price": { + "type": "integer", + "format": "int64" + }, + "unit_time": { + "type": "string" + }, + "discount": { + "type": "array", + "items": { + "$ref": "#/definitions/SubscribeDiscount" + } + }, + "node_count": { + "type": "integer", + "format": "int64" + }, + "replacement": { + "type": "integer", + "format": "int64" + }, + "inventory": { + "type": "integer", + "format": "int64" + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "speed_limit": { + "type": "integer", + "format": "int64" + }, + "device_limit": { + "type": "integer", + "format": "int64" + }, + "quota": { + "type": "integer", + "format": "int64" + }, + "nodes": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "node_tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "show": { + "type": "boolean", + "format": "boolean" + }, + "sell": { + "type": "boolean", + "format": "boolean" + }, + "sort": { + "type": "integer", + "format": "int64" + }, + "deduction_ratio": { + "type": "integer", + "format": "int64" + }, + "allow_deduction": { + "type": "boolean", + "format": "boolean" + }, + "reset_cycle": { + "type": "integer", + "format": "int64" + }, + "renewal_reset": { + "type": "boolean", + "format": "boolean" + }, + "show_original_price": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Subscribe", + "required": [ + "id", + "name", + "language", + "description", + "unit_price", + "unit_time", + "discount", + "node_count", + "replacement", + "inventory", + "traffic", + "speed_limit", + "device_limit", + "quota", + "nodes", + "node_tags", + "show", + "sell", + "sort", + "deduction_ratio", + "allow_deduction", + "reset_cycle", + "renewal_reset", + "show_original_price", + "created_at", + "updated_at" + ] + }, + "SubscribeClient": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "is_default": { + "type": "boolean", + "format": "boolean" + }, + "download_link": { + "$ref": "#/definitions/DownloadLink" + } + }, + "title": "SubscribeClient", + "required": [ + "id", + "name", + "is_default" + ] + }, + "SubscribeConfig": { + "type": "object", + "properties": { + "single_model": { + "type": "boolean", + "format": "boolean" + }, + "subscribe_path": { + "type": "string" + }, + "subscribe_domain": { + "type": "string" + }, + "pan_domain": { + "type": "boolean", + "format": "boolean" + }, + "user_agent_limit": { + "type": "boolean", + "format": "boolean" + }, + "user_agent_list": { + "type": "string" + } + }, + "title": "SubscribeConfig", + "required": [ + "single_model", + "subscribe_path", + "subscribe_domain", + "pan_domain", + "user_agent_limit", + "user_agent_list" + ] + }, + "SubscribeDiscount": { + "type": "object", + "properties": { + "quantity": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "number", + "format": "double" + } + }, + "title": "SubscribeDiscount", + "required": [ + "quantity", + "discount" + ] + }, + "SubscribeGroup": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "SubscribeGroup", + "required": [ + "id", + "name", + "description", + "created_at", + "updated_at" + ] + }, + "SubscribeType": { + "type": "object", + "properties": { + "subscribe_types": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "SubscribeType", + "required": [ + "subscribe_types" + ] + }, + "TelegramConfig": { + "type": "object", + "properties": { + "telegram_bot_token": { + "type": "string" + }, + "telegram_group_url": { + "type": "string" + }, + "telegram_notify": { + "type": "boolean", + "format": "boolean" + }, + "telegram_web_hook_domain": { + "type": "string" + } + }, + "title": "TelegramConfig", + "required": [ + "telegram_bot_token", + "telegram_group_url", + "telegram_notify", + "telegram_web_hook_domain" + ] + }, + "TelephoneCheckUserRequest": { + "type": "object", + "properties": { + "telephone": { + "type": "string" + }, + "telephone_area_code": { + "type": "string" + } + }, + "title": "TelephoneCheckUserRequest", + "required": [ + "telephone", + "telephone_area_code" + ] + }, + "TelephoneCheckUserResponse": { + "type": "object", + "properties": { + "exist": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "TelephoneCheckUserResponse", + "required": [ + "exist" + ] + }, + "TelephoneLoginRequest": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "telephone": { + "type": "string" + }, + "telephone_code": { + "type": "string" + }, + "telephone_area_code": { + "type": "string" + }, + "password": { + "type": "string" + }, + "cf_token": { + "type": "string" + } + }, + "title": "TelephoneLoginRequest", + "required": [ + "identifier", + "telephone", + "telephone_code", + "telephone_area_code", + "password" + ] + }, + "TelephoneRegisterRequest": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "telephone": { + "type": "string" + }, + "telephone_area_code": { + "type": "string" + }, + "password": { + "type": "string" + }, + "invite": { + "type": "string" + }, + "code": { + "type": "string" + }, + "cf_token": { + "type": "string" + } + }, + "title": "TelephoneRegisterRequest", + "required": [ + "identifier", + "telephone", + "telephone_area_code", + "password" + ] + }, + "TelephoneResetPasswordRequest": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "telephone": { + "type": "string" + }, + "telephone_area_code": { + "type": "string" + }, + "password": { + "type": "string" + }, + "code": { + "type": "string" + }, + "cf_token": { + "type": "string" + } + }, + "title": "TelephoneResetPasswordRequest", + "required": [ + "identifier", + "telephone", + "telephone_area_code", + "password" + ] + }, + "Ticket": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "follow": { + "type": "array", + "items": { + "$ref": "#/definitions/Follow" + } + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Ticket", + "required": [ + "id", + "title", + "description", + "user_id", + "status", + "created_at", + "updated_at" + ] + }, + "TimePeriod": { + "type": "object", + "properties": { + "start_time": { + "type": "string" + }, + "end_time": { + "type": "string" + }, + "multiplier": { + "type": "number", + "format": "float" + } + }, + "title": "TimePeriod", + "required": [ + "start_time", + "end_time", + "multiplier" + ] + }, + "TosConfig": { + "type": "object", + "properties": { + "tos_content": { + "type": "string" + } + }, + "title": "TosConfig", + "required": [ + "tos_content" + ] + }, + "TrafficLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "server_id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "TrafficLog", + "required": [ + "id", + "server_id", + "user_id", + "subscribe_id", + "download", + "upload", + "timestamp" + ] + }, + "TransportConfig": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "host": { + "type": "string" + }, + "service_name": { + "type": "string" + } + }, + "title": "TransportConfig", + "required": [ + "path", + "host", + "service_name" + ] + }, + "Trojan": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "transport": { + "type": "string" + }, + "transport_config": { + "$ref": "#/definitions/TransportConfig" + }, + "security": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Trojan", + "required": [ + "port", + "transport", + "transport_config", + "security", + "security_config" + ] + }, + "Tuic": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "disable_sni": { + "type": "boolean", + "format": "boolean" + }, + "reduce_rtt": { + "type": "boolean", + "format": "boolean" + }, + "udp_relay_mode": { + "type": "string" + }, + "congestion_controller": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Tuic", + "required": [ + "port", + "disable_sni", + "reduce_rtt", + "udp_relay_mode", + "congestion_controller", + "security_config" + ] + }, + "User": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "avatar": { + "type": "string" + }, + "balance": { + "type": "integer", + "format": "int64" + }, + "commission": { + "type": "integer", + "format": "int64" + }, + "referral_percentage": { + "type": "integer", + "format": "uint8" + }, + "only_first_purchase": { + "type": "boolean", + "format": "boolean" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "telegram": { + "type": "integer", + "format": "int64" + }, + "refer_code": { + "type": "string" + }, + "referer_id": { + "type": "integer", + "format": "int64" + }, + "share_link": { + "type": "string" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "is_admin": { + "type": "boolean", + "format": "boolean" + }, + "enable_balance_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_login_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_subscribe_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_trade_notify": { + "type": "boolean", + "format": "boolean" + }, + "auth_methods": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAuthMethod" + } + }, + "user_devices": { + "type": "array", + "items": { + "$ref": "#/definitions/UserDevice" + } + }, + "rules": { + "type": "array", + "items": { + "type": "string" + } + }, + "last_login_time": { + "type": "integer", + "format": "int64" + }, + "member_status": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + }, + "deleted_at": { + "type": "integer", + "format": "int64" + }, + "is_del": { + "type": "boolean", + "format": "boolean" + }, + "remark": { + "type": "string" + }, + "purchased_package": { + "type": "string" + }, + "family_joined": { + "type": "boolean", + "format": "boolean" + }, + "family_id": { + "type": "integer", + "format": "int64" + }, + "family_role": { + "type": "integer", + "format": "uint8" + }, + "family_role_name": { + "type": "string" + }, + "family_owner_user_id": { + "type": "integer", + "format": "int64" + }, + "family_status": { + "type": "string" + }, + "family_member_count": { + "type": "integer", + "format": "int64" + }, + "family_max_members": { + "type": "integer", + "format": "int64" + } + }, + "title": "User", + "required": [ + "id", + "avatar", + "balance", + "commission", + "referral_percentage", + "only_first_purchase", + "gift_amount", + "telegram", + "refer_code", + "referer_id", + "enable", + "enable_balance_notify", + "enable_login_notify", + "enable_subscribe_notify", + "enable_trade_notify", + "auth_methods", + "user_devices", + "rules", + "created_at", + "updated_at" + ] + }, + "UserAffiliate": { + "type": "object", + "properties": { + "avatar": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "registered_at": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "UserAffiliate", + "required": [ + "avatar", + "identifier", + "registered_at", + "enable" + ] + }, + "UserAuthMethod": { + "type": "object", + "properties": { + "auth_type": { + "type": "string" + }, + "auth_identifier": { + "type": "string" + }, + "verified": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "UserAuthMethod", + "required": [ + "auth_type", + "auth_identifier", + "verified" + ] + }, + "UserDevice": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "ip": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "user_agent": { + "type": "string" + }, + "online": { + "type": "boolean", + "format": "boolean" + }, + "enabled": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserDevice", + "required": [ + "id", + "ip", + "identifier", + "user_agent", + "online", + "enabled", + "created_at", + "updated_at" + ] + }, + "UserLoginLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "login_ip": { + "type": "string" + }, + "user_agent": { + "type": "string" + }, + "success": { + "type": "boolean", + "format": "boolean" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserLoginLog", + "required": [ + "id", + "user_id", + "login_ip", + "user_agent", + "success", + "timestamp" + ] + }, + "UserLoginRequest": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "email": { + "type": "string" + }, + "password": { + "type": "string" + }, + "cf_token": { + "type": "string" + } + }, + "title": "UserLoginRequest", + "required": [ + "identifier", + "email", + "password" + ] + }, + "UserRegisterRequest": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "email": { + "type": "string" + }, + "password": { + "type": "string" + }, + "invite": { + "type": "string" + }, + "code": { + "type": "string" + }, + "cf_token": { + "type": "string" + } + }, + "title": "UserRegisterRequest", + "required": [ + "identifier", + "email", + "password" + ] + }, + "UserSubscribe": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "order_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "subscribe": { + "$ref": "#/definitions/Subscribe" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "expire_time": { + "type": "integer", + "format": "int64" + }, + "finished_at": { + "type": "integer", + "format": "int64" + }, + "reset_time": { + "type": "integer", + "format": "int64" + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "token": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "entitlement_source": { + "type": "string" + }, + "entitlement_owner_user_id": { + "type": "integer", + "format": "int64" + }, + "read_only": { + "type": "boolean", + "format": "boolean" + }, + "is_gift": { + "type": "boolean", + "format": "boolean" + }, + "short": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserSubscribe", + "required": [ + "id", + "user_id", + "order_id", + "subscribe_id", + "subscribe", + "start_time", + "expire_time", + "finished_at", + "reset_time", + "traffic", + "download", + "upload", + "token", + "status", + "entitlement_source", + "entitlement_owner_user_id", + "read_only", + "is_gift", + "short", + "created_at", + "updated_at" + ] + }, + "UserSubscribeLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "token": { + "type": "string" + }, + "ip": { + "type": "string" + }, + "user_agent": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserSubscribeLog", + "required": [ + "id", + "user_id", + "user_subscribe_id", + "token", + "ip", + "user_agent", + "timestamp" + ] + }, + "VeifyConfig": { + "type": "object", + "properties": { + "turnstile_site_key": { + "type": "string" + }, + "enable_login_verify": { + "type": "boolean", + "format": "boolean" + }, + "enable_register_verify": { + "type": "boolean", + "format": "boolean" + }, + "enable_reset_password_verify": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "VeifyConfig", + "required": [ + "turnstile_site_key", + "enable_login_verify", + "enable_register_verify", + "enable_reset_password_verify" + ] + }, + "VerifyCodeConfig": { + "type": "object", + "properties": { + "verify_code_expire_time": { + "type": "integer", + "format": "int64" + }, + "verify_code_limit": { + "type": "integer", + "format": "int64" + }, + "verify_code_interval": { + "type": "integer", + "format": "int64" + } + }, + "title": "VerifyCodeConfig", + "required": [ + "verify_code_expire_time", + "verify_code_limit", + "verify_code_interval" + ] + }, + "VerifyConfig": { + "type": "object", + "properties": { + "turnstile_site_key": { + "type": "string" + }, + "turnstile_secret": { + "type": "string" + }, + "enable_login_verify": { + "type": "boolean", + "format": "boolean" + }, + "enable_register_verify": { + "type": "boolean", + "format": "boolean" + }, + "enable_reset_password_verify": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "VerifyConfig", + "required": [ + "turnstile_site_key", + "turnstile_secret", + "enable_login_verify", + "enable_register_verify", + "enable_reset_password_verify" + ] + }, + "Vless": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "flow": { + "type": "string" + }, + "transport": { + "type": "string" + }, + "transport_config": { + "$ref": "#/definitions/TransportConfig" + }, + "security": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Vless", + "required": [ + "port", + "flow", + "transport", + "transport_config", + "security", + "security_config" + ] + }, + "Vmess": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "transport": { + "type": "string" + }, + "transport_config": { + "$ref": "#/definitions/TransportConfig" + }, + "security": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Vmess", + "required": [ + "port", + "transport", + "transport_config", + "security", + "security_config" + ] + } + }, + "securityDefinitions": { + "apiKey": { + "type": "apiKey", + "description": "Enter JWT Bearer token **_only_**", + "name": "Authorization", + "in": "header" + } + } +} diff --git a/internal/model/payment/model.go b/internal/model/payment/model.go index 0d7bc71..e7ec698 100644 --- a/internal/model/payment/model.go +++ b/internal/model/payment/model.go @@ -72,7 +72,7 @@ func (m *customPaymentModel) FindListByPage(ctx context.Context, page, size int, func (m *customPaymentModel) FindListByPlatform(ctx context.Context, platform string) ([]*Payment, error) { var resp []*Payment err := m.QueryNoCacheCtx(ctx, &resp, func(conn *gorm.DB, v interface{}) error { - return conn.Model(&Payment{}).Where("platform = ?", platform).Find(v).Error + return conn.Model(&Payment{}).Where("LOWER(REPLACE(platform, '_', '')) = LOWER(REPLACE(?, '_', ''))", platform).Find(v).Error }) return resp, err } diff --git a/node.json b/node.json new file mode 100644 index 0000000..2918ade --- /dev/null +++ b/node.json @@ -0,0 +1,4669 @@ +{ + "swagger": "2.0", + "info": { + "title": "Node API", + "description": "API for ppanel", + "version": "0.0.1" + }, + "schemes": [ + "http", + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/v1/server/config": { + "get": { + "summary": "Get server config", + "operationId": "GetServerConfig", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetServerConfigResponse" + } + } + }, + "parameters": [ + { + "name": "protocol", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "server_id", + "in": "query", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "secret_key", + "in": "query", + "required": true, + "type": "string" + } + ], + "tags": [ + "server" + ] + } + }, + "/v1/server/online": { + "post": { + "summary": "Push online users", + "operationId": "PushOnlineUsers", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/OnlineUsersRequest" + } + } + ], + "tags": [ + "server" + ] + } + }, + "/v1/server/push": { + "post": { + "summary": "Push user Traffic", + "operationId": "ServerPushUserTraffic", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ServerPushUserTrafficRequest" + } + } + ], + "tags": [ + "server" + ] + } + }, + "/v1/server/status": { + "post": { + "summary": "Push server status", + "operationId": "ServerPushStatus", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ServerPushStatusRequest" + } + } + ], + "tags": [ + "server" + ] + } + }, + "/v1/server/user": { + "get": { + "summary": "Get user list", + "operationId": "GetServerUserList", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetServerUserListResponse" + } + } + }, + "parameters": [ + { + "name": "protocol", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "server_id", + "in": "query", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "secret_key", + "in": "query", + "required": true, + "type": "string" + } + ], + "tags": [ + "server" + ] + } + }, + "/v2/server/{server_id}": { + "get": { + "summary": "Get Server Protocol Config", + "operationId": "QueryServerProtocolConfig", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryServerConfigResponse" + } + } + }, + "parameters": [ + { + "name": "server_id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "secret_key", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "protocols", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "server" + ], + "consumes": [ + "multipart/form-data" + ] + } + } + }, + "definitions": { + "Ads": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "content": { + "type": "string" + }, + "description": { + "type": "string" + }, + "target_url": { + "type": "string" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "end_time": { + "type": "integer", + "format": "int64" + }, + "status": { + "type": "integer", + "format": "int32" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Ads", + "required": [ + "id", + "title", + "type", + "content", + "description", + "target_url", + "start_time", + "end_time", + "status", + "created_at", + "updated_at" + ] + }, + "AlipayNotifyResponse": { + "type": "object", + "properties": { + "return_code": { + "type": "string" + } + }, + "title": "AlipayNotifyResponse", + "required": [ + "return_code" + ] + }, + "Announcement": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "title": { + "type": "string" + }, + "content": { + "type": "string" + }, + "show": { + "type": "boolean", + "format": "boolean" + }, + "pinned": { + "type": "boolean", + "format": "boolean" + }, + "popup": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Announcement", + "required": [ + "id", + "title", + "content", + "show", + "pinned", + "popup", + "created_at", + "updated_at" + ] + }, + "AnyTLS": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "AnyTLS", + "required": [ + "port", + "security_config" + ] + }, + "AppUserSubcbribe": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + }, + "device_limit": { + "type": "integer", + "format": "int64" + }, + "start_time": { + "type": "string" + }, + "expire_time": { + "type": "string" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/AppUserSubscbribeNode" + } + } + }, + "title": "AppUserSubcbribe", + "required": [ + "id", + "name", + "upload", + "traffic", + "download", + "device_limit", + "start_time", + "expire_time", + "list" + ] + }, + "AppUserSubscbribeNode": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "relay_mode": { + "type": "string" + }, + "relay_node": { + "type": "string" + }, + "server_addr": { + "type": "string" + }, + "speed_limit": { + "type": "integer", + "format": "int32" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "traffic_ratio": { + "type": "number", + "format": "double" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "config": { + "type": "string" + }, + "country": { + "type": "string" + }, + "city": { + "type": "string" + }, + "latitude": { + "type": "string" + }, + "longitude": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + } + }, + "title": "AppUserSubscbribeNode", + "required": [ + "id", + "name", + "uuid", + "protocol", + "relay_mode", + "relay_node", + "server_addr", + "speed_limit", + "tags", + "traffic", + "traffic_ratio", + "upload", + "config", + "country", + "city", + "latitude", + "longitude", + "created_at", + "download" + ] + }, + "Application": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "subscribe_type": { + "type": "string" + } + }, + "title": "Application", + "required": [ + "id", + "icon", + "name", + "description", + "subscribe_type" + ] + }, + "ApplicationPlatform": { + "type": "object", + "properties": { + "ios": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "macos": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "linux": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "android": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "windows": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "harmony": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + } + }, + "title": "ApplicationPlatform" + }, + "ApplicationResponse": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationResponseInfo" + } + } + }, + "title": "ApplicationResponse", + "required": [ + "applications" + ] + }, + "ApplicationResponseInfo": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "description": { + "type": "string" + }, + "subscribe_type": { + "type": "string" + }, + "platform": { + "$ref": "#/definitions/ApplicationPlatform" + } + }, + "title": "ApplicationResponseInfo", + "required": [ + "id", + "name", + "icon", + "description", + "subscribe_type", + "platform" + ] + }, + "ApplicationVersion": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string" + }, + "version": { + "type": "string" + }, + "description": { + "type": "string" + }, + "is_default": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "ApplicationVersion", + "required": [ + "id", + "url", + "version", + "description", + "is_default" + ] + }, + "AttachAppleTransactionByIdRequest": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + }, + "transaction_id": { + "type": "string" + }, + "sandbox": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "AttachAppleTransactionByIdRequest", + "required": [ + "order_no", + "transaction_id" + ] + }, + "AttachAppleTransactionRequest": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + }, + "signed_transaction_jws": { + "type": "string" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "duration_days": { + "type": "integer", + "format": "int64" + }, + "tier": { + "type": "string" + } + }, + "title": "AttachAppleTransactionRequest", + "required": [ + "order_no", + "signed_transaction_jws" + ] + }, + "AttachAppleTransactionResponse": { + "type": "object", + "properties": { + "expires_at": { + "type": "integer", + "format": "int64" + }, + "tier": { + "type": "string" + } + }, + "title": "AttachAppleTransactionResponse", + "required": [ + "expires_at", + "tier" + ] + }, + "AuthConfig": { + "type": "object", + "properties": { + "mobile": { + "$ref": "#/definitions/MobileAuthenticateConfig" + }, + "email": { + "$ref": "#/definitions/EmailAuthticateConfig" + }, + "device": { + "$ref": "#/definitions/DeviceAuthticateConfig" + }, + "register": { + "$ref": "#/definitions/PubilcRegisterConfig" + } + }, + "title": "AuthConfig", + "required": [ + "mobile", + "email", + "device", + "register" + ] + }, + "AuthMethodConfig": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "method": { + "type": "string" + }, + "config": { + "type": "object" + }, + "enabled": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "AuthMethodConfig", + "required": [ + "id", + "method", + "config", + "enabled" + ] + }, + "BalanceLog": { + "type": "object", + "properties": { + "type": { + "type": "integer", + "format": "uin16" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "balance": { + "type": "integer", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "BalanceLog", + "required": [ + "type", + "user_id", + "amount", + "balance", + "timestamp" + ] + }, + "CheckoutOrderRequest": { + "type": "object", + "properties": { + "orderNo": { + "type": "string" + }, + "returnUrl": { + "type": "string" + } + }, + "title": "CheckoutOrderRequest", + "required": [ + "orderNo" + ] + }, + "CheckoutOrderResponse": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "checkout_url": { + "type": "string" + }, + "stripe": { + "$ref": "#/definitions/StripePayment" + }, + "product_ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "CheckoutOrderResponse", + "required": [ + "type" + ] + }, + "CloseOrderRequest": { + "type": "object", + "properties": { + "orderNo": { + "type": "string" + } + }, + "title": "CloseOrderRequest", + "required": [ + "orderNo" + ] + }, + "CommissionLog": { + "type": "object", + "properties": { + "type": { + "type": "integer", + "format": "uin16" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "CommissionLog", + "required": [ + "type", + "user_id", + "amount", + "order_no", + "timestamp" + ] + }, + "Coupon": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + }, + "count": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "expire_time": { + "type": "integer", + "format": "int64" + }, + "user_limit": { + "type": "integer", + "format": "int64" + }, + "subscribe": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "used_count": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Coupon", + "required": [ + "id", + "name", + "code", + "count", + "type", + "discount", + "start_time", + "expire_time", + "user_limit", + "subscribe", + "used_count", + "enable", + "created_at", + "updated_at" + ] + }, + "CurrencyConfig": { + "type": "object", + "properties": { + "access_key": { + "type": "string" + }, + "currency_unit": { + "type": "string" + }, + "currency_symbol": { + "type": "string" + } + }, + "title": "CurrencyConfig", + "required": [ + "access_key", + "currency_unit", + "currency_symbol" + ] + }, + "DeviceAuthticateConfig": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "format": "boolean" + }, + "show_ads": { + "type": "boolean", + "format": "boolean" + }, + "enable_security": { + "type": "boolean", + "format": "boolean" + }, + "only_real_device": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "DeviceAuthticateConfig", + "required": [ + "enable", + "show_ads", + "enable_security", + "only_real_device" + ] + }, + "Document": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "title": { + "type": "string" + }, + "content": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "show": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Document", + "required": [ + "id", + "title", + "content", + "tags", + "show", + "created_at", + "updated_at" + ] + }, + "DownloadLink": { + "type": "object", + "properties": { + "ios": { + "type": "string" + }, + "android": { + "type": "string" + }, + "windows": { + "type": "string" + }, + "mac": { + "type": "string" + }, + "linux": { + "type": "string" + }, + "harmony": { + "type": "string" + } + }, + "title": "DownloadLink" + }, + "EPayNotifyRequest": { + "type": "object", + "properties": { + "pid": { + "type": "integer", + "format": "int64" + }, + "trade_no": { + "type": "string" + }, + "out_trade_no": { + "type": "string" + }, + "type": { + "type": "string" + }, + "name": { + "type": "string" + }, + "money": { + "type": "string" + }, + "trade_status": { + "type": "string" + }, + "param": { + "type": "string" + }, + "sign": { + "type": "string" + }, + "sign_type": { + "type": "string" + } + }, + "title": "EPayNotifyRequest", + "required": [ + "pid", + "trade_no", + "out_trade_no", + "type", + "name", + "money", + "trade_status", + "param", + "sign", + "sign_type" + ] + }, + "EmailAuthticateConfig": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "format": "boolean" + }, + "enable_verify": { + "type": "boolean", + "format": "boolean" + }, + "enable_domain_suffix": { + "type": "boolean", + "format": "boolean" + }, + "domain_suffix_list": { + "type": "string" + } + }, + "title": "EmailAuthticateConfig", + "required": [ + "enable", + "enable_verify", + "enable_domain_suffix", + "domain_suffix_list" + ] + }, + "FamilyDetail": { + "type": "object", + "properties": { + "summary": { + "$ref": "#/definitions/FamilySummary" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/FamilyMemberItem" + } + } + }, + "title": "FamilyDetail", + "required": [ + "summary", + "members" + ] + }, + "FamilyMemberItem": { + "type": "object", + "properties": { + "user_id": { + "type": "integer", + "format": "int64" + }, + "identifier": { + "type": "string" + }, + "role": { + "type": "integer", + "format": "uint8" + }, + "role_name": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "status_name": { + "type": "string" + }, + "join_source": { + "type": "string" + }, + "joined_at": { + "type": "integer", + "format": "int64" + }, + "left_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "FamilyMemberItem", + "required": [ + "user_id", + "identifier", + "role", + "role_name", + "status", + "status_name", + "join_source", + "joined_at" + ] + }, + "FamilySummary": { + "type": "object", + "properties": { + "family_id": { + "type": "integer", + "format": "int64" + }, + "owner_user_id": { + "type": "integer", + "format": "int64" + }, + "owner_identifier": { + "type": "string" + }, + "status": { + "type": "string" + }, + "active_member_count": { + "type": "integer", + "format": "int64" + }, + "max_members": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "FamilySummary", + "required": [ + "family_id", + "owner_user_id", + "owner_identifier", + "status", + "active_member_count", + "max_members", + "created_at", + "updated_at" + ] + }, + "Follow": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "ticket_id": { + "type": "integer", + "format": "int64" + }, + "from": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "content": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Follow", + "required": [ + "id", + "ticket_id", + "from", + "type", + "content", + "created_at" + ] + }, + "GetAppleStatusResponse": { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "format": "boolean" + }, + "expires_at": { + "type": "integer", + "format": "int64" + }, + "tier": { + "type": "string" + } + }, + "title": "GetAppleStatusResponse", + "required": [ + "active", + "expires_at", + "tier" + ] + }, + "GetAvailablePaymentMethodsResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/PaymentMethod" + } + } + }, + "title": "GetAvailablePaymentMethodsResponse", + "required": [ + "list" + ] + }, + "GetServerConfigRequest": { + "type": "object", + "properties": { + "protocol": { + "type": "string" + }, + "server_id": { + "type": "integer", + "format": "int64" + }, + "secret_key": { + "type": "string" + } + }, + "title": "GetServerConfigRequest" + }, + "GetServerConfigResponse": { + "type": "object", + "properties": { + "basic": { + "$ref": "#/definitions/ServerBasic" + }, + "protocol": { + "type": "string" + }, + "config": { + "type": "object" + } + }, + "title": "GetServerConfigResponse", + "required": [ + "basic", + "protocol", + "config" + ] + }, + "GetServerUserListRequest": { + "type": "object", + "properties": { + "protocol": { + "type": "string" + }, + "server_id": { + "type": "integer", + "format": "int64" + }, + "secret_key": { + "type": "string" + } + }, + "title": "GetServerUserListRequest" + }, + "GetServerUserListResponse": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ServerUser" + } + } + }, + "title": "GetServerUserListResponse", + "required": [ + "users" + ] + }, + "GetUserSubscribeTrafficLogsRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "end_time": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetUserSubscribeTrafficLogsRequest", + "required": [ + "page", + "size", + "user_id", + "subscribe_id", + "start_time", + "end_time" + ] + }, + "GetUserSubscribeTrafficLogsResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/TrafficLog" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetUserSubscribeTrafficLogsResponse", + "required": [ + "list", + "total" + ] + }, + "Hysteria2": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "hop_ports": { + "type": "string" + }, + "hop_interval": { + "type": "integer", + "format": "int32" + }, + "obfs_password": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Hysteria2", + "required": [ + "port", + "hop_ports", + "hop_interval", + "obfs_password", + "security_config" + ] + }, + "InviteConfig": { + "type": "object", + "properties": { + "forced_invite": { + "type": "boolean", + "format": "boolean" + }, + "referral_percentage": { + "type": "integer", + "format": "int64" + }, + "only_first_purchase": { + "type": "boolean", + "format": "boolean" + }, + "gift_days": { + "type": "integer", + "format": "int64" + } + }, + "title": "InviteConfig", + "required": [ + "forced_invite", + "referral_percentage", + "only_first_purchase", + "gift_days" + ] + }, + "MessageLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "platform": { + "type": "string" + }, + "to": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "content": { + "type": "object" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "created_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "MessageLog", + "required": [ + "id", + "type", + "platform", + "to", + "subject", + "content", + "status", + "created_at" + ] + }, + "MobileAuthenticateConfig": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "format": "boolean" + }, + "enable_whitelist": { + "type": "boolean", + "format": "boolean" + }, + "whitelist": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "MobileAuthenticateConfig", + "required": [ + "enable", + "enable_whitelist", + "whitelist" + ] + }, + "NodeConfig": { + "type": "object", + "properties": { + "node_secret": { + "type": "string" + }, + "node_pull_interval": { + "type": "integer", + "format": "int64" + }, + "node_push_interval": { + "type": "integer", + "format": "int64" + }, + "traffic_report_threshold": { + "type": "integer", + "format": "int64" + }, + "ip_strategy": { + "type": "string" + }, + "dns": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeDNS" + } + }, + "block": { + "type": "array", + "items": { + "type": "string" + } + }, + "outbound": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeOutbound" + } + } + }, + "title": "NodeConfig", + "required": [ + "node_secret", + "node_pull_interval", + "node_push_interval", + "traffic_report_threshold", + "ip_strategy", + "dns", + "block", + "outbound" + ] + }, + "NodeDNS": { + "type": "object", + "properties": { + "proto": { + "type": "string" + }, + "address": { + "type": "string" + }, + "domains": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "NodeDNS", + "required": [ + "proto", + "address", + "domains" + ] + }, + "NodeOutbound": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int64" + }, + "password": { + "type": "string" + }, + "rules": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "NodeOutbound", + "required": [ + "name", + "protocol", + "address", + "port", + "password", + "rules" + ] + }, + "NodeRelay": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "prefix": { + "type": "string" + } + }, + "title": "NodeRelay", + "required": [ + "host", + "port", + "prefix" + ] + }, + "OnlineUser": { + "type": "object", + "properties": { + "uid": { + "type": "integer", + "format": "int64" + }, + "ip": { + "type": "string" + } + }, + "title": "OnlineUser", + "required": [ + "uid", + "ip" + ] + }, + "OnlineUsersRequest": { + "type": "object", + "properties": { + "protocol": { + "type": "string" + }, + "server_id": { + "type": "integer", + "format": "int64" + }, + "secret_key": { + "type": "string" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/OnlineUser" + } + } + }, + "title": "OnlineUsersRequest", + "required": [ + "users" + ] + }, + "Order": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "price": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "coupon_discount": { + "type": "integer", + "format": "int64" + }, + "commission": { + "type": "integer", + "format": "int64" + }, + "payment": { + "$ref": "#/definitions/PaymentMethod" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "trade_no": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Order", + "required": [ + "id", + "user_id", + "order_no", + "type", + "quantity", + "price", + "amount", + "gift_amount", + "discount", + "coupon", + "coupon_discount", + "payment", + "fee_amount", + "trade_no", + "status", + "subscribe_id", + "created_at", + "updated_at" + ] + }, + "OrderDetail": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "price": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "coupon_discount": { + "type": "integer", + "format": "int64" + }, + "commission": { + "type": "integer", + "format": "int64" + }, + "payment": { + "$ref": "#/definitions/PaymentMethod" + }, + "method": { + "type": "string" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "trade_no": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "subscribe": { + "$ref": "#/definitions/Subscribe" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "OrderDetail", + "required": [ + "id", + "user_id", + "order_no", + "type", + "quantity", + "price", + "amount", + "gift_amount", + "discount", + "coupon", + "coupon_discount", + "payment", + "method", + "fee_amount", + "trade_no", + "status", + "subscribe_id", + "subscribe", + "created_at", + "updated_at" + ] + }, + "PaymentConfig": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "config": { + "type": "object" + }, + "fee_mode": { + "type": "integer", + "format": "uint32" + }, + "fee_percent": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "PaymentConfig", + "required": [ + "id", + "name", + "platform", + "description", + "config", + "fee_mode", + "enable" + ] + }, + "PaymentMethod": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "fee_mode": { + "type": "integer", + "format": "uint32" + }, + "fee_percent": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + } + }, + "title": "PaymentMethod", + "required": [ + "id", + "name", + "platform", + "description", + "icon", + "fee_mode", + "fee_percent", + "fee_amount" + ] + }, + "PaymentMethodDetail": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "config": { + "type": "object" + }, + "fee_mode": { + "type": "integer", + "format": "uint32" + }, + "fee_percent": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "notify_url": { + "type": "string" + } + }, + "title": "PaymentMethodDetail", + "required": [ + "id", + "name", + "platform", + "description", + "icon", + "domain", + "config", + "fee_mode", + "fee_percent", + "fee_amount", + "enable", + "notify_url" + ] + }, + "PlatformInfo": { + "type": "object", + "properties": { + "platform": { + "type": "string" + }, + "platform_url": { + "type": "string" + }, + "platform_field_description": { + "type": "object" + } + }, + "title": "PlatformInfo", + "required": [ + "platform", + "platform_url", + "platform_field_description" + ] + }, + "PlatformResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/PlatformInfo" + } + } + }, + "title": "PlatformResponse", + "required": [ + "list" + ] + }, + "PreOrderResponse": { + "type": "object", + "properties": { + "price": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "coupon_discount": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + } + }, + "title": "PreOrderResponse", + "required": [ + "price", + "amount", + "discount", + "gift_amount", + "coupon", + "coupon_discount", + "fee_amount" + ] + }, + "PreRenewalOrderResponse": { + "type": "object", + "properties": { + "orderNo": { + "type": "string" + } + }, + "title": "PreRenewalOrderResponse", + "required": [ + "orderNo" + ] + }, + "PrivacyPolicyConfig": { + "type": "object", + "properties": { + "privacy_policy": { + "type": "string" + } + }, + "title": "PrivacyPolicyConfig", + "required": [ + "privacy_policy" + ] + }, + "Protocol": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "uin16" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "security": { + "type": "string" + }, + "sni": { + "type": "string" + }, + "allow_insecure": { + "type": "boolean", + "format": "boolean" + }, + "fingerprint": { + "type": "string" + }, + "reality_server_addr": { + "type": "string" + }, + "reality_server_port": { + "type": "integer", + "format": "int32" + }, + "reality_private_key": { + "type": "string" + }, + "reality_public_key": { + "type": "string" + }, + "reality_short_id": { + "type": "string" + }, + "transport": { + "type": "string" + }, + "host": { + "type": "string" + }, + "path": { + "type": "string" + }, + "service_name": { + "type": "string" + }, + "cipher": { + "type": "string" + }, + "server_key": { + "type": "string" + }, + "flow": { + "type": "string" + }, + "hop_ports": { + "type": "string" + }, + "hop_interval": { + "type": "integer", + "format": "int32" + }, + "obfs_password": { + "type": "string" + }, + "disable_sni": { + "type": "boolean", + "format": "boolean" + }, + "reduce_rtt": { + "type": "boolean", + "format": "boolean" + }, + "udp_relay_mode": { + "type": "string" + }, + "congestion_controller": { + "type": "string" + }, + "multiplex": { + "type": "string", + "description": " mux, eg: off/low/medium/high" + }, + "padding_scheme": { + "type": "string", + "description": " padding scheme" + }, + "up_mbps": { + "type": "integer", + "format": "int32", + "description": " upload speed limit" + }, + "down_mbps": { + "type": "integer", + "format": "int32", + "description": " download speed limit" + }, + "obfs": { + "type": "string", + "description": " obfs, 'none', 'http', 'tls'" + }, + "obfs_host": { + "type": "string", + "description": " obfs host" + }, + "obfs_path": { + "type": "string", + "description": " obfs path" + }, + "xhttp_mode": { + "type": "string", + "description": " xhttp mode" + }, + "xhttp_extra": { + "type": "string", + "description": " xhttp extra path" + }, + "encryption": { + "type": "string", + "description": " encryption,'none', 'mlkem768x25519plus'" + }, + "encryption_mode": { + "type": "string", + "description": " encryption mode,'native', 'xorpub', 'random'" + }, + "encryption_rtt": { + "type": "string", + "description": " encryption rtt,'0rtt', '1rtt'" + }, + "encryption_ticket": { + "type": "string", + "description": " encryption ticket" + }, + "encryption_server_padding": { + "type": "string", + "description": " encryption server padding" + }, + "encryption_private_key": { + "type": "string", + "description": " encryption private key" + }, + "encryption_client_padding": { + "type": "string", + "description": " encryption client padding" + }, + "encryption_password": { + "type": "string", + "description": " encryption password" + }, + "ratio": { + "type": "number", + "format": "double", + "description": " Traffic ratio, default is 1" + }, + "cert_mode": { + "type": "string", + "description": " Certificate mode, `none`|`http`|`dns`|`self`" + }, + "cert_dns_provider": { + "type": "string", + "description": " DNS provider for certificate" + }, + "cert_dns_env": { + "type": "string", + "description": " Environment for DNS provider" + } + }, + "title": "Protocol", + "required": [ + "type", + "port", + "enable" + ] + }, + "PubilcRegisterConfig": { + "type": "object", + "properties": { + "stop_register": { + "type": "boolean", + "format": "boolean" + }, + "enable_ip_register_limit": { + "type": "boolean", + "format": "boolean" + }, + "ip_register_limit": { + "type": "integer", + "format": "int64" + }, + "ip_register_limit_duration": { + "type": "integer", + "format": "int64" + } + }, + "title": "PubilcRegisterConfig", + "required": [ + "stop_register", + "enable_ip_register_limit", + "ip_register_limit", + "ip_register_limit_duration" + ] + }, + "PubilcVerifyCodeConfig": { + "type": "object", + "properties": { + "verify_code_interval": { + "type": "integer", + "format": "int64" + } + }, + "title": "PubilcVerifyCodeConfig", + "required": [ + "verify_code_interval" + ] + }, + "PurchaseOrderRequest": { + "type": "object", + "properties": { + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + } + }, + "title": "PurchaseOrderRequest", + "required": [ + "subscribe_id", + "quantity" + ] + }, + "PurchaseOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "PurchaseOrderResponse", + "required": [ + "order_no" + ] + }, + "QueryAnnouncementRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32", + "default": "15" + }, + "pinned": { + "type": "boolean", + "format": "boolean" + }, + "popup": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "QueryAnnouncementRequest", + "required": [ + "page", + "size", + "pinned", + "popup" + ] + }, + "QueryAnnouncementResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "announcements": { + "type": "array", + "items": { + "$ref": "#/definitions/Announcement" + } + } + }, + "title": "QueryAnnouncementResponse", + "required": [ + "total", + "announcements" + ] + }, + "QueryDocumentDetailRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryDocumentDetailRequest", + "required": [ + "id" + ] + }, + "QueryDocumentListResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Document" + } + } + }, + "title": "QueryDocumentListResponse", + "required": [ + "total", + "list" + ] + }, + "QueryOrderDetailRequest": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "QueryOrderDetailRequest", + "required": [ + "order_no" + ] + }, + "QueryOrderListRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "status": { + "type": "integer", + "format": "int32" + }, + "search": { + "type": "string" + } + }, + "title": "QueryOrderListRequest", + "required": [ + "page", + "size" + ] + }, + "QueryOrderListResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/OrderDetail" + } + } + }, + "title": "QueryOrderListResponse", + "required": [ + "total", + "list" + ] + }, + "QueryServerConfigRequest": { + "type": "object", + "properties": { + "secret_key": { + "type": "string" + }, + "protocols": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "QueryServerConfigRequest", + "required": [ + "secret_key" + ] + }, + "QueryServerConfigResponse": { + "type": "object", + "properties": { + "traffic_report_threshold": { + "type": "integer", + "format": "int64" + }, + "ip_strategy": { + "type": "string" + }, + "dns": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeDNS" + } + }, + "block": { + "type": "array", + "items": { + "type": "string" + } + }, + "outbound": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeOutbound" + } + }, + "protocols": { + "type": "array", + "items": { + "$ref": "#/definitions/Protocol" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryServerConfigResponse", + "required": [ + "traffic_report_threshold", + "ip_strategy", + "dns", + "block", + "outbound", + "protocols", + "total" + ] + }, + "QuerySubscribeGroupListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/SubscribeGroup" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QuerySubscribeGroupListResponse", + "required": [ + "list", + "total" + ] + }, + "QuerySubscribeListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Subscribe" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QuerySubscribeListResponse", + "required": [ + "list", + "total" + ] + }, + "QueryUserAffiliateCountResponse": { + "type": "object", + "properties": { + "registers": { + "type": "integer", + "format": "int64" + }, + "total_commission": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryUserAffiliateCountResponse", + "required": [ + "registers", + "total_commission" + ] + }, + "QueryUserAffiliateListRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "title": "QueryUserAffiliateListRequest", + "required": [ + "page", + "size" + ] + }, + "QueryUserAffiliateListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAffiliate" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryUserAffiliateListResponse", + "required": [ + "list", + "total" + ] + }, + "RechargeOrderRequest": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + } + }, + "title": "RechargeOrderRequest", + "required": [ + "amount", + "payment" + ] + }, + "RechargeOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "RechargeOrderResponse", + "required": [ + "order_no" + ] + }, + "RedemptionCode": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "code": { + "type": "string" + }, + "total_count": { + "type": "integer", + "format": "int64" + }, + "used_count": { + "type": "integer", + "format": "int64" + }, + "subscribe_plan": { + "type": "integer", + "format": "int64" + }, + "unit_time": { + "type": "string" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "status": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "RedemptionCode", + "required": [ + "id", + "code", + "total_count", + "used_count", + "subscribe_plan", + "unit_time", + "quantity", + "status", + "created_at", + "updated_at" + ] + }, + "RedemptionRecord": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "redemption_code_id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "unit_time": { + "type": "string" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "redeemed_at": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "RedemptionRecord", + "required": [ + "id", + "redemption_code_id", + "user_id", + "subscribe_id", + "unit_time", + "quantity", + "redeemed_at", + "created_at" + ] + }, + "RegisterConfig": { + "type": "object", + "properties": { + "stop_register": { + "type": "boolean", + "format": "boolean" + }, + "enable_trial": { + "type": "boolean", + "format": "boolean" + }, + "trial_subscribe": { + "type": "integer", + "format": "int64" + }, + "trial_time": { + "type": "integer", + "format": "int64" + }, + "trial_time_unit": { + "type": "string" + }, + "enable_ip_register_limit": { + "type": "boolean", + "format": "boolean" + }, + "ip_register_limit": { + "type": "integer", + "format": "int64" + }, + "ip_register_limit_duration": { + "type": "integer", + "format": "int64" + }, + "device_limit": { + "type": "integer", + "format": "int64" + } + }, + "title": "RegisterConfig", + "required": [ + "stop_register", + "enable_trial", + "trial_subscribe", + "trial_time", + "trial_time_unit", + "enable_ip_register_limit", + "ip_register_limit", + "ip_register_limit_duration", + "device_limit" + ] + }, + "RenewalOrderRequest": { + "type": "object", + "properties": { + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + } + }, + "title": "RenewalOrderRequest", + "required": [ + "user_subscribe_id", + "quantity", + "payment" + ] + }, + "RenewalOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "RenewalOrderResponse", + "required": [ + "order_no" + ] + }, + "ResetSubscribeTrafficLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "integer", + "format": "uin16" + }, + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "ResetSubscribeTrafficLog", + "required": [ + "id", + "type", + "user_subscribe_id", + "timestamp" + ] + }, + "ResetTrafficOrderRequest": { + "type": "object", + "properties": { + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + } + }, + "title": "ResetTrafficOrderRequest", + "required": [ + "user_subscribe_id", + "payment" + ] + }, + "ResetTrafficOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "ResetTrafficOrderResponse", + "required": [ + "order_no" + ] + }, + "ResetUserSubscribeTokenRequest": { + "type": "object", + "properties": { + "user_subscribe_id": { + "type": "integer", + "format": "int64" + } + }, + "title": "ResetUserSubscribeTokenRequest", + "required": [ + "user_subscribe_id" + ] + }, + "RestoreAppleTransactionsRequest": { + "type": "object", + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "RestoreAppleTransactionsRequest", + "required": [ + "transactions" + ] + }, + "SecurityConfig": { + "type": "object", + "properties": { + "sni": { + "type": "string" + }, + "allow_insecure": { + "type": "boolean", + "format": "boolean" + }, + "fingerprint": { + "type": "string" + }, + "reality_server_addr": { + "type": "string" + }, + "reality_server_port": { + "type": "integer", + "format": "int32" + }, + "reality_private_key": { + "type": "string" + }, + "reality_public_key": { + "type": "string" + }, + "reality_short_id": { + "type": "string" + } + }, + "title": "SecurityConfig", + "required": [ + "sni", + "allow_insecure", + "fingerprint", + "reality_server_addr", + "reality_server_port", + "reality_private_key", + "reality_public_key", + "reality_short_id" + ] + }, + "ServerBasic": { + "type": "object", + "properties": { + "push_interval": { + "type": "integer", + "format": "int64" + }, + "pull_interval": { + "type": "integer", + "format": "int64" + } + }, + "title": "ServerBasic", + "required": [ + "push_interval", + "pull_interval" + ] + }, + "ServerCommon": { + "type": "object", + "properties": { + "protocol": { + "type": "string" + }, + "server_id": { + "type": "integer", + "format": "int64" + }, + "secret_key": { + "type": "string" + } + }, + "title": "ServerCommon", + "required": [ + "protocol", + "server_id", + "secret_key" + ] + }, + "ServerGroup": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "ServerGroup", + "required": [ + "id", + "name", + "description", + "created_at", + "updated_at" + ] + }, + "ServerPushStatusRequest": { + "type": "object", + "properties": { + "protocol": { + "type": "string" + }, + "server_id": { + "type": "integer", + "format": "int64" + }, + "secret_key": { + "type": "string" + }, + "cpu": { + "type": "number", + "format": "double" + }, + "mem": { + "type": "number", + "format": "double" + }, + "disk": { + "type": "number", + "format": "double" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "ServerPushStatusRequest", + "required": [ + "cpu", + "mem", + "disk", + "updated_at" + ] + }, + "ServerPushUserTrafficRequest": { + "type": "object", + "properties": { + "protocol": { + "type": "string" + }, + "server_id": { + "type": "integer", + "format": "int64" + }, + "secret_key": { + "type": "string" + }, + "traffic": { + "type": "array", + "items": { + "$ref": "#/definitions/UserTraffic" + } + } + }, + "title": "ServerPushUserTrafficRequest", + "required": [ + "traffic" + ] + }, + "ServerRuleGroup": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "rules": { + "type": "string" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "default": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "ServerRuleGroup", + "required": [ + "id", + "icon", + "name", + "type", + "tags", + "rules", + "enable", + "default", + "created_at", + "updated_at" + ] + }, + "ServerUser": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "uuid": { + "type": "string" + }, + "speed_limit": { + "type": "integer", + "format": "int64" + }, + "device_limit": { + "type": "integer", + "format": "int64" + } + }, + "title": "ServerUser", + "required": [ + "id", + "uuid", + "speed_limit", + "device_limit" + ] + }, + "Shadowsocks": { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "server_key": { + "type": "string" + } + }, + "title": "Shadowsocks", + "required": [ + "method", + "port", + "server_key" + ] + }, + "ShadowsocksProtocol": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "method": { + "type": "string" + } + }, + "title": "ShadowsocksProtocol", + "required": [ + "port", + "method" + ] + }, + "SignatureConfig": { + "type": "object", + "properties": { + "enable_signature": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "SignatureConfig", + "required": [ + "enable_signature" + ] + }, + "SiteConfig": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "site_name": { + "type": "string" + }, + "site_desc": { + "type": "string" + }, + "site_logo": { + "type": "string" + }, + "keywords": { + "type": "string" + }, + "custom_html": { + "type": "string" + }, + "custom_data": { + "type": "string" + } + }, + "title": "SiteConfig", + "required": [ + "host", + "site_name", + "site_desc", + "site_logo", + "keywords", + "custom_html", + "custom_data" + ] + }, + "SiteCustomDataContacts": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "telephone": { + "type": "string" + }, + "address": { + "type": "string" + } + }, + "title": "SiteCustomDataContacts", + "required": [ + "email", + "telephone", + "address" + ] + }, + "SortItem": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "sort": { + "type": "integer", + "format": "int64" + } + }, + "title": "SortItem", + "required": [ + "id", + "sort" + ] + }, + "StripePayment": { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "client_secret": { + "type": "string" + }, + "publishable_key": { + "type": "string" + } + }, + "title": "StripePayment", + "required": [ + "method", + "client_secret", + "publishable_key" + ] + }, + "Subscribe": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "language": { + "type": "string" + }, + "description": { + "type": "string" + }, + "unit_price": { + "type": "integer", + "format": "int64" + }, + "unit_time": { + "type": "string" + }, + "discount": { + "type": "array", + "items": { + "$ref": "#/definitions/SubscribeDiscount" + } + }, + "node_count": { + "type": "integer", + "format": "int64" + }, + "replacement": { + "type": "integer", + "format": "int64" + }, + "inventory": { + "type": "integer", + "format": "int64" + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "speed_limit": { + "type": "integer", + "format": "int64" + }, + "device_limit": { + "type": "integer", + "format": "int64" + }, + "quota": { + "type": "integer", + "format": "int64" + }, + "nodes": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "node_tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "show": { + "type": "boolean", + "format": "boolean" + }, + "sell": { + "type": "boolean", + "format": "boolean" + }, + "sort": { + "type": "integer", + "format": "int64" + }, + "deduction_ratio": { + "type": "integer", + "format": "int64" + }, + "allow_deduction": { + "type": "boolean", + "format": "boolean" + }, + "reset_cycle": { + "type": "integer", + "format": "int64" + }, + "renewal_reset": { + "type": "boolean", + "format": "boolean" + }, + "show_original_price": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Subscribe", + "required": [ + "id", + "name", + "language", + "description", + "unit_price", + "unit_time", + "discount", + "node_count", + "replacement", + "inventory", + "traffic", + "speed_limit", + "device_limit", + "quota", + "nodes", + "node_tags", + "show", + "sell", + "sort", + "deduction_ratio", + "allow_deduction", + "reset_cycle", + "renewal_reset", + "show_original_price", + "created_at", + "updated_at" + ] + }, + "SubscribeConfig": { + "type": "object", + "properties": { + "single_model": { + "type": "boolean", + "format": "boolean" + }, + "subscribe_path": { + "type": "string" + }, + "subscribe_domain": { + "type": "string" + }, + "pan_domain": { + "type": "boolean", + "format": "boolean" + }, + "user_agent_limit": { + "type": "boolean", + "format": "boolean" + }, + "user_agent_list": { + "type": "string" + } + }, + "title": "SubscribeConfig", + "required": [ + "single_model", + "subscribe_path", + "subscribe_domain", + "pan_domain", + "user_agent_limit", + "user_agent_list" + ] + }, + "SubscribeDiscount": { + "type": "object", + "properties": { + "quantity": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "number", + "format": "double" + } + }, + "title": "SubscribeDiscount", + "required": [ + "quantity", + "discount" + ] + }, + "SubscribeGroup": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "SubscribeGroup", + "required": [ + "id", + "name", + "description", + "created_at", + "updated_at" + ] + }, + "SubscribeType": { + "type": "object", + "properties": { + "subscribe_types": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "SubscribeType", + "required": [ + "subscribe_types" + ] + }, + "TelegramConfig": { + "type": "object", + "properties": { + "telegram_bot_token": { + "type": "string" + }, + "telegram_group_url": { + "type": "string" + }, + "telegram_notify": { + "type": "boolean", + "format": "boolean" + }, + "telegram_web_hook_domain": { + "type": "string" + } + }, + "title": "TelegramConfig", + "required": [ + "telegram_bot_token", + "telegram_group_url", + "telegram_notify", + "telegram_web_hook_domain" + ] + }, + "Ticket": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "follow": { + "type": "array", + "items": { + "$ref": "#/definitions/Follow" + } + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Ticket", + "required": [ + "id", + "title", + "description", + "user_id", + "status", + "created_at", + "updated_at" + ] + }, + "TimePeriod": { + "type": "object", + "properties": { + "start_time": { + "type": "string" + }, + "end_time": { + "type": "string" + }, + "multiplier": { + "type": "number", + "format": "float" + } + }, + "title": "TimePeriod", + "required": [ + "start_time", + "end_time", + "multiplier" + ] + }, + "TosConfig": { + "type": "object", + "properties": { + "tos_content": { + "type": "string" + } + }, + "title": "TosConfig", + "required": [ + "tos_content" + ] + }, + "TrafficLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "server_id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "TrafficLog", + "required": [ + "id", + "server_id", + "user_id", + "subscribe_id", + "download", + "upload", + "timestamp" + ] + }, + "TransportConfig": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "host": { + "type": "string" + }, + "service_name": { + "type": "string" + } + }, + "title": "TransportConfig", + "required": [ + "path", + "host", + "service_name" + ] + }, + "Trojan": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "transport": { + "type": "string" + }, + "transport_config": { + "$ref": "#/definitions/TransportConfig" + }, + "security": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Trojan", + "required": [ + "port", + "transport", + "transport_config", + "security", + "security_config" + ] + }, + "TrojanProtocol": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "enable_tls": { + "type": "boolean", + "format": "boolean" + }, + "tls_config": { + "type": "string" + }, + "network": { + "type": "string" + }, + "transport": { + "type": "string" + } + }, + "title": "TrojanProtocol", + "required": [ + "host", + "port", + "enable_tls", + "tls_config", + "network", + "transport" + ] + }, + "Tuic": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "disable_sni": { + "type": "boolean", + "format": "boolean" + }, + "reduce_rtt": { + "type": "boolean", + "format": "boolean" + }, + "udp_relay_mode": { + "type": "string" + }, + "congestion_controller": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Tuic", + "required": [ + "port", + "disable_sni", + "reduce_rtt", + "udp_relay_mode", + "congestion_controller", + "security_config" + ] + }, + "User": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "avatar": { + "type": "string" + }, + "balance": { + "type": "integer", + "format": "int64" + }, + "commission": { + "type": "integer", + "format": "int64" + }, + "referral_percentage": { + "type": "integer", + "format": "uint8" + }, + "only_first_purchase": { + "type": "boolean", + "format": "boolean" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "telegram": { + "type": "integer", + "format": "int64" + }, + "refer_code": { + "type": "string" + }, + "referer_id": { + "type": "integer", + "format": "int64" + }, + "share_link": { + "type": "string" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "is_admin": { + "type": "boolean", + "format": "boolean" + }, + "enable_balance_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_login_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_subscribe_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_trade_notify": { + "type": "boolean", + "format": "boolean" + }, + "auth_methods": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAuthMethod" + } + }, + "user_devices": { + "type": "array", + "items": { + "$ref": "#/definitions/UserDevice" + } + }, + "rules": { + "type": "array", + "items": { + "type": "string" + } + }, + "last_login_time": { + "type": "integer", + "format": "int64" + }, + "member_status": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + }, + "deleted_at": { + "type": "integer", + "format": "int64" + }, + "is_del": { + "type": "boolean", + "format": "boolean" + }, + "remark": { + "type": "string" + }, + "purchased_package": { + "type": "string" + }, + "family_joined": { + "type": "boolean", + "format": "boolean" + }, + "family_id": { + "type": "integer", + "format": "int64" + }, + "family_role": { + "type": "integer", + "format": "uint8" + }, + "family_role_name": { + "type": "string" + }, + "family_owner_user_id": { + "type": "integer", + "format": "int64" + }, + "family_status": { + "type": "string" + }, + "family_member_count": { + "type": "integer", + "format": "int64" + }, + "family_max_members": { + "type": "integer", + "format": "int64" + } + }, + "title": "User", + "required": [ + "id", + "avatar", + "balance", + "commission", + "referral_percentage", + "only_first_purchase", + "gift_amount", + "telegram", + "refer_code", + "referer_id", + "enable", + "enable_balance_notify", + "enable_login_notify", + "enable_subscribe_notify", + "enable_trade_notify", + "auth_methods", + "user_devices", + "rules", + "created_at", + "updated_at" + ] + }, + "UserAffiliate": { + "type": "object", + "properties": { + "avatar": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "registered_at": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "UserAffiliate", + "required": [ + "avatar", + "identifier", + "registered_at", + "enable" + ] + }, + "UserAuthMethod": { + "type": "object", + "properties": { + "auth_type": { + "type": "string" + }, + "auth_identifier": { + "type": "string" + }, + "verified": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "UserAuthMethod", + "required": [ + "auth_type", + "auth_identifier", + "verified" + ] + }, + "UserDevice": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "ip": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "user_agent": { + "type": "string" + }, + "online": { + "type": "boolean", + "format": "boolean" + }, + "enabled": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserDevice", + "required": [ + "id", + "ip", + "identifier", + "user_agent", + "online", + "enabled", + "created_at", + "updated_at" + ] + }, + "UserLoginLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "login_ip": { + "type": "string" + }, + "user_agent": { + "type": "string" + }, + "success": { + "type": "boolean", + "format": "boolean" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserLoginLog", + "required": [ + "id", + "user_id", + "login_ip", + "user_agent", + "success", + "timestamp" + ] + }, + "UserSubscribe": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "order_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "subscribe": { + "$ref": "#/definitions/Subscribe" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "expire_time": { + "type": "integer", + "format": "int64" + }, + "finished_at": { + "type": "integer", + "format": "int64" + }, + "reset_time": { + "type": "integer", + "format": "int64" + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "token": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "entitlement_source": { + "type": "string" + }, + "entitlement_owner_user_id": { + "type": "integer", + "format": "int64" + }, + "read_only": { + "type": "boolean", + "format": "boolean" + }, + "is_gift": { + "type": "boolean", + "format": "boolean" + }, + "short": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserSubscribe", + "required": [ + "id", + "user_id", + "order_id", + "subscribe_id", + "subscribe", + "start_time", + "expire_time", + "finished_at", + "reset_time", + "traffic", + "download", + "upload", + "token", + "status", + "entitlement_source", + "entitlement_owner_user_id", + "read_only", + "is_gift", + "short", + "created_at", + "updated_at" + ] + }, + "UserSubscribeLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "token": { + "type": "string" + }, + "ip": { + "type": "string" + }, + "user_agent": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserSubscribeLog", + "required": [ + "id", + "user_id", + "user_subscribe_id", + "token", + "ip", + "user_agent", + "timestamp" + ] + }, + "UserTraffic": { + "type": "object", + "properties": { + "uid": { + "type": "integer", + "format": "int64" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserTraffic", + "required": [ + "uid", + "upload", + "download" + ] + }, + "VerifyCodeConfig": { + "type": "object", + "properties": { + "verify_code_expire_time": { + "type": "integer", + "format": "int64" + }, + "verify_code_limit": { + "type": "integer", + "format": "int64" + }, + "verify_code_interval": { + "type": "integer", + "format": "int64" + } + }, + "title": "VerifyCodeConfig", + "required": [ + "verify_code_expire_time", + "verify_code_limit", + "verify_code_interval" + ] + }, + "VerifyConfig": { + "type": "object", + "properties": { + "turnstile_site_key": { + "type": "string" + }, + "turnstile_secret": { + "type": "string" + }, + "enable_login_verify": { + "type": "boolean", + "format": "boolean" + }, + "enable_register_verify": { + "type": "boolean", + "format": "boolean" + }, + "enable_reset_password_verify": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "VerifyConfig", + "required": [ + "turnstile_site_key", + "turnstile_secret", + "enable_login_verify", + "enable_register_verify", + "enable_reset_password_verify" + ] + }, + "Vless": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "flow": { + "type": "string" + }, + "transport": { + "type": "string" + }, + "transport_config": { + "$ref": "#/definitions/TransportConfig" + }, + "security": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Vless", + "required": [ + "port", + "flow", + "transport", + "transport_config", + "security", + "security_config" + ] + }, + "VlessProtocol": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "network": { + "type": "string" + }, + "transport": { + "type": "string" + }, + "security": { + "type": "string" + }, + "security_config": { + "type": "string" + }, + "xtls": { + "type": "string" + } + }, + "title": "VlessProtocol", + "required": [ + "host", + "port", + "network", + "transport", + "security", + "security_config", + "xtls" + ] + }, + "Vmess": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "transport": { + "type": "string" + }, + "transport_config": { + "$ref": "#/definitions/TransportConfig" + }, + "security": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Vmess", + "required": [ + "port", + "transport", + "transport_config", + "security", + "security_config" + ] + }, + "VmessProtocol": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "enable_tls": { + "type": "boolean", + "format": "boolean" + }, + "tls_config": { + "type": "string" + }, + "network": { + "type": "string" + }, + "transport": { + "type": "string" + } + }, + "title": "VmessProtocol", + "required": [ + "host", + "port", + "enable_tls", + "tls_config", + "network", + "transport" + ] + } + }, + "securityDefinitions": { + "apiKey": { + "type": "apiKey", + "description": "Enter JWT Bearer token **_only_**", + "name": "Authorization", + "in": "header" + } + } +} diff --git a/user.json b/user.json new file mode 100644 index 0000000..0c076cf --- /dev/null +++ b/user.json @@ -0,0 +1,7186 @@ +{ + "swagger": "2.0", + "info": { + "title": "User API", + "description": "API for ppanel", + "version": "0.0.1" + }, + "schemes": [ + "http", + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/v1/public/announcement/list": { + "get": { + "summary": "Query announcement", + "operationId": "QueryAnnouncement", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryAnnouncementResponse" + } + } + }, + "parameters": [ + { + "name": "page", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "size", + "in": "query", + "required": true, + "type": "integer", + "format": "int32", + "default": "15" + }, + { + "name": "pinned", + "in": "query", + "required": true, + "type": "boolean", + "format": "boolean" + }, + { + "name": "popup", + "in": "query", + "required": true, + "type": "boolean", + "format": "boolean" + } + ], + "tags": [ + "public/announcement" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/document/detail": { + "get": { + "summary": "Get document detail", + "operationId": "QueryDocumentDetail", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/Document" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "tags": [ + "public/document" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/document/list": { + "get": { + "summary": "Get document list", + "operationId": "QueryDocumentList", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryDocumentListResponse" + } + } + }, + "tags": [ + "public/document" + ] + } + }, + "/v1/public/order/close": { + "post": { + "summary": "Close order", + "operationId": "CloseOrder", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CloseOrderRequest" + } + } + ], + "tags": [ + "public/order" + ] + } + }, + "/v1/public/order/detail": { + "get": { + "summary": "Get order", + "operationId": "QueryOrderDetail", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/OrderDetail" + } + } + }, + "parameters": [ + { + "name": "order_no", + "in": "query", + "required": true, + "type": "string" + } + ], + "tags": [ + "public/order" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/order/list": { + "get": { + "summary": "Get order list", + "operationId": "QueryOrderList", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryOrderListResponse" + } + } + }, + "parameters": [ + { + "name": "page", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "size", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "status", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "search", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "public/order" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/order/pre": { + "post": { + "summary": "Pre create order", + "operationId": "PreCreateOrder", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PreOrderResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "description": "public order", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PurchaseOrderRequest" + } + } + ], + "tags": [ + "public/order" + ] + } + }, + "/v1/public/order/purchase": { + "post": { + "summary": "purchase Subscription", + "operationId": "Purchase", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PurchaseOrderResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "description": "public order", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PurchaseOrderRequest" + } + } + ], + "tags": [ + "public/order" + ] + } + }, + "/v1/public/order/recharge": { + "post": { + "summary": "Recharge", + "operationId": "Recharge", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/RechargeOrderResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RechargeOrderRequest" + } + } + ], + "tags": [ + "public/order" + ] + } + }, + "/v1/public/order/renewal": { + "post": { + "summary": "Renewal Subscription", + "operationId": "Renewal", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/RenewalOrderResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RenewalOrderRequest" + } + } + ], + "tags": [ + "public/order" + ] + } + }, + "/v1/public/order/reset": { + "post": { + "summary": "Reset traffic", + "operationId": "ResetTraffic", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/ResetTrafficOrderResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ResetTrafficOrderRequest" + } + } + ], + "tags": [ + "public/order" + ] + } + }, + "/v1/public/payment/methods": { + "get": { + "summary": "Get available payment methods", + "operationId": "GetAvailablePaymentMethods", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetAvailablePaymentMethodsResponse" + } + } + }, + "tags": [ + "public/payment" + ] + } + }, + "/v1/public/portal/order/checkout": { + "post": { + "summary": "Purchase Checkout", + "operationId": "PurchaseCheckout", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/CheckoutOrderResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CheckoutOrderRequest" + } + } + ], + "tags": [ + "public/portal" + ] + } + }, + "/v1/public/portal/order/status": { + "get": { + "summary": "Query Purchase Order", + "operationId": "QueryPurchaseOrder", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryPurchaseOrderResponse" + } + } + }, + "parameters": [ + { + "name": "auth_type", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "identifier", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "order_no", + "in": "query", + "required": true, + "type": "string" + } + ], + "tags": [ + "public/portal" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/portal/payment-method": { + "get": { + "summary": "Get available payment methods", + "operationId": "GetAvailablePaymentMethods", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetAvailablePaymentMethodsResponse" + } + } + }, + "tags": [ + "public/portal" + ] + } + }, + "/v1/public/portal/pre": { + "post": { + "summary": "Pre Purchase Order", + "operationId": "PrePurchaseOrder", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PrePurchaseOrderResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PrePurchaseOrderRequest" + } + } + ], + "tags": [ + "public/portal" + ] + } + }, + "/v1/public/portal/purchase": { + "post": { + "summary": "Purchase subscription", + "operationId": "Purchase", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PortalPurchaseResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PortalPurchaseRequest" + } + } + ], + "tags": [ + "public/portal" + ] + } + }, + "/v1/public/portal/subscribe": { + "get": { + "summary": "Get Subscription", + "operationId": "GetSubscription", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetSubscriptionResponse" + } + } + }, + "parameters": [ + { + "name": "language", + "in": "query", + "required": true, + "type": "string" + } + ], + "tags": [ + "public/portal" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/subscribe/list": { + "get": { + "summary": "Get subscribe list", + "operationId": "QuerySubscribeList", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QuerySubscribeListResponse" + } + } + }, + "parameters": [ + { + "name": "language", + "in": "query", + "required": true, + "type": "string" + } + ], + "tags": [ + "public/subscribe" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/subscribe/node/list": { + "get": { + "summary": "Get user subscribe node info", + "operationId": "QueryUserSubscribeNodeList", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryUserSubscribeNodeListResponse" + } + } + }, + "tags": [ + "public/subscribe" + ] + } + }, + "/v1/public/ticket/": { + "post": { + "summary": "Create ticket", + "operationId": "CreateUserTicket", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateUserTicketRequest" + } + } + ], + "tags": [ + "public/ticket" + ] + }, + "put": { + "summary": "Update ticket status", + "operationId": "UpdateUserTicketStatus", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateUserTicketStatusRequest" + } + } + ], + "tags": [ + "public/ticket" + ] + } + }, + "/v1/public/ticket/detail": { + "get": { + "summary": "Get ticket detail", + "operationId": "GetUserTicketDetails", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/Ticket" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "tags": [ + "public/ticket" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/ticket/follow": { + "post": { + "summary": "Create ticket follow", + "operationId": "CreateUserTicketFollow", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateUserTicketFollowRequest" + } + } + ], + "tags": [ + "public/ticket" + ] + } + }, + "/v1/public/ticket/list": { + "get": { + "summary": "Get ticket list", + "operationId": "GetUserTicketList", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetUserTicketListResponse" + } + } + }, + "parameters": [ + { + "name": "page", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "size", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "status", + "in": "query", + "required": false, + "type": "integer", + "format": "uint8" + }, + { + "name": "search", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "public/ticket" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/user/affiliate/count": { + "get": { + "summary": "Query User Affiliate Count", + "operationId": "QueryUserAffiliate", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryUserAffiliateCountResponse" + } + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/affiliate/list": { + "get": { + "summary": "Query User Affiliate List", + "operationId": "QueryUserAffiliateList", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryUserAffiliateListResponse" + } + } + }, + "parameters": [ + { + "name": "page", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "size", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "public/user" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/user/agent_downloads": { + "get": { + "summary": "Get Agent Downloads", + "operationId": "GetAgentDownloads", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetAgentDownloadsResponse" + } + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/agent_realtime": { + "get": { + "summary": "Get Agent Realtime", + "operationId": "GetAgentRealtime", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetAgentRealtimeResponse" + } + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/balance_log": { + "get": { + "summary": "Query User Balance Log", + "operationId": "QueryUserBalanceLog", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryUserBalanceLogListResponse" + } + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/bind_email": { + "put": { + "summary": "Update Bind Email", + "operationId": "UpdateBindEmail", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateBindEmailRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/bind_email_with_verification": { + "post": { + "summary": "Bind Email With Verification", + "operationId": "BindEmailWithVerification", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/BindEmailWithVerificationResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/BindEmailWithVerificationRequest" + } + } + ], + "tags": [ + "public/user" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/user/bind_invite_code": { + "post": { + "summary": "Bind Invite Code", + "operationId": "BindInviteCode", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/BindInviteCodeRequest" + } + } + ], + "tags": [ + "public/user" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/user/bind_mobile": { + "put": { + "summary": "Update Bind Mobile", + "operationId": "UpdateBindMobile", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateBindMobileRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/bind_oauth": { + "post": { + "summary": "Bind OAuth", + "operationId": "BindOAuth", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/BindOAuthResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/BindOAuthRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/bind_oauth/callback": { + "post": { + "summary": "Bind OAuth Callback", + "operationId": "BindOAuthCallback", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/BindOAuthCallbackRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/bind_telegram": { + "get": { + "summary": "Bind Telegram", + "operationId": "BindTelegram", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/BindTelegramResponse" + } + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/commission_log": { + "get": { + "summary": "Query User Commission Log", + "operationId": "QueryUserCommissionLog", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryUserCommissionLogListResponse" + } + } + }, + "parameters": [ + { + "name": "page", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "size", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "public/user" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/user/commission_withdraw": { + "post": { + "summary": "Commission Withdraw", + "operationId": "CommissionWithdraw", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/WithdrawalLog" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CommissionWithdrawRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/current_user_account": { + "delete": { + "summary": "Delete Current User Account", + "operationId": "DeleteCurrentUserAccount", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/delete_account": { + "post": { + "summary": "Delete Account", + "operationId": "DeleteAccount", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/DeleteAccountResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DeleteAccountRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/device_online_statistics": { + "get": { + "summary": "Device Online Statistics", + "operationId": "DeviceOnlineStatistics", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetDeviceOnlineStatsResponse" + } + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/device_ws_connect": { + "get": { + "summary": "Webosocket Device Connect", + "operationId": "DeviceWsConnect", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "tags": [ + "public/user/ws" + ] + } + }, + "/v1/public/user/devices": { + "get": { + "summary": "Get Device List", + "operationId": "GetDeviceList", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetDeviceListResponse" + } + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/info": { + "get": { + "summary": "Query User Info", + "operationId": "QueryUserInfo", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/User" + } + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/invite_sales": { + "get": { + "summary": "Get Invite Sales", + "operationId": "GetInviteSales", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetInviteSalesResponse" + } + } + }, + "parameters": [ + { + "name": "page", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "size", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "start_time", + "in": "query", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "name": "end_time", + "in": "query", + "required": true, + "type": "integer", + "format": "int64" + } + ], + "tags": [ + "public/user" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/user/invite_stats": { + "get": { + "summary": "Get User Invite Stats", + "operationId": "GetUserInviteStats", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetUserInviteStatsResponse" + } + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/login_log": { + "get": { + "summary": "Get Login Log", + "operationId": "GetLoginLog", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetLoginLogResponse" + } + } + }, + "parameters": [ + { + "name": "page", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "size", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "public/user" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/user/notify": { + "put": { + "summary": "Update User Notify", + "operationId": "UpdateUserNotify", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateUserNotifyRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/oauth_methods": { + "get": { + "summary": "Get OAuth Methods", + "operationId": "GetOAuthMethods", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetOAuthMethodsResponse" + } + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/password": { + "put": { + "summary": "Update User Password", + "operationId": "UpdateUserPassword", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateUserPasswordRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/rules": { + "put": { + "summary": "Update User Rules", + "operationId": "UpdateUserRules", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateUserRulesRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/subscribe": { + "get": { + "summary": "Query User Subscribe", + "operationId": "QueryUserSubscribe", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryUserSubscribeListResponse" + } + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/subscribe_log": { + "get": { + "summary": "Get Subscribe Log", + "operationId": "GetSubscribeLog", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetSubscribeLogResponse" + } + } + }, + "parameters": [ + { + "name": "page", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "size", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "public/user" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/user/subscribe_note": { + "put": { + "summary": "Update User Subscribe Note", + "operationId": "UpdateUserSubscribeNote", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateUserSubscribeNoteRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/subscribe_status": { + "get": { + "summary": "Get Subscribe Status", + "operationId": "GetSubscribeStatus", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetSubscribeStatusResponse" + } + } + }, + "parameters": [ + { + "name": "email", + "in": "query", + "required": true, + "type": "string" + } + ], + "tags": [ + "public/user" + ], + "consumes": [ + "multipart/form-data" + ] + } + }, + "/v1/public/user/subscribe_token": { + "put": { + "summary": "Reset User Subscribe Token", + "operationId": "ResetUserSubscribeToken", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "description": " reset user subscribe token", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ResetUserSubscribeTokenRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/unbind_device": { + "put": { + "summary": "Unbind Device", + "operationId": "UnbindDevice", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UnbindDeviceRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/unbind_oauth": { + "post": { + "summary": "Unbind OAuth", + "operationId": "UnbindOAuth", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UnbindOAuthRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/unbind_telegram": { + "post": { + "summary": "Unbind Telegram", + "operationId": "UnbindTelegram", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/unsubscribe": { + "post": { + "summary": "Unsubscribe", + "operationId": "Unsubscribe", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UnsubscribeRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/unsubscribe/pre": { + "post": { + "summary": "Pre Unsubscribe", + "operationId": "PreUnsubscribe", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PreUnsubscribeResponse" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PreUnsubscribeRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/verify_email": { + "post": { + "summary": "Verify Email", + "operationId": "VerifyEmail", + "responses": { + "200": { + "description": "A successful response.", + "schema": {} + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VerifyEmailRequest" + } + } + ], + "tags": [ + "public/user" + ] + } + }, + "/v1/public/user/withdrawal_log": { + "get": { + "summary": "Query Withdrawal Log", + "operationId": "QueryWithdrawalLog", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/QueryWithdrawalLogListResponse" + } + } + }, + "parameters": [ + { + "name": "page", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + }, + { + "name": "size", + "in": "query", + "required": true, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "public/user" + ], + "consumes": [ + "multipart/form-data" + ] + } + } + }, + "definitions": { + "Ads": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "content": { + "type": "string" + }, + "description": { + "type": "string" + }, + "target_url": { + "type": "string" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "end_time": { + "type": "integer", + "format": "int64" + }, + "status": { + "type": "integer", + "format": "int32" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Ads", + "required": [ + "id", + "title", + "type", + "content", + "description", + "target_url", + "start_time", + "end_time", + "status", + "created_at", + "updated_at" + ] + }, + "AlipayNotifyResponse": { + "type": "object", + "properties": { + "return_code": { + "type": "string" + } + }, + "title": "AlipayNotifyResponse", + "required": [ + "return_code" + ] + }, + "Announcement": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "title": { + "type": "string" + }, + "content": { + "type": "string" + }, + "show": { + "type": "boolean", + "format": "boolean" + }, + "pinned": { + "type": "boolean", + "format": "boolean" + }, + "popup": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Announcement", + "required": [ + "id", + "title", + "content", + "show", + "pinned", + "popup", + "created_at", + "updated_at" + ] + }, + "AnyTLS": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "AnyTLS", + "required": [ + "port", + "security_config" + ] + }, + "AppUserSubcbribe": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + }, + "device_limit": { + "type": "integer", + "format": "int64" + }, + "start_time": { + "type": "string" + }, + "expire_time": { + "type": "string" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/AppUserSubscbribeNode" + } + } + }, + "title": "AppUserSubcbribe", + "required": [ + "id", + "name", + "upload", + "traffic", + "download", + "device_limit", + "start_time", + "expire_time", + "list" + ] + }, + "AppUserSubscbribeNode": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "relay_mode": { + "type": "string" + }, + "relay_node": { + "type": "string" + }, + "server_addr": { + "type": "string" + }, + "speed_limit": { + "type": "integer", + "format": "int32" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "traffic_ratio": { + "type": "number", + "format": "double" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "config": { + "type": "string" + }, + "country": { + "type": "string" + }, + "city": { + "type": "string" + }, + "latitude": { + "type": "string" + }, + "longitude": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + } + }, + "title": "AppUserSubscbribeNode", + "required": [ + "id", + "name", + "uuid", + "protocol", + "relay_mode", + "relay_node", + "server_addr", + "speed_limit", + "tags", + "traffic", + "traffic_ratio", + "upload", + "config", + "country", + "city", + "latitude", + "longitude", + "created_at", + "download" + ] + }, + "Application": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "subscribe_type": { + "type": "string" + } + }, + "title": "Application", + "required": [ + "id", + "icon", + "name", + "description", + "subscribe_type" + ] + }, + "ApplicationPlatform": { + "type": "object", + "properties": { + "ios": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "macos": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "linux": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "android": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "windows": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + }, + "harmony": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationVersion" + } + } + }, + "title": "ApplicationPlatform" + }, + "ApplicationResponse": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationResponseInfo" + } + } + }, + "title": "ApplicationResponse", + "required": [ + "applications" + ] + }, + "ApplicationResponseInfo": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "description": { + "type": "string" + }, + "subscribe_type": { + "type": "string" + }, + "platform": { + "$ref": "#/definitions/ApplicationPlatform" + } + }, + "title": "ApplicationResponseInfo", + "required": [ + "id", + "name", + "icon", + "description", + "subscribe_type", + "platform" + ] + }, + "ApplicationVersion": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string" + }, + "version": { + "type": "string" + }, + "description": { + "type": "string" + }, + "is_default": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "ApplicationVersion", + "required": [ + "id", + "url", + "version", + "description", + "is_default" + ] + }, + "AttachAppleTransactionByIdRequest": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + }, + "transaction_id": { + "type": "string" + }, + "sandbox": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "AttachAppleTransactionByIdRequest", + "required": [ + "order_no", + "transaction_id" + ] + }, + "AttachAppleTransactionRequest": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + }, + "signed_transaction_jws": { + "type": "string" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "duration_days": { + "type": "integer", + "format": "int64" + }, + "tier": { + "type": "string" + } + }, + "title": "AttachAppleTransactionRequest", + "required": [ + "order_no", + "signed_transaction_jws" + ] + }, + "AttachAppleTransactionResponse": { + "type": "object", + "properties": { + "expires_at": { + "type": "integer", + "format": "int64" + }, + "tier": { + "type": "string" + } + }, + "title": "AttachAppleTransactionResponse", + "required": [ + "expires_at", + "tier" + ] + }, + "AuthConfig": { + "type": "object", + "properties": { + "mobile": { + "$ref": "#/definitions/MobileAuthenticateConfig" + }, + "email": { + "$ref": "#/definitions/EmailAuthticateConfig" + }, + "device": { + "$ref": "#/definitions/DeviceAuthticateConfig" + }, + "register": { + "$ref": "#/definitions/PubilcRegisterConfig" + } + }, + "title": "AuthConfig", + "required": [ + "mobile", + "email", + "device", + "register" + ] + }, + "AuthMethodConfig": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "method": { + "type": "string" + }, + "config": { + "type": "object" + }, + "enabled": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "AuthMethodConfig", + "required": [ + "id", + "method", + "config", + "enabled" + ] + }, + "BalanceLog": { + "type": "object", + "properties": { + "type": { + "type": "integer", + "format": "uin16" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "balance": { + "type": "integer", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "BalanceLog", + "required": [ + "type", + "user_id", + "amount", + "balance", + "timestamp" + ] + }, + "BindEmailWithVerificationRequest": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "title": "BindEmailWithVerificationRequest", + "required": [ + "email", + "code" + ] + }, + "BindEmailWithVerificationResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "format": "boolean" + }, + "message": { + "type": "string" + }, + "token": { + "type": "string" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "family_joined": { + "type": "boolean", + "format": "boolean" + }, + "family_id": { + "type": "integer", + "format": "int64" + }, + "owner_user_id": { + "type": "integer", + "format": "int64" + } + }, + "title": "BindEmailWithVerificationResponse", + "required": [ + "success", + "message", + "user_id" + ] + }, + "BindInviteCodeRequest": { + "type": "object", + "properties": { + "invite_code": { + "type": "string" + } + }, + "title": "BindInviteCodeRequest", + "required": [ + "invite_code" + ] + }, + "BindOAuthCallbackRequest": { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "callback": { + "type": "object" + } + }, + "title": "BindOAuthCallbackRequest", + "required": [ + "method", + "callback" + ] + }, + "BindOAuthRequest": { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "redirect": { + "type": "string" + } + }, + "title": "BindOAuthRequest", + "required": [ + "method", + "redirect" + ] + }, + "BindOAuthResponse": { + "type": "object", + "properties": { + "redirect": { + "type": "string" + } + }, + "title": "BindOAuthResponse", + "required": [ + "redirect" + ] + }, + "BindTelegramResponse": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "expired_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "BindTelegramResponse", + "required": [ + "url", + "expired_at" + ] + }, + "CheckoutOrderRequest": { + "type": "object", + "properties": { + "orderNo": { + "type": "string" + }, + "returnUrl": { + "type": "string" + } + }, + "title": "CheckoutOrderRequest", + "required": [ + "orderNo" + ] + }, + "CheckoutOrderResponse": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "checkout_url": { + "type": "string" + }, + "stripe": { + "$ref": "#/definitions/StripePayment" + }, + "product_ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "CheckoutOrderResponse", + "required": [ + "type" + ] + }, + "CloseOrderRequest": { + "type": "object", + "properties": { + "orderNo": { + "type": "string" + } + }, + "title": "CloseOrderRequest", + "required": [ + "orderNo" + ] + }, + "CommissionLog": { + "type": "object", + "properties": { + "type": { + "type": "integer", + "format": "uin16" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "CommissionLog", + "required": [ + "type", + "user_id", + "amount", + "order_no", + "timestamp" + ] + }, + "CommissionWithdrawRequest": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int64" + }, + "content": { + "type": "string" + } + }, + "title": "CommissionWithdrawRequest", + "required": [ + "amount", + "content" + ] + }, + "ConnectionRecords": { + "type": "object", + "properties": { + "current_continuous_days": { + "type": "integer", + "format": "int64" + }, + "history_continuous_days": { + "type": "integer", + "format": "int64" + }, + "longest_single_connection": { + "type": "integer", + "format": "int64" + } + }, + "title": "ConnectionRecords", + "required": [ + "current_continuous_days", + "history_continuous_days", + "longest_single_connection" + ] + }, + "Coupon": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "code": { + "type": "string" + }, + "count": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "expire_time": { + "type": "integer", + "format": "int64" + }, + "user_limit": { + "type": "integer", + "format": "int64" + }, + "subscribe": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "used_count": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Coupon", + "required": [ + "id", + "name", + "code", + "count", + "type", + "discount", + "start_time", + "expire_time", + "user_limit", + "subscribe", + "used_count", + "enable", + "created_at", + "updated_at" + ] + }, + "CreateUserTicketFollowRequest": { + "type": "object", + "properties": { + "ticket_id": { + "type": "integer", + "format": "int64" + }, + "from": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "content": { + "type": "string" + } + }, + "title": "CreateUserTicketFollowRequest", + "required": [ + "ticket_id", + "from", + "type", + "content" + ] + }, + "CreateUserTicketRequest": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "title": "CreateUserTicketRequest", + "required": [ + "title", + "description" + ] + }, + "CurrencyConfig": { + "type": "object", + "properties": { + "access_key": { + "type": "string" + }, + "currency_unit": { + "type": "string" + }, + "currency_symbol": { + "type": "string" + } + }, + "title": "CurrencyConfig", + "required": [ + "access_key", + "currency_unit", + "currency_symbol" + ] + }, + "DeleteAccountRequest": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "title": "DeleteAccountRequest", + "required": [ + "email", + "code" + ] + }, + "DeleteAccountResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "format": "boolean" + }, + "message": { + "type": "string" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "code": { + "type": "integer", + "format": "int64" + } + }, + "title": "DeleteAccountResponse", + "required": [ + "success", + "message", + "user_id", + "code" + ] + }, + "DeviceAuthticateConfig": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "format": "boolean" + }, + "show_ads": { + "type": "boolean", + "format": "boolean" + }, + "enable_security": { + "type": "boolean", + "format": "boolean" + }, + "only_real_device": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "DeviceAuthticateConfig", + "required": [ + "enable", + "show_ads", + "enable_security", + "only_real_device" + ] + }, + "Document": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "title": { + "type": "string" + }, + "content": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "show": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Document", + "required": [ + "id", + "title", + "content", + "tags", + "show", + "created_at", + "updated_at" + ] + }, + "DownloadLink": { + "type": "object", + "properties": { + "ios": { + "type": "string" + }, + "android": { + "type": "string" + }, + "windows": { + "type": "string" + }, + "mac": { + "type": "string" + }, + "linux": { + "type": "string" + }, + "harmony": { + "type": "string" + } + }, + "title": "DownloadLink" + }, + "EPayNotifyRequest": { + "type": "object", + "properties": { + "pid": { + "type": "integer", + "format": "int64" + }, + "trade_no": { + "type": "string" + }, + "out_trade_no": { + "type": "string" + }, + "type": { + "type": "string" + }, + "name": { + "type": "string" + }, + "money": { + "type": "string" + }, + "trade_status": { + "type": "string" + }, + "param": { + "type": "string" + }, + "sign": { + "type": "string" + }, + "sign_type": { + "type": "string" + } + }, + "title": "EPayNotifyRequest", + "required": [ + "pid", + "trade_no", + "out_trade_no", + "type", + "name", + "money", + "trade_status", + "param", + "sign", + "sign_type" + ] + }, + "EmailAuthticateConfig": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "format": "boolean" + }, + "enable_verify": { + "type": "boolean", + "format": "boolean" + }, + "enable_domain_suffix": { + "type": "boolean", + "format": "boolean" + }, + "domain_suffix_list": { + "type": "string" + } + }, + "title": "EmailAuthticateConfig", + "required": [ + "enable", + "enable_verify", + "enable_domain_suffix", + "domain_suffix_list" + ] + }, + "FamilyDetail": { + "type": "object", + "properties": { + "summary": { + "$ref": "#/definitions/FamilySummary" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/FamilyMemberItem" + } + } + }, + "title": "FamilyDetail", + "required": [ + "summary", + "members" + ] + }, + "FamilyMemberItem": { + "type": "object", + "properties": { + "user_id": { + "type": "integer", + "format": "int64" + }, + "identifier": { + "type": "string" + }, + "role": { + "type": "integer", + "format": "uint8" + }, + "role_name": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "status_name": { + "type": "string" + }, + "join_source": { + "type": "string" + }, + "joined_at": { + "type": "integer", + "format": "int64" + }, + "left_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "FamilyMemberItem", + "required": [ + "user_id", + "identifier", + "role", + "role_name", + "status", + "status_name", + "join_source", + "joined_at" + ] + }, + "FamilySummary": { + "type": "object", + "properties": { + "family_id": { + "type": "integer", + "format": "int64" + }, + "owner_user_id": { + "type": "integer", + "format": "int64" + }, + "owner_identifier": { + "type": "string" + }, + "status": { + "type": "string" + }, + "active_member_count": { + "type": "integer", + "format": "int64" + }, + "max_members": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "FamilySummary", + "required": [ + "family_id", + "owner_user_id", + "owner_identifier", + "status", + "active_member_count", + "max_members", + "created_at", + "updated_at" + ] + }, + "Follow": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "ticket_id": { + "type": "integer", + "format": "int64" + }, + "from": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "content": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Follow", + "required": [ + "id", + "ticket_id", + "from", + "type", + "content", + "created_at" + ] + }, + "GetAgentDownloadsRequest": { + "type": "object", + "title": "GetAgentDownloadsRequest" + }, + "GetAgentDownloadsResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "platforms": { + "$ref": "#/definitions/PlatformDownloads" + }, + "comparison_rate": { + "type": "string" + } + }, + "title": "GetAgentDownloadsResponse", + "required": [ + "total", + "platforms" + ] + }, + "GetAgentRealtimeRequest": { + "type": "object", + "title": "GetAgentRealtimeRequest" + }, + "GetAgentRealtimeResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "clicks": { + "type": "integer", + "format": "int64" + }, + "views": { + "type": "integer", + "format": "int64" + }, + "installs": { + "type": "integer", + "format": "int64" + }, + "paid_count": { + "type": "integer", + "format": "int64" + }, + "growth_rate": { + "type": "string" + }, + "paid_growth_rate": { + "type": "string" + } + }, + "title": "GetAgentRealtimeResponse", + "required": [ + "total", + "clicks", + "views", + "installs", + "paid_count", + "growth_rate", + "paid_growth_rate" + ] + }, + "GetAppleStatusResponse": { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "format": "boolean" + }, + "expires_at": { + "type": "integer", + "format": "int64" + }, + "tier": { + "type": "string" + } + }, + "title": "GetAppleStatusResponse", + "required": [ + "active", + "expires_at", + "tier" + ] + }, + "GetAvailablePaymentMethodsResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/PaymentMethod" + } + } + }, + "title": "GetAvailablePaymentMethodsResponse", + "required": [ + "list" + ] + }, + "GetDeviceListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/UserDevice" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetDeviceListResponse", + "required": [ + "list", + "total" + ] + }, + "GetDeviceOnlineStatsResponse": { + "type": "object", + "properties": { + "weekly_stats": { + "type": "array", + "items": { + "$ref": "#/definitions/WeeklyStat" + } + }, + "connection_records": { + "$ref": "#/definitions/ConnectionRecords" + } + }, + "title": "GetDeviceOnlineStatsResponse", + "required": [ + "weekly_stats", + "connection_records" + ] + }, + "GetInviteSalesRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "end_time": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetInviteSalesRequest", + "required": [ + "page", + "size", + "start_time", + "end_time" + ] + }, + "GetInviteSalesResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/InvitedUserSale" + } + } + }, + "title": "GetInviteSalesResponse", + "required": [ + "total", + "list" + ] + }, + "GetLoginLogRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "title": "GetLoginLogRequest", + "required": [ + "page", + "size" + ] + }, + "GetLoginLogResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/UserLoginLog" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetLoginLogResponse", + "required": [ + "list", + "total" + ] + }, + "GetOAuthMethodsResponse": { + "type": "object", + "properties": { + "methods": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAuthMethod" + } + } + }, + "title": "GetOAuthMethodsResponse", + "required": [ + "methods" + ] + }, + "GetSubscribeLogRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "title": "GetSubscribeLogRequest", + "required": [ + "page", + "size" + ] + }, + "GetSubscribeLogResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/UserSubscribeLog" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetSubscribeLogResponse", + "required": [ + "list", + "total" + ] + }, + "GetSubscribeStatusRequest": { + "type": "object", + "properties": { + "email": { + "type": "string" + } + }, + "title": "GetSubscribeStatusRequest", + "required": [ + "email" + ] + }, + "GetSubscribeStatusResponse": { + "type": "object", + "properties": { + "device_status": { + "type": "boolean", + "format": "boolean" + }, + "email_status": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "GetSubscribeStatusResponse", + "required": [ + "device_status", + "email_status" + ] + }, + "GetSubscriptionRequest": { + "type": "object", + "properties": { + "language": { + "type": "string" + } + }, + "title": "GetSubscriptionRequest", + "required": [ + "language" + ] + }, + "GetSubscriptionResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Subscribe" + } + } + }, + "title": "GetSubscriptionResponse", + "required": [ + "list" + ] + }, + "GetUserInviteStatsRequest": { + "type": "object", + "title": "GetUserInviteStatsRequest" + }, + "GetUserInviteStatsResponse": { + "type": "object", + "properties": { + "friendly_count": { + "type": "integer", + "format": "int64" + }, + "history_count": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetUserInviteStatsResponse", + "required": [ + "friendly_count", + "history_count" + ] + }, + "GetUserSubscribeTrafficLogsRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "end_time": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetUserSubscribeTrafficLogsRequest", + "required": [ + "page", + "size", + "user_id", + "subscribe_id", + "start_time", + "end_time" + ] + }, + "GetUserSubscribeTrafficLogsResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/TrafficLog" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetUserSubscribeTrafficLogsResponse", + "required": [ + "list", + "total" + ] + }, + "GetUserTicketDetailRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + }, + "title": "GetUserTicketDetailRequest", + "required": [ + "id" + ] + }, + "GetUserTicketListRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "search": { + "type": "string" + } + }, + "title": "GetUserTicketListRequest", + "required": [ + "page", + "size" + ] + }, + "GetUserTicketListResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Ticket" + } + } + }, + "title": "GetUserTicketListResponse", + "required": [ + "total", + "list" + ] + }, + "Hysteria2": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "hop_ports": { + "type": "string" + }, + "hop_interval": { + "type": "integer", + "format": "int32" + }, + "obfs_password": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Hysteria2", + "required": [ + "port", + "hop_ports", + "hop_interval", + "obfs_password", + "security_config" + ] + }, + "InviteConfig": { + "type": "object", + "properties": { + "forced_invite": { + "type": "boolean", + "format": "boolean" + }, + "referral_percentage": { + "type": "integer", + "format": "int64" + }, + "only_first_purchase": { + "type": "boolean", + "format": "boolean" + }, + "gift_days": { + "type": "integer", + "format": "int64" + } + }, + "title": "InviteConfig", + "required": [ + "forced_invite", + "referral_percentage", + "only_first_purchase", + "gift_days" + ] + }, + "InvitedUserSale": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "format": "double" + }, + "updated_at": { + "type": "integer", + "format": "int64" + }, + "user_hash": { + "type": "string" + }, + "product_name": { + "type": "string" + } + }, + "title": "InvitedUserSale", + "required": [ + "amount", + "updated_at", + "user_hash", + "product_name" + ] + }, + "MessageLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "platform": { + "type": "string" + }, + "to": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "content": { + "type": "object" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "created_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "MessageLog", + "required": [ + "id", + "type", + "platform", + "to", + "subject", + "content", + "status", + "created_at" + ] + }, + "MobileAuthenticateConfig": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "format": "boolean" + }, + "enable_whitelist": { + "type": "boolean", + "format": "boolean" + }, + "whitelist": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "MobileAuthenticateConfig", + "required": [ + "enable", + "enable_whitelist", + "whitelist" + ] + }, + "NodeConfig": { + "type": "object", + "properties": { + "node_secret": { + "type": "string" + }, + "node_pull_interval": { + "type": "integer", + "format": "int64" + }, + "node_push_interval": { + "type": "integer", + "format": "int64" + }, + "traffic_report_threshold": { + "type": "integer", + "format": "int64" + }, + "ip_strategy": { + "type": "string" + }, + "dns": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeDNS" + } + }, + "block": { + "type": "array", + "items": { + "type": "string" + } + }, + "outbound": { + "type": "array", + "items": { + "$ref": "#/definitions/NodeOutbound" + } + } + }, + "title": "NodeConfig", + "required": [ + "node_secret", + "node_pull_interval", + "node_push_interval", + "traffic_report_threshold", + "ip_strategy", + "dns", + "block", + "outbound" + ] + }, + "NodeDNS": { + "type": "object", + "properties": { + "proto": { + "type": "string" + }, + "address": { + "type": "string" + }, + "domains": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "NodeDNS", + "required": [ + "proto", + "address", + "domains" + ] + }, + "NodeOutbound": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "address": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int64" + }, + "password": { + "type": "string" + }, + "rules": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "NodeOutbound", + "required": [ + "name", + "protocol", + "address", + "port", + "password", + "rules" + ] + }, + "NodeRelay": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "prefix": { + "type": "string" + } + }, + "title": "NodeRelay", + "required": [ + "host", + "port", + "prefix" + ] + }, + "Order": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "price": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "coupon_discount": { + "type": "integer", + "format": "int64" + }, + "commission": { + "type": "integer", + "format": "int64" + }, + "payment": { + "$ref": "#/definitions/PaymentMethod" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "trade_no": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Order", + "required": [ + "id", + "user_id", + "order_no", + "type", + "quantity", + "price", + "amount", + "gift_amount", + "discount", + "coupon", + "coupon_discount", + "payment", + "fee_amount", + "trade_no", + "status", + "subscribe_id", + "created_at", + "updated_at" + ] + }, + "OrderDetail": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "type": { + "type": "integer", + "format": "uint8" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "price": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "coupon_discount": { + "type": "integer", + "format": "int64" + }, + "commission": { + "type": "integer", + "format": "int64" + }, + "payment": { + "$ref": "#/definitions/PaymentMethod" + }, + "method": { + "type": "string" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "trade_no": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "subscribe": { + "$ref": "#/definitions/Subscribe" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "OrderDetail", + "required": [ + "id", + "user_id", + "order_no", + "type", + "quantity", + "price", + "amount", + "gift_amount", + "discount", + "coupon", + "coupon_discount", + "payment", + "method", + "fee_amount", + "trade_no", + "status", + "subscribe_id", + "subscribe", + "created_at", + "updated_at" + ] + }, + "PaymentConfig": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "config": { + "type": "object" + }, + "fee_mode": { + "type": "integer", + "format": "uint32" + }, + "fee_percent": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "PaymentConfig", + "required": [ + "id", + "name", + "platform", + "description", + "config", + "fee_mode", + "enable" + ] + }, + "PaymentMethod": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "fee_mode": { + "type": "integer", + "format": "uint32" + }, + "fee_percent": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + } + }, + "title": "PaymentMethod", + "required": [ + "id", + "name", + "platform", + "description", + "icon", + "fee_mode", + "fee_percent", + "fee_amount" + ] + }, + "PaymentMethodDetail": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "config": { + "type": "object" + }, + "fee_mode": { + "type": "integer", + "format": "uint32" + }, + "fee_percent": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "notify_url": { + "type": "string" + } + }, + "title": "PaymentMethodDetail", + "required": [ + "id", + "name", + "platform", + "description", + "icon", + "domain", + "config", + "fee_mode", + "fee_percent", + "fee_amount", + "enable", + "notify_url" + ] + }, + "PlatformDownloads": { + "type": "object", + "properties": { + "ios": { + "type": "integer", + "format": "int64" + }, + "android": { + "type": "integer", + "format": "int64" + }, + "windows": { + "type": "integer", + "format": "int64" + }, + "mac": { + "type": "integer", + "format": "int64" + } + }, + "title": "PlatformDownloads", + "required": [ + "ios", + "android", + "windows", + "mac" + ] + }, + "PlatformInfo": { + "type": "object", + "properties": { + "platform": { + "type": "string" + }, + "platform_url": { + "type": "string" + }, + "platform_field_description": { + "type": "object" + } + }, + "title": "PlatformInfo", + "required": [ + "platform", + "platform_url", + "platform_field_description" + ] + }, + "PlatformResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/PlatformInfo" + } + } + }, + "title": "PlatformResponse", + "required": [ + "list" + ] + }, + "PortalPurchaseRequest": { + "type": "object", + "properties": { + "auth_type": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "password": { + "type": "string" + }, + "payment": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "invite_code": { + "type": "string" + }, + "turnstile_token": { + "type": "string" + } + }, + "title": "PortalPurchaseRequest", + "required": [ + "auth_type", + "identifier", + "payment", + "subscribe_id", + "quantity" + ] + }, + "PortalPurchaseResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "PortalPurchaseResponse", + "required": [ + "order_no" + ] + }, + "PreOrderResponse": { + "type": "object", + "properties": { + "price": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "coupon_discount": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + } + }, + "title": "PreOrderResponse", + "required": [ + "price", + "amount", + "discount", + "gift_amount", + "coupon", + "coupon_discount", + "fee_amount" + ] + }, + "PrePurchaseOrderRequest": { + "type": "object", + "properties": { + "payment": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + } + }, + "title": "PrePurchaseOrderRequest", + "required": [ + "subscribe_id", + "quantity" + ] + }, + "PrePurchaseOrderResponse": { + "type": "object", + "properties": { + "price": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "coupon_discount": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + } + }, + "title": "PrePurchaseOrderResponse", + "required": [ + "price", + "amount", + "discount", + "coupon", + "coupon_discount", + "fee_amount" + ] + }, + "PreRenewalOrderResponse": { + "type": "object", + "properties": { + "orderNo": { + "type": "string" + } + }, + "title": "PreRenewalOrderResponse", + "required": [ + "orderNo" + ] + }, + "PreUnsubscribeRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + }, + "title": "PreUnsubscribeRequest", + "required": [ + "id" + ] + }, + "PreUnsubscribeResponse": { + "type": "object", + "properties": { + "deduction_amount": { + "type": "integer", + "format": "int64" + } + }, + "title": "PreUnsubscribeResponse", + "required": [ + "deduction_amount" + ] + }, + "PrivacyPolicyConfig": { + "type": "object", + "properties": { + "privacy_policy": { + "type": "string" + } + }, + "title": "PrivacyPolicyConfig", + "required": [ + "privacy_policy" + ] + }, + "Protocol": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "uin16" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "security": { + "type": "string" + }, + "sni": { + "type": "string" + }, + "allow_insecure": { + "type": "boolean", + "format": "boolean" + }, + "fingerprint": { + "type": "string" + }, + "reality_server_addr": { + "type": "string" + }, + "reality_server_port": { + "type": "integer", + "format": "int32" + }, + "reality_private_key": { + "type": "string" + }, + "reality_public_key": { + "type": "string" + }, + "reality_short_id": { + "type": "string" + }, + "transport": { + "type": "string" + }, + "host": { + "type": "string" + }, + "path": { + "type": "string" + }, + "service_name": { + "type": "string" + }, + "cipher": { + "type": "string" + }, + "server_key": { + "type": "string" + }, + "flow": { + "type": "string" + }, + "hop_ports": { + "type": "string" + }, + "hop_interval": { + "type": "integer", + "format": "int32" + }, + "obfs_password": { + "type": "string" + }, + "disable_sni": { + "type": "boolean", + "format": "boolean" + }, + "reduce_rtt": { + "type": "boolean", + "format": "boolean" + }, + "udp_relay_mode": { + "type": "string" + }, + "congestion_controller": { + "type": "string" + }, + "multiplex": { + "type": "string", + "description": " mux, eg: off/low/medium/high" + }, + "padding_scheme": { + "type": "string", + "description": " padding scheme" + }, + "up_mbps": { + "type": "integer", + "format": "int32", + "description": " upload speed limit" + }, + "down_mbps": { + "type": "integer", + "format": "int32", + "description": " download speed limit" + }, + "obfs": { + "type": "string", + "description": " obfs, 'none', 'http', 'tls'" + }, + "obfs_host": { + "type": "string", + "description": " obfs host" + }, + "obfs_path": { + "type": "string", + "description": " obfs path" + }, + "xhttp_mode": { + "type": "string", + "description": " xhttp mode" + }, + "xhttp_extra": { + "type": "string", + "description": " xhttp extra path" + }, + "encryption": { + "type": "string", + "description": " encryption,'none', 'mlkem768x25519plus'" + }, + "encryption_mode": { + "type": "string", + "description": " encryption mode,'native', 'xorpub', 'random'" + }, + "encryption_rtt": { + "type": "string", + "description": " encryption rtt,'0rtt', '1rtt'" + }, + "encryption_ticket": { + "type": "string", + "description": " encryption ticket" + }, + "encryption_server_padding": { + "type": "string", + "description": " encryption server padding" + }, + "encryption_private_key": { + "type": "string", + "description": " encryption private key" + }, + "encryption_client_padding": { + "type": "string", + "description": " encryption client padding" + }, + "encryption_password": { + "type": "string", + "description": " encryption password" + }, + "ratio": { + "type": "number", + "format": "double", + "description": " Traffic ratio, default is 1" + }, + "cert_mode": { + "type": "string", + "description": " Certificate mode, `none`|`http`|`dns`|`self`" + }, + "cert_dns_provider": { + "type": "string", + "description": " DNS provider for certificate" + }, + "cert_dns_env": { + "type": "string", + "description": " Environment for DNS provider" + } + }, + "title": "Protocol", + "required": [ + "type", + "port", + "enable" + ] + }, + "PubilcRegisterConfig": { + "type": "object", + "properties": { + "stop_register": { + "type": "boolean", + "format": "boolean" + }, + "enable_ip_register_limit": { + "type": "boolean", + "format": "boolean" + }, + "ip_register_limit": { + "type": "integer", + "format": "int64" + }, + "ip_register_limit_duration": { + "type": "integer", + "format": "int64" + } + }, + "title": "PubilcRegisterConfig", + "required": [ + "stop_register", + "enable_ip_register_limit", + "ip_register_limit", + "ip_register_limit_duration" + ] + }, + "PubilcVerifyCodeConfig": { + "type": "object", + "properties": { + "verify_code_interval": { + "type": "integer", + "format": "int64" + } + }, + "title": "PubilcVerifyCodeConfig", + "required": [ + "verify_code_interval" + ] + }, + "PurchaseOrderRequest": { + "type": "object", + "properties": { + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + } + }, + "title": "PurchaseOrderRequest", + "required": [ + "subscribe_id", + "quantity" + ] + }, + "PurchaseOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "PurchaseOrderResponse", + "required": [ + "order_no" + ] + }, + "QueryAnnouncementRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32", + "default": "15" + }, + "pinned": { + "type": "boolean", + "format": "boolean" + }, + "popup": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "QueryAnnouncementRequest", + "required": [ + "page", + "size", + "pinned", + "popup" + ] + }, + "QueryAnnouncementResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "announcements": { + "type": "array", + "items": { + "$ref": "#/definitions/Announcement" + } + } + }, + "title": "QueryAnnouncementResponse", + "required": [ + "total", + "announcements" + ] + }, + "QueryDocumentDetailRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryDocumentDetailRequest", + "required": [ + "id" + ] + }, + "QueryDocumentListResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Document" + } + } + }, + "title": "QueryDocumentListResponse", + "required": [ + "total", + "list" + ] + }, + "QueryOrderDetailRequest": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "QueryOrderDetailRequest", + "required": [ + "order_no" + ] + }, + "QueryOrderListRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "status": { + "type": "integer", + "format": "int32" + }, + "search": { + "type": "string" + } + }, + "title": "QueryOrderListRequest", + "required": [ + "page", + "size" + ] + }, + "QueryOrderListResponse": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/OrderDetail" + } + } + }, + "title": "QueryOrderListResponse", + "required": [ + "total", + "list" + ] + }, + "QueryPurchaseOrderRequest": { + "type": "object", + "properties": { + "auth_type": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "order_no": { + "type": "string" + } + }, + "title": "QueryPurchaseOrderRequest", + "required": [ + "auth_type", + "identifier", + "order_no" + ] + }, + "QueryPurchaseOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + }, + "subscribe": { + "$ref": "#/definitions/Subscribe" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "price": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + }, + "coupon_discount": { + "type": "integer", + "format": "int64" + }, + "fee_amount": { + "type": "integer", + "format": "int64" + }, + "payment": { + "$ref": "#/definitions/PaymentMethod" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "token": { + "type": "string" + } + }, + "title": "QueryPurchaseOrderResponse", + "required": [ + "order_no", + "subscribe", + "quantity", + "price", + "amount", + "discount", + "coupon", + "coupon_discount", + "fee_amount", + "payment", + "status", + "created_at" + ] + }, + "QuerySubscribeGroupListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/SubscribeGroup" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QuerySubscribeGroupListResponse", + "required": [ + "list", + "total" + ] + }, + "QuerySubscribeListRequest": { + "type": "object", + "properties": { + "language": { + "type": "string" + } + }, + "title": "QuerySubscribeListRequest", + "required": [ + "language" + ] + }, + "QuerySubscribeListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Subscribe" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QuerySubscribeListResponse", + "required": [ + "list", + "total" + ] + }, + "QueryUserAffiliateCountResponse": { + "type": "object", + "properties": { + "registers": { + "type": "integer", + "format": "int64" + }, + "total_commission": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryUserAffiliateCountResponse", + "required": [ + "registers", + "total_commission" + ] + }, + "QueryUserAffiliateListRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "title": "QueryUserAffiliateListRequest", + "required": [ + "page", + "size" + ] + }, + "QueryUserAffiliateListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAffiliate" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryUserAffiliateListResponse", + "required": [ + "list", + "total" + ] + }, + "QueryUserBalanceLogListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BalanceLog" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryUserBalanceLogListResponse", + "required": [ + "list", + "total" + ] + }, + "QueryUserCommissionLogListRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "title": "QueryUserCommissionLogListRequest", + "required": [ + "page", + "size" + ] + }, + "QueryUserCommissionLogListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/CommissionLog" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryUserCommissionLogListResponse", + "required": [ + "list", + "total" + ] + }, + "QueryUserSubscribeListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/UserSubscribe" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryUserSubscribeListResponse", + "required": [ + "list", + "total" + ] + }, + "QueryUserSubscribeNodeListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/UserSubscribeInfo" + } + } + }, + "title": "QueryUserSubscribeNodeListResponse", + "required": [ + "list" + ] + }, + "QueryWithdrawalLogListRequest": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + } + }, + "title": "QueryWithdrawalLogListRequest", + "required": [ + "page", + "size" + ] + }, + "QueryWithdrawalLogListResponse": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/WithdrawalLog" + } + }, + "total": { + "type": "integer", + "format": "int64" + } + }, + "title": "QueryWithdrawalLogListResponse", + "required": [ + "list", + "total" + ] + }, + "RechargeOrderRequest": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + } + }, + "title": "RechargeOrderRequest", + "required": [ + "amount", + "payment" + ] + }, + "RechargeOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "RechargeOrderResponse", + "required": [ + "order_no" + ] + }, + "RedemptionCode": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "code": { + "type": "string" + }, + "total_count": { + "type": "integer", + "format": "int64" + }, + "used_count": { + "type": "integer", + "format": "int64" + }, + "subscribe_plan": { + "type": "integer", + "format": "int64" + }, + "unit_time": { + "type": "string" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "status": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "RedemptionCode", + "required": [ + "id", + "code", + "total_count", + "used_count", + "subscribe_plan", + "unit_time", + "quantity", + "status", + "created_at", + "updated_at" + ] + }, + "RedemptionRecord": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "redemption_code_id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "unit_time": { + "type": "string" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "redeemed_at": { + "type": "integer", + "format": "int64" + }, + "created_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "RedemptionRecord", + "required": [ + "id", + "redemption_code_id", + "user_id", + "subscribe_id", + "unit_time", + "quantity", + "redeemed_at", + "created_at" + ] + }, + "RegisterConfig": { + "type": "object", + "properties": { + "stop_register": { + "type": "boolean", + "format": "boolean" + }, + "enable_trial": { + "type": "boolean", + "format": "boolean" + }, + "trial_subscribe": { + "type": "integer", + "format": "int64" + }, + "trial_time": { + "type": "integer", + "format": "int64" + }, + "trial_time_unit": { + "type": "string" + }, + "enable_ip_register_limit": { + "type": "boolean", + "format": "boolean" + }, + "ip_register_limit": { + "type": "integer", + "format": "int64" + }, + "ip_register_limit_duration": { + "type": "integer", + "format": "int64" + }, + "device_limit": { + "type": "integer", + "format": "int64" + } + }, + "title": "RegisterConfig", + "required": [ + "stop_register", + "enable_trial", + "trial_subscribe", + "trial_time", + "trial_time_unit", + "enable_ip_register_limit", + "ip_register_limit", + "ip_register_limit_duration", + "device_limit" + ] + }, + "RenewalOrderRequest": { + "type": "object", + "properties": { + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + }, + "coupon": { + "type": "string" + } + }, + "title": "RenewalOrderRequest", + "required": [ + "user_subscribe_id", + "quantity", + "payment" + ] + }, + "RenewalOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "RenewalOrderResponse", + "required": [ + "order_no" + ] + }, + "ResetSubscribeTrafficLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "integer", + "format": "uin16" + }, + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "order_no": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "ResetSubscribeTrafficLog", + "required": [ + "id", + "type", + "user_subscribe_id", + "timestamp" + ] + }, + "ResetTrafficOrderRequest": { + "type": "object", + "properties": { + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "payment": { + "type": "integer", + "format": "int64" + } + }, + "title": "ResetTrafficOrderRequest", + "required": [ + "user_subscribe_id", + "payment" + ] + }, + "ResetTrafficOrderResponse": { + "type": "object", + "properties": { + "order_no": { + "type": "string" + } + }, + "title": "ResetTrafficOrderResponse", + "required": [ + "order_no" + ] + }, + "ResetUserSubscribeTokenRequest": { + "type": "object", + "properties": { + "user_subscribe_id": { + "type": "integer", + "format": "int64" + } + }, + "title": "ResetUserSubscribeTokenRequest", + "required": [ + "user_subscribe_id" + ] + }, + "RestoreAppleTransactionsRequest": { + "type": "object", + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "RestoreAppleTransactionsRequest", + "required": [ + "transactions" + ] + }, + "SecurityConfig": { + "type": "object", + "properties": { + "sni": { + "type": "string" + }, + "allow_insecure": { + "type": "boolean", + "format": "boolean" + }, + "fingerprint": { + "type": "string" + }, + "reality_server_addr": { + "type": "string" + }, + "reality_server_port": { + "type": "integer", + "format": "int32" + }, + "reality_private_key": { + "type": "string" + }, + "reality_public_key": { + "type": "string" + }, + "reality_short_id": { + "type": "string" + } + }, + "title": "SecurityConfig", + "required": [ + "sni", + "allow_insecure", + "fingerprint", + "reality_server_addr", + "reality_server_port", + "reality_private_key", + "reality_public_key", + "reality_short_id" + ] + }, + "ServerGroup": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "ServerGroup", + "required": [ + "id", + "name", + "description", + "created_at", + "updated_at" + ] + }, + "ServerRuleGroup": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "icon": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "rules": { + "type": "string" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "default": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "ServerRuleGroup", + "required": [ + "id", + "icon", + "name", + "type", + "tags", + "rules", + "enable", + "default", + "created_at", + "updated_at" + ] + }, + "Shadowsocks": { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "server_key": { + "type": "string" + } + }, + "title": "Shadowsocks", + "required": [ + "method", + "port", + "server_key" + ] + }, + "SignatureConfig": { + "type": "object", + "properties": { + "enable_signature": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "SignatureConfig", + "required": [ + "enable_signature" + ] + }, + "SiteConfig": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "site_name": { + "type": "string" + }, + "site_desc": { + "type": "string" + }, + "site_logo": { + "type": "string" + }, + "keywords": { + "type": "string" + }, + "custom_html": { + "type": "string" + }, + "custom_data": { + "type": "string" + } + }, + "title": "SiteConfig", + "required": [ + "host", + "site_name", + "site_desc", + "site_logo", + "keywords", + "custom_html", + "custom_data" + ] + }, + "SiteCustomDataContacts": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "telephone": { + "type": "string" + }, + "address": { + "type": "string" + } + }, + "title": "SiteCustomDataContacts", + "required": [ + "email", + "telephone", + "address" + ] + }, + "SortItem": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "sort": { + "type": "integer", + "format": "int64" + } + }, + "title": "SortItem", + "required": [ + "id", + "sort" + ] + }, + "StripePayment": { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "client_secret": { + "type": "string" + }, + "publishable_key": { + "type": "string" + } + }, + "title": "StripePayment", + "required": [ + "method", + "client_secret", + "publishable_key" + ] + }, + "Subscribe": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "language": { + "type": "string" + }, + "description": { + "type": "string" + }, + "unit_price": { + "type": "integer", + "format": "int64" + }, + "unit_time": { + "type": "string" + }, + "discount": { + "type": "array", + "items": { + "$ref": "#/definitions/SubscribeDiscount" + } + }, + "node_count": { + "type": "integer", + "format": "int64" + }, + "replacement": { + "type": "integer", + "format": "int64" + }, + "inventory": { + "type": "integer", + "format": "int64" + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "speed_limit": { + "type": "integer", + "format": "int64" + }, + "device_limit": { + "type": "integer", + "format": "int64" + }, + "quota": { + "type": "integer", + "format": "int64" + }, + "nodes": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "node_tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "show": { + "type": "boolean", + "format": "boolean" + }, + "sell": { + "type": "boolean", + "format": "boolean" + }, + "sort": { + "type": "integer", + "format": "int64" + }, + "deduction_ratio": { + "type": "integer", + "format": "int64" + }, + "allow_deduction": { + "type": "boolean", + "format": "boolean" + }, + "reset_cycle": { + "type": "integer", + "format": "int64" + }, + "renewal_reset": { + "type": "boolean", + "format": "boolean" + }, + "show_original_price": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Subscribe", + "required": [ + "id", + "name", + "language", + "description", + "unit_price", + "unit_time", + "discount", + "node_count", + "replacement", + "inventory", + "traffic", + "speed_limit", + "device_limit", + "quota", + "nodes", + "node_tags", + "show", + "sell", + "sort", + "deduction_ratio", + "allow_deduction", + "reset_cycle", + "renewal_reset", + "show_original_price", + "created_at", + "updated_at" + ] + }, + "SubscribeConfig": { + "type": "object", + "properties": { + "single_model": { + "type": "boolean", + "format": "boolean" + }, + "subscribe_path": { + "type": "string" + }, + "subscribe_domain": { + "type": "string" + }, + "pan_domain": { + "type": "boolean", + "format": "boolean" + }, + "user_agent_limit": { + "type": "boolean", + "format": "boolean" + }, + "user_agent_list": { + "type": "string" + } + }, + "title": "SubscribeConfig", + "required": [ + "single_model", + "subscribe_path", + "subscribe_domain", + "pan_domain", + "user_agent_limit", + "user_agent_list" + ] + }, + "SubscribeDiscount": { + "type": "object", + "properties": { + "quantity": { + "type": "integer", + "format": "int64" + }, + "discount": { + "type": "number", + "format": "double" + } + }, + "title": "SubscribeDiscount", + "required": [ + "quantity", + "discount" + ] + }, + "SubscribeGroup": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "SubscribeGroup", + "required": [ + "id", + "name", + "description", + "created_at", + "updated_at" + ] + }, + "SubscribeType": { + "type": "object", + "properties": { + "subscribe_types": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "SubscribeType", + "required": [ + "subscribe_types" + ] + }, + "TelegramConfig": { + "type": "object", + "properties": { + "telegram_bot_token": { + "type": "string" + }, + "telegram_group_url": { + "type": "string" + }, + "telegram_notify": { + "type": "boolean", + "format": "boolean" + }, + "telegram_web_hook_domain": { + "type": "string" + } + }, + "title": "TelegramConfig", + "required": [ + "telegram_bot_token", + "telegram_group_url", + "telegram_notify", + "telegram_web_hook_domain" + ] + }, + "Ticket": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "follow": { + "type": "array", + "items": { + "$ref": "#/definitions/Follow" + } + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "Ticket", + "required": [ + "id", + "title", + "description", + "user_id", + "status", + "created_at", + "updated_at" + ] + }, + "TimePeriod": { + "type": "object", + "properties": { + "start_time": { + "type": "string" + }, + "end_time": { + "type": "string" + }, + "multiplier": { + "type": "number", + "format": "float" + } + }, + "title": "TimePeriod", + "required": [ + "start_time", + "end_time", + "multiplier" + ] + }, + "TosConfig": { + "type": "object", + "properties": { + "tos_content": { + "type": "string" + } + }, + "title": "TosConfig", + "required": [ + "tos_content" + ] + }, + "TrafficLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "server_id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "TrafficLog", + "required": [ + "id", + "server_id", + "user_id", + "subscribe_id", + "download", + "upload", + "timestamp" + ] + }, + "TransportConfig": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "host": { + "type": "string" + }, + "service_name": { + "type": "string" + } + }, + "title": "TransportConfig", + "required": [ + "path", + "host", + "service_name" + ] + }, + "Trojan": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "transport": { + "type": "string" + }, + "transport_config": { + "$ref": "#/definitions/TransportConfig" + }, + "security": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Trojan", + "required": [ + "port", + "transport", + "transport_config", + "security", + "security_config" + ] + }, + "Tuic": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "disable_sni": { + "type": "boolean", + "format": "boolean" + }, + "reduce_rtt": { + "type": "boolean", + "format": "boolean" + }, + "udp_relay_mode": { + "type": "string" + }, + "congestion_controller": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Tuic", + "required": [ + "port", + "disable_sni", + "reduce_rtt", + "udp_relay_mode", + "congestion_controller", + "security_config" + ] + }, + "UnbindDeviceRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + }, + "title": "UnbindDeviceRequest", + "required": [ + "id" + ] + }, + "UnbindOAuthRequest": { + "type": "object", + "properties": { + "method": { + "type": "string" + } + }, + "title": "UnbindOAuthRequest", + "required": [ + "method" + ] + }, + "UnsubscribeRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + }, + "title": "UnsubscribeRequest", + "required": [ + "id" + ] + }, + "UpdateBindEmailRequest": { + "type": "object", + "properties": { + "email": { + "type": "string" + } + }, + "title": "UpdateBindEmailRequest", + "required": [ + "email" + ] + }, + "UpdateBindMobileRequest": { + "type": "object", + "properties": { + "area_code": { + "type": "string" + }, + "mobile": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "title": "UpdateBindMobileRequest", + "required": [ + "area_code", + "mobile", + "code" + ] + }, + "UpdateUserNotifyRequest": { + "type": "object", + "properties": { + "enable_balance_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_login_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_subscribe_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_trade_notify": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "UpdateUserNotifyRequest", + "required": [ + "enable_balance_notify", + "enable_login_notify", + "enable_subscribe_notify", + "enable_trade_notify" + ] + }, + "UpdateUserPasswordRequest": { + "type": "object", + "properties": { + "password": { + "type": "string" + } + }, + "title": "UpdateUserPasswordRequest", + "required": [ + "password" + ] + }, + "UpdateUserRulesRequest": { + "type": "object", + "properties": { + "rules": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "UpdateUserRulesRequest", + "required": [ + "rules" + ] + }, + "UpdateUserSubscribeNoteRequest": { + "type": "object", + "properties": { + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "note": { + "type": "string" + } + }, + "title": "UpdateUserSubscribeNoteRequest", + "required": [ + "user_subscribe_id", + "note" + ] + }, + "UpdateUserTicketStatusRequest": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "status": { + "type": "integer", + "format": "uint8" + } + }, + "title": "UpdateUserTicketStatusRequest", + "required": [ + "id", + "status" + ] + }, + "User": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "avatar": { + "type": "string" + }, + "balance": { + "type": "integer", + "format": "int64" + }, + "commission": { + "type": "integer", + "format": "int64" + }, + "referral_percentage": { + "type": "integer", + "format": "uint8" + }, + "only_first_purchase": { + "type": "boolean", + "format": "boolean" + }, + "gift_amount": { + "type": "integer", + "format": "int64" + }, + "telegram": { + "type": "integer", + "format": "int64" + }, + "refer_code": { + "type": "string" + }, + "referer_id": { + "type": "integer", + "format": "int64" + }, + "share_link": { + "type": "string" + }, + "enable": { + "type": "boolean", + "format": "boolean" + }, + "is_admin": { + "type": "boolean", + "format": "boolean" + }, + "enable_balance_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_login_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_subscribe_notify": { + "type": "boolean", + "format": "boolean" + }, + "enable_trade_notify": { + "type": "boolean", + "format": "boolean" + }, + "auth_methods": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAuthMethod" + } + }, + "user_devices": { + "type": "array", + "items": { + "$ref": "#/definitions/UserDevice" + } + }, + "rules": { + "type": "array", + "items": { + "type": "string" + } + }, + "last_login_time": { + "type": "integer", + "format": "int64" + }, + "member_status": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + }, + "deleted_at": { + "type": "integer", + "format": "int64" + }, + "is_del": { + "type": "boolean", + "format": "boolean" + }, + "remark": { + "type": "string" + }, + "purchased_package": { + "type": "string" + }, + "family_joined": { + "type": "boolean", + "format": "boolean" + }, + "family_id": { + "type": "integer", + "format": "int64" + }, + "family_role": { + "type": "integer", + "format": "uint8" + }, + "family_role_name": { + "type": "string" + }, + "family_owner_user_id": { + "type": "integer", + "format": "int64" + }, + "family_status": { + "type": "string" + }, + "family_member_count": { + "type": "integer", + "format": "int64" + }, + "family_max_members": { + "type": "integer", + "format": "int64" + } + }, + "title": "User", + "required": [ + "id", + "avatar", + "balance", + "commission", + "referral_percentage", + "only_first_purchase", + "gift_amount", + "telegram", + "refer_code", + "referer_id", + "enable", + "enable_balance_notify", + "enable_login_notify", + "enable_subscribe_notify", + "enable_trade_notify", + "auth_methods", + "user_devices", + "rules", + "created_at", + "updated_at" + ] + }, + "UserAffiliate": { + "type": "object", + "properties": { + "avatar": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "registered_at": { + "type": "integer", + "format": "int64" + }, + "enable": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "UserAffiliate", + "required": [ + "avatar", + "identifier", + "registered_at", + "enable" + ] + }, + "UserAuthMethod": { + "type": "object", + "properties": { + "auth_type": { + "type": "string" + }, + "auth_identifier": { + "type": "string" + }, + "verified": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "UserAuthMethod", + "required": [ + "auth_type", + "auth_identifier", + "verified" + ] + }, + "UserDevice": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "ip": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "user_agent": { + "type": "string" + }, + "online": { + "type": "boolean", + "format": "boolean" + }, + "enabled": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserDevice", + "required": [ + "id", + "ip", + "identifier", + "user_agent", + "online", + "enabled", + "created_at", + "updated_at" + ] + }, + "UserLoginLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "login_ip": { + "type": "string" + }, + "user_agent": { + "type": "string" + }, + "success": { + "type": "boolean", + "format": "boolean" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserLoginLog", + "required": [ + "id", + "user_id", + "login_ip", + "user_agent", + "success", + "timestamp" + ] + }, + "UserSubscribe": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "order_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "subscribe": { + "$ref": "#/definitions/Subscribe" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "expire_time": { + "type": "integer", + "format": "int64" + }, + "finished_at": { + "type": "integer", + "format": "int64" + }, + "reset_time": { + "type": "integer", + "format": "int64" + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "token": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "entitlement_source": { + "type": "string" + }, + "entitlement_owner_user_id": { + "type": "integer", + "format": "int64" + }, + "read_only": { + "type": "boolean", + "format": "boolean" + }, + "is_gift": { + "type": "boolean", + "format": "boolean" + }, + "short": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserSubscribe", + "required": [ + "id", + "user_id", + "order_id", + "subscribe_id", + "subscribe", + "start_time", + "expire_time", + "finished_at", + "reset_time", + "traffic", + "download", + "upload", + "token", + "status", + "entitlement_source", + "entitlement_owner_user_id", + "read_only", + "is_gift", + "short", + "created_at", + "updated_at" + ] + }, + "UserSubscribeInfo": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "order_id": { + "type": "integer", + "format": "int64" + }, + "subscribe_id": { + "type": "integer", + "format": "int64" + }, + "start_time": { + "type": "integer", + "format": "int64" + }, + "expire_time": { + "type": "integer", + "format": "int64" + }, + "finished_at": { + "type": "integer", + "format": "int64" + }, + "reset_time": { + "type": "integer", + "format": "int64" + }, + "traffic": { + "type": "integer", + "format": "int64" + }, + "download": { + "type": "integer", + "format": "int64" + }, + "upload": { + "type": "integer", + "format": "int64" + }, + "token": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "entitlement_source": { + "type": "string" + }, + "entitlement_owner_user_id": { + "type": "integer", + "format": "int64" + }, + "read_only": { + "type": "boolean", + "format": "boolean" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + }, + "is_try_out": { + "type": "boolean", + "format": "boolean" + }, + "nodes": { + "type": "array", + "items": { + "$ref": "#/definitions/UserSubscribeNodeInfo" + } + } + }, + "title": "UserSubscribeInfo", + "required": [ + "id", + "user_id", + "order_id", + "subscribe_id", + "start_time", + "expire_time", + "finished_at", + "reset_time", + "traffic", + "download", + "upload", + "token", + "status", + "entitlement_source", + "entitlement_owner_user_id", + "read_only", + "created_at", + "updated_at", + "is_try_out", + "nodes" + ] + }, + "UserSubscribeLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "user_subscribe_id": { + "type": "integer", + "format": "int64" + }, + "token": { + "type": "string" + }, + "ip": { + "type": "string" + }, + "user_agent": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserSubscribeLog", + "required": [ + "id", + "user_id", + "user_subscribe_id", + "token", + "ip", + "user_agent", + "timestamp" + ] + }, + "UserSubscribeNodeInfo": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "protocols": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "uin16" + }, + "address": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "country": { + "type": "string" + }, + "city": { + "type": "string" + }, + "longitude": { + "type": "string" + }, + "latitude": { + "type": "string" + }, + "latitude_center": { + "type": "string" + }, + "longitude_center": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "UserSubscribeNodeInfo", + "required": [ + "id", + "name", + "uuid", + "protocol", + "protocols", + "port", + "address", + "tags", + "country", + "city", + "longitude", + "latitude", + "latitude_center", + "longitude_center", + "created_at" + ] + }, + "VerifyCodeConfig": { + "type": "object", + "properties": { + "verify_code_expire_time": { + "type": "integer", + "format": "int64" + }, + "verify_code_limit": { + "type": "integer", + "format": "int64" + }, + "verify_code_interval": { + "type": "integer", + "format": "int64" + } + }, + "title": "VerifyCodeConfig", + "required": [ + "verify_code_expire_time", + "verify_code_limit", + "verify_code_interval" + ] + }, + "VerifyConfig": { + "type": "object", + "properties": { + "turnstile_site_key": { + "type": "string" + }, + "turnstile_secret": { + "type": "string" + }, + "enable_login_verify": { + "type": "boolean", + "format": "boolean" + }, + "enable_register_verify": { + "type": "boolean", + "format": "boolean" + }, + "enable_reset_password_verify": { + "type": "boolean", + "format": "boolean" + } + }, + "title": "VerifyConfig", + "required": [ + "turnstile_site_key", + "turnstile_secret", + "enable_login_verify", + "enable_register_verify", + "enable_reset_password_verify" + ] + }, + "VerifyEmailRequest": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "title": "VerifyEmailRequest", + "required": [ + "email", + "code" + ] + }, + "Vless": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "flow": { + "type": "string" + }, + "transport": { + "type": "string" + }, + "transport_config": { + "$ref": "#/definitions/TransportConfig" + }, + "security": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Vless", + "required": [ + "port", + "flow", + "transport", + "transport_config", + "security", + "security_config" + ] + }, + "Vmess": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "transport": { + "type": "string" + }, + "transport_config": { + "$ref": "#/definitions/TransportConfig" + }, + "security": { + "type": "string" + }, + "security_config": { + "$ref": "#/definitions/SecurityConfig" + } + }, + "title": "Vmess", + "required": [ + "port", + "transport", + "transport_config", + "security", + "security_config" + ] + }, + "WeeklyStat": { + "type": "object", + "properties": { + "day": { + "type": "integer", + "format": "int32" + }, + "day_name": { + "type": "string" + }, + "hours": { + "type": "number", + "format": "double" + } + }, + "title": "WeeklyStat", + "required": [ + "day", + "day_name", + "hours" + ] + }, + "WithdrawalLog": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "user_id": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "integer", + "format": "int64" + }, + "content": { + "type": "string" + }, + "status": { + "type": "integer", + "format": "uint8" + }, + "reason": { + "type": "string" + }, + "created_at": { + "type": "integer", + "format": "int64" + }, + "updated_at": { + "type": "integer", + "format": "int64" + } + }, + "title": "WithdrawalLog", + "required": [ + "id", + "user_id", + "amount", + "content", + "status", + "created_at", + "updated_at" + ] + } + }, + "securityDefinitions": { + "apiKey": { + "type": "apiKey", + "description": "Enter JWT Bearer token **_only_**", + "name": "Authorization", + "in": "header" + } + } +}