// Code generated by tools/openapigen. DO NOT EDIT.
export type Protocol = string;

export interface AllSetting {
  datepicker: string;
  expireDiff: number;
  externalTrafficInformEnable: boolean;
  externalTrafficInformURI: string;
  ldapAutoCreate: boolean;
  ldapAutoDelete: boolean;
  ldapBaseDN: string;
  ldapBindDN: string;
  ldapDefaultExpiryDays: number;
  ldapDefaultLimitIP: number;
  ldapDefaultTotalGB: number;
  ldapEnable: boolean;
  ldapFlagField: string;
  ldapHost: string;
  ldapInboundTags: string;
  ldapInvertFlag: boolean;
  ldapPassword: string;
  ldapPort: number;
  ldapSyncCron: string;
  ldapTruthyValues: string;
  ldapUseTLS: boolean;
  ldapUserAttr: string;
  ldapUserFilter: string;
  ldapVlessField: string;
  pageSize: number;
  remarkModel: string;
  restartXrayOnClientDisable: boolean;
  sessionMaxAge: number;
  subAnnounce: string;
  subCertFile: string;
  subClashEnable: boolean;
  subClashPath: string;
  subClashURI: string;
  subDomain: string;
  subEmailInRemark: boolean;
  subEnable: boolean;
  subEnableRouting: boolean;
  subEncrypt: boolean;
  subJsonEnable: boolean;
  subJsonFragment: string;
  subJsonMux: string;
  subJsonNoises: string;
  subJsonPath: string;
  subJsonRules: string;
  subJsonURI: string;
  subKeyFile: string;
  subListen: string;
  subPath: string;
  subPort: number;
  subProfileUrl: string;
  subRoutingRules: string;
  subShowInfo: boolean;
  subSupportUrl: string;
  subTitle: string;
  subURI: string;
  subUpdates: number;
  tgBotAPIServer: string;
  tgBotBackup: boolean;
  tgBotChatId: string;
  tgBotEnable: boolean;
  tgBotLoginNotify: boolean;
  tgBotProxy: string;
  tgBotToken: string;
  tgCpu: number;
  tgLang: string;
  tgRunTime: string;
  timeLocation: string;
  trafficDiff: number;
  trustedProxyCIDRs: string;
  twoFactorEnable: boolean;
  twoFactorToken: string;
  webBasePath: string;
  webCertFile: string;
  webDomain: string;
  webKeyFile: string;
  webListen: string;
  webPort: number;
}

export interface AllSettingView {
  datepicker: string;
  expireDiff: number;
  externalTrafficInformEnable: boolean;
  externalTrafficInformURI: string;
  hasApiToken: boolean;
  hasLdapPassword: boolean;
  hasNordSecret: boolean;
  hasTgBotToken: boolean;
  hasTwoFactorToken: boolean;
  hasWarpSecret: boolean;
  ldapAutoCreate: boolean;
  ldapAutoDelete: boolean;
  ldapBaseDN: string;
  ldapBindDN: string;
  ldapDefaultExpiryDays: number;
  ldapDefaultLimitIP: number;
  ldapDefaultTotalGB: number;
  ldapEnable: boolean;
  ldapFlagField: string;
  ldapHost: string;
  ldapInboundTags: string;
  ldapInvertFlag: boolean;
  ldapPassword: string;
  ldapPort: number;
  ldapSyncCron: string;
  ldapTruthyValues: string;
  ldapUseTLS: boolean;
  ldapUserAttr: string;
  ldapUserFilter: string;
  ldapVlessField: string;
  pageSize: number;
  remarkModel: string;
  restartXrayOnClientDisable: boolean;
  sessionMaxAge: number;
  subAnnounce: string;
  subCertFile: string;
  subClashEnable: boolean;
  subClashPath: string;
  subClashURI: string;
  subDomain: string;
  subEmailInRemark: boolean;
  subEnable: boolean;
  subEnableRouting: boolean;
  subEncrypt: boolean;
  subJsonEnable: boolean;
  subJsonFragment: string;
  subJsonMux: string;
  subJsonNoises: string;
  subJsonPath: string;
  subJsonRules: string;
  subJsonURI: string;
  subKeyFile: string;
  subListen: string;
  subPath: string;
  subPort: number;
  subProfileUrl: string;
  subRoutingRules: string;
  subShowInfo: boolean;
  subSupportUrl: string;
  subTitle: string;
  subURI: string;
  subUpdates: number;
  tgBotAPIServer: string;
  tgBotBackup: boolean;
  tgBotChatId: string;
  tgBotEnable: boolean;
  tgBotLoginNotify: boolean;
  tgBotProxy: string;
  tgBotToken: string;
  tgCpu: number;
  tgLang: string;
  tgRunTime: string;
  timeLocation: string;
  trafficDiff: number;
  trustedProxyCIDRs: string;
  twoFactorEnable: boolean;
  twoFactorToken: string;
  webBasePath: string;
  webCertFile: string;
  webDomain: string;
  webKeyFile: string;
  webListen: string;
  webPort: number;
}

export interface ApiToken {
  createdAt: number;
  enabled: boolean;
  id: number;
  name: string;
  token: string;
}

export interface Client {
  auth?: string;
  comment: string;
  created_at?: number;
  email: string;
  enable: boolean;
  expiryTime: number;
  flow?: string;
  id?: string;
  limitIp: number;
  password?: string;
  reset: number;
  reverse?: ClientReverse | null;
  security: string;
  subId: string;
  tgId: number;
  totalGB: number;
  updated_at?: number;
}

export interface ClientInbound {
  clientId: number;
  createdAt: number;
  flowOverride: string;
  inboundId: number;
}

export interface ClientRecord {
  auth: string;
  comment: string;
  createdAt: number;
  email: string;
  enable: boolean;
  expiryTime: number;
  flow: string;
  id: number;
  limitIp: number;
  password: string;
  reset: number;
  reverse: unknown;
  security: string;
  subId: string;
  tgId: number;
  totalGB: number;
  updatedAt: number;
  uuid: string;
}

export interface ClientReverse {
  tag: string;
}

export interface ClientTraffic {
  down: number;
  email: string;
  enable: boolean;
  expiryTime: number;
  id: number;
  inboundId: number;
  lastOnline: number;
  reset: number;
  subId: string;
  total: number;
  up: number;
  uuid: string;
}

export interface CustomGeoResource {
  alias: string;
  createdAt: number;
  id: number;
  lastModified: string;
  lastUpdatedAt: number;
  localPath: string;
  type: string;
  updatedAt: number;
  url: string;
}

export interface FallbackParentInfo {
  masterId: number;
  path?: string;
}

export interface HistoryOfSeeders {
  id: number;
  seederName: string;
}

export interface Inbound {
  clientStats: ClientTraffic[];
  down: number;
  enable: boolean;
  expiryTime: number;
  fallbackParent?: FallbackParentInfo | null;
  id: number;
  lastTrafficResetTime: number;
  listen: string;
  nodeId?: number | null;
  port: number;
  protocol: Protocol;
  remark: string;
  settings: unknown;
  sniffing: unknown;
  streamSettings: unknown;
  tag: string;
  total: number;
  trafficReset: string;
  up: number;
}

export interface InboundClientIps {
  clientEmail: string;
  id: number;
  ips: unknown;
}

export interface InboundFallback {
  alpn: string;
  childId: number;
  id: number;
  masterId: number;
  name: string;
  path: string;
  sortOrder: number;
  xver: number;
}

export interface Msg {
  msg: string;
  obj: unknown;
  success: boolean;
}

export interface Node {
  address: string;
  allowPrivateAddress: boolean;
  apiToken: string;
  basePath: string;
  clientCount: number;
  cpuPct: number;
  createdAt: number;
  depletedCount: number;
  enable: boolean;
  id: number;
  inboundCount: number;
  lastError: string;
  lastHeartbeat: number;
  latencyMs: number;
  memPct: number;
  name: string;
  onlineCount: number;
  panelVersion: string;
  port: number;
  remark: string;
  scheme: string;
  status: string;
  updatedAt: number;
  uptimeSecs: number;
  xrayVersion: string;
}

export interface OutboundTraffics {
  down: number;
  id: number;
  tag: string;
  total: number;
  up: number;
}

export interface Setting {
  id: number;
  key: string;
  value: string;
}

export interface User {
  id: number;
  password: string;
  username: string;
}

