import * as $dara from '@darabonba/typescript';
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeAttributesAttribute extends $dara.Model {
    /**
     * @remarks
     * The name of the attribute.
     *
     * @example
     * VirtualIntelSpeedSelectTechnologySupport
     */
    name?: string;
    /**
     * @remarks
     * The attribute value.
     *
     * @example
     * 1
     */
    value?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeAttributes extends $dara.Model {
    attribute?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeAttributesAttribute[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeClock extends $dara.Model {
    /**
     * @remarks
     * Whether PTP is supported. Possible values:
     *
     * *   supported
     * *   unsupported
     *
     * @example
     * unsupported
     */
    ptpSupport?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeCpuOptionsSupportedTopologyTypes extends $dara.Model {
    supportedTopologyType?: string[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeCpuOptions extends $dara.Model {
    /**
     * @remarks
     * The number of CPU cores.
     *
     * @example
     * 2
     */
    core?: number;
    /**
     * @remarks
     * The CPU option step size.
     *
     * @example
     * 2
     */
    coreFactor?: number;
    /**
     * @remarks
     * Indicates whether HT can be enabled or disabled.
     *
     * @example
     * true
     */
    hyperThreadingAdjustable?: boolean;
    /**
     * @remarks
     * The CPU topology types of the instance type.
     */
    supportedTopologyTypes?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeCpuOptionsSupportedTopologyTypes;
    /**
     * @remarks
     * The number of threads per CPU core.
     *
     * >  `If the value of CpuOptions.ThreadPerCore is 1, Hyper-Threading (HT) is disabled.`
     *
     * @example
     * 2
     */
    threadsPerCore?: number;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeEnhancedNetwork extends $dara.Model {
    /**
     * @remarks
     * >  This parameter is not publicly available.
     *
     * @example
     * true
     */
    rssSupport?: boolean;
    /**
     * @remarks
     * >  This parameter is not publicly available.
     *
     * @example
     * true
     */
    sriovSupport?: boolean;
    /**
     * @remarks
     * >  This parameter is not publicly available.
     *
     * @example
     * 5
     */
    vfQueueNumberPerEni?: number;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkCardsNetworkCardInfo extends $dara.Model {
    /**
     * @remarks
     * The index of the network card.
     *
     * @example
     * 1
     */
    networkCardIndex?: number;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkCards extends $dara.Model {
    networkCardInfo?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkCardsNetworkCardInfo[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkInfoBandwidthWeightingWeightingInfosWeightingInfo extends $dara.Model {
    ebsBandwidth?: number;
    ebsBurstBandwidth?: number;
    name?: string;
    vpcBandwidth?: number;
    vpcBurstBandwidth?: number;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkInfoBandwidthWeightingWeightingInfos extends $dara.Model {
    weightingInfo?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkInfoBandwidthWeightingWeightingInfosWeightingInfo[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkInfoBandwidthWeighting extends $dara.Model {
    weightingInfos?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkInfoBandwidthWeightingWeightingInfos;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkInfo extends $dara.Model {
    bandwidthWeighting?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkInfoBandwidthWeighting;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeSupportedBootModes extends $dara.Model {
    supportedBootMode?: string[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypesInstanceType extends $dara.Model {
    /**
     * @remarks
     * The list of specification attributes.
     */
    attributes?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeAttributes;
    /**
     * @remarks
     * The baseline vCPU computing performance (overall baseline performance of all vCPUs) per t5 or t6 burstable instance.
     *
     * @example
     * 4
     */
    baselineCredit?: number;
    /**
     * @remarks
     * The clock supported by the specification.
     */
    clock?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeClock;
    /**
     * @remarks
     * The CPU architecture. Valid values:
     *
     * *   X86
     * *   ARM
     *
     * @example
     * X86
     */
    cpuArchitecture?: string;
    /**
     * @remarks
     * The number of vCPUs.
     *
     * @example
     * 4
     */
    cpuCoreCount?: number;
    /**
     * @remarks
     * The CPU options.
     */
    cpuOptions?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeCpuOptions;
    /**
     * @remarks
     * The CPU base frequency. Unit: GHz.
     *
     * @example
     * 2.7
     */
    cpuSpeedFrequency?: number;
    /**
     * @remarks
     * The CPU turbo frequency. Unit: GHz.
     *
     * @example
     * 3.5
     */
    cpuTurboFrequency?: number;
    /**
     * @remarks
     * The maximum number of cloud disks per instance.
     *
     * @example
     * 17
     */
    diskQuantity?: number;
    /**
     * @remarks
     * >  This parameter is not publicly available.
     */
    enhancedNetwork?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeEnhancedNetwork;
    /**
     * @remarks
     * The maximum number of IPv6 addresses per ENI.
     *
     * @example
     * 1
     */
    eniIpv6AddressQuantity?: number;
    /**
     * @remarks
     * The maximum number of IPv4 addresses per ENI.
     *
     * @example
     * 10
     */
    eniPrivateIpAddressQuantity?: number;
    /**
     * @remarks
     * The maximum number of ENIs per instance.
     *
     * @example
     * 3
     */
    eniQuantity?: number;
    /**
     * @remarks
     * The maximum number of ENIs, including primary, secondary, and trunk ENIs.
     *
     * >  This parameter is in invitational preview and is not publicly available.
     *
     * @example
     * 0
     */
    eniTotalQuantity?: number;
    /**
     * @remarks
     * Indicates whether trunk ENIs are supported.
     *
     * >  This parameter is in invitational preview and is not publicly available.
     *
     * @example
     * true
     */
    eniTrunkSupported?: boolean;
    /**
     * @remarks
     * The number of ERIs.
     *
     * >  This parameter is in invitational preview and is not publicly available.
     *
     * @example
     * 0
     */
    eriQuantity?: number;
    /**
     * @remarks
     * The number of GPUs.
     *
     * @example
     * 0
     */
    GPUAmount?: number;
    /**
     * @remarks
     * The amount of GPU memory per GPU. Unit: GiB
     *
     * @example
     * 32
     */
    GPUMemorySize?: number;
    /**
     * @remarks
     * The GPU model.
     *
     * @example
     * NVIDIA V100
     */
    GPUSpec?: string;
    /**
     * @remarks
     * The initial vCPU credits per t5 or t6 burstable instance.
     *
     * @example
     * 120
     */
    initialCredit?: number;
    /**
     * @remarks
     * The maximum inbound internal bandwidth. Unit: Kbit/s.
     *
     * @example
     * 1024000
     */
    instanceBandwidthRx?: number;
    /**
     * @remarks
     * The maximum outbound internal bandwidth. Unit: Kbit/s.
     *
     * @example
     * 1024000
     */
    instanceBandwidthTx?: number;
    /**
     * @remarks
     * The category of the instance type. Valid values:
     *
     * *   General-purpose
     * *   Compute-optimized
     * *   Memory-optimized
     * *   Big data
     * *   Local SSDs
     * *   High Clock Speed
     * *   Enhanced
     * *   Shared
     * *   Compute-optimized with GPU
     * *   Visual Compute-optimized
     * *   Heterogeneous Service
     * *   Compute-optimized with FPGA
     * *   Compute-optimized with NPU
     * *   ECS Bare Metal
     * *   Super Computing Cluster
     * *   High Performance Compute
     *
     * @example
     * Big data
     */
    instanceCategory?: string;
    /**
     * @remarks
     * The level of the instance family. Valid values:
     *
     * *   EntryLevel: entry level (shared).
     * *   EnterpriseLevel: enterprise level.
     * *   CreditEntryLevel: credit-based entry level. For more information, see [Overview](https://help.aliyun.com/document_detail/59977.html).
     *
     * @example
     * EnterpriseLevel
     */
    instanceFamilyLevel?: string;
    /**
     * @remarks
     * The inbound packet forwarding rate over the internal network. Unit: pps.
     *
     * @example
     * 500000
     */
    instancePpsRx?: number;
    /**
     * @remarks
     * The outbound packet forwarding rate over the internal network. Unit: pps.
     *
     * @example
     * 500000
     */
    instancePpsTx?: number;
    /**
     * @remarks
     * The instance family.
     *
     * @example
     * ecs.g6
     */
    instanceTypeFamily?: string;
    /**
     * @remarks
     * The ID of the instance type.
     *
     * @example
     * ecs.g6.large
     */
    instanceTypeId?: string;
    /**
     * @remarks
     * Indicates whether jumbo frames are supported.
     *
     * @example
     * true
     */
    jumboFrameSupport?: boolean;
    /**
     * @remarks
     * The number of local disks per instance.
     *
     * @example
     * 1
     */
    localStorageAmount?: number;
    /**
     * @remarks
     * The capacity of each local disk. Unit: GiB
     *
     * @example
     * 5000
     */
    localStorageCapacity?: number;
    /**
     * @remarks
     * The category of local disks. For more information, see [Local disks](https://help.aliyun.com/document_detail/63138.html). Valid values:
     *
     * *   local_hdd_pro: local SATA HDDs, which are attached to d1ne or d1 instances
     * *   local_ssd_pro: local NVMe SSDs, which are attached to i2, i2g, i1, ga1, or gn5 instances
     *
     * @example
     * local_ssd_pro
     */
    localStorageCategory?: string;
    /**
     * @remarks
     * The maximum number of queues per ENI, including primary and secondary ENIs.
     *
     * @example
     * 4
     */
    maximumQueueNumberPerEni?: number;
    /**
     * @remarks
     * The memory size. Unit: GiB
     *
     * @example
     * 16
     */
    memorySize?: number;
    /**
     * @remarks
     * The maximum number of network cards that the instance type supports.
     *
     * @example
     * 1
     */
    networkCardQuantity?: number;
    /**
     * @remarks
     * The information about the network cards.
     */
    networkCards?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkCards;
    /**
     * @remarks
     * Indicates whether to allow network traffic transmitted over virtual private clouds (VPCs) to be encrypted. Valid values:
     *
     * *   true
     * *   false
     *
     * >  This parameter is in invitational preview and is not publicly available.
     *
     * @example
     * true
     */
    networkEncryptionSupport?: boolean;
    networkInfo?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeNetworkInfo;
    /**
     * @remarks
     * Indicates whether cloud disks can be attached by using the NVMe protocol. Valid values:
     *
     * *   required: Cloud disks can be attached by using the NVMe protocol.
     * *   unsupported: Cloud disks cannot be attached by using the NVMe protocol.
     *
     * @example
     * unsupported
     */
    nvmeSupport?: string;
    /**
     * @remarks
     * The CPU model.
     *
     * @example
     * Intel Xeon(Ice Lake) Platinum 8369B
     */
    physicalProcessorModel?: string;
    /**
     * @remarks
     * The default number of queues per primary ENI.
     *
     * @example
     * 4
     */
    primaryEniQueueNumber?: number;
    /**
     * @remarks
     * The maximum number of QPs per instance, which varies based on the instance type.
     *
     * *   For enterprise-level CPU-based instance types, the value of `QueuePairNumber` is the maximum number of QPs per instance.
     * *   For GPU-accelerated instance types, the maximum number of QPs per instance is calculated by using the following formula: Value of `QueuePairNumber` × Value of NetworkCardQuantity.
     *
     * @example
     * 22
     */
    queuePairNumber?: number;
    /**
     * @remarks
     * The default number of queues per secondary ENI.
     *
     * @example
     * 4
     */
    secondaryEniQueueNumber?: number;
    /**
     * @remarks
     * The boot modes supported by the instance type.
     */
    supportedBootModes?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceTypeSupportedBootModes;
    /**
     * @remarks
     * The maximum number of queues on ENIs that the instance type supports.
     *
     * @example
     * 12
     */
    totalEniQueueQuantity?: number;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBodyInstanceTypes extends $dara.Model {
    instanceType?: DescribeInstanceTypesResponseBodyInstanceTypesInstanceType[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class DescribeInstanceTypesResponseBody extends $dara.Model {
    /**
     * @remarks
     * Details about the instance types.
     */
    instanceTypes?: DescribeInstanceTypesResponseBodyInstanceTypes;
    /**
     * @remarks
     * The query token returned in this call.
     *
     * @example
     * e71d8a535bd9cc11
     */
    nextToken?: string;
    /**
     * @remarks
     * The ID of the request.
     *
     * @example
     * 00827261-20B7-4562-83F2-4DF39876A45A
     */
    requestId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    validate(): void;
    constructor(map?: {
        [key: string]: any;
    });
}
