Bicep Module Documentation
| Property | Value | Description |
|---|---|---|
| general (required) | general | |
| privateLinkBlob | privateLink | Settings for the private endpoint and private link for this resource |
| privateLinkTable | privateLink | Settings for the private endpoint and private link for this resource |
| privateLinkQueue | privateLink | Settings for the private endpoint and private link for this resource |
| privateLinkFile | privateLink | Settings for the private endpoint and private link for this resource |
| privateLinkWeb | privateLink | Settings for the private endpoint and private link for this resource |
| sku (required) | 'Premium_LRS' 'Premium_ZRS' 'Standard_GRS' 'Standard_GZRS' 'Standard_LRS' 'Standard_RAGRS' 'Standard_RAGZRS' 'Standard_ZRS' |
The SKU name. Required for account creation |
| kind (required) | 'BlobStorage' 'BlockBlobStorage' 'FileStorage' 'Storage' 'StorageV2' |
Azure storage account kind classifies storage accounts based on feature set and replication options. |
| managedIdentityType | 'None' 'SystemAssigned' 'SystemAssigned, UserAssigned' 'UserAssigned' |
Type of managed identity associated with this resource (default: SystemAssigned) |
| managedIdentityId | string | User assigned managed identity id to access other resources |
| accessTier | 'Cold' 'Cool' 'Hot' 'Premium' |
Azure storage account access tier determines the cost and performance of storing and accessing data in Azure. |
| allowBlobPublicAccess | bool | is a boolean property that determines whether public access to blobs in the Azure Storage Account is allowed or not. |
| allowCrossTenantReplication | bool | is a boolean property that controls whether replication of data across tenants is permitted in the Azure Storage Account. |
| allowedCopyScope | string | specifies the set of Azure Resource Manager (ARM) templates that are allowed for copying resources in the Azure Storage Account. |
| allowSharedKeyAccess | bool | boolean property that indicates whether shared key access authentication is allowed for the Azure Storage Account, enabling access via account key or SAS (Shared Access Signature). |
| activeDirectoryProperties | activeDirectoryProperties | Provides the identity based authentication settings for Azure Files. |
| defaultSharePermission | 'None' 'StorageFileDataSmbShareContributor' 'StorageFileDataSmbShareElevatedContributor' 'StorageFileDataSmbShareReader' |
Default share permission for users using Kerberos authentication if RBAC role is not assigned. |
| directoryServiceOptions | 'AADDS' 'AADKERB' 'AD' 'None' |
Indicates the directory service used. Note that this enum may be extended in the future. |
| customDomain | customDomain | configure a custom domain name for your Azure Storage Account, enabling you to access your storage resources using a custom URL instead of the default Azure-generated URL. |
| defaultToOAuthAuthentication | bool | A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property. |
| dnsEndpointType | 'AzureDnsZone' 'Standard' |
Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription |
| encryption | object | the security feature in an Azure Storage Account that ensures data at rest is protected by encrypting it, providing an additional layer of data security. |
| requireInfrastructureEncryption | bool | boolean property that enforces the use of infrastructure encryption mechanisms to safeguard data in your Azure Storage Account, enhancing overall data security by ensuring encryption at the underlying infrastructure level. |
| services | services | List of services which support encryption. |
| immutableStorageWithVersioning | immutableStorageWithVersioning | When set to true, it enables object level immutability for all the new containers in the account by default. |
| isHnsEnabled | bool | Set Account HierarchicalNamespace? HierarchicalNamespace organizes the objects or files into a hierarchy of directories for efficient data access. |
| isLocalUserEnabled | bool | Enables local users feature, if set to true |
| isNfsV3Enabled | bool | Enables or disables support for NFSv3 protocol, allowing remote access to files stored in Azure. |
| isSftpEnabled | bool | Enables Secure File Transfer Protocol, if set to true |
| largeFileSharesState | 'Disabled' 'Enabled' |
Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled. |
| minimumTlsVersion | 'TLS1_0' 'TLS1_1' 'TLS1_2' |
Set the minimum TLS version to be permitted on requests to storage. |
| networkAcls | networkAcls | Set firewall rules |
| publicNetworkAccess | 'Disabled' 'Enabled' |
Allow or disallow public network access to Storage Account. Value is optional. |
| routingPreference | routingPreference | Maintains information about the network routing choice opted by the user for data transfer |
| sasPolicy | sasPolicy | SasPolicy assigned to the storage account. |
| supportsHttpsTrafficOnly | bool | Allows https traffic only to storage service if sets to true. |
| fileServices | storageAccountFileServices | |
| blobServices | storageAccountBlobServices | |
| fileShare | storageAccountShare[] | |
| storageAccountContainer | storageAccountContainer[] | |
| queueServices | storageAccountQueue[] | |
| tableServices | storageAccountTable[] |
| Property | Value | Description |
|---|---|---|
| accountType (required) | 'Computer' 'User' |
Specifies the Active Directory account type for Azure Storage. |
| azureStorageSid | string | Specifies the security identifier (SID) for Azure Storage. |
| domainGuid | string | Specifies the domain GUID. |
| domainName | string | Specifies the primary domain that the AD DNS server is authoritative for. |
| domainSid | string | Specifies the security identifier (SID). |
| forestName | string | Specifies the Active Directory forest to get. |
| netBiosDomainName | string | Specifies the NetBIOS domain name. |
| samAccountName | string | Specifies the Active Directory SAMAccountName for Azure Storage. |
| Property | Value | Description |
|---|---|---|
| name (required) | string | Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. |
| useSubDomainName | bool | Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. |
| Property | Value | Description |
|---|---|---|
| enabled | bool | A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. |
| keyType (required) | 'Account' 'Service' |
Encryption key type to be used for the encryption service. Account key type implies that an account-scoped encryption key will be used. Service key type implies that a default service key is used. |
| Property | Value | Description |
|---|---|---|
| enabled | bool | A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. |
| keyType (required) | 'Account' 'Service' |
Encryption key type to be used for the encryption service. Account key type implies that an account-scoped encryption key will be used. Service key type implies that a default service key is used. |
| Property | Value | Description |
|---|---|---|
| enabled | bool | A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. |
| keyType (required) | 'Account' 'Service' |
Encryption key type to be used for the encryption service. Account key type implies that an account-scoped encryption key will be used. Service key type implies that a default service key is used. |
| Property | Value | Description |
|---|---|---|
| enabled | bool | A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. |
| keyType (required) | 'Account' 'Service' |
Encryption key type to be used for the encryption service. Account key type implies that an account-scoped encryption key will be used. Service key type implies that a default service key is used. |
| Property | Value | Description |
|---|---|---|
| blob (required) | blob | The encryption function of the blob storage service. |
| file (required) | file | The encryption function of the file storage service. |
| queue (required) | queue | The encryption function of the queue storage service. |
| table (required) | table | The encryption function of the table storage service. |
| Property | Value | Description |
|---|---|---|
| allowProtectedAppendWrites | bool | When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. |
| immutabilityPeriodSinceCreationInDays | int | The immutability period for the blobs in the container since the policy creation, in days. |
| state (required) | 'Disabled' 'Locked' 'Unlocked' |
The ImmutabilityPolicy state defines the mode of the policy |
| Property | Value | Description |
|---|---|---|
| enabled | bool | This is an immutable property, when set to true it enables object level immutability at the container level. |
| Property | Value | Description |
|---|---|---|
| bypass | 'AzureServices' 'None' |
(default: None) |
| defaultAction | 'Allow' 'Deny' |
(default: deny) |
| ipRules | storageAccountIpRule[] | Add allowed rules to keyvault [Array of IP rules] |
| virtualNetworkRules | storageAccountVirtualNetworkRule[] | Add allowed virtual networks to keyvault [ResourceIds] |
| Property | Value | Description |
|---|---|---|
| publishInternetEndpoints | bool | A boolean flag which indicates whether internet routing storage endpoints are to be published |
| publishMicrosoftEndpoints | bool | A boolean flag which indicates whether microsoft routing storage endpoints are to be published |
| routingChoice | 'InternetRouting' 'MicrosoftRouting' |
Routing Choice defines the kind of network routing opted by the user. |
| Property | Value | Description |
|---|---|---|
| expirationAction | 'Log' | The SAS expiration action. Can only be Log. |
| sasExpirationPeriod | string | The SAS expiration period, DD.HH:MM:SS. |
| Property | Value | Description |
|---|---|---|
| action (required) | 'Allow' | |
| value (required) | string | [[CIDR notation or IP address only IPv4] |
| Property | Value | Description |
|---|---|---|
| id (required) | string | The virtual network Id which should be allowed |
| Property | Value | Description |
|---|---|---|
| protocolSettings | protocolSettings | Protocol settings for file service |
| shareDeleteRetentionPolicy | shareDeleteRetentionPolicy |
| Property | Value | Description |
|---|---|---|
| enabled | bool | Indicates whether multichannel is enabled |
| Property | Value | Description |
|---|---|---|
| authenticationMethods | 'Kerberos' 'NTLMv2' |
SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. |
| channelEncryption | 'AES-128-CCM' 'AES-128-GCM' 'AES-256-GCM' |
SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. |
| kerberosTicketEncryption | 'AES-256' 'RC4-HMAC' |
Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. |
| multichannel | multichannel | |
| versions | 'SMB2.1' 'SMB3.0' 'SMB3.1.1' |
SMB protocol versions supported by server |
| Property | Value | Description |
|---|---|---|
| smb | smb | Setting for SMB protocol |
| Property | Value | Description |
|---|---|---|
| allowPermanentDelete | bool | This property when set to true allows deletion of the soft deleted blob versions and snapshots. |
| days | int | Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. |
| enabled | bool | Indicates whether DeleteRetentionPolicy is enabled. |
| Property | Value | Description |
|---|---|---|
| changeFeed | changeFeed | The blob service properties for change feed events. |
| containerDeleteRetentionPolicy | containerDeleteRetentionPolicy | |
| defaultServiceVersion | string | DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions. |
| deleteRetentionPolicy | deleteRetentionPolicy | The blob service properties for blob soft delete. |
| isVersioningEnabled (required) | bool | Versioning is enabled if set to true. |
| lastAccessTimeTrackingPolicy | lastAccessTimeTrackingPolicy | When set to true last access time based tracking is enabled. |
| restorePolicy | restorePolicy |
| Property | Value | Description |
|---|---|---|
| enabled (required) | bool | Indicates whether change feed event logging is enabled for the Blob service. |
| retentionInDays (required) | int | Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. |
| Property | Value | Description |
|---|---|---|
| allowPermanentDelete (required) | bool | This property when set to true allows deletion of the soft deleted blob versions and snapshots, This property only applies to blob service and does not apply to containers or file share. |
| days (required) | int | Indicates the number of days that the deleted item should be retained |
| enabled (required) | bool | Indicates whether DeleteRetentionPolicy is enabled. |
| Property | Value | Description |
|---|---|---|
| allowPermanentDelete (required) | bool | This property when set to true allows deletion of the soft deleted blob versions and snapshots. This property cannot be used blob restore policy. This property only applies to blob service and does not apply to containers or file share. |
| days (required) | int | Indicates the number of days that the deleted item should be retained |
| enabled (required) | bool | Indicates whether DeleteRetentionPolicy is enabled. |
| Property | Value | Description |
|---|---|---|
| enable (required) | bool | When set to true last access time based tracking is enabled. |
| Property | Value | Description |
|---|---|---|
| days (required) | int | how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. |
| enabled (required) | bool | Blob restore is enabled if set to true. |
| Property | Value | Description |
|---|---|---|
| name (required) | string | share name:Lowercase letters, numbers, and hyphens. Cant start or end with hyphen. Cant use consecutive hyphens. |
| accessTier | 'Cool' 'Hot' 'Premium' 'TransactionOptimized' |
Access tier for specific share. |
| enabledProtocols | 'NFS' 'SMB' |
The authentication protocol that is used for the file share. |
| metadata | object | A name-value pair to associate with the share as metadata. |
| rootSquash | 'AllSquash' 'NoRootSquash' 'RootSquash' |
The property is for NFS share only |
| shareQuota (required) | int | The maximum size of the share, in gigabytes. |
| signedIdentifiers | storageAccountSignedIdentifiers[] | List of stored access policies specified on the share. |
| Property | Value | Description |
|---|---|---|
| accessPolicy (required) | accessPolicy | |
| id (required) | string | An unique identifier of the stored access policy. |
| Property | Value | Description |
|---|---|---|
| expiryTime (required) | string | Expiry time of the access policy |
| permission (required) | string | List of abbreviated permissions. |
| startTime (required) | string | Start time of the access policy |
| Property | Value | Description |
|---|---|---|
| name (required) | string | |
| properties | properties |
| Property | Value | Description |
|---|---|---|
| id | string | A name-value pair to associate with the share as metadata. |
| Property | Value | Description |
|---|---|---|
| name (required) | string | |
| properties | properties |
| Property | Value | Description |
|---|---|---|
| name (required) | string | Start with lowercase letter or number. Cant use consecutive hyphens. |
| defaultEncryptionScope | string | Default the container to use specified encryption scope for all writes. |
| denyEncryptionScopeOverride | bool | Block override of encryption scope from the container default. |
| enableNfsV3AllSquash | bool | Enable NFSv3 all squash on blob container. |
| enableNfsV3RootSquash | bool | Enable NFSv3 root squash on blob container. |
| immutableStorageWithVersioning | immutableStorageWithVersioning | |
| metadata | object | A name-value pair to associate with the container as metadata. |
| publicAccess | 'Blob' 'Container' 'None' |
Specifies whether data in the container may be accessed publicly and the level of access. (default: None) |
| Property | Value | Description |
|---|---|---|
| name | string | Character limit: 1-90. Valid characters: Alphanumerics, periods, underscores, hyphens, and parenthesis. Cant end in period. |
| level (required) | 'CanNotDelete' 'ReadOnly' |
The level of the lock. Possible values are: CanNotDelete and ReadOnly. CanNotDelete means authorized users are able to read and modify the resources, but not delete. ReadOnly means authorized users can only read from a resource, but they cant modify or delete it. Read-Only locks must be commented to be able to deploy again |
| notes | string | Notes about the lock. Maximum of 512 characters. |
| owners | resourceLockOwner[] | The owners of the lock |
| Property | Value | Description |
|---|---|---|
| applicationId (required) | string | The application ID of the lock owner. |
| Property | Value | Description |
|---|---|---|
| principalId (required) | string | The principal ID |
| roleDefinitionId (required) | string | The role definition ID, data file can be used for this |
| condition | string | Condition on the role assignment |
| conditionVersion | string | Version of the condition. Currently the only accepted value is "2.0" |
| delegatedManagedIdentityResourceId | string | Id of the delegated managed identity resource |
| description | string | Description of role assignment |
| principalType (required) | 'Device' 'ForeignGroup' 'Group' 'ServicePrincipal' 'User' |
The principal type of the assigned principal ID |
| Property | Value | Description |
|---|---|---|
| tags | object | Tags of the resource [hashtable] |
| location (required) | string | Location of the resource |
| naming (required) | naming | Naming module of the resource |
| resourceGroupName (required) | string | Name of the resource group where the resource should be located |
| sharedNaming (required) | naming | Reference to the default naming |
| roleAssignments | roleAssignment[] | Role assignments on the resource |
| resourceLocks | resourceLock[] | Resource Locks on the resource |
| Property | Value | Description |
|---|---|---|
| forceFunctionAsFullName | bool | Use the function value as the full name of the resource |
| abbreviation | string | Override the abbreviation of this resource with this parameter |
| environment | string | The resource environment (for example: dev, tst, acc, prd) |
| location | string | The resource location (for example: weu, we, westeurope) |
| customer | string | The name of the customer |
| delimiter | string | The delimiter between resources (default: -) |
| nameFormat | Array containing any of: 'abbreviation' 'customer' 'environment' 'function' 'location' 'param1' 'param2' 'param3' 'useCaseName' |
The order of the array defines the order of elements in the naming scheme |
| param1 | string | Extra parameter self defined |
| param2 | string | Extra parameter self defined |
| param3 | string | Extra parameter self defined |
| function (required) | string | Function of the resource [can be app, db, security,...] |
| useCaseName | string | Name of the use case [can be hub, spoke,...] |
| suffix | string | Suffix for the resource, if empty non will be appended, otherwise will be added to the end [can be index, ...] |
| forceDefaultNaming | bool | Force the CAF naming instead of default company naming |
| Property | Value | Description |
|---|---|---|
| pepNaming | naming | Name of the private endpoint |
| nicNaming | naming | Name of the network interface of the private endpoint |
| privateLinkNaming | naming | Name of the private link connection |
| subnets (required) | subnets[] | Id of the subnets and optionally the name of the resourcegroup in which the private endpoint should be created |
| dnsZoneIds (required) | string[] | List of DNS zone ids that need to be linked |
| Property | Value | Description |
|---|---|---|
| resourceGroupName | string | Resourcegroup (default: resourcegroup defined here => resourceGroup of pep resource => resourceGroup of subnet) |
| id (required) | string | Id of the subnet |
| location | string | Location if Vnet is in different location |