//  Copyright (c) 2024 Huawei Technologies Co., Ltd.
//  openUBMC is licensed under Mulan PSL v2.
//  You can use this software according to the terms and conditions of the Mulan PSL v2.
//  You may obtain a copy of Mulan PSL v2 at:
//        #  http://license.coscl.org.cn/MulanPSL2
//  THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
//  EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
//  MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
//  See the Mulan PSL v2 for more details.
export interface ILdapState {
  Enabled: boolean;
}

export interface ILdapUrl {
  control: string;
  cert: string;
  crlCert: string;
}

export interface ILdap {
  Controller: ILdapController;
  LdapGroup: ILdapUserGroup[];
  Certificate: ILdapCertificate;
  Url?: ILdapUrl;
}

export interface ILdapController {
  IPAddress: string;
  Port: number;
  Domain: string;
  BindDN: string;
  Folder: string;
}

export interface ILdapUserGroup {
  Index?: number;
  ID: number;
  Name: string;
  RoleID: string;
  RoleLabel: string;
  Folder: string;
  LoginInterface: string[];
  LoginRule: string[];
}

export interface ILdapCertificate {
  VerificationEnabled: boolean;
  VerificationLevel: string;
  // 表示Crl证书是否已配置
  CrlVerification: boolean;
  ServerCert: Certificate | null;
  RootCert: Certificate | null;
  IntermediateCert: Certificate[];
}

export interface Certificate {
  Issuer: string;
  SerialNumber: string;
  Subject: string;
  ValidNotAfter: string;
  ValidNotBefore: string;
}