microsoft-cdktfconstructs 0.0.3.dev11__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- microsoft_cdktfconstructs/__init__.py +217 -0
- microsoft_cdktfconstructs/_jsii/__init__.py +31 -0
- microsoft_cdktfconstructs/_jsii/terraform-cdk-constructs@0.0.3-pre.11.jsii.tgz +0 -0
- microsoft_cdktfconstructs/azure_applicationgateway/__init__.py +823 -0
- microsoft_cdktfconstructs/azure_applicationinsights/__init__.py +397 -0
- microsoft_cdktfconstructs/azure_containerregistry/__init__.py +320 -0
- microsoft_cdktfconstructs/azure_eventhub/__init__.py +2213 -0
- microsoft_cdktfconstructs/azure_functionapp/__init__.py +908 -0
- microsoft_cdktfconstructs/azure_keyvault/__init__.py +1982 -0
- microsoft_cdktfconstructs/azure_kubernetes/__init__.py +400 -0
- microsoft_cdktfconstructs/azure_kusto/__init__.py +2485 -0
- microsoft_cdktfconstructs/azure_loganalytics/__init__.py +652 -0
- microsoft_cdktfconstructs/azure_metricalert/__init__.py +1260 -0
- microsoft_cdktfconstructs/azure_networksecuritygroup/__init__.py +1742 -0
- microsoft_cdktfconstructs/azure_queryrulealert/__init__.py +1189 -0
- microsoft_cdktfconstructs/azure_resourcegroup/__init__.py +320 -0
- microsoft_cdktfconstructs/azure_storageaccount/__init__.py +1910 -0
- microsoft_cdktfconstructs/azure_virtualmachine/__init__.py +1460 -0
- microsoft_cdktfconstructs/azure_virtualmachinescaleset/__init__.py +1185 -0
- microsoft_cdktfconstructs/azure_virtualnetwork/__init__.py +707 -0
- microsoft_cdktfconstructs/core_azure/__init__.py +931 -0
- microsoft_cdktfconstructs/py.typed +1 -0
- microsoft_cdktfconstructs-0.0.3.dev11.dist-info/LICENSE +19 -0
- microsoft_cdktfconstructs-0.0.3.dev11.dist-info/METADATA +188 -0
- microsoft_cdktfconstructs-0.0.3.dev11.dist-info/RECORD +27 -0
- microsoft_cdktfconstructs-0.0.3.dev11.dist-info/WHEEL +5 -0
- microsoft_cdktfconstructs-0.0.3.dev11.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,652 @@
|
|
|
1
|
+
'''
|
|
2
|
+
# Azure Log Analytics Workspace Construct
|
|
3
|
+
|
|
4
|
+
This class represents a Log Analytics Workspace in Azure. It provides a convenient way to manage Azure Log Analytics Workspaces.
|
|
5
|
+
|
|
6
|
+
## What is a Log Analytics Workspace?
|
|
7
|
+
|
|
8
|
+
Azure Log Analytics Workspace is a unique environment for Azure Monitor log data. Each workspace has its own data repository and configuration, and data sources and solutions are configured to store their data in that workspace.
|
|
9
|
+
|
|
10
|
+
You can learn more about Log Analytics Workspace in the [official Azure documentation](https://docs.microsoft.com/en-us/azure/azure-monitor/logs/data-platform-logs).
|
|
11
|
+
|
|
12
|
+
## Log Analytics Workspace Best Practices
|
|
13
|
+
|
|
14
|
+
* Consolidate your data in a limited number of workspaces.
|
|
15
|
+
* Assign a workspace at the management group level.
|
|
16
|
+
* Log minimal data initially, and then increase as necessary.
|
|
17
|
+
* Create a data export rule for long-term retention and cold data.
|
|
18
|
+
* Assign Azure RBAC roles for Azure Monitor Logs.
|
|
19
|
+
|
|
20
|
+
## Log Analytics Workspace Class Properties
|
|
21
|
+
|
|
22
|
+
This class has several properties that control the Log Analytics Workspace's behaviour:
|
|
23
|
+
|
|
24
|
+
* `location`: The Azure Region where the Log Analytics Workspace will be deployed.
|
|
25
|
+
* `name`: The name of the Log Analytics Workspace.
|
|
26
|
+
* `resource_group_name`: The name of the Azure Resource Group.
|
|
27
|
+
* `sku`: The SKU of the Log Analytics Workspace.
|
|
28
|
+
* `retention`: The number of days of retention.
|
|
29
|
+
* `tags`: The tags to assign to the Resource Group.
|
|
30
|
+
* `rbac`: The RBAC groups to assign to the Resource Group.
|
|
31
|
+
* `data_export`: Creates a DataExport for the Log Analytics Workspace.
|
|
32
|
+
* `functions`: A collection of Log Analytic functions.
|
|
33
|
+
* `queries`: A collection of saved log analytics queries.
|
|
34
|
+
|
|
35
|
+
## Deploying the Log Analytics Workspace
|
|
36
|
+
|
|
37
|
+
You can deploy a Log Analytics Workspace using this class like so:
|
|
38
|
+
|
|
39
|
+
```python
|
|
40
|
+
const azureLogAnalytics = new AzureLogAnalytics(this, 'myLogAnalytics', {
|
|
41
|
+
location: 'West US',
|
|
42
|
+
name: 'myLogAnalytics',
|
|
43
|
+
resource_group_name: 'myResourceGroup',
|
|
44
|
+
sku: 'PerGB2018',
|
|
45
|
+
retention: 30,
|
|
46
|
+
tags: {
|
|
47
|
+
'env': 'production',
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
This code will create a new Log Analytics Workspace named myLogAnalytics in the West US Azure region with a production environment tag. The workspace belongs to the resource group myResourceGroup and uses the PerGB2018 pricing model. It retains data for 30 days.
|
|
53
|
+
|
|
54
|
+
## Cost Optimization
|
|
55
|
+
|
|
56
|
+
In Azure Log Analytics, you are charged for data ingestion and data retention. You pay almost 9x more for data ingested than for data stored. The first 30 days of storage retention are free.
|
|
57
|
+
|
|
58
|
+
To optimize your costs, consider filtering out what is being ingested. Only log data that will be used. To further reduce costs, consider using a data export rule for long-term retention and cold data.
|
|
59
|
+
'''
|
|
60
|
+
from pkgutil import extend_path
|
|
61
|
+
__path__ = extend_path(__path__, __name__)
|
|
62
|
+
|
|
63
|
+
import abc
|
|
64
|
+
import builtins
|
|
65
|
+
import datetime
|
|
66
|
+
import enum
|
|
67
|
+
import typing
|
|
68
|
+
|
|
69
|
+
import jsii
|
|
70
|
+
import publication
|
|
71
|
+
import typing_extensions
|
|
72
|
+
|
|
73
|
+
from typeguard import check_type
|
|
74
|
+
|
|
75
|
+
from .._jsii import *
|
|
76
|
+
|
|
77
|
+
import cdktf_cdktf_provider_azurerm.resource_group as _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf
|
|
78
|
+
import constructs as _constructs_77d1e7e8
|
|
79
|
+
from ..core_azure import AzureResourceWithAlert as _AzureResourceWithAlert_c2e3918b
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@jsii.data_type(
|
|
83
|
+
jsii_type="@microsoft/terraform-cdk-constructs.azure_loganalytics.DataExport",
|
|
84
|
+
jsii_struct_bases=[],
|
|
85
|
+
name_mapping={
|
|
86
|
+
"enabled": "enabled",
|
|
87
|
+
"export_destination_id": "exportDestinationId",
|
|
88
|
+
"name": "name",
|
|
89
|
+
"table_names": "tableNames",
|
|
90
|
+
},
|
|
91
|
+
)
|
|
92
|
+
class DataExport:
|
|
93
|
+
def __init__(
|
|
94
|
+
self,
|
|
95
|
+
*,
|
|
96
|
+
enabled: builtins.bool,
|
|
97
|
+
export_destination_id: builtins.str,
|
|
98
|
+
name: builtins.str,
|
|
99
|
+
table_names: typing.Sequence[builtins.str],
|
|
100
|
+
) -> None:
|
|
101
|
+
'''Properties for defining a data export in a Log Analytics Workspace.
|
|
102
|
+
|
|
103
|
+
:param enabled: Indicates whether the data export is enabled.
|
|
104
|
+
:param export_destination_id: The ID of the destination resource for the export.
|
|
105
|
+
:param name: The name of the data export.
|
|
106
|
+
:param table_names: An array of table names to be included in the data export.
|
|
107
|
+
'''
|
|
108
|
+
if __debug__:
|
|
109
|
+
type_hints = typing.get_type_hints(_typecheckingstub__c10f8d13513051e197c8689ed6dfaed573aa8eb8985cc9af7dbeb58177ee0e27)
|
|
110
|
+
check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
|
|
111
|
+
check_type(argname="argument export_destination_id", value=export_destination_id, expected_type=type_hints["export_destination_id"])
|
|
112
|
+
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
113
|
+
check_type(argname="argument table_names", value=table_names, expected_type=type_hints["table_names"])
|
|
114
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
115
|
+
"enabled": enabled,
|
|
116
|
+
"export_destination_id": export_destination_id,
|
|
117
|
+
"name": name,
|
|
118
|
+
"table_names": table_names,
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@builtins.property
|
|
122
|
+
def enabled(self) -> builtins.bool:
|
|
123
|
+
'''Indicates whether the data export is enabled.'''
|
|
124
|
+
result = self._values.get("enabled")
|
|
125
|
+
assert result is not None, "Required property 'enabled' is missing"
|
|
126
|
+
return typing.cast(builtins.bool, result)
|
|
127
|
+
|
|
128
|
+
@builtins.property
|
|
129
|
+
def export_destination_id(self) -> builtins.str:
|
|
130
|
+
'''The ID of the destination resource for the export.'''
|
|
131
|
+
result = self._values.get("export_destination_id")
|
|
132
|
+
assert result is not None, "Required property 'export_destination_id' is missing"
|
|
133
|
+
return typing.cast(builtins.str, result)
|
|
134
|
+
|
|
135
|
+
@builtins.property
|
|
136
|
+
def name(self) -> builtins.str:
|
|
137
|
+
'''The name of the data export.'''
|
|
138
|
+
result = self._values.get("name")
|
|
139
|
+
assert result is not None, "Required property 'name' is missing"
|
|
140
|
+
return typing.cast(builtins.str, result)
|
|
141
|
+
|
|
142
|
+
@builtins.property
|
|
143
|
+
def table_names(self) -> typing.List[builtins.str]:
|
|
144
|
+
'''An array of table names to be included in the data export.'''
|
|
145
|
+
result = self._values.get("table_names")
|
|
146
|
+
assert result is not None, "Required property 'table_names' is missing"
|
|
147
|
+
return typing.cast(typing.List[builtins.str], result)
|
|
148
|
+
|
|
149
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
150
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
151
|
+
|
|
152
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
153
|
+
return not (rhs == self)
|
|
154
|
+
|
|
155
|
+
def __repr__(self) -> str:
|
|
156
|
+
return "DataExport(%s)" % ", ".join(
|
|
157
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
@jsii.data_type(
|
|
162
|
+
jsii_type="@microsoft/terraform-cdk-constructs.azure_loganalytics.LAFunctions",
|
|
163
|
+
jsii_struct_bases=[],
|
|
164
|
+
name_mapping={
|
|
165
|
+
"display_name": "displayName",
|
|
166
|
+
"function_alias": "functionAlias",
|
|
167
|
+
"function_parameters": "functionParameters",
|
|
168
|
+
"name": "name",
|
|
169
|
+
"query": "query",
|
|
170
|
+
},
|
|
171
|
+
)
|
|
172
|
+
class LAFunctions:
|
|
173
|
+
def __init__(
|
|
174
|
+
self,
|
|
175
|
+
*,
|
|
176
|
+
display_name: builtins.str,
|
|
177
|
+
function_alias: builtins.str,
|
|
178
|
+
function_parameters: typing.Sequence[builtins.str],
|
|
179
|
+
name: builtins.str,
|
|
180
|
+
query: builtins.str,
|
|
181
|
+
) -> None:
|
|
182
|
+
'''Properties for defining a Log Analytics function.
|
|
183
|
+
|
|
184
|
+
:param display_name: The display name for the function.
|
|
185
|
+
:param function_alias: The alias to be used for the function.
|
|
186
|
+
:param function_parameters: A list of parameters for the function.
|
|
187
|
+
:param name: The name of the function.
|
|
188
|
+
:param query: The query that the function will execute.
|
|
189
|
+
'''
|
|
190
|
+
if __debug__:
|
|
191
|
+
type_hints = typing.get_type_hints(_typecheckingstub__97f5c9361a176d34e2751d91fbd098eb781392debc703fa70bc94a8b9bd64b35)
|
|
192
|
+
check_type(argname="argument display_name", value=display_name, expected_type=type_hints["display_name"])
|
|
193
|
+
check_type(argname="argument function_alias", value=function_alias, expected_type=type_hints["function_alias"])
|
|
194
|
+
check_type(argname="argument function_parameters", value=function_parameters, expected_type=type_hints["function_parameters"])
|
|
195
|
+
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
196
|
+
check_type(argname="argument query", value=query, expected_type=type_hints["query"])
|
|
197
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
198
|
+
"display_name": display_name,
|
|
199
|
+
"function_alias": function_alias,
|
|
200
|
+
"function_parameters": function_parameters,
|
|
201
|
+
"name": name,
|
|
202
|
+
"query": query,
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@builtins.property
|
|
206
|
+
def display_name(self) -> builtins.str:
|
|
207
|
+
'''The display name for the function.'''
|
|
208
|
+
result = self._values.get("display_name")
|
|
209
|
+
assert result is not None, "Required property 'display_name' is missing"
|
|
210
|
+
return typing.cast(builtins.str, result)
|
|
211
|
+
|
|
212
|
+
@builtins.property
|
|
213
|
+
def function_alias(self) -> builtins.str:
|
|
214
|
+
'''The alias to be used for the function.'''
|
|
215
|
+
result = self._values.get("function_alias")
|
|
216
|
+
assert result is not None, "Required property 'function_alias' is missing"
|
|
217
|
+
return typing.cast(builtins.str, result)
|
|
218
|
+
|
|
219
|
+
@builtins.property
|
|
220
|
+
def function_parameters(self) -> typing.List[builtins.str]:
|
|
221
|
+
'''A list of parameters for the function.'''
|
|
222
|
+
result = self._values.get("function_parameters")
|
|
223
|
+
assert result is not None, "Required property 'function_parameters' is missing"
|
|
224
|
+
return typing.cast(typing.List[builtins.str], result)
|
|
225
|
+
|
|
226
|
+
@builtins.property
|
|
227
|
+
def name(self) -> builtins.str:
|
|
228
|
+
'''The name of the function.'''
|
|
229
|
+
result = self._values.get("name")
|
|
230
|
+
assert result is not None, "Required property 'name' is missing"
|
|
231
|
+
return typing.cast(builtins.str, result)
|
|
232
|
+
|
|
233
|
+
@builtins.property
|
|
234
|
+
def query(self) -> builtins.str:
|
|
235
|
+
'''The query that the function will execute.'''
|
|
236
|
+
result = self._values.get("query")
|
|
237
|
+
assert result is not None, "Required property 'query' is missing"
|
|
238
|
+
return typing.cast(builtins.str, result)
|
|
239
|
+
|
|
240
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
241
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
242
|
+
|
|
243
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
244
|
+
return not (rhs == self)
|
|
245
|
+
|
|
246
|
+
def __repr__(self) -> str:
|
|
247
|
+
return "LAFunctions(%s)" % ", ".join(
|
|
248
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
@jsii.data_type(
|
|
253
|
+
jsii_type="@microsoft/terraform-cdk-constructs.azure_loganalytics.Queries",
|
|
254
|
+
jsii_struct_bases=[],
|
|
255
|
+
name_mapping={
|
|
256
|
+
"category": "category",
|
|
257
|
+
"display_name": "displayName",
|
|
258
|
+
"name": "name",
|
|
259
|
+
"query": "query",
|
|
260
|
+
},
|
|
261
|
+
)
|
|
262
|
+
class Queries:
|
|
263
|
+
def __init__(
|
|
264
|
+
self,
|
|
265
|
+
*,
|
|
266
|
+
category: builtins.str,
|
|
267
|
+
display_name: builtins.str,
|
|
268
|
+
name: builtins.str,
|
|
269
|
+
query: builtins.str,
|
|
270
|
+
) -> None:
|
|
271
|
+
'''Properties for defining a saved query in a Log Analytics Workspace.
|
|
272
|
+
|
|
273
|
+
:param category: The category of the saved query.
|
|
274
|
+
:param display_name: The display name for the saved query.
|
|
275
|
+
:param name: The name of the saved query.
|
|
276
|
+
:param query: The query string.
|
|
277
|
+
'''
|
|
278
|
+
if __debug__:
|
|
279
|
+
type_hints = typing.get_type_hints(_typecheckingstub__1a622ed3880264b9475e672391c11e0ff37089de0255193901b263bbd511eecc)
|
|
280
|
+
check_type(argname="argument category", value=category, expected_type=type_hints["category"])
|
|
281
|
+
check_type(argname="argument display_name", value=display_name, expected_type=type_hints["display_name"])
|
|
282
|
+
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
283
|
+
check_type(argname="argument query", value=query, expected_type=type_hints["query"])
|
|
284
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
285
|
+
"category": category,
|
|
286
|
+
"display_name": display_name,
|
|
287
|
+
"name": name,
|
|
288
|
+
"query": query,
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
@builtins.property
|
|
292
|
+
def category(self) -> builtins.str:
|
|
293
|
+
'''The category of the saved query.'''
|
|
294
|
+
result = self._values.get("category")
|
|
295
|
+
assert result is not None, "Required property 'category' is missing"
|
|
296
|
+
return typing.cast(builtins.str, result)
|
|
297
|
+
|
|
298
|
+
@builtins.property
|
|
299
|
+
def display_name(self) -> builtins.str:
|
|
300
|
+
'''The display name for the saved query.'''
|
|
301
|
+
result = self._values.get("display_name")
|
|
302
|
+
assert result is not None, "Required property 'display_name' is missing"
|
|
303
|
+
return typing.cast(builtins.str, result)
|
|
304
|
+
|
|
305
|
+
@builtins.property
|
|
306
|
+
def name(self) -> builtins.str:
|
|
307
|
+
'''The name of the saved query.'''
|
|
308
|
+
result = self._values.get("name")
|
|
309
|
+
assert result is not None, "Required property 'name' is missing"
|
|
310
|
+
return typing.cast(builtins.str, result)
|
|
311
|
+
|
|
312
|
+
@builtins.property
|
|
313
|
+
def query(self) -> builtins.str:
|
|
314
|
+
'''The query string.'''
|
|
315
|
+
result = self._values.get("query")
|
|
316
|
+
assert result is not None, "Required property 'query' is missing"
|
|
317
|
+
return typing.cast(builtins.str, result)
|
|
318
|
+
|
|
319
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
320
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
321
|
+
|
|
322
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
323
|
+
return not (rhs == self)
|
|
324
|
+
|
|
325
|
+
def __repr__(self) -> str:
|
|
326
|
+
return "Queries(%s)" % ", ".join(
|
|
327
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
328
|
+
)
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
class Workspace(
|
|
332
|
+
_AzureResourceWithAlert_c2e3918b,
|
|
333
|
+
metaclass=jsii.JSIIMeta,
|
|
334
|
+
jsii_type="@microsoft/terraform-cdk-constructs.azure_loganalytics.Workspace",
|
|
335
|
+
):
|
|
336
|
+
def __init__(
|
|
337
|
+
self,
|
|
338
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
339
|
+
id: builtins.str,
|
|
340
|
+
*,
|
|
341
|
+
location: builtins.str,
|
|
342
|
+
name: builtins.str,
|
|
343
|
+
data_export: typing.Optional[typing.Sequence[typing.Union[DataExport, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
344
|
+
functions: typing.Optional[typing.Sequence[typing.Union[LAFunctions, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
345
|
+
queries: typing.Optional[typing.Sequence[typing.Union[Queries, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
346
|
+
resource_group: typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup] = None,
|
|
347
|
+
retention: typing.Optional[jsii.Number] = None,
|
|
348
|
+
sku: typing.Optional[builtins.str] = None,
|
|
349
|
+
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
350
|
+
) -> None:
|
|
351
|
+
'''Represents an Azure Log Analytics Workspace.
|
|
352
|
+
|
|
353
|
+
This class is responsible for the creation and configuration of a Log Analytics Workspace in Azure. A Log Analytics Workspace
|
|
354
|
+
is a unique environment for Azure Monitor data, where data is collected, aggregated, and serves as the administrative boundary.
|
|
355
|
+
Within a workspace, data is collected from various sources and is used for analysis, visualization, and alerting. Configurations
|
|
356
|
+
can include data export rules, saved queries, and custom functions to enhance data analytics capabilities.
|
|
357
|
+
|
|
358
|
+
:param scope: - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
|
|
359
|
+
:param id: - The unique identifier for this instance of the Log Analytics workspace.
|
|
360
|
+
:param location: The Azure Region to deploy.
|
|
361
|
+
:param name: The name of the Log Analytics Workspace.
|
|
362
|
+
:param data_export: Create a DataExport for the Log Analytics Workspace.
|
|
363
|
+
:param functions: A collection of Log Analytic functions.
|
|
364
|
+
:param queries: A collection of log saved log analytics queries.
|
|
365
|
+
:param resource_group: An optional reference to the resource group in which to deploy the Workspace. If not provided, the Workspace will be deployed in the default resource group.
|
|
366
|
+
:param retention: The number of days of retention. Default is 30.
|
|
367
|
+
:param sku: The SKU of the Log Analytics Workspace.
|
|
368
|
+
:param tags: The tags to assign to the Resource Group.
|
|
369
|
+
'''
|
|
370
|
+
if __debug__:
|
|
371
|
+
type_hints = typing.get_type_hints(_typecheckingstub__519ce91b227d947abed8480d06f8dbdcb94fdf3df467029aece4afb9ac0d4062)
|
|
372
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
373
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
374
|
+
props = WorkspaceProps(
|
|
375
|
+
location=location,
|
|
376
|
+
name=name,
|
|
377
|
+
data_export=data_export,
|
|
378
|
+
functions=functions,
|
|
379
|
+
queries=queries,
|
|
380
|
+
resource_group=resource_group,
|
|
381
|
+
retention=retention,
|
|
382
|
+
sku=sku,
|
|
383
|
+
tags=tags,
|
|
384
|
+
)
|
|
385
|
+
|
|
386
|
+
jsii.create(self.__class__, self, [scope, id, props])
|
|
387
|
+
|
|
388
|
+
@builtins.property
|
|
389
|
+
@jsii.member(jsii_name="props")
|
|
390
|
+
def props(self) -> "WorkspaceProps":
|
|
391
|
+
return typing.cast("WorkspaceProps", jsii.get(self, "props"))
|
|
392
|
+
|
|
393
|
+
@builtins.property
|
|
394
|
+
@jsii.member(jsii_name="id")
|
|
395
|
+
def id(self) -> builtins.str:
|
|
396
|
+
return typing.cast(builtins.str, jsii.get(self, "id"))
|
|
397
|
+
|
|
398
|
+
@id.setter
|
|
399
|
+
def id(self, value: builtins.str) -> None:
|
|
400
|
+
if __debug__:
|
|
401
|
+
type_hints = typing.get_type_hints(_typecheckingstub__fa7b3ef950990b4ad74ea33f5b0224eec4f1bd8fb010b54633df1acd9e13c1a7)
|
|
402
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
403
|
+
jsii.set(self, "id", value)
|
|
404
|
+
|
|
405
|
+
@builtins.property
|
|
406
|
+
@jsii.member(jsii_name="resourceGroup")
|
|
407
|
+
def resource_group(
|
|
408
|
+
self,
|
|
409
|
+
) -> _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup:
|
|
410
|
+
return typing.cast(_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup, jsii.get(self, "resourceGroup"))
|
|
411
|
+
|
|
412
|
+
@resource_group.setter
|
|
413
|
+
def resource_group(
|
|
414
|
+
self,
|
|
415
|
+
value: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
|
|
416
|
+
) -> None:
|
|
417
|
+
if __debug__:
|
|
418
|
+
type_hints = typing.get_type_hints(_typecheckingstub__00b55aca11d305b98099eb2df158e8fa57cd3e0c3d030b73e6a5747016e428b1)
|
|
419
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
420
|
+
jsii.set(self, "resourceGroup", value)
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
@jsii.data_type(
|
|
424
|
+
jsii_type="@microsoft/terraform-cdk-constructs.azure_loganalytics.WorkspaceProps",
|
|
425
|
+
jsii_struct_bases=[],
|
|
426
|
+
name_mapping={
|
|
427
|
+
"location": "location",
|
|
428
|
+
"name": "name",
|
|
429
|
+
"data_export": "dataExport",
|
|
430
|
+
"functions": "functions",
|
|
431
|
+
"queries": "queries",
|
|
432
|
+
"resource_group": "resourceGroup",
|
|
433
|
+
"retention": "retention",
|
|
434
|
+
"sku": "sku",
|
|
435
|
+
"tags": "tags",
|
|
436
|
+
},
|
|
437
|
+
)
|
|
438
|
+
class WorkspaceProps:
|
|
439
|
+
def __init__(
|
|
440
|
+
self,
|
|
441
|
+
*,
|
|
442
|
+
location: builtins.str,
|
|
443
|
+
name: builtins.str,
|
|
444
|
+
data_export: typing.Optional[typing.Sequence[typing.Union[DataExport, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
445
|
+
functions: typing.Optional[typing.Sequence[typing.Union[LAFunctions, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
446
|
+
queries: typing.Optional[typing.Sequence[typing.Union[Queries, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
447
|
+
resource_group: typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup] = None,
|
|
448
|
+
retention: typing.Optional[jsii.Number] = None,
|
|
449
|
+
sku: typing.Optional[builtins.str] = None,
|
|
450
|
+
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
451
|
+
) -> None:
|
|
452
|
+
'''
|
|
453
|
+
:param location: The Azure Region to deploy.
|
|
454
|
+
:param name: The name of the Log Analytics Workspace.
|
|
455
|
+
:param data_export: Create a DataExport for the Log Analytics Workspace.
|
|
456
|
+
:param functions: A collection of Log Analytic functions.
|
|
457
|
+
:param queries: A collection of log saved log analytics queries.
|
|
458
|
+
:param resource_group: An optional reference to the resource group in which to deploy the Workspace. If not provided, the Workspace will be deployed in the default resource group.
|
|
459
|
+
:param retention: The number of days of retention. Default is 30.
|
|
460
|
+
:param sku: The SKU of the Log Analytics Workspace.
|
|
461
|
+
:param tags: The tags to assign to the Resource Group.
|
|
462
|
+
'''
|
|
463
|
+
if __debug__:
|
|
464
|
+
type_hints = typing.get_type_hints(_typecheckingstub__8dcb273b120955caa39f0301e0f14ba6ab0e690d4315705b189838e0fcdfa0ec)
|
|
465
|
+
check_type(argname="argument location", value=location, expected_type=type_hints["location"])
|
|
466
|
+
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
467
|
+
check_type(argname="argument data_export", value=data_export, expected_type=type_hints["data_export"])
|
|
468
|
+
check_type(argname="argument functions", value=functions, expected_type=type_hints["functions"])
|
|
469
|
+
check_type(argname="argument queries", value=queries, expected_type=type_hints["queries"])
|
|
470
|
+
check_type(argname="argument resource_group", value=resource_group, expected_type=type_hints["resource_group"])
|
|
471
|
+
check_type(argname="argument retention", value=retention, expected_type=type_hints["retention"])
|
|
472
|
+
check_type(argname="argument sku", value=sku, expected_type=type_hints["sku"])
|
|
473
|
+
check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
|
|
474
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
475
|
+
"location": location,
|
|
476
|
+
"name": name,
|
|
477
|
+
}
|
|
478
|
+
if data_export is not None:
|
|
479
|
+
self._values["data_export"] = data_export
|
|
480
|
+
if functions is not None:
|
|
481
|
+
self._values["functions"] = functions
|
|
482
|
+
if queries is not None:
|
|
483
|
+
self._values["queries"] = queries
|
|
484
|
+
if resource_group is not None:
|
|
485
|
+
self._values["resource_group"] = resource_group
|
|
486
|
+
if retention is not None:
|
|
487
|
+
self._values["retention"] = retention
|
|
488
|
+
if sku is not None:
|
|
489
|
+
self._values["sku"] = sku
|
|
490
|
+
if tags is not None:
|
|
491
|
+
self._values["tags"] = tags
|
|
492
|
+
|
|
493
|
+
@builtins.property
|
|
494
|
+
def location(self) -> builtins.str:
|
|
495
|
+
'''The Azure Region to deploy.'''
|
|
496
|
+
result = self._values.get("location")
|
|
497
|
+
assert result is not None, "Required property 'location' is missing"
|
|
498
|
+
return typing.cast(builtins.str, result)
|
|
499
|
+
|
|
500
|
+
@builtins.property
|
|
501
|
+
def name(self) -> builtins.str:
|
|
502
|
+
'''The name of the Log Analytics Workspace.'''
|
|
503
|
+
result = self._values.get("name")
|
|
504
|
+
assert result is not None, "Required property 'name' is missing"
|
|
505
|
+
return typing.cast(builtins.str, result)
|
|
506
|
+
|
|
507
|
+
@builtins.property
|
|
508
|
+
def data_export(self) -> typing.Optional[typing.List[DataExport]]:
|
|
509
|
+
'''Create a DataExport for the Log Analytics Workspace.'''
|
|
510
|
+
result = self._values.get("data_export")
|
|
511
|
+
return typing.cast(typing.Optional[typing.List[DataExport]], result)
|
|
512
|
+
|
|
513
|
+
@builtins.property
|
|
514
|
+
def functions(self) -> typing.Optional[typing.List[LAFunctions]]:
|
|
515
|
+
'''A collection of Log Analytic functions.'''
|
|
516
|
+
result = self._values.get("functions")
|
|
517
|
+
return typing.cast(typing.Optional[typing.List[LAFunctions]], result)
|
|
518
|
+
|
|
519
|
+
@builtins.property
|
|
520
|
+
def queries(self) -> typing.Optional[typing.List[Queries]]:
|
|
521
|
+
'''A collection of log saved log analytics queries.'''
|
|
522
|
+
result = self._values.get("queries")
|
|
523
|
+
return typing.cast(typing.Optional[typing.List[Queries]], result)
|
|
524
|
+
|
|
525
|
+
@builtins.property
|
|
526
|
+
def resource_group(
|
|
527
|
+
self,
|
|
528
|
+
) -> typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup]:
|
|
529
|
+
'''An optional reference to the resource group in which to deploy the Workspace.
|
|
530
|
+
|
|
531
|
+
If not provided, the Workspace will be deployed in the default resource group.
|
|
532
|
+
'''
|
|
533
|
+
result = self._values.get("resource_group")
|
|
534
|
+
return typing.cast(typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup], result)
|
|
535
|
+
|
|
536
|
+
@builtins.property
|
|
537
|
+
def retention(self) -> typing.Optional[jsii.Number]:
|
|
538
|
+
'''The number of days of retention.
|
|
539
|
+
|
|
540
|
+
Default is 30.
|
|
541
|
+
'''
|
|
542
|
+
result = self._values.get("retention")
|
|
543
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
544
|
+
|
|
545
|
+
@builtins.property
|
|
546
|
+
def sku(self) -> typing.Optional[builtins.str]:
|
|
547
|
+
'''The SKU of the Log Analytics Workspace.'''
|
|
548
|
+
result = self._values.get("sku")
|
|
549
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
550
|
+
|
|
551
|
+
@builtins.property
|
|
552
|
+
def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
|
|
553
|
+
'''The tags to assign to the Resource Group.'''
|
|
554
|
+
result = self._values.get("tags")
|
|
555
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
|
|
556
|
+
|
|
557
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
558
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
559
|
+
|
|
560
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
561
|
+
return not (rhs == self)
|
|
562
|
+
|
|
563
|
+
def __repr__(self) -> str:
|
|
564
|
+
return "WorkspaceProps(%s)" % ", ".join(
|
|
565
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
566
|
+
)
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
__all__ = [
|
|
570
|
+
"DataExport",
|
|
571
|
+
"LAFunctions",
|
|
572
|
+
"Queries",
|
|
573
|
+
"Workspace",
|
|
574
|
+
"WorkspaceProps",
|
|
575
|
+
]
|
|
576
|
+
|
|
577
|
+
publication.publish()
|
|
578
|
+
|
|
579
|
+
def _typecheckingstub__c10f8d13513051e197c8689ed6dfaed573aa8eb8985cc9af7dbeb58177ee0e27(
|
|
580
|
+
*,
|
|
581
|
+
enabled: builtins.bool,
|
|
582
|
+
export_destination_id: builtins.str,
|
|
583
|
+
name: builtins.str,
|
|
584
|
+
table_names: typing.Sequence[builtins.str],
|
|
585
|
+
) -> None:
|
|
586
|
+
"""Type checking stubs"""
|
|
587
|
+
pass
|
|
588
|
+
|
|
589
|
+
def _typecheckingstub__97f5c9361a176d34e2751d91fbd098eb781392debc703fa70bc94a8b9bd64b35(
|
|
590
|
+
*,
|
|
591
|
+
display_name: builtins.str,
|
|
592
|
+
function_alias: builtins.str,
|
|
593
|
+
function_parameters: typing.Sequence[builtins.str],
|
|
594
|
+
name: builtins.str,
|
|
595
|
+
query: builtins.str,
|
|
596
|
+
) -> None:
|
|
597
|
+
"""Type checking stubs"""
|
|
598
|
+
pass
|
|
599
|
+
|
|
600
|
+
def _typecheckingstub__1a622ed3880264b9475e672391c11e0ff37089de0255193901b263bbd511eecc(
|
|
601
|
+
*,
|
|
602
|
+
category: builtins.str,
|
|
603
|
+
display_name: builtins.str,
|
|
604
|
+
name: builtins.str,
|
|
605
|
+
query: builtins.str,
|
|
606
|
+
) -> None:
|
|
607
|
+
"""Type checking stubs"""
|
|
608
|
+
pass
|
|
609
|
+
|
|
610
|
+
def _typecheckingstub__519ce91b227d947abed8480d06f8dbdcb94fdf3df467029aece4afb9ac0d4062(
|
|
611
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
612
|
+
id: builtins.str,
|
|
613
|
+
*,
|
|
614
|
+
location: builtins.str,
|
|
615
|
+
name: builtins.str,
|
|
616
|
+
data_export: typing.Optional[typing.Sequence[typing.Union[DataExport, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
617
|
+
functions: typing.Optional[typing.Sequence[typing.Union[LAFunctions, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
618
|
+
queries: typing.Optional[typing.Sequence[typing.Union[Queries, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
619
|
+
resource_group: typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup] = None,
|
|
620
|
+
retention: typing.Optional[jsii.Number] = None,
|
|
621
|
+
sku: typing.Optional[builtins.str] = None,
|
|
622
|
+
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
623
|
+
) -> None:
|
|
624
|
+
"""Type checking stubs"""
|
|
625
|
+
pass
|
|
626
|
+
|
|
627
|
+
def _typecheckingstub__fa7b3ef950990b4ad74ea33f5b0224eec4f1bd8fb010b54633df1acd9e13c1a7(
|
|
628
|
+
value: builtins.str,
|
|
629
|
+
) -> None:
|
|
630
|
+
"""Type checking stubs"""
|
|
631
|
+
pass
|
|
632
|
+
|
|
633
|
+
def _typecheckingstub__00b55aca11d305b98099eb2df158e8fa57cd3e0c3d030b73e6a5747016e428b1(
|
|
634
|
+
value: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
|
|
635
|
+
) -> None:
|
|
636
|
+
"""Type checking stubs"""
|
|
637
|
+
pass
|
|
638
|
+
|
|
639
|
+
def _typecheckingstub__8dcb273b120955caa39f0301e0f14ba6ab0e690d4315705b189838e0fcdfa0ec(
|
|
640
|
+
*,
|
|
641
|
+
location: builtins.str,
|
|
642
|
+
name: builtins.str,
|
|
643
|
+
data_export: typing.Optional[typing.Sequence[typing.Union[DataExport, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
644
|
+
functions: typing.Optional[typing.Sequence[typing.Union[LAFunctions, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
645
|
+
queries: typing.Optional[typing.Sequence[typing.Union[Queries, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
646
|
+
resource_group: typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup] = None,
|
|
647
|
+
retention: typing.Optional[jsii.Number] = None,
|
|
648
|
+
sku: typing.Optional[builtins.str] = None,
|
|
649
|
+
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
650
|
+
) -> None:
|
|
651
|
+
"""Type checking stubs"""
|
|
652
|
+
pass
|