/* tslint:disable */
/* eslint-disable */
/**
 * Admin API
 * The Admin API is used to manage the ApeCloud platform. 
 *
 * The version of the OpenAPI document: 1.0.0
 * Contact: support@apecloud.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


// May contain unused imports in some cases
// @ts-ignore
import type { StorageClassReclaimPolicy } from './storage-class-reclaim-policy';
// May contain unused imports in some cases
// @ts-ignore
import type { StorageClassVolumeBindingMode } from './storage-class-volume-binding-mode';

/**
 * StorageClassCreate provides detailed creation information about a storage class.
 * @export
 * @interface StorageClassCreate
 */
export interface StorageClassCreate {
    /**
     * the name of the storage class
     * @type {string}
     * @memberof StorageClassCreate
     */
    'name': string;
    /**
     * the provisioner of the storage class
     * @type {string}
     * @memberof StorageClassCreate
     */
    'provisioner'?: string;
    /**
     * the labels of the storage class
     * @type {{ [key: string]: string; }}
     * @memberof StorageClassCreate
     */
    'labels'?: { [key: string]: string; };
    /**
     * the annotations of the storage class
     * @type {{ [key: string]: string; }}
     * @memberof StorageClassCreate
     */
    'annotations'?: { [key: string]: string; };
    /**
     * the parameters of the storage class
     * @type {{ [key: string]: string; }}
     * @memberof StorageClassCreate
     */
    'parameters'?: { [key: string]: string; };
    /**
     * 
     * @type {StorageClassReclaimPolicy}
     * @memberof StorageClassCreate
     */
    'reclaimPolicy': StorageClassReclaimPolicy;
    /**
     * whether allow volume expansion
     * @type {boolean}
     * @memberof StorageClassCreate
     */
    'allowVolumeExpansion'?: boolean;
    /**
     * 
     * @type {StorageClassVolumeBindingMode}
     * @memberof StorageClassCreate
     */
    'volumeBindingMode': StorageClassVolumeBindingMode;
    /**
     * whether allow clone
     * @type {boolean}
     * @memberof StorageClassCreate
     */
    'allowClone'?: boolean;
    /**
     * whether allow snapshot
     * @type {boolean}
     * @memberof StorageClassCreate
     */
    'allowSnapshot'?: boolean;
    /**
     * whether is default class
     * @type {boolean}
     * @memberof StorageClassCreate
     */
    'isDefaultClass'?: boolean;
    /**
     * the type of the storage class
     * @type {string}
     * @memberof StorageClassCreate
     */
    'type'?: string;
    /**
     * the host path when using local storage provisioner
     * @type {string}
     * @memberof StorageClassCreate
     */
    'hostPath'?: string;
    /**
     * the mount options of the storage class
     * @type {Array<string>}
     * @memberof StorageClassCreate
     */
    'mountOptions'?: Array<string>;
    /**
     * the description of the storage class
     * @type {string}
     * @memberof StorageClassCreate
     */
    'description': string;
    /**
     * the display name of the storage class
     * @type {string}
     * @memberof StorageClassCreate
     */
    'displayName': string;
    /**
     * whether the storage class is enabled
     * @type {boolean}
     * @memberof StorageClassCreate
     */
    'enabled': boolean;
}



