/**
 * Kubernetes
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: unversioned
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { IoK8sApiCoreV1NodeSelector, IoK8sApiResourceV1beta2DeviceAttribute, IoK8sApiResourceV1beta2DeviceCapacity, IoK8sApiResourceV1beta2DeviceCounterConsumption, IoK8sApiResourceV1beta2DeviceTaint } from './';
/**
 * Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.
 * @export
 * @interface IoK8sApiResourceV1beta2Device
 */
export interface IoK8sApiResourceV1beta2Device {
    /**
     * AllNodes indicates that all nodes have access to the device.
     *
     * Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
     * @type {boolean}
     * @memberof IoK8sApiResourceV1beta2Device
     */
    allNodes?: boolean;
    /**
     * Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set.
     *
     * The maximum number of attributes and capacities combined is 32.
     * @type {{ [key: string]: IoK8sApiResourceV1beta2DeviceAttribute; }}
     * @memberof IoK8sApiResourceV1beta2Device
     */
    attributes?: {
        [key: string]: IoK8sApiResourceV1beta2DeviceAttribute;
    };
    /**
     * Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.
     *
     * The maximum number of attributes and capacities combined is 32.
     * @type {{ [key: string]: IoK8sApiResourceV1beta2DeviceCapacity; }}
     * @memberof IoK8sApiResourceV1beta2Device
     */
    capacity?: {
        [key: string]: IoK8sApiResourceV1beta2DeviceCapacity;
    };
    /**
     * ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets.
     *
     * There can only be a single entry per counterSet.
     *
     * The total number of device counter consumption entries must be <= 32. In addition, the total number in the entire ResourceSlice must be <= 1024 (for example, 64 devices with 16 counters each).
     * @type {Array<IoK8sApiResourceV1beta2DeviceCounterConsumption>}
     * @memberof IoK8sApiResourceV1beta2Device
     */
    consumesCounters?: Array<IoK8sApiResourceV1beta2DeviceCounterConsumption>;
    /**
     * Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.
     * @type {string}
     * @memberof IoK8sApiResourceV1beta2Device
     */
    name: string;
    /**
     * NodeName identifies the node where the device is available.
     *
     * Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.
     * @type {string}
     * @memberof IoK8sApiResourceV1beta2Device
     */
    nodeName?: string;
    /**
     *
     * @type {IoK8sApiCoreV1NodeSelector}
     * @memberof IoK8sApiResourceV1beta2Device
     */
    nodeSelector?: IoK8sApiCoreV1NodeSelector;
    /**
     * If specified, these are the driver-defined taints.
     *
     * The maximum number of taints is 4.
     *
     * This is an alpha field and requires enabling the DRADeviceTaints feature gate.
     * @type {Array<IoK8sApiResourceV1beta2DeviceTaint>}
     * @memberof IoK8sApiResourceV1beta2Device
     */
    taints?: Array<IoK8sApiResourceV1beta2DeviceTaint>;
}
export declare function IoK8sApiResourceV1beta2DeviceFromJSON(json: any): IoK8sApiResourceV1beta2Device;
export declare function IoK8sApiResourceV1beta2DeviceFromJSONTyped(json: any, _ignoreDiscriminator: boolean): IoK8sApiResourceV1beta2Device;
export declare function IoK8sApiResourceV1beta2DeviceToJSON(value?: IoK8sApiResourceV1beta2Device | null): any;
