import { FileStoreDef, FileStoreInfrx } from "../../../apis/codiac-api/contracts";
/** Metadata describing an existing concrete instance
 *  of a FileStoreDef resource within a cloud provider. */
export interface AzureFileStoreInstance extends FileStoreInfrx {
    resourceGroup: string;
    accessKey: string;
}
/** Abstraction and specification for a share on a file store,
 *  to be mapped to a reserved folder on an asset.
 *
 *  This class can be used as the specification
 *  to programmatically put up and take down concrete file stores.
 *  As such, it outlives the actual entity described by its "instance" property.
 *
 * @param name  The name by which to identify this fileshare definition within the enterprise (Optional: defaults to the shareName).
 * @param type  Indicator of which type of fileshare resource is being used.
 * @param storageAccount  The name within the cloud provider of the file storage account within which the share resides.
 * @param shareName  The name of the fileshare to connect to within the file storage account.
 * @param providerSubscriptionId The Id of the physical Cloud Provider Subscription in which this filestore exists (Azure-specific).
 * @param resourceGroup  The name of the Azure resource group under which the instance is to be created  (Azure-specific).
 * @param instance  Info describing the concrete instance of this file store actually living within a cloud provider subscription.
 */
export interface AzureFileStoreDef extends FileStoreDef {
    storageAccount: string;
    resourceGroup: string;
    instance?: AzureFileStoreInstance | undefined;
}
