import * as storage from '@pulumi/azure-native/storage'; import { BasicEncryptResourceArgs, PrivateLinkPropsType, ResourceInfoWithInstance } from '../types'; import { Input } from '@pulumi/pulumi'; import { ManagementRules } from './ManagementRules'; export type ContainerProps = { name: string; public?: boolean; }; export type StorageFeatureType = { allowSharedKeyAccess?: boolean; allowBlobPublicAccess?: boolean; /** Enable this storage as static website. */ enableStaticWebsite?: boolean; allowCrossTenantReplication?: boolean; isSftpEnabled?: boolean; }; export type StoragePolicyType = { keyExpirationPeriodInDays?: number; isBlobVersioningEnabled?: boolean; blobProperties?: Omit; /** The management rule applied to Storage level (all containers)*/ defaultManagementRules?: Array; }; export type StorageEndpointTypes = 'blob' | 'table' | 'queue' | 'file' | 'web' | 'dfs'; export type StorageNetworkType = { defaultByPass?: 'AzureServices' | 'None'; vnet?: Array<{ subnetId?: Input; ipAddresses?: Array; }>; privateEndpoint?: Omit & { type: StorageEndpointTypes | StorageEndpointTypes[]; }; }; interface StorageProps extends BasicEncryptResourceArgs { containers?: Array; queues?: Array; fileShares?: Array; features?: StorageFeatureType; policies?: StoragePolicyType; network?: StorageNetworkType; lock?: boolean; } /** Storage Creator */ declare function Storage({ name, group, vaultInfo, enableEncryption, envRoles, envUIDInfo, containers, queues, fileShares, network, features, policies, lock, dependsOn, ignoreChanges, }: StorageProps): ResourceInfoWithInstance; export default Storage;