//  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 IPodData {
    nodeNumber?: number;
    nodeScale?: number;
    nodeFrame?: number;
    nodeTopology?: string;
    nodeMode?: string;
    nodeDPU?: string;
    nodeOS?: number;
    bootMode?: string;
    manageMode?: string;
    superPodIdSupported?: boolean;
    superPodSizeSupported?: boolean;
    topologyTypeSupported?: boolean;
    interconTypeSupported?: boolean;
    presentDPUCountSupported?: boolean;
    chassisIDSupported?: boolean;
    serverIndexSupported?: boolean;
    npuBootOptionSupported?: boolean;
    ubManagedBySupported?: boolean;
    topologyTypeAllowedNumbers?: number[];
    interconTypeAllowedNumbers?: number[];
    npuBootOptionAllowedNumbers?: number[];
    ubManagedByAllowedNumbers?: number[];
    presentDPUCountAllowedNumbers?: number[];
}

export interface IFormOption {
    id: string;
    label: string;
    value: any;
    tip: string;
    initValue: any;
    disabled: boolean;
    associated: string;
    show: boolean;
}

export interface ISelectOption {
    id: string;
    label: string;
    value: any;
    tip: string;
    initValue: any;
    disabled: boolean;
    associated: string;
    options: any[];
    show: boolean;
}

export enum ISuperPodLabelEnum {
    SUPERPODID = 'SuperPodId',
    SUPERPODSIZE = 'SuperPodSize',
    TOPOLOGYTYPE = 'TopologyType',
    INTERCONTYPE = 'InterconType',
    PRESENTDPUCOUNT = 'PresentDPUCount',
    SERVERINDEX = 'ServerIndex',
    NPUBOOTOPTION = 'NPUBootOption',
    UBMANAGEDBY = 'UBManagedBy',
    CHASSISID = 'ChassisID',
}