// Code generated by tools/openapigen. DO NOT EDIT.
export const SCHEMAS: Record<string, unknown> = {
  "AllSetting": {
    "properties": {
      "datepicker": {
        "type": "string"
      },
      "expireDiff": {
        "minimum": 0,
        "type": "integer"
      },
      "externalTrafficInformEnable": {
        "type": "boolean"
      },
      "externalTrafficInformURI": {
        "type": "string"
      },
      "ldapAutoCreate": {
        "type": "boolean"
      },
      "ldapAutoDelete": {
        "type": "boolean"
      },
      "ldapBaseDN": {
        "type": "string"
      },
      "ldapBindDN": {
        "type": "string"
      },
      "ldapDefaultExpiryDays": {
        "minimum": 0,
        "type": "integer"
      },
      "ldapDefaultLimitIP": {
        "minimum": 0,
        "type": "integer"
      },
      "ldapDefaultTotalGB": {
        "minimum": 0,
        "type": "integer"
      },
      "ldapEnable": {
        "type": "boolean"
      },
      "ldapFlagField": {
        "type": "string"
      },
      "ldapHost": {
        "type": "string"
      },
      "ldapInboundTags": {
        "type": "string"
      },
      "ldapInsecureSkipVerify": {
        "type": "boolean"
      },
      "ldapInvertFlag": {
        "type": "boolean"
      },
      "ldapPassword": {
        "type": "string"
      },
      "ldapPort": {
        "maximum": 65535,
        "minimum": 0,
        "type": "integer"
      },
      "ldapSyncCron": {
        "type": "string"
      },
      "ldapTruthyValues": {
        "type": "string"
      },
      "ldapUseTLS": {
        "type": "boolean"
      },
      "ldapUserAttr": {
        "type": "string"
      },
      "ldapUserFilter": {
        "type": "string"
      },
      "ldapVlessField": {
        "type": "string"
      },
      "outboundDownThreshold": {
        "maximum": 100,
        "minimum": 1,
        "type": "integer"
      },
      "pageSize": {
        "maximum": 1000,
        "minimum": 0,
        "type": "integer"
      },
      "panelOutbound": {
        "type": "string"
      },
      "remarkTemplate": {
        "type": "string"
      },
      "restartXrayOnClientDisable": {
        "type": "boolean"
      },
      "sessionMaxAge": {
        "maximum": 525600,
        "minimum": 1,
        "type": "integer"
      },
      "smtpCpu": {
        "maximum": 100,
        "minimum": 0,
        "type": "integer"
      },
      "smtpEnable": {
        "type": "boolean"
      },
      "smtpEnabledEvents": {
        "type": "string"
      },
      "smtpEncryptionType": {
        "type": "string"
      },
      "smtpFrom": {
        "type": "string"
      },
      "smtpFromName": {
        "type": "string"
      },
      "smtpHost": {
        "type": "string"
      },
      "smtpMemory": {
        "maximum": 100,
        "minimum": 0,
        "type": "integer"
      },
      "smtpPassword": {
        "type": "string"
      },
      "smtpPort": {
        "maximum": 65535,
        "minimum": 1,
        "type": "integer"
      },
      "smtpTo": {
        "type": "string"
      },
      "smtpUsername": {
        "type": "string"
      },
      "subAnnounce": {
        "type": "string"
      },
      "subCertFile": {
        "type": "string"
      },
      "subClashAutoDetect": {
        "type": "boolean"
      },
      "subClashEnable": {
        "type": "boolean"
      },
      "subClashEnableRouting": {
        "type": "boolean"
      },
      "subClashPath": {
        "type": "string"
      },
      "subClashRules": {
        "type": "string"
      },
      "subClashURI": {
        "type": "string"
      },
      "subClashUserAgentRegex": {
        "type": "string"
      },
      "subDomain": {
        "type": "string"
      },
      "subEnable": {
        "type": "boolean"
      },
      "subEnableRouting": {
        "type": "boolean"
      },
      "subEncrypt": {
        "type": "boolean"
      },
      "subHideSettings": {
        "type": "boolean"
      },
      "subIncyEnableRouting": {
        "type": "boolean"
      },
      "subIncyRoutingRules": {
        "type": "string"
      },
      "subJsonAlwaysArray": {
        "type": "boolean"
      },
      "subJsonAutoDetect": {
        "type": "boolean"
      },
      "subJsonEnable": {
        "type": "boolean"
      },
      "subJsonFinalMask": {
        "type": "string"
      },
      "subJsonMux": {
        "type": "string"
      },
      "subJsonPath": {
        "type": "string"
      },
      "subJsonRules": {
        "type": "string"
      },
      "subJsonURI": {
        "type": "string"
      },
      "subJsonUserAgentRegex": {
        "type": "string"
      },
      "subKeyFile": {
        "type": "string"
      },
      "subListen": {
        "type": "string"
      },
      "subPath": {
        "type": "string"
      },
      "subPort": {
        "maximum": 65535,
        "minimum": 1,
        "type": "integer"
      },
      "subProfileUrl": {
        "type": "string"
      },
      "subRoutingRules": {
        "type": "string"
      },
      "subSupportUrl": {
        "type": "string"
      },
      "subThemeDir": {
        "type": "string"
      },
      "subTitle": {
        "type": "string"
      },
      "subURI": {
        "type": "string"
      },
      "subUpdates": {
        "maximum": 525600,
        "minimum": 0,
        "type": "integer"
      },
      "tgBotAPIServer": {
        "type": "string"
      },
      "tgBotBackup": {
        "type": "boolean"
      },
      "tgBotChatId": {
        "type": "string"
      },
      "tgBotEnable": {
        "type": "boolean"
      },
      "tgBotProxy": {
        "type": "string"
      },
      "tgBotToken": {
        "type": "string"
      },
      "tgCpu": {
        "maximum": 100,
        "minimum": 0,
        "type": "integer"
      },
      "tgEnabledEvents": {
        "type": "string"
      },
      "tgLang": {
        "type": "string"
      },
      "tgMemory": {
        "maximum": 100,
        "minimum": 0,
        "type": "integer"
      },
      "tgRunTime": {
        "type": "string"
      },
      "timeLocation": {
        "type": "string"
      },
      "trafficDiff": {
        "maximum": 100,
        "minimum": 0,
        "type": "integer"
      },
      "trustedProxyCIDRs": {
        "type": "string"
      },
      "twoFactorEnable": {
        "type": "boolean"
      },
      "twoFactorToken": {
        "type": "string"
      },
      "warpUpdateInterval": {
        "minimum": 0,
        "type": "integer"
      },
      "webBasePath": {
        "type": "string"
      },
      "webCertFile": {
        "type": "string"
      },
      "webDomain": {
        "type": "string"
      },
      "webKeyFile": {
        "type": "string"
      },
      "webListen": {
        "type": "string"
      },
      "webPort": {
        "maximum": 65535,
        "minimum": 1,
        "type": "integer"
      }
    },
    "required": [
      "datepicker",
      "expireDiff",
      "externalTrafficInformEnable",
      "externalTrafficInformURI",
      "ldapAutoCreate",
      "ldapAutoDelete",
      "ldapBaseDN",
      "ldapBindDN",
      "ldapDefaultExpiryDays",
      "ldapDefaultLimitIP",
      "ldapDefaultTotalGB",
      "ldapEnable",
      "ldapFlagField",
      "ldapHost",
      "ldapInboundTags",
      "ldapInsecureSkipVerify",
      "ldapInvertFlag",
      "ldapPassword",
      "ldapPort",
      "ldapSyncCron",
      "ldapTruthyValues",
      "ldapUseTLS",
      "ldapUserAttr",
      "ldapUserFilter",
      "ldapVlessField",
      "outboundDownThreshold",
      "pageSize",
      "panelOutbound",
      "remarkTemplate",
      "restartXrayOnClientDisable",
      "sessionMaxAge",
      "smtpCpu",
      "smtpEnable",
      "smtpEnabledEvents",
      "smtpEncryptionType",
      "smtpFrom",
      "smtpFromName",
      "smtpHost",
      "smtpMemory",
      "smtpPassword",
      "smtpPort",
      "smtpTo",
      "smtpUsername",
      "subAnnounce",
      "subCertFile",
      "subClashAutoDetect",
      "subClashEnable",
      "subClashEnableRouting",
      "subClashPath",
      "subClashRules",
      "subClashURI",
      "subClashUserAgentRegex",
      "subDomain",
      "subEnable",
      "subEnableRouting",
      "subEncrypt",
      "subHideSettings",
      "subIncyEnableRouting",
      "subIncyRoutingRules",
      "subJsonAlwaysArray",
      "subJsonAutoDetect",
      "subJsonEnable",
      "subJsonFinalMask",
      "subJsonMux",
      "subJsonPath",
      "subJsonRules",
      "subJsonURI",
      "subJsonUserAgentRegex",
      "subKeyFile",
      "subListen",
      "subPath",
      "subPort",
      "subProfileUrl",
      "subRoutingRules",
      "subSupportUrl",
      "subThemeDir",
      "subTitle",
      "subURI",
      "subUpdates",
      "tgBotAPIServer",
      "tgBotBackup",
      "tgBotChatId",
      "tgBotEnable",
      "tgBotProxy",
      "tgBotToken",
      "tgCpu",
      "tgEnabledEvents",
      "tgLang",
      "tgMemory",
      "tgRunTime",
      "timeLocation",
      "trafficDiff",
      "trustedProxyCIDRs",
      "twoFactorEnable",
      "twoFactorToken",
      "warpUpdateInterval",
      "webBasePath",
      "webCertFile",
      "webDomain",
      "webKeyFile",
      "webListen",
      "webPort"
    ],
    "type": "object"
  },
  "AllSettingView": {
    "properties": {
      "datepicker": {
        "type": "string"
      },
      "expireDiff": {
        "minimum": 0,
        "type": "integer"
      },
      "externalTrafficInformEnable": {
        "type": "boolean"
      },
      "externalTrafficInformURI": {
        "type": "string"
      },
      "hasApiToken": {
        "type": "boolean"
      },
      "hasLdapPassword": {
        "type": "boolean"
      },
      "hasNordSecret": {
        "type": "boolean"
      },
      "hasSmtpPassword": {
        "type": "boolean"
      },
      "hasTgBotToken": {
        "type": "boolean"
      },
      "hasTwoFactorToken": {
        "type": "boolean"
      },
      "hasWarpSecret": {
        "type": "boolean"
      },
      "ldapAutoCreate": {
        "type": "boolean"
      },
      "ldapAutoDelete": {
        "type": "boolean"
      },
      "ldapBaseDN": {
        "type": "string"
      },
      "ldapBindDN": {
        "type": "string"
      },
      "ldapDefaultExpiryDays": {
        "minimum": 0,
        "type": "integer"
      },
      "ldapDefaultLimitIP": {
        "minimum": 0,
        "type": "integer"
      },
      "ldapDefaultTotalGB": {
        "minimum": 0,
        "type": "integer"
      },
      "ldapEnable": {
        "type": "boolean"
      },
      "ldapFlagField": {
        "type": "string"
      },
      "ldapHost": {
        "type": "string"
      },
      "ldapInboundTags": {
        "type": "string"
      },
      "ldapInsecureSkipVerify": {
        "type": "boolean"
      },
      "ldapInvertFlag": {
        "type": "boolean"
      },
      "ldapPassword": {
        "type": "string"
      },
      "ldapPort": {
        "maximum": 65535,
        "minimum": 0,
        "type": "integer"
      },
      "ldapSyncCron": {
        "type": "string"
      },
      "ldapTruthyValues": {
        "type": "string"
      },
      "ldapUseTLS": {
        "type": "boolean"
      },
      "ldapUserAttr": {
        "type": "string"
      },
      "ldapUserFilter": {
        "type": "string"
      },
      "ldapVlessField": {
        "type": "string"
      },
      "outboundDownThreshold": {
        "maximum": 100,
        "minimum": 1,
        "type": "integer"
      },
      "pageSize": {
        "maximum": 1000,
        "minimum": 0,
        "type": "integer"
      },
      "panelOutbound": {
        "type": "string"
      },
      "remarkTemplate": {
        "type": "string"
      },
      "restartXrayOnClientDisable": {
        "type": "boolean"
      },
      "sessionMaxAge": {
        "maximum": 525600,
        "minimum": 1,
        "type": "integer"
      },
      "smtpCpu": {
        "maximum": 100,
        "minimum": 0,
        "type": "integer"
      },
      "smtpEnable": {
        "type": "boolean"
      },
      "smtpEnabledEvents": {
        "type": "string"
      },
      "smtpEncryptionType": {
        "type": "string"
      },
      "smtpFrom": {
        "type": "string"
      },
      "smtpFromName": {
        "type": "string"
      },
      "smtpHost": {
        "type": "string"
      },
      "smtpMemory": {
        "maximum": 100,
        "minimum": 0,
        "type": "integer"
      },
      "smtpPassword": {
        "type": "string"
      },
      "smtpPort": {
        "maximum": 65535,
        "minimum": 1,
        "type": "integer"
      },
      "smtpTo": {
        "type": "string"
      },
      "smtpUsername": {
        "type": "string"
      },
      "subAnnounce": {
        "type": "string"
      },
      "subCertFile": {
        "type": "string"
      },
      "subClashAutoDetect": {
        "type": "boolean"
      },
      "subClashEnable": {
        "type": "boolean"
      },
      "subClashEnableRouting": {
        "type": "boolean"
      },
      "subClashPath": {
        "type": "string"
      },
      "subClashRules": {
        "type": "string"
      },
      "subClashURI": {
        "type": "string"
      },
      "subClashUserAgentRegex": {
        "type": "string"
      },
      "subDomain": {
        "type": "string"
      },
      "subEnable": {
        "type": "boolean"
      },
      "subEnableRouting": {
        "type": "boolean"
      },
      "subEncrypt": {
        "type": "boolean"
      },
      "subHideSettings": {
        "type": "boolean"
      },
      "subIncyEnableRouting": {
        "type": "boolean"
      },
      "subIncyRoutingRules": {
        "type": "string"
      },
      "subJsonAlwaysArray": {
        "type": "boolean"
      },
      "subJsonAutoDetect": {
        "type": "boolean"
      },
      "subJsonEnable": {
        "type": "boolean"
      },
      "subJsonFinalMask": {
        "type": "string"
      },
      "subJsonMux": {
        "type": "string"
      },
      "subJsonPath": {
        "type": "string"
      },
      "subJsonRules": {
        "type": "string"
      },
      "subJsonURI": {
        "type": "string"
      },
      "subJsonUserAgentRegex": {
        "type": "string"
      },
      "subKeyFile": {
        "type": "string"
      },
      "subListen": {
        "type": "string"
      },
      "subPath": {
        "type": "string"
      },
      "subPort": {
        "maximum": 65535,
        "minimum": 1,
        "type": "integer"
      },
      "subProfileUrl": {
        "type": "string"
      },
      "subRoutingRules": {
        "type": "string"
      },
      "subSupportUrl": {
        "type": "string"
      },
      "subThemeDir": {
        "type": "string"
      },
      "subTitle": {
        "type": "string"
      },
      "subURI": {
        "type": "string"
      },
      "subUpdates": {
        "maximum": 525600,
        "minimum": 0,
        "type": "integer"
      },
      "tgBotAPIServer": {
        "type": "string"
      },
      "tgBotBackup": {
        "type": "boolean"
      },
      "tgBotChatId": {
        "type": "string"
      },
      "tgBotEnable": {
        "type": "boolean"
      },
      "tgBotProxy": {
        "type": "string"
      },
      "tgBotToken": {
        "type": "string"
      },
      "tgCpu": {
        "maximum": 100,
        "minimum": 0,
        "type": "integer"
      },
      "tgEnabledEvents": {
        "type": "string"
      },
      "tgLang": {
        "type": "string"
      },
      "tgMemory": {
        "maximum": 100,
        "minimum": 0,
        "type": "integer"
      },
      "tgRunTime": {
        "type": "string"
      },
      "timeLocation": {
        "type": "string"
      },
      "trafficDiff": {
        "maximum": 100,
        "minimum": 0,
        "type": "integer"
      },
      "trustedProxyCIDRs": {
        "type": "string"
      },
      "twoFactorEnable": {
        "type": "boolean"
      },
      "twoFactorToken": {
        "type": "string"
      },
      "warpUpdateInterval": {
        "minimum": 0,
        "type": "integer"
      },
      "webBasePath": {
        "type": "string"
      },
      "webCertFile": {
        "type": "string"
      },
      "webDomain": {
        "type": "string"
      },
      "webKeyFile": {
        "type": "string"
      },
      "webListen": {
        "type": "string"
      },
      "webPort": {
        "maximum": 65535,
        "minimum": 1,
        "type": "integer"
      }
    },
    "required": [
      "datepicker",
      "expireDiff",
      "externalTrafficInformEnable",
      "externalTrafficInformURI",
      "hasApiToken",
      "hasLdapPassword",
      "hasNordSecret",
      "hasSmtpPassword",
      "hasTgBotToken",
      "hasTwoFactorToken",
      "hasWarpSecret",
      "ldapAutoCreate",
      "ldapAutoDelete",
      "ldapBaseDN",
      "ldapBindDN",
      "ldapDefaultExpiryDays",
      "ldapDefaultLimitIP",
      "ldapDefaultTotalGB",
      "ldapEnable",
      "ldapFlagField",
      "ldapHost",
      "ldapInboundTags",
      "ldapInsecureSkipVerify",
      "ldapInvertFlag",
      "ldapPassword",
      "ldapPort",
      "ldapSyncCron",
      "ldapTruthyValues",
      "ldapUseTLS",
      "ldapUserAttr",
      "ldapUserFilter",
      "ldapVlessField",
      "outboundDownThreshold",
      "pageSize",
      "panelOutbound",
      "remarkTemplate",
      "restartXrayOnClientDisable",
      "sessionMaxAge",
      "smtpCpu",
      "smtpEnable",
      "smtpEnabledEvents",
      "smtpEncryptionType",
      "smtpFrom",
      "smtpFromName",
      "smtpHost",
      "smtpMemory",
      "smtpPassword",
      "smtpPort",
      "smtpTo",
      "smtpUsername",
      "subAnnounce",
      "subCertFile",
      "subClashAutoDetect",
      "subClashEnable",
      "subClashEnableRouting",
      "subClashPath",
      "subClashRules",
      "subClashURI",
      "subClashUserAgentRegex",
      "subDomain",
      "subEnable",
      "subEnableRouting",
      "subEncrypt",
      "subHideSettings",
      "subIncyEnableRouting",
      "subIncyRoutingRules",
      "subJsonAlwaysArray",
      "subJsonAutoDetect",
      "subJsonEnable",
      "subJsonFinalMask",
      "subJsonMux",
      "subJsonPath",
      "subJsonRules",
      "subJsonURI",
      "subJsonUserAgentRegex",
      "subKeyFile",
      "subListen",
      "subPath",
      "subPort",
      "subProfileUrl",
      "subRoutingRules",
      "subSupportUrl",
      "subThemeDir",
      "subTitle",
      "subURI",
      "subUpdates",
      "tgBotAPIServer",
      "tgBotBackup",
      "tgBotChatId",
      "tgBotEnable",
      "tgBotProxy",
      "tgBotToken",
      "tgCpu",
      "tgEnabledEvents",
      "tgLang",
      "tgMemory",
      "tgRunTime",
      "timeLocation",
      "trafficDiff",
      "trustedProxyCIDRs",
      "twoFactorEnable",
      "twoFactorToken",
      "warpUpdateInterval",
      "webBasePath",
      "webCertFile",
      "webDomain",
      "webKeyFile",
      "webListen",
      "webPort"
    ],
    "type": "object"
  },
  "ApiToken": {
    "properties": {
      "createdAt": {
        "format": "int64",
        "type": "integer"
      },
      "enabled": {
        "type": "boolean"
      },
      "id": {
        "type": "integer"
      },
      "name": {
        "type": "string"
      },
      "token": {
        "description": "SHA-256 hash; the plaintext is shown only once at creation",
        "type": "string"
      }
    },
    "required": [
      "createdAt",
      "enabled",
      "id",
      "name",
      "token"
    ],
    "type": "object"
  },
  "ApiTokenView": {
    "properties": {
      "createdAt": {
        "example": 1736000000,
        "format": "int64",
        "type": "integer"
      },
      "enabled": {
        "example": true,
        "type": "boolean"
      },
      "id": {
        "example": 2,
        "type": "integer"
      },
      "name": {
        "example": "central-panel-a",
        "type": "string"
      },
      "token": {
        "example": "new-token-string",
        "type": "string"
      }
    },
    "required": [
      "createdAt",
      "enabled",
      "id",
      "name"
    ],
    "type": "object"
  },
  "Client": {
    "description": "Client represents a client configuration for Xray inbounds with traffic limits and settings.",
    "properties": {
      "adTag": {
        "example": "0123456789abcdef0123456789abcdef",
        "type": "string"
      },
      "allowedIPs": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "auth": {
        "description": "Auth password (Hysteria)",
        "type": "string"
      },
      "comment": {
        "description": "Client comment",
        "type": "string"
      },
      "created_at": {
        "description": "Creation timestamp",
        "format": "int64",
        "type": "integer"
      },
      "email": {
        "description": "Client email identifier",
        "type": "string"
      },
      "enable": {
        "description": "Whether the client is enabled",
        "type": "boolean"
      },
      "expiryTime": {
        "description": "Expiration timestamp",
        "format": "int64",
        "type": "integer"
      },
      "flow": {
        "description": "Flow control (XTLS)",
        "type": "string"
      },
      "group": {
        "description": "Logical grouping label",
        "type": "string"
      },
      "id": {
        "description": "Unique client identifier",
        "type": "string"
      },
      "keepAlive": {
        "type": "integer"
      },
      "limitIp": {
        "description": "IP limit for this client",
        "type": "integer"
      },
      "password": {
        "description": "Client password",
        "type": "string"
      },
      "preSharedKey": {
        "type": "string"
      },
      "privateKey": {
        "type": "string"
      },
      "publicKey": {
        "type": "string"
      },
      "reset": {
        "description": "Reset period in days",
        "type": "integer"
      },
      "reverse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ClientReverse"
          }
        ],
        "description": "VLESS simple reverse proxy settings",
        "nullable": true
      },
      "secret": {
        "example": "ee1234567890abcdef1234567890abcd7777772e636c6f7564666c6172652e636f6d",
        "type": "string"
      },
      "security": {
        "description": "Security method (e.g., \"auto\", \"aes-128-gcm\")",
        "type": "string"
      },
      "subId": {
        "description": "Subscription identifier",
        "type": "string"
      },
      "tgId": {
        "description": "Telegram user ID for notifications",
        "format": "int64",
        "type": "integer"
      },
      "totalGB": {
        "description": "Total traffic limit in GB",
        "format": "int64",
        "type": "integer"
      },
      "updated_at": {
        "description": "Last update timestamp",
        "format": "int64",
        "type": "integer"
      }
    },
    "required": [
      "comment",
      "email",
      "enable",
      "expiryTime",
      "limitIp",
      "reset",
      "security",
      "subId",
      "tgId",
      "totalGB"
    ],
    "type": "object"
  },
  "ClientInbound": {
    "properties": {
      "clientId": {
        "type": "integer"
      },
      "createdAt": {
        "format": "int64",
        "type": "integer"
      },
      "flowOverride": {
        "type": "string"
      },
      "inboundId": {
        "type": "integer"
      }
    },
    "required": [
      "clientId",
      "createdAt",
      "flowOverride",
      "inboundId"
    ],
    "type": "object"
  },
  "ClientRecord": {
    "properties": {
      "adTag": {
        "type": "string"
      },
      "allowedIPs": {
        "type": "string"
      },
      "auth": {
        "type": "string"
      },
      "comment": {
        "type": "string"
      },
      "createdAt": {
        "format": "int64",
        "type": "integer"
      },
      "email": {
        "type": "string"
      },
      "enable": {
        "type": "boolean"
      },
      "expiryTime": {
        "format": "int64",
        "type": "integer"
      },
      "flow": {
        "type": "string"
      },
      "group": {
        "type": "string"
      },
      "id": {
        "type": "integer"
      },
      "keepAlive": {
        "type": "integer"
      },
      "limitIp": {
        "type": "integer"
      },
      "password": {
        "type": "string"
      },
      "preSharedKey": {
        "type": "string"
      },
      "privateKey": {
        "type": "string"
      },
      "publicKey": {
        "type": "string"
      },
      "reset": {
        "type": "integer"
      },
      "reverse": {},
      "secret": {
        "type": "string"
      },
      "security": {
        "type": "string"
      },
      "subId": {
        "type": "string"
      },
      "tgId": {
        "format": "int64",
        "type": "integer"
      },
      "totalGB": {
        "format": "int64",
        "type": "integer"
      },
      "updatedAt": {
        "format": "int64",
        "type": "integer"
      },
      "uuid": {
        "type": "string"
      }
    },
    "required": [
      "adTag",
      "allowedIPs",
      "auth",
      "comment",
      "createdAt",
      "email",
      "enable",
      "expiryTime",
      "flow",
      "group",
      "id",
      "keepAlive",
      "limitIp",
      "password",
      "preSharedKey",
      "privateKey",
      "publicKey",
      "reset",
      "reverse",
      "secret",
      "security",
      "subId",
      "tgId",
      "totalGB",
      "updatedAt",
      "uuid"
    ],
    "type": "object"
  },
  "ClientReverse": {
    "properties": {
      "tag": {
        "type": "string"
      }
    },
    "required": [
      "tag"
    ],
    "type": "object"
  },
  "ClientTraffic": {
    "description": "ClientTraffic represents traffic statistics and limits for a specific client.\nIt tracks upload/download usage, expiry times, and online status for inbound clients.",
    "properties": {
      "down": {
        "example": 2097152,
        "format": "int64",
        "type": "integer"
      },
      "email": {
        "example": "user1",
        "type": "string"
      },
      "enable": {
        "example": true,
        "type": "boolean"
      },
      "expiryTime": {
        "example": 1735689600000,
        "format": "int64",
        "type": "integer"
      },
      "id": {
        "example": 14825,
        "type": "integer"
      },
      "inboundId": {
        "example": 1,
        "type": "integer"
      },
      "lastOnline": {
        "example": 1735680000000,
        "format": "int64",
        "type": "integer"
      },
      "reset": {
        "example": 0,
        "type": "integer"
      },
      "subId": {
        "example": "i7tvdpeffi0hvvf1",
        "type": "string"
      },
      "total": {
        "example": 10737418240,
        "format": "int64",
        "type": "integer"
      },
      "up": {
        "example": 1048576,
        "format": "int64",
        "type": "integer"
      },
      "uuid": {
        "example": "e18c9a96-71bf-48d4-933f-8b9a46d4290c",
        "type": "string"
      }
    },
    "required": [
      "down",
      "email",
      "enable",
      "expiryTime",
      "id",
      "inboundId",
      "lastOnline",
      "reset",
      "subId",
      "total",
      "up",
      "uuid"
    ],
    "type": "object"
  },
  "FallbackParentInfo": {
    "description": "FallbackParentInfo carries everything the frontend needs to rewrite a\nchild inbound's client link: where to connect (the master's address\nand port) and which path matched on the master's fallbacks array.\nThe frontend already has the master inbound in its dbInbounds list,\nso we only ship identifiers + the match path here.",
    "properties": {
      "masterId": {
        "type": "integer"
      },
      "path": {
        "type": "string"
      }
    },
    "required": [
      "masterId"
    ],
    "type": "object"
  },
  "HistoryOfSeeders": {
    "description": "HistoryOfSeeders tracks which database seeders have been executed to prevent re-running.",
    "properties": {
      "id": {
        "type": "integer"
      },
      "seederName": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "seederName"
    ],
    "type": "object"
  },
  "Host": {
    "properties": {
      "address": {
        "example": "cdn.example.com",
        "type": "string"
      },
      "allowInsecure": {
        "type": "boolean"
      },
      "alpn": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "createdAt": {
        "format": "int64",
        "type": "integer"
      },
      "echConfigList": {
        "type": "string"
      },
      "excludeFromSubTypes": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "finalMask": {
        "description": "FinalMask is a JSON object of xray finalmask masks (tcp/udp/quicParams),\nmerged into this host's JSON-subscription stream. Empty = no override.",
        "type": "string"
      },
      "fingerprint": {
        "type": "string"
      },
      "groupId": {
        "type": "string"
      },
      "hostHeader": {
        "type": "string"
      },
      "id": {
        "example": 1,
        "type": "integer"
      },
      "inboundId": {
        "example": 1,
        "type": "integer"
      },
      "isDisabled": {
        "type": "boolean"
      },
      "isHidden": {
        "type": "boolean"
      },
      "keepSniBlank": {
        "type": "boolean"
      },
      "mihomoIpVersion": {
        "enum": [
          "dual",
          "ipv4",
          "ipv6",
          "ipv4-prefer",
          "ipv6-prefer"
        ],
        "type": "string"
      },
      "mihomoX25519": {
        "type": "boolean"
      },
      "muxParams": {},
      "nodeGuids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "overrideSniFromAddress": {
        "type": "boolean"
      },
      "path": {
        "type": "string"
      },
      "pinnedPeerCertSha256": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "port": {
        "example": 8443,
        "maximum": 65535,
        "minimum": 0,
        "type": "integer"
      },
      "remark": {
        "example": "cdn-front",
        "maxLength": 256,
        "type": "string"
      },
      "security": {
        "enum": [
          "same",
          "tls",
          "none",
          "reality"
        ],
        "example": "same",
        "type": "string"
      },
      "serverDescription": {
        "maxLength": 64,
        "type": "string"
      },
      "shuffleHost": {
        "type": "boolean"
      },
      "sni": {
        "type": "string"
      },
      "sockoptParams": {},
      "sortOrder": {
        "type": "integer"
      },
      "tags": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "updatedAt": {
        "format": "int64",
        "type": "integer"
      },
      "verifyPeerCertByName": {
        "type": "string"
      },
      "vlessRoute": {
        "description": "Single VLESS route value (0-65535) baked into the subscription UUID's 3rd\ngroup (bytes 6-7), which xray reads via net.PortFromBytes(id[6:8]). Empty = none.",
        "example": "443",
        "type": "string"
      }
    },
    "required": [
      "address",
      "allowInsecure",
      "alpn",
      "createdAt",
      "echConfigList",
      "excludeFromSubTypes",
      "finalMask",
      "fingerprint",
      "groupId",
      "hostHeader",
      "id",
      "inboundId",
      "isDisabled",
      "isHidden",
      "keepSniBlank",
      "mihomoIpVersion",
      "mihomoX25519",
      "muxParams",
      "overrideSniFromAddress",
      "path",
      "pinnedPeerCertSha256",
      "port",
      "remark",
      "security",
      "serverDescription",
      "shuffleHost",
      "sni",
      "sockoptParams",
      "sortOrder",
      "tags",
      "updatedAt",
      "verifyPeerCertByName",
      "vlessRoute"
    ],
    "type": "object"
  },
  "HostGroup": {
    "properties": {
      "allowInsecure": {
        "type": "boolean"
      },
      "alpn": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "echConfigList": {
        "type": "string"
      },
      "excludeFromSubTypes": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "finalMask": {
        "type": "string"
      },
      "fingerprint": {
        "type": "string"
      },
      "groupId": {
        "type": "string"
      },
      "hostHeader": {
        "type": "string"
      },
      "hosts": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "inboundIds": {
        "items": {
          "type": "integer"
        },
        "type": "array"
      },
      "isDisabled": {
        "type": "boolean"
      },
      "isHidden": {
        "type": "boolean"
      },
      "keepSniBlank": {
        "type": "boolean"
      },
      "mihomoIpVersion": {
        "enum": [
          "dual",
          "ipv4",
          "ipv6",
          "ipv4-prefer",
          "ipv6-prefer"
        ],
        "type": "string"
      },
      "mihomoX25519": {
        "type": "boolean"
      },
      "muxParams": {
        "type": "string"
      },
      "nodeGuids": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "overrideSniFromAddress": {
        "type": "boolean"
      },
      "path": {
        "type": "string"
      },
      "pinnedPeerCertSha256": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "port": {
        "maximum": 65535,
        "minimum": 0,
        "type": "integer"
      },
      "remark": {
        "maxLength": 256,
        "type": "string"
      },
      "security": {
        "enum": [
          "same",
          "tls",
          "none",
          "reality"
        ],
        "type": "string"
      },
      "serverDescription": {
        "maxLength": 64,
        "type": "string"
      },
      "shuffleHost": {
        "type": "boolean"
      },
      "sni": {
        "type": "string"
      },
      "sockoptParams": {
        "type": "string"
      },
      "sortOrder": {
        "type": "integer"
      },
      "tags": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "verifyPeerCertByName": {
        "type": "string"
      },
      "vlessRoute": {
        "type": "string"
      }
    },
    "required": [
      "allowInsecure",
      "alpn",
      "echConfigList",
      "excludeFromSubTypes",
      "finalMask",
      "fingerprint",
      "groupId",
      "hostHeader",
      "hosts",
      "inboundIds",
      "isDisabled",
      "isHidden",
      "keepSniBlank",
      "mihomoIpVersion",
      "mihomoX25519",
      "muxParams",
      "nodeGuids",
      "overrideSniFromAddress",
      "path",
      "pinnedPeerCertSha256",
      "port",
      "remark",
      "security",
      "serverDescription",
      "shuffleHost",
      "sni",
      "sockoptParams",
      "sortOrder",
      "tags",
      "verifyPeerCertByName",
      "vlessRoute"
    ],
    "type": "object"
  },
  "Inbound": {
    "description": "Inbound represents an Xray inbound configuration with traffic statistics and settings.",
    "properties": {
      "clientStats": {
        "description": "Client traffic statistics",
        "items": {
          "$ref": "#/components/schemas/ClientTraffic"
        },
        "type": "array"
      },
      "down": {
        "description": "Download traffic in bytes",
        "format": "int64",
        "type": "integer"
      },
      "enable": {
        "description": "Whether the inbound is enabled",
        "example": true,
        "type": "boolean"
      },
      "expiryTime": {
        "description": "Expiration timestamp",
        "format": "int64",
        "type": "integer"
      },
      "fallbackParent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FallbackParentInfo"
          }
        ],
        "description": "FallbackParent is populated by the API layer when this inbound is\nattached as a fallback child of a VLESS/Trojan TCP-TLS master.\nThe frontend uses it to rewrite client-share links so they advertise\nthe master's externally reachable endpoint instead of the child's\nloopback listen. Not persisted.",
        "nullable": true
      },
      "id": {
        "description": "Unique identifier",
        "example": 1,
        "type": "integer"
      },
      "lastTrafficResetTime": {
        "description": "Last traffic reset timestamp",
        "format": "int64",
        "type": "integer"
      },
      "listen": {
        "description": "Xray configuration fields",
        "type": "string"
      },
      "nodeId": {
        "nullable": true,
        "type": "integer"
      },
      "originNodeGuid": {
        "description": "OriginNodeGuid is the panelGuid of the node that physically hosts this\ninbound, propagated up across hops (#4983). Empty for an inbound that\nlives on this panel's own xray; set to the originating node's GUID when\nthe inbound was synced from a node (kept as-is across further hops). Lets\nthe master attribute a deeply nested inbound to the real node instead of\nthe intermediate one it was fetched through.",
        "type": "string"
      },
      "port": {
        "example": 443,
        "maximum": 65535,
        "minimum": 0,
        "type": "integer"
      },
      "protocol": {
        "enum": [
          "vmess",
          "vless",
          "trojan",
          "shadowsocks",
          "wireguard",
          "hysteria",
          "http",
          "mixed",
          "tunnel",
          "tun",
          "mtproto",
          "amneziawg"
        ],
        "example": "vless",
        "type": "string"
      },
      "remark": {
        "description": "Human-readable remark",
        "example": "VLESS-443",
        "type": "string"
      },
      "settings": {},
      "shareAddr": {
        "type": "string"
      },
      "shareAddrStrategy": {
        "enum": [
          "node",
          "listen",
          "custom"
        ],
        "type": "string"
      },
      "sniffing": {},
      "streamSettings": {},
      "subSortIndex": {
        "description": "1-based sort order of this inbound's links in subscription output only (lower first; ties by id)",
        "example": 1,
        "minimum": 1,
        "type": "integer"
      },
      "tag": {
        "example": "in-443-tcp",
        "type": "string"
      },
      "total": {
        "description": "Total traffic limit in bytes",
        "format": "int64",
        "type": "integer"
      },
      "trafficReset": {
        "description": "Traffic reset schedule",
        "enum": [
          "never",
          "hourly",
          "daily",
          "weekly",
          "monthly"
        ],
        "type": "string"
      },
      "up": {
        "description": "Upload traffic in bytes",
        "format": "int64",
        "type": "integer"
      }
    },
    "required": [
      "clientStats",
      "down",
      "enable",
      "expiryTime",
      "id",
      "lastTrafficResetTime",
      "listen",
      "port",
      "protocol",
      "remark",
      "settings",
      "shareAddr",
      "shareAddrStrategy",
      "sniffing",
      "streamSettings",
      "subSortIndex",
      "tag",
      "total",
      "trafficReset",
      "up"
    ],
    "type": "object"
  },
  "InboundClientIps": {
    "description": "InboundClientIps stores IP addresses associated with inbound clients for access control.",
    "properties": {
      "clientEmail": {
        "type": "string"
      },
      "id": {
        "type": "integer"
      },
      "ips": {}
    },
    "required": [
      "clientEmail",
      "id",
      "ips"
    ],
    "type": "object"
  },
  "InboundFallback": {
    "properties": {
      "alpn": {
        "type": "string"
      },
      "childId": {
        "type": "integer"
      },
      "dest": {
        "type": "string"
      },
      "id": {
        "type": "integer"
      },
      "masterId": {
        "type": "integer"
      },
      "name": {
        "type": "string"
      },
      "path": {
        "type": "string"
      },
      "sortOrder": {
        "type": "integer"
      },
      "xver": {
        "type": "integer"
      }
    },
    "required": [
      "alpn",
      "childId",
      "dest",
      "id",
      "masterId",
      "name",
      "path",
      "sortOrder",
      "xver"
    ],
    "type": "object"
  },
  "InboundOption": {
    "properties": {
      "awgServer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ServerSettings"
          }
        ],
        "description": "AwgServer carries the full AmneziaWG server block (keys, subnet,\nobfuscation params) so the clients page can render a downloadable\nper-client .conf without a second round trip.",
        "nullable": true
      },
      "enable": {
        "example": true,
        "type": "boolean"
      },
      "id": {
        "example": 1,
        "type": "integer"
      },
      "listen": {
        "type": "string"
      },
      "mtprotoDomain": {
        "type": "string"
      },
      "nodeAddress": {
        "description": "Share-host resolution inputs, mirroring the subscription's\nresolveInboundAddress so the clients page renders a node-managed WireGuard\nEndpoint that points at the node, not the master panel. NodeAddress is the\nhosting node's externally reachable address (empty for this panel's own\ninbounds); Listen and ShareAddrStrategy/ShareAddr feed the same\nnode→listen→custom fallback the share/QR links already use.",
        "type": "string"
      },
      "nodeId": {
        "description": "Hosting node; nil for this panel's own inbounds. Lets the clients\npage map a node filter onto inbound IDs (#4997).",
        "nullable": true,
        "type": "integer"
      },
      "port": {
        "example": 443,
        "type": "integer"
      },
      "protocol": {
        "example": "vless",
        "type": "string"
      },
      "remark": {
        "example": "VLESS-443",
        "type": "string"
      },
      "shareAddr": {
        "type": "string"
      },
      "shareAddrStrategy": {
        "type": "string"
      },
      "ssMethod": {
        "type": "string"
      },
      "tag": {
        "example": "in-443-tcp",
        "type": "string"
      },
      "tlsFlowCapable": {
        "example": true,
        "type": "boolean"
      },
      "wgDns": {
        "type": "string"
      },
      "wgMtu": {
        "type": "integer"
      },
      "wgPublicKey": {
        "type": "string"
      }
    },
    "required": [
      "enable",
      "id",
      "port",
      "protocol",
      "remark",
      "ssMethod",
      "tag",
      "tlsFlowCapable"
    ],
    "type": "object"
  },
  "Msg": {
    "properties": {
      "msg": {
        "type": "string"
      },
      "obj": {},
      "success": {
        "type": "boolean"
      }
    },
    "required": [
      "msg",
      "obj",
      "success"
    ],
    "type": "object"
  },
  "Node": {
    "description": "Node represents a remote 3x-ui panel registered with the central panel.\nThe central panel polls each node's existing /panel/api/server/status\nendpoint over HTTP using the per-node ApiToken to populate the runtime\nstatus fields below.",
    "properties": {
      "activeCount": {
        "example": 23,
        "type": "integer"
      },
      "address": {
        "example": "node1.example.com",
        "type": "string"
      },
      "allowPrivateAddress": {
        "type": "boolean"
      },
      "basePath": {
        "example": "/",
        "type": "string"
      },
      "clientCount": {
        "example": 27,
        "type": "integer"
      },
      "configDirty": {
        "type": "boolean"
      },
      "configDirtyAt": {
        "format": "int64",
        "type": "integer"
      },
      "cpuPct": {
        "example": 23.5,
        "type": "number"
      },
      "createdAt": {
        "example": 1700000000,
        "format": "int64",
        "type": "integer"
      },
      "depletedCount": {
        "example": 1,
        "type": "integer"
      },
      "disabledCount": {
        "example": 3,
        "type": "integer"
      },
      "enable": {
        "example": true,
        "type": "boolean"
      },
      "guid": {
        "description": "Guid is the remote panel's stable self-identifier (its panelGuid),\nlearned from each heartbeat. It is the globally stable node identity used\nto attribute online clients/inbounds to the physical node across a chain\nof nodes (#4983); panel-local autoincrement ids don't survive a hop.\nObserved-state only — never user-edited.",
        "type": "string"
      },
      "id": {
        "example": 1,
        "type": "integer"
      },
      "inboundCount": {
        "example": 5,
        "type": "integer"
      },
      "inboundSyncMode": {
        "enum": [
          "all",
          "selected"
        ],
        "type": "string"
      },
      "inboundTags": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "lastError": {
        "type": "string"
      },
      "lastHeartbeat": {
        "description": "unix seconds, 0 = never",
        "example": 1700000000,
        "format": "int64",
        "type": "integer"
      },
      "latencyMs": {
        "example": 42,
        "type": "integer"
      },
      "memPct": {
        "example": 45.1,
        "type": "number"
      },
      "name": {
        "example": "de-fra-1",
        "type": "string"
      },
      "netDown": {
        "example": 2097152,
        "format": "int64",
        "type": "integer"
      },
      "netUp": {
        "example": 1048576,
        "format": "int64",
        "type": "integer"
      },
      "onlineCount": {
        "example": 3,
        "type": "integer"
      },
      "outboundTag": {
        "type": "string"
      },
      "panelVersion": {
        "example": "v3.x.x",
        "type": "string"
      },
      "parentGuid": {
        "description": "ParentGuid + Transitive are set only when a node is surfaced as part of a\nnode tree (#4983): direct nodes carry the master panel's own GUID, a\ntransitive sub-node carries its parent node's GUID. Transitive nodes are\nread-only projections (Id == 0, not persisted) — never edited or deployed.",
        "type": "string"
      },
      "pinnedCertSha256": {
        "type": "string"
      },
      "port": {
        "example": 2053,
        "maximum": 65535,
        "minimum": 1,
        "type": "integer"
      },
      "remark": {
        "type": "string"
      },
      "scheme": {
        "enum": [
          "http",
          "https"
        ],
        "example": "https",
        "type": "string"
      },
      "status": {
        "description": "Heartbeat-updated fields. UpdatedAt advances on every probe even when\nthe row is otherwise unchanged so the UI's \"last seen\" tooltip is\ntruthful without us having to read LastHeartbeat separately.\nonline|offline|unknown",
        "example": "online",
        "type": "string"
      },
      "tlsVerifyMode": {
        "enum": [
          "verify",
          "skip",
          "pin",
          "mtls"
        ],
        "type": "string"
      },
      "transitive": {
        "type": "boolean"
      },
      "updatedAt": {
        "example": 1700000000,
        "format": "int64",
        "type": "integer"
      },
      "uptimeSecs": {
        "example": 86400,
        "format": "int64",
        "type": "integer"
      },
      "xrayError": {
        "type": "string"
      },
      "xrayState": {
        "description": "XrayState and XrayError are captured from the remote node's /panel/api/server/status\nduring heartbeats. They let the central panel distinguish \"panel API reachable\"\n(status=online) from \"Xray core itself has failed on the node\" for monitoring.",
        "type": "string"
      },
      "xrayVersion": {
        "example": "25.10.31",
        "type": "string"
      }
    },
    "required": [
      "activeCount",
      "address",
      "allowPrivateAddress",
      "basePath",
      "clientCount",
      "configDirty",
      "configDirtyAt",
      "cpuPct",
      "createdAt",
      "depletedCount",
      "disabledCount",
      "enable",
      "guid",
      "id",
      "inboundCount",
      "inboundSyncMode",
      "inboundTags",
      "lastError",
      "lastHeartbeat",
      "latencyMs",
      "memPct",
      "name",
      "netDown",
      "netUp",
      "onlineCount",
      "outboundTag",
      "panelVersion",
      "pinnedCertSha256",
      "port",
      "remark",
      "scheme",
      "status",
      "tlsVerifyMode",
      "updatedAt",
      "uptimeSecs",
      "xrayError",
      "xrayState",
      "xrayVersion"
    ],
    "type": "object"
  },
  "NodeMutationRequest": {
    "description": "NodeMutationRequest is the node write/probe contract. ApiToken is accepted\nonly as input. On update, nil means keep the stored token; replacement and\nclearing are explicit and mutually exclusive.",
    "properties": {
      "address": {
        "type": "string"
      },
      "allowPrivateAddress": {
        "type": "boolean"
      },
      "apiToken": {
        "nullable": true,
        "type": "string"
      },
      "basePath": {
        "type": "string"
      },
      "clearApiToken": {
        "type": "boolean"
      },
      "enable": {
        "type": "boolean"
      },
      "id": {
        "type": "integer"
      },
      "inboundSyncMode": {
        "enum": [
          "all",
          "selected"
        ],
        "type": "string"
      },
      "inboundTags": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "name": {
        "type": "string"
      },
      "outboundTag": {
        "type": "string"
      },
      "pinnedCertSha256": {
        "type": "string"
      },
      "port": {
        "maximum": 65535,
        "minimum": 1,
        "type": "integer"
      },
      "remark": {
        "type": "string"
      },
      "scheme": {
        "enum": [
          "http",
          "https"
        ],
        "type": "string"
      },
      "tlsVerifyMode": {
        "enum": [
          "verify",
          "skip",
          "pin",
          "mtls"
        ],
        "type": "string"
      }
    },
    "required": [
      "address",
      "allowPrivateAddress",
      "basePath",
      "enable",
      "id",
      "inboundSyncMode",
      "inboundTags",
      "name",
      "outboundTag",
      "pinnedCertSha256",
      "port",
      "remark",
      "scheme",
      "tlsVerifyMode"
    ],
    "type": "object"
  },
  "NodeView": {
    "description": "NodeView is the browser/API read contract for nodes. Credentials are\nwrite-only: responses expose only whether a node has a token configured.",
    "properties": {
      "activeCount": {
        "example": 20,
        "type": "integer"
      },
      "address": {
        "example": "node.example.com",
        "type": "string"
      },
      "allowPrivateAddress": {
        "example": false,
        "type": "boolean"
      },
      "basePath": {
        "example": "/",
        "type": "string"
      },
      "clientCount": {
        "example": 25,
        "type": "integer"
      },
      "configDirty": {
        "example": false,
        "type": "boolean"
      },
      "configDirtyAt": {
        "example": 0,
        "format": "int64",
        "type": "integer"
      },
      "cpuPct": {
        "example": 12.5,
        "type": "number"
      },
      "createdAt": {
        "example": 1700000000,
        "format": "int64",
        "type": "integer"
      },
      "depletedCount": {
        "example": 1,
        "type": "integer"
      },
      "disabledCount": {
        "example": 2,
        "type": "integer"
      },
      "enable": {
        "example": true,
        "type": "boolean"
      },
      "guid": {
        "example": "node-guid",
        "type": "string"
      },
      "hasApiToken": {
        "example": true,
        "type": "boolean"
      },
      "id": {
        "example": 1,
        "type": "integer"
      },
      "inboundCount": {
        "example": 3,
        "type": "integer"
      },
      "inboundSyncMode": {
        "example": "all",
        "type": "string"
      },
      "inboundTags": {
        "example": [
          "in-443-tcp"
        ],
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "lastError": {
        "type": "string"
      },
      "lastHeartbeat": {
        "example": 1700000000,
        "format": "int64",
        "type": "integer"
      },
      "latencyMs": {
        "example": 42,
        "type": "integer"
      },
      "memPct": {
        "example": 45.2,
        "type": "number"
      },
      "name": {
        "example": "edge-1",
        "type": "string"
      },
      "netDown": {
        "example": 1048576,
        "format": "int64",
        "type": "integer"
      },
      "netUp": {
        "example": 2097152,
        "format": "int64",
        "type": "integer"
      },
      "onlineCount": {
        "example": 5,
        "type": "integer"
      },
      "outboundTag": {
        "example": "direct",
        "type": "string"
      },
      "panelVersion": {
        "example": "v3.x.x",
        "type": "string"
      },
      "parentGuid": {
        "type": "string"
      },
      "pinnedCertSha256": {
        "type": "string"
      },
      "port": {
        "example": 2053,
        "type": "integer"
      },
      "remark": {
        "example": "Primary edge",
        "type": "string"
      },
      "scheme": {
        "example": "https",
        "type": "string"
      },
      "status": {
        "example": "online",
        "type": "string"
      },
      "tlsVerifyMode": {
        "example": "verify",
        "type": "string"
      },
      "transitive": {
        "example": false,
        "type": "boolean"
      },
      "updatedAt": {
        "example": 1700003600,
        "format": "int64",
        "type": "integer"
      },
      "uptimeSecs": {
        "example": 86400,
        "format": "int64",
        "type": "integer"
      },
      "xrayError": {
        "type": "string"
      },
      "xrayState": {
        "example": "running",
        "type": "string"
      },
      "xrayVersion": {
        "example": "25.10.31",
        "type": "string"
      }
    },
    "required": [
      "activeCount",
      "address",
      "allowPrivateAddress",
      "basePath",
      "clientCount",
      "configDirty",
      "configDirtyAt",
      "cpuPct",
      "createdAt",
      "depletedCount",
      "disabledCount",
      "enable",
      "guid",
      "hasApiToken",
      "id",
      "inboundCount",
      "inboundSyncMode",
      "inboundTags",
      "lastError",
      "lastHeartbeat",
      "latencyMs",
      "memPct",
      "name",
      "netDown",
      "netUp",
      "onlineCount",
      "outboundTag",
      "panelVersion",
      "pinnedCertSha256",
      "port",
      "remark",
      "scheme",
      "status",
      "tlsVerifyMode",
      "updatedAt",
      "uptimeSecs",
      "xrayError",
      "xrayState",
      "xrayVersion"
    ],
    "type": "object"
  },
  "OutboundTraffics": {
    "description": "OutboundTraffics tracks traffic statistics for Xray outbound connections.",
    "properties": {
      "down": {
        "format": "int64",
        "type": "integer"
      },
      "id": {
        "type": "integer"
      },
      "tag": {
        "type": "string"
      },
      "total": {
        "format": "int64",
        "type": "integer"
      },
      "up": {
        "format": "int64",
        "type": "integer"
      }
    },
    "required": [
      "down",
      "id",
      "tag",
      "total",
      "up"
    ],
    "type": "object"
  },
  "PanelUpdateStatus": {
    "description": "PanelUpdateStatus reports the outcome of the most recently launched panel\nself-update. RunID lets the caller confirm this status belongs to the\nupdate it started rather than a stale result left over from an earlier\nrun; State is one of \"pending\", \"success\", or \"failed\". RunID is a decimal\nstring, not a JSON number: it's a formatted UnixNano timestamp, and\nJavaScript's number type can't represent that precisely (it exceeds\nNumber.MAX_SAFE_INTEGER), which would let two different runs round to the\nsame value on the wire and defeat the whole point of this field.",
    "properties": {
      "exitCode": {
        "example": 0,
        "type": "integer"
      },
      "finishedAt": {
        "example": 1735689612,
        "format": "int64",
        "type": "integer"
      },
      "runId": {
        "example": "1735689600123456789",
        "type": "string"
      },
      "state": {
        "example": "success",
        "type": "string"
      }
    },
    "required": [
      "exitCode",
      "finishedAt",
      "runId",
      "state"
    ],
    "type": "object"
  },
  "ProbeResultUI": {
    "properties": {
      "cpuPct": {
        "example": 12.5,
        "type": "number"
      },
      "error": {
        "type": "string"
      },
      "latencyMs": {
        "example": 42,
        "type": "integer"
      },
      "memPct": {
        "example": 45.2,
        "type": "number"
      },
      "panelVersion": {
        "example": "v3.x.x",
        "type": "string"
      },
      "status": {
        "example": "online",
        "type": "string"
      },
      "uptimeSecs": {
        "example": 86400,
        "format": "int64",
        "type": "integer"
      },
      "xrayError": {
        "type": "string"
      },
      "xrayState": {
        "description": "XrayState/XrayError are populated on successful probes even when the node's\nXray core is not healthy. The UI uses them for a distinct \"panel ok, xray failed\" indicator.",
        "type": "string"
      },
      "xrayVersion": {
        "example": "25.10.31",
        "type": "string"
      }
    },
    "required": [
      "cpuPct",
      "error",
      "latencyMs",
      "memPct",
      "panelVersion",
      "status",
      "uptimeSecs",
      "xrayError",
      "xrayState",
      "xrayVersion"
    ],
    "type": "object"
  },
  "RealityScanResult": {
    "properties": {
      "alpn": {
        "example": "h2",
        "type": "string"
      },
      "certIssuer": {
        "example": "Google Trust Services",
        "type": "string"
      },
      "certSubject": {
        "example": "cloudflare.com",
        "type": "string"
      },
      "certValid": {
        "example": true,
        "type": "boolean"
      },
      "curveID": {
        "example": "X25519",
        "type": "string"
      },
      "feasible": {
        "example": true,
        "type": "boolean"
      },
      "h2": {
        "example": true,
        "type": "boolean"
      },
      "host": {
        "example": "www.cloudflare.com",
        "type": "string"
      },
      "ip": {
        "example": "104.16.124.96",
        "type": "string"
      },
      "latencyMs": {
        "example": 180,
        "type": "integer"
      },
      "notAfter": {
        "example": "2026-08-01T00:00:00Z",
        "type": "string"
      },
      "port": {
        "example": 443,
        "type": "integer"
      },
      "reason": {
        "type": "string"
      },
      "serverNames": {
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "target": {
        "example": "www.cloudflare.com:443",
        "type": "string"
      },
      "tls13": {
        "example": true,
        "type": "boolean"
      },
      "tlsVersion": {
        "example": "1.3",
        "type": "string"
      },
      "x25519": {
        "example": true,
        "type": "boolean"
      }
    },
    "required": [
      "alpn",
      "certIssuer",
      "certSubject",
      "certValid",
      "curveID",
      "feasible",
      "h2",
      "host",
      "ip",
      "latencyMs",
      "notAfter",
      "port",
      "reason",
      "serverNames",
      "target",
      "tls13",
      "tlsVersion",
      "x25519"
    ],
    "type": "object"
  },
  "ServerSettings": {
    "description": "ServerSettings is the \"server\" block of an AmneziaWG inbound's Settings\nJSON: the interface-level configuration shared by every client/peer. The\nlisten port is deliberately not duplicated here — it lives on the inbound\nrow itself (Inbound.Port), like every other protocol.",
    "properties": {
      "externalInterface": {
        "description": "ExternalInterface is the host NIC PostUp/PostDown NAT rules attach to.\nEmpty means auto-detect.",
        "type": "string"
      },
      "h1": {
        "type": "string"
      },
      "h2": {
        "type": "string"
      },
      "h3": {
        "type": "string"
      },
      "h4": {
        "type": "string"
      },
      "i1": {
        "type": "string"
      },
      "jc": {
        "description": "Obfuscation20's fields, repeated flat (not embedded) rather than\nnested under their own key: encoding/json would happily inline an\nembedded Obfuscation20 the same way, but the frontend's Go-\u003eZod/TS\ngenerator (tools/openapigen) does not — it emits a genuinely nested\n`obfuscation20` object, which would silently diverge from the real\nwire JSON. See Obfuscation() below for the manager-facing conversion.",
        "type": "integer"
      },
      "jmax": {
        "type": "integer"
      },
      "jmin": {
        "type": "integer"
      },
      "mtu": {
        "type": "integer"
      },
      "primaryDns": {
        "description": "PrimaryDNS/SecondaryDNS seed the DNS line of downloadable client\nconfigs; the server's own interface never sets one (see BuildClientConfig).",
        "type": "string"
      },
      "privateKey": {
        "type": "string"
      },
      "publicKey": {
        "type": "string"
      },
      "s1": {
        "type": "integer"
      },
      "s2": {
        "type": "integer"
      },
      "s3": {
        "type": "integer"
      },
      "s4": {
        "type": "integer"
      },
      "secondaryDns": {
        "type": "string"
      },
      "subnetCidr": {
        "type": "integer"
      },
      "subnetIp": {
        "type": "string"
      }
    },
    "required": [
      "h1",
      "h2",
      "h3",
      "h4",
      "jc",
      "jmax",
      "jmin",
      "privateKey",
      "publicKey",
      "s1",
      "s2",
      "s3",
      "s4",
      "subnetCidr",
      "subnetIp"
    ],
    "type": "object"
  },
  "Setting": {
    "description": "Setting stores key-value configuration settings for the 3x-ui panel.",
    "properties": {
      "id": {
        "type": "integer"
      },
      "key": {
        "type": "string"
      },
      "value": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "key",
      "value"
    ],
    "type": "object"
  },
  "User": {
    "description": "User represents a user account in the 3x-ui panel.",
    "properties": {
      "id": {
        "type": "integer"
      },
      "password": {
        "type": "string"
      },
      "username": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "password",
      "username"
    ],
    "type": "object"
  }
};
