import { Resource } from '@c6o/kubeclient-contracts'; import { Quantity } from '../api/resource'; import { LabelSelector, ListMeta, ObjectMeta, Time } from '../meta/v1'; import { PersistentVolumeSpec } from '../core/v1'; export interface CSIStorageCapacity extends Resource { apiVersion?: 'storage.k8s.io/v1alpha1'; capacity?: Quantity; kind?: 'CSIStorageCapacity'; maximumVolumeSize?: Quantity; metadata?: ObjectMeta; nodeTopology?: LabelSelector; storageClassName: string; } export interface CSIStorageCapacityList extends Resource { apiVersion?: 'storage.k8s.io/v1alpha1'; items: Array; kind?: 'CSIStorageCapacityList'; metadata?: ListMeta; } export interface VolumeAttachment extends Resource { apiVersion?: 'storage.k8s.io/v1alpha1'; kind?: 'VolumeAttachment'; metadata?: ObjectMeta; spec: VolumeAttachmentSpec; status?: VolumeAttachmentStatus; } export interface VolumeAttachmentList extends Resource { apiVersion?: 'storage.k8s.io/v1alpha1'; items: Array; kind?: 'VolumeAttachmentList'; metadata?: ListMeta; } export interface VolumeAttachmentSource { inlineVolumeSpec?: PersistentVolumeSpec; persistentVolumeName?: string; } export interface VolumeAttachmentSpec { attacher: string; nodeName: string; source: VolumeAttachmentSource; } export interface VolumeAttachmentStatus { attachError?: VolumeError; attached: boolean; attachmentMetadata?: { [name: string]: string; }; detachError?: VolumeError; } export interface VolumeError { message?: string; time?: Time; }