-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstorage.bicep
113 lines (93 loc) · 3.1 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import * as _storageType from 'private/types/storage.bicep'
import * as _insightsType from 'private/types/insight.bicep'
import * as _resourceType from 'private/types/resource.bicep'
import * as _storageFunction from 'private/functions/storage.bicep'
import * as _insightsFunction from 'private/functions/insight.bicep'
/* ----------------------------------------
🤠 Bicep# - Public variables 🤠
------------------------------------------- */
/* ----------------------------------------
😎 Bicep# - Public types 😎
------------------------------------------- */
@export()
type storageProperties = _storageType.storageProperties
@export()
type storageBlobServicesProperties = _storageType.storageBlobServicesProperties
@export()
type storageFileServicesProperties = _storageType.storageFileServicesProperties
@export()
type storageContainerProperties = _storageType.storageContainerProperties
@export()
type storageContainerName = _storageType.storageContainerName
/* ----------------------------------------
💪 Bicep# - Public functions 💪
------------------------------------------- */
@description('''
Build a storage account.
''')
@export()
func buildStorage(storagePostfix string, enableBlobService bool, enableFileService bool) _resourceType.resourceFormat => {
name: replace('st${storagePostfix}', '-', '')
properties: _storageFunction.buildStorageProperties(enableBlobService, enableFileService)
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
@description('''
Build storage blob services.
''')
@export()
func buildStorageBlobService(containerDeleteRetentionDays int, blobDeleteRetentionDays int, corsRules array?) _resourceType.resourceFormatWithDefaultName => {
name: 'default'
properties: _storageFunction.buildStorageBlobPolicyProperties(
containerDeleteRetentionDays,
blobDeleteRetentionDays,
corsRules
)
}
@description('''
Build storage file services.
''')
@export()
func buildStorageFilePolicy(shareDeleteRetentionDays int, corsRules array?) storageFileServicesProperties => {
cors: {
corsRules: corsRules == null ? [] : corsRules
}
shareDeleteRetentionPolicy: {
enabled: true
days: shareDeleteRetentionDays
}
}
@description('''
Build a storage container.
''')
@export()
func buildStorageContainer(containerName string) _resourceType.resourceFormat => {
name: containerName
properties: _storageFunction.buildStorageContainerProperties()
}
@description('''
Build storage diagnostics metrics.
''')
@export()
func buildStorageDiagnosticsMetrics(workspaceId string) _resourceType.resourceFormat => {
name: 'diagMetricTransaction'
properties: _insightsFunction.buildStorageDiagnosticsMetricsProperties(workspaceId)
}
@description('''
Build storage blob service diagnostics logs.
''')
@export()
func buildStorageBlobDiagnosticsLogs(
workspaceId string,
storageWriteCategoryEnabled bool,
storageDeleteCategoryEnabled bool
) _resourceType.resourceFormat => {
name: 'diagLogBlob'
properties: _insightsFunction.buildStorageBlobDiagnosticsLogsProperties(
workspaceId,
storageWriteCategoryEnabled,
storageDeleteCategoryEnabled
)
}