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.
Files changed (27) hide show
  1. microsoft_cdktfconstructs/__init__.py +217 -0
  2. microsoft_cdktfconstructs/_jsii/__init__.py +31 -0
  3. microsoft_cdktfconstructs/_jsii/terraform-cdk-constructs@0.0.3-pre.11.jsii.tgz +0 -0
  4. microsoft_cdktfconstructs/azure_applicationgateway/__init__.py +823 -0
  5. microsoft_cdktfconstructs/azure_applicationinsights/__init__.py +397 -0
  6. microsoft_cdktfconstructs/azure_containerregistry/__init__.py +320 -0
  7. microsoft_cdktfconstructs/azure_eventhub/__init__.py +2213 -0
  8. microsoft_cdktfconstructs/azure_functionapp/__init__.py +908 -0
  9. microsoft_cdktfconstructs/azure_keyvault/__init__.py +1982 -0
  10. microsoft_cdktfconstructs/azure_kubernetes/__init__.py +400 -0
  11. microsoft_cdktfconstructs/azure_kusto/__init__.py +2485 -0
  12. microsoft_cdktfconstructs/azure_loganalytics/__init__.py +652 -0
  13. microsoft_cdktfconstructs/azure_metricalert/__init__.py +1260 -0
  14. microsoft_cdktfconstructs/azure_networksecuritygroup/__init__.py +1742 -0
  15. microsoft_cdktfconstructs/azure_queryrulealert/__init__.py +1189 -0
  16. microsoft_cdktfconstructs/azure_resourcegroup/__init__.py +320 -0
  17. microsoft_cdktfconstructs/azure_storageaccount/__init__.py +1910 -0
  18. microsoft_cdktfconstructs/azure_virtualmachine/__init__.py +1460 -0
  19. microsoft_cdktfconstructs/azure_virtualmachinescaleset/__init__.py +1185 -0
  20. microsoft_cdktfconstructs/azure_virtualnetwork/__init__.py +707 -0
  21. microsoft_cdktfconstructs/core_azure/__init__.py +931 -0
  22. microsoft_cdktfconstructs/py.typed +1 -0
  23. microsoft_cdktfconstructs-0.0.3.dev11.dist-info/LICENSE +19 -0
  24. microsoft_cdktfconstructs-0.0.3.dev11.dist-info/METADATA +188 -0
  25. microsoft_cdktfconstructs-0.0.3.dev11.dist-info/RECORD +27 -0
  26. microsoft_cdktfconstructs-0.0.3.dev11.dist-info/WHEEL +5 -0
  27. 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