import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface ActiveDirectoryProperties { domainName: Expressionable; netBiosDomainName: Expressionable; forestName: Expressionable; domainGuid: Expressionable; domainSid: Expressionable; azureStorageSid: Expressionable; } export interface AzureFilesIdentityBasedAuthentication { directoryServiceOptions: Expressionable<('None' | 'AADDS' | 'AD')>; activeDirectoryProperties?: Expressionable; } export interface BlobServicePropertiesProperties { cors?: Expressionable; defaultServiceVersion?: Expressionable; deleteRetentionPolicy?: Expressionable; automaticSnapshotPolicyEnabled?: Expressionable; changeFeed?: Expressionable; } export interface ChangeFeed { enabled?: Expressionable; } export interface ContainerProperties { publicAccess?: Expressionable<('Container' | 'Blob' | 'None')>; } export interface CorsRule { allowedOrigins: Expressionable; allowedMethods: Expressionable<('DELETE' | 'GET' | 'HEAD' | 'MERGE' | 'POST' | 'OPTIONS' | 'PUT')[]>; maxAgeInSeconds: Expressionable; exposedHeaders: Expressionable; allowedHeaders: Expressionable; } export interface CorsRules { corsRules?: Expressionable; } export interface CustomDomain { name: Expressionable; useSubDomainName?: Expressionable; } export interface DateAfterCreation { daysAfterCreationGreaterThan: Expressionable; } export interface DateAfterModification { daysAfterModificationGreaterThan: Expressionable; } export interface DeleteRetentionPolicy { enabled?: Expressionable; days?: Expressionable; } export interface Encryption { services?: Expressionable; keySource: Expressionable<('Microsoft.Storage' | 'Microsoft.Keyvault')>; keyvaultproperties?: Expressionable; } export interface EncryptionService { enabled?: Expressionable; keyType?: Expressionable<('Service' | 'Account')>; } export interface EncryptionServices { blob?: Expressionable; file?: Expressionable; table?: Expressionable; queue?: Expressionable; } export interface FileServicePropertiesProperties { cors?: Expressionable; shareDeleteRetentionPolicy?: Expressionable; } export interface FileShareProperties { shareQuota?: Expressionable; } export interface Identity { type: Expressionable<('SystemAssigned')>; } export interface ImmutabilityPolicyProperty { immutabilityPeriodSinceCreationInDays: Expressionable; } export interface IPRule { value: Expressionable; action?: Expressionable<('Allow')>; } export interface KeyVaultProperties { keyname?: Expressionable; keyversion?: Expressionable; keyvaulturi?: Expressionable; } export interface ManagementPolicyAction { baseBlob?: Expressionable; snapshot?: Expressionable; } export interface ManagementPolicyBaseBlob { tierToCool?: Expressionable; tierToArchive?: Expressionable; delete?: Expressionable; } export interface ManagementPolicyDefinition { actions: Expressionable; filters?: Expressionable; } export interface ManagementPolicyFilter { prefixMatch?: Expressionable; blobTypes: Expressionable; } export interface ManagementPolicyProperties { policy: Expressionable; } export interface ManagementPolicyRule { enabled?: Expressionable; name: Expressionable; type: Expressionable<('Lifecycle')>; definition: Expressionable; } export interface ManagementPolicySchema { rules: Expressionable; } export interface ManagementPolicySnapShot { delete?: Expressionable; } export interface NetworkRuleSet { bypass?: Expressionable<('None' | 'Logging' | 'Metrics' | 'AzureServices')>; virtualNetworkRules?: Expressionable; ipRules?: Expressionable; defaultAction: Expressionable<('Allow' | 'Deny')>; } export interface PrivateEndpoint { } export interface PrivateEndpointConnectionProperties { privateEndpoint?: Expressionable; privateLinkServiceConnectionState: Expressionable; provisioningState?: Expressionable<('Succeeded' | 'Creating' | 'Deleting' | 'Failed')>; } export interface PrivateLinkServiceConnectionState { status?: Expressionable<('Pending' | 'Approved' | 'Rejected')>; description?: Expressionable; actionRequired?: Expressionable; } export interface RoutingPreference { routingChoice?: Expressionable<('MicrosoftRouting' | 'InternetRouting')>; publishMicrosoftEndpoints?: Expressionable; publishInternetEndpoints?: Expressionable; } export interface Sku { name: Expressionable<('Standard_LRS' | 'Standard_GRS' | 'Standard_RAGRS' | 'Standard_ZRS' | 'Premium_LRS' | 'Premium_ZRS' | 'Standard_GZRS' | 'Standard_RAGZRS')>; tier?: Expressionable<('Standard' | 'Premium')>; } export interface StorageAccountPropertiesCreateParameters { customDomain?: Expressionable; encryption?: Expressionable; networkAcls?: Expressionable; accessTier?: Expressionable<('Hot' | 'Cool')>; azureFilesIdentityBasedAuthentication?: Expressionable; supportsHttpsTrafficOnly?: Expressionable; isHnsEnabled?: Expressionable; largeFileSharesState?: Expressionable<('Disabled' | 'Enabled')>; routingPreference?: Expressionable; } export interface VirtualNetworkRule { id: Expressionable; action?: Expressionable<('Allow')>; state?: Expressionable<('provisioning' | 'deprovisioning' | 'succeeded' | 'failed' | 'networkSourceDeleted')>; } export declare namespace storageAccounts { interface AdditionalProps { identity?: Expressionable; sku: Expressionable; kind: Expressionable<('Storage' | 'StorageV2' | 'BlobStorage' | 'FileStorage' | 'BlockBlobStorage')>; } type StorageAccountsResource = ResourceDefinition; function create(name: Expressionable, properties: StorageAccountPropertiesCreateParameters, location: Expressionable, sku: Expressionable, kind: Expressionable<('Storage' | 'StorageV2' | 'BlobStorage' | 'FileStorage' | 'BlockBlobStorage')>, identity?: Expressionable): StorageAccountsResource; } export declare namespace storageAccounts { namespace blobServices { type BlobServicesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: BlobServicePropertiesProperties): BlobServicesResource; } } export declare namespace storageAccounts { namespace blobServices { namespace containers { type ContainersResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: ContainerProperties): ContainersResource; } } } export declare namespace storageAccounts { namespace blobServices { namespace containers { namespace immutabilityPolicies { type ImmutabilityPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable, Expressionable], properties: ImmutabilityPolicyProperty): ImmutabilityPoliciesResource; } } } } export declare namespace storageAccounts { namespace fileServices { type FileServicesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: FileServicePropertiesProperties): FileServicesResource; } } export declare namespace storageAccounts { namespace fileServices { namespace shares { type SharesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: FileShareProperties): SharesResource; } } } export declare namespace storageAccounts { namespace managementPolicies { type ManagementPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ManagementPolicyProperties): ManagementPoliciesResource; } } export declare namespace storageAccounts { namespace privateEndpointConnections { type PrivateEndpointConnectionsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: PrivateEndpointConnectionProperties): PrivateEndpointConnectionsResource; } }