/* tslint:disable */ /* eslint-disable */ /** * 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 { exists } from '../runtime'; import { IoK8sApiResourceV1beta2ResourceSliceSpec, IoK8sApiResourceV1beta2ResourceSliceSpecFromJSON, IoK8sApiResourceV1beta2ResourceSliceSpecToJSON, IoK8sApimachineryPkgApisMetaV1ObjectMeta, IoK8sApimachineryPkgApisMetaV1ObjectMetaFromJSON, IoK8sApimachineryPkgApisMetaV1ObjectMetaToJSON, } from './'; /** * ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver. * * At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . * * Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. * * When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. * * For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. * * This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. * @export * @interface IoK8sApiResourceV1beta2ResourceSlice */ export interface IoK8sApiResourceV1beta2ResourceSlice { /** * APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources * @type {string} * @memberof IoK8sApiResourceV1beta2ResourceSlice */ apiVersion?: string; /** * Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds * @type {string} * @memberof IoK8sApiResourceV1beta2ResourceSlice */ kind?: string; /** * * @type {IoK8sApimachineryPkgApisMetaV1ObjectMeta} * @memberof IoK8sApiResourceV1beta2ResourceSlice */ metadata?: IoK8sApimachineryPkgApisMetaV1ObjectMeta; /** * * @type {IoK8sApiResourceV1beta2ResourceSliceSpec} * @memberof IoK8sApiResourceV1beta2ResourceSlice */ spec: IoK8sApiResourceV1beta2ResourceSliceSpec; } export function IoK8sApiResourceV1beta2ResourceSliceFromJSON( json: any, ): IoK8sApiResourceV1beta2ResourceSlice { return IoK8sApiResourceV1beta2ResourceSliceFromJSONTyped(json, false); } export function IoK8sApiResourceV1beta2ResourceSliceFromJSONTyped( json: any, _ignoreDiscriminator: boolean, ): IoK8sApiResourceV1beta2ResourceSlice { if (json === undefined || json === null) { return json; } return { apiVersion: !exists(json, 'apiVersion') ? undefined : json['apiVersion'], kind: !exists(json, 'kind') ? undefined : json['kind'], metadata: !exists(json, 'metadata') ? undefined : IoK8sApimachineryPkgApisMetaV1ObjectMetaFromJSON(json['metadata']), spec: IoK8sApiResourceV1beta2ResourceSliceSpecFromJSON(json['spec']), }; } export function IoK8sApiResourceV1beta2ResourceSliceToJSON( value?: IoK8sApiResourceV1beta2ResourceSlice | null, ): any { if (value === undefined) { return undefined; } if (value === null) { return null; } return { apiVersion: value.apiVersion, kind: value.kind, metadata: IoK8sApimachineryPkgApisMetaV1ObjectMetaToJSON(value.metadata), spec: IoK8sApiResourceV1beta2ResourceSliceSpecToJSON(value.spec), }; }