-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstorage.bicep
86 lines (82 loc) · 2.23 KB
/
storage.bicep
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import * as _storageType from '../types/storage.bicep'
@description('''
Build storage properties
''')
@export()
func buildStorageProperties(enableBlobService bool, enableFileService bool) _storageType.storageProperties => {
accessTier: 'Hot'
allowBlobPublicAccess: false
allowedCopyScope: 'PrivateLink'
allowCrossTenantReplication: false
allowSharedKeyAccess: false
azureFilesIdentityBasedAuthentication: {
directoryServiceOptions: 'None'
}
defaultToOAuthAuthentication: true
encryption: {
requireInfrastructureEncryption: true
services: {
blob: {
enabled: enableBlobService
keyType: 'Account'
}
file: {
enabled: enableFileService
keyType: 'Account'
}
}
keySource: 'Microsoft.Storage'
}
isNfsV3Enabled: false
isSftpEnabled: false
isHnsEnabled: true
largeFileSharesState: 'Disabled'
minimumTlsVersion: loadTextContent('../variables/generated/tls.txt')
networkAcls: {
bypass: 'AzureServices'
defaultAction: 'Deny'
ipRules: []
resourceAccessRules: []
virtualNetworkRules: []
}
publicNetworkAccess: loadTextContent('../variables/generated/publicNetworkAccess.txt')
supportsHttpsTrafficOnly: true
}
@description('''
Build storage blob services properties
''')
@export()
func buildStorageBlobPolicyProperties(containerDeleteRetentionDays int, blobDeleteRetentionDays int, corsRules array?) _storageType.storageBlobServicesProperties => {
containerDeleteRetentionPolicy: {
enabled: true
days: containerDeleteRetentionDays
}
cors: {
corsRules: corsRules == null ? [] : corsRules
}
deleteRetentionPolicy: {
allowPermanentDelete: true
enabled: true
days: blobDeleteRetentionDays
}
}
@description('''
Build storage file services properties
''')
@export()
func buildStorageFilePolicyProperties(shareDeleteRetentionDays int, corsRules array?) _storageType.storageFileServicesProperties => {
cors: {
corsRules: corsRules == null ? [] : corsRules
}
shareDeleteRetentionPolicy: {
enabled: true
days: shareDeleteRetentionDays
}
}
@description('''
Build storage container properties
''')
@export()
func buildStorageContainerProperties() _storageType.storageContainerProperties => {
publicAccess: 'None'
}