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,931 @@
1
+ from pkgutil import extend_path
2
+ __path__ = extend_path(__path__, __name__)
3
+
4
+ import abc
5
+ import builtins
6
+ import datetime
7
+ import enum
8
+ import typing
9
+
10
+ import jsii
11
+ import publication
12
+ import typing_extensions
13
+
14
+ from typeguard import check_type
15
+
16
+ from .._jsii import *
17
+
18
+ import cdktf_cdktf_provider_azurerm.resource_group as _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf
19
+ import constructs as _constructs_77d1e7e8
20
+ from ..azure_metricalert import (
21
+ IBaseMetricAlertProps as _IBaseMetricAlertProps_12d2ea58
22
+ )
23
+ from ..azure_queryrulealert import (
24
+ BaseAzureQueryRuleAlertProps as _BaseAzureQueryRuleAlertProps_4043a0fa
25
+ )
26
+
27
+
28
+ class AzureResource(
29
+ _constructs_77d1e7e8.Construct,
30
+ metaclass=jsii.JSIIAbstractClass,
31
+ jsii_type="@microsoft/terraform-cdk-constructs.core_azure.AzureResource",
32
+ ):
33
+ def __init__(self, scope: _constructs_77d1e7e8.Construct, id: builtins.str) -> None:
34
+ '''
35
+ :param scope: -
36
+ :param id: -
37
+ '''
38
+ if __debug__:
39
+ type_hints = typing.get_type_hints(_typecheckingstub__0d809bb91fb460c3d8c1da4639116017ae9094849dd971e79bced0656169e740)
40
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
41
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
42
+ jsii.create(self.__class__, self, [scope, id])
43
+
44
+ @jsii.member(jsii_name="addAccess")
45
+ def add_access(
46
+ self,
47
+ object_id: builtins.str,
48
+ custom_role_name: builtins.str,
49
+ ) -> None:
50
+ '''Adds an access role assignment for a specified Azure AD object (e.g., user, group, service principal) within this RBAC construct's scope.
51
+
52
+ This method creates a new role assignment which grants the specified Azure AD object access to resources
53
+ at the scope defined by this construct. This is useful for programmatically managing access controls,
54
+ ensuring only authorized users or systems can perform specific actions on Azure resources.
55
+
56
+ :param object_id: - The unique identifier of the Azure AD object (user, group, or service principal) that will receive the role assignment.
57
+ :param custom_role_name: - The human-readable name of the Azure RBAC role to be assigned. This role defines the permissions that the object will have. Example usage:: // Example: Assign a "Reader" role to a user for the current RBAC scope rbacInstance.addAccess('user-object-id', 'Reader');
58
+ '''
59
+ if __debug__:
60
+ type_hints = typing.get_type_hints(_typecheckingstub__1ec54763e2192509c84ee5593e5da4ef4239aca1590aee01d4bb81aa39fb7408)
61
+ check_type(argname="argument object_id", value=object_id, expected_type=type_hints["object_id"])
62
+ check_type(argname="argument custom_role_name", value=custom_role_name, expected_type=type_hints["custom_role_name"])
63
+ return typing.cast(None, jsii.invoke(self, "addAccess", [object_id, custom_role_name]))
64
+
65
+ @jsii.member(jsii_name="addDiagSettings")
66
+ def add_diag_settings(
67
+ self,
68
+ *,
69
+ eventhub_authorization_rule_id: typing.Optional[builtins.str] = None,
70
+ eventhub_name: typing.Optional[builtins.str] = None,
71
+ log_analytics_destination_type: typing.Optional[builtins.str] = None,
72
+ log_analytics_workspace_id: typing.Optional[builtins.str] = None,
73
+ log_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
74
+ metric_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
75
+ name: typing.Optional[builtins.str] = None,
76
+ partner_solution_id: typing.Optional[builtins.str] = None,
77
+ storage_account_id: typing.Optional[builtins.str] = None,
78
+ ) -> "DiagnosticSettings":
79
+ '''Adds diagnostic settings to a specified resource within this construct.
80
+
81
+ This method creates and configures a new DiagnosticSettings instance which captures and routes
82
+ diagnostic data (logs and metrics) to the specified destinations such as Azure Monitor,
83
+ an Event Hubs instance, a Log Analytics workspace, or an Azure Storage account.
84
+
85
+ :param eventhub_authorization_rule_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_authorization_rule_id MonitorDiagnosticSetting#eventhub_authorization_rule_id}.
86
+ :param eventhub_name: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_name MonitorDiagnosticSetting#eventhub_name}.
87
+ :param log_analytics_destination_type: When set to 'Dedicated' logs sent to a Log Analytics workspace will go into resource specific tables, instead of the legacy AzureDiagnostics table.
88
+ :param log_analytics_workspace_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#log_analytics_workspace_id MonitorDiagnosticSetting#log_analytics_workspace_id}.
89
+ :param log_categories: Log Diagnostic categories. Default: null
90
+ :param metric_categories: Diagnostic Metrics. Default: null
91
+ :param name: Name of the diagnostic settings resource.
92
+ :param partner_solution_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#partner_solution_id MonitorDiagnosticSetting#partner_solution_id}.
93
+ :param storage_account_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#storage_account_id MonitorDiagnosticSetting#storage_account_id}.
94
+
95
+ :return:
96
+
97
+ An instance of the DiagnosticSettings class, configured with the provided properties.
98
+
99
+ Example usage::
100
+
101
+ const diagSettings = resource.addDiagSettings({
102
+ name: 'custom-diag-settings',
103
+ logAnalyticsWorkspaceId: 'workspace-id',
104
+ eventhubAuthorizationRuleId: 'auth-rule-id',
105
+ eventhubName: 'eventhub-name',
106
+ storageAccountId: 'storage-account-id'
107
+ });
108
+ '''
109
+ props = BaseDiagnosticSettingsProps(
110
+ eventhub_authorization_rule_id=eventhub_authorization_rule_id,
111
+ eventhub_name=eventhub_name,
112
+ log_analytics_destination_type=log_analytics_destination_type,
113
+ log_analytics_workspace_id=log_analytics_workspace_id,
114
+ log_categories=log_categories,
115
+ metric_categories=metric_categories,
116
+ name=name,
117
+ partner_solution_id=partner_solution_id,
118
+ storage_account_id=storage_account_id,
119
+ )
120
+
121
+ return typing.cast("DiagnosticSettings", jsii.invoke(self, "addDiagSettings", [props]))
122
+
123
+ @jsii.member(jsii_name="setupResourceGroup")
124
+ def _setup_resource_group(
125
+ self,
126
+ props: typing.Any,
127
+ ) -> _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup:
128
+ '''
129
+ :param props: -
130
+ '''
131
+ if __debug__:
132
+ type_hints = typing.get_type_hints(_typecheckingstub__86a048b49abd3669d94dd16efa624109867367b2a77395f1efa91ed040fc0ae6)
133
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
134
+ return typing.cast(_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup, jsii.invoke(self, "setupResourceGroup", [props]))
135
+
136
+ @builtins.property
137
+ @jsii.member(jsii_name="id")
138
+ def id(self) -> builtins.str:
139
+ return typing.cast(builtins.str, jsii.get(self, "id"))
140
+
141
+ @id.setter
142
+ def id(self, value: builtins.str) -> None:
143
+ if __debug__:
144
+ type_hints = typing.get_type_hints(_typecheckingstub__c76bd62be03329945b350ba9cbdea9590e8d54e5f751f7be82e789363200b281)
145
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
146
+ jsii.set(self, "id", value)
147
+
148
+ @builtins.property
149
+ @jsii.member(jsii_name="resourceGroup")
150
+ @abc.abstractmethod
151
+ def resource_group(
152
+ self,
153
+ ) -> _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup:
154
+ ...
155
+
156
+ @resource_group.setter
157
+ @abc.abstractmethod
158
+ def resource_group(
159
+ self,
160
+ value: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
161
+ ) -> None:
162
+ ...
163
+
164
+
165
+ class _AzureResourceProxy(AzureResource):
166
+ @builtins.property
167
+ @jsii.member(jsii_name="resourceGroup")
168
+ def resource_group(
169
+ self,
170
+ ) -> _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup:
171
+ return typing.cast(_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup, jsii.get(self, "resourceGroup"))
172
+
173
+ @resource_group.setter
174
+ def resource_group(
175
+ self,
176
+ value: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
177
+ ) -> None:
178
+ if __debug__:
179
+ type_hints = typing.get_type_hints(_typecheckingstub__8ec98b98f30c15ce877c15ada05260a413f2e1e07468ff9124c9e8c7413dc8e4)
180
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
181
+ jsii.set(self, "resourceGroup", value)
182
+
183
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the abstract class
184
+ typing.cast(typing.Any, AzureResource).__jsii_proxy_class__ = lambda : _AzureResourceProxy
185
+
186
+
187
+ class AzureResourceWithAlert(
188
+ AzureResource,
189
+ metaclass=jsii.JSIIAbstractClass,
190
+ jsii_type="@microsoft/terraform-cdk-constructs.core_azure.AzureResourceWithAlert",
191
+ ):
192
+ def __init__(self, scope: _constructs_77d1e7e8.Construct, id: builtins.str) -> None:
193
+ '''
194
+ :param scope: -
195
+ :param id: -
196
+ '''
197
+ if __debug__:
198
+ type_hints = typing.get_type_hints(_typecheckingstub__a45c4ecedb362baec5e5a9092dddfd5804232a4339f634bec4aea7bcfd647a80)
199
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
200
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
201
+ jsii.create(self.__class__, self, [scope, id])
202
+
203
+ @jsii.member(jsii_name="addMetricAlert")
204
+ def add_metric_alert(self, props: _IBaseMetricAlertProps_12d2ea58) -> None:
205
+ '''
206
+ :param props: -
207
+ '''
208
+ if __debug__:
209
+ type_hints = typing.get_type_hints(_typecheckingstub__65d4eb9ef355ec1d15f73a29b1f1e435c0a47019ec2ac5b552cdab9e9bab1852)
210
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
211
+ return typing.cast(None, jsii.invoke(self, "addMetricAlert", [props]))
212
+
213
+ @jsii.member(jsii_name="addQueryRuleAlert")
214
+ def add_query_rule_alert(
215
+ self,
216
+ *,
217
+ criteria_operator: builtins.str,
218
+ criteria_query: builtins.str,
219
+ criteria_threshold: jsii.Number,
220
+ criteriatime_aggregation_method: builtins.str,
221
+ evaluation_frequency: builtins.str,
222
+ location: builtins.str,
223
+ name: builtins.str,
224
+ resource_group: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
225
+ severity: jsii.Number,
226
+ window_duration: builtins.str,
227
+ action_action_group_id: typing.Optional[typing.Sequence[builtins.str]] = None,
228
+ auto_mitigation_enabled: typing.Optional[builtins.bool] = None,
229
+ criteria_dimension_name: typing.Optional[builtins.str] = None,
230
+ criteria_dimension_operator: typing.Optional[builtins.str] = None,
231
+ criteria_dimension_values: typing.Optional[typing.Sequence[builtins.str]] = None,
232
+ criteria_fail_minimum_failing_periods_to_trigger_alert: typing.Optional[jsii.Number] = None,
233
+ criteria_fail_number_of_evaluation_periods: typing.Optional[jsii.Number] = None,
234
+ criteria_metric_measure_column: typing.Optional[builtins.str] = None,
235
+ description: typing.Optional[builtins.str] = None,
236
+ display_name: typing.Optional[builtins.str] = None,
237
+ enabled: typing.Optional[builtins.bool] = None,
238
+ mute_actions_after_alert_duration: typing.Optional[builtins.str] = None,
239
+ query_time_range_override: typing.Optional[builtins.str] = None,
240
+ skip_query_validation: typing.Optional[builtins.bool] = None,
241
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
242
+ workspace_alerts_storage_enabled: typing.Optional[builtins.bool] = None,
243
+ ) -> None:
244
+ '''
245
+ :param criteria_operator: Specifies the criteria operator. Possible values are Equal, GreaterThan, GreaterThanOrEqual, LessThan,and LessThanOrEqual.
246
+ :param criteria_query: The query to run on logs. The results returned by this query are used to populate the alert.
247
+ :param criteria_threshold: Specifies the criteria threshold value that activates the alert.
248
+ :param criteriatime_aggregation_method: The type of aggregation to apply to the data points in aggregation granularity. Possible values are Average, Count, Maximum, Minimum,and Total.
249
+ :param evaluation_frequency: How often the scheduled query rule is evaluated, represented in ISO 8601 duration format. Possible values are PT1M, PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D.
250
+ :param location: The location of the Monitor Scheduled Query Rule.
251
+ :param name: The name of the Monitor Scheduled Query Rule.
252
+ :param resource_group: The name of the resource group in which the Monitor Scheduled Query Rule is created.
253
+ :param severity: Severity of the alert. Should be an integer between 0 and 4. Value of 0 is severest.
254
+ :param window_duration: Specifies the period of time in ISO 8601 duration format on which the Scheduled Query Rule will be executed (bin size).
255
+ :param action_action_group_id: Specifies the action group IDs to trigger when the alert fires.
256
+ :param auto_mitigation_enabled: Specifies the flag that indicates whether the alert should be automatically resolved or not. Default: false
257
+ :param criteria_dimension_name: Name of the dimension for criteria.
258
+ :param criteria_dimension_operator: Operator for dimension values. Possible values are Exclude, and Include.
259
+ :param criteria_dimension_values: List of dimension values. Use a wildcard * to collect all.
260
+ :param criteria_fail_minimum_failing_periods_to_trigger_alert: Specifies the number of violations to trigger an alert. Should be smaller or equal to number_of_evaluation_periods. Possible value is integer between 1 and 6.
261
+ :param criteria_fail_number_of_evaluation_periods: Specifies the number of evaluation periods. Possible value is integer between 1 and 6.
262
+ :param criteria_metric_measure_column: Specifies the column containing the metric measure number. criteriaMetricMeasureColumn is required if criteriatimeAggregationMethod is Average, Maximum, Minimum, or Total. And criteriaMetricMeasureColumn cannot be specified if criteriatimeAggregationMethod is Count.
263
+ :param description: Specifies the description of the scheduled query rule.
264
+ :param display_name: Specifies the display name of the alert rule.
265
+ :param enabled: Specifies the flag which indicates whether this scheduled query rule is enabled. Default: true
266
+ :param mute_actions_after_alert_duration: Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired. Possible values are PT5M, PT10M, PT15M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
267
+ :param query_time_range_override: Set this if the alert evaluation period is different from the query time range. If not specified, the value is window_duration*number_of_evaluation_periods. Possible values are PT5M, PT10M, PT15M, PT20M, PT30M, PT45M, PT1H, PT2H, PT3H, PT4H, PT5H, PT6H, P1D and P2D.
268
+ :param skip_query_validation: Specifies the flag which indicates whether the provided query should be validated or not. Default: true
269
+ :param tags: A mapping of tags which should be assigned to the Monitor Scheduled Query Rule.
270
+ :param workspace_alerts_storage_enabled: Specifies the flag which indicates whether this scheduled query rule check if storage is configured. Default: false
271
+ '''
272
+ props = _BaseAzureQueryRuleAlertProps_4043a0fa(
273
+ criteria_operator=criteria_operator,
274
+ criteria_query=criteria_query,
275
+ criteria_threshold=criteria_threshold,
276
+ criteriatime_aggregation_method=criteriatime_aggregation_method,
277
+ evaluation_frequency=evaluation_frequency,
278
+ location=location,
279
+ name=name,
280
+ resource_group=resource_group,
281
+ severity=severity,
282
+ window_duration=window_duration,
283
+ action_action_group_id=action_action_group_id,
284
+ auto_mitigation_enabled=auto_mitigation_enabled,
285
+ criteria_dimension_name=criteria_dimension_name,
286
+ criteria_dimension_operator=criteria_dimension_operator,
287
+ criteria_dimension_values=criteria_dimension_values,
288
+ criteria_fail_minimum_failing_periods_to_trigger_alert=criteria_fail_minimum_failing_periods_to_trigger_alert,
289
+ criteria_fail_number_of_evaluation_periods=criteria_fail_number_of_evaluation_periods,
290
+ criteria_metric_measure_column=criteria_metric_measure_column,
291
+ description=description,
292
+ display_name=display_name,
293
+ enabled=enabled,
294
+ mute_actions_after_alert_duration=mute_actions_after_alert_duration,
295
+ query_time_range_override=query_time_range_override,
296
+ skip_query_validation=skip_query_validation,
297
+ tags=tags,
298
+ workspace_alerts_storage_enabled=workspace_alerts_storage_enabled,
299
+ )
300
+
301
+ return typing.cast(None, jsii.invoke(self, "addQueryRuleAlert", [props]))
302
+
303
+
304
+ class _AzureResourceWithAlertProxy(
305
+ AzureResourceWithAlert,
306
+ jsii.proxy_for(AzureResource), # type: ignore[misc]
307
+ ):
308
+ pass
309
+
310
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the abstract class
311
+ typing.cast(typing.Any, AzureResourceWithAlert).__jsii_proxy_class__ = lambda : _AzureResourceWithAlertProxy
312
+
313
+
314
+ @jsii.data_type(
315
+ jsii_type="@microsoft/terraform-cdk-constructs.core_azure.BaseDiagnosticSettingsProps",
316
+ jsii_struct_bases=[],
317
+ name_mapping={
318
+ "eventhub_authorization_rule_id": "eventhubAuthorizationRuleId",
319
+ "eventhub_name": "eventhubName",
320
+ "log_analytics_destination_type": "logAnalyticsDestinationType",
321
+ "log_analytics_workspace_id": "logAnalyticsWorkspaceId",
322
+ "log_categories": "logCategories",
323
+ "metric_categories": "metricCategories",
324
+ "name": "name",
325
+ "partner_solution_id": "partnerSolutionId",
326
+ "storage_account_id": "storageAccountId",
327
+ },
328
+ )
329
+ class BaseDiagnosticSettingsProps:
330
+ def __init__(
331
+ self,
332
+ *,
333
+ eventhub_authorization_rule_id: typing.Optional[builtins.str] = None,
334
+ eventhub_name: typing.Optional[builtins.str] = None,
335
+ log_analytics_destination_type: typing.Optional[builtins.str] = None,
336
+ log_analytics_workspace_id: typing.Optional[builtins.str] = None,
337
+ log_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
338
+ metric_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
339
+ name: typing.Optional[builtins.str] = None,
340
+ partner_solution_id: typing.Optional[builtins.str] = None,
341
+ storage_account_id: typing.Optional[builtins.str] = None,
342
+ ) -> None:
343
+ '''
344
+ :param eventhub_authorization_rule_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_authorization_rule_id MonitorDiagnosticSetting#eventhub_authorization_rule_id}.
345
+ :param eventhub_name: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_name MonitorDiagnosticSetting#eventhub_name}.
346
+ :param log_analytics_destination_type: When set to 'Dedicated' logs sent to a Log Analytics workspace will go into resource specific tables, instead of the legacy AzureDiagnostics table.
347
+ :param log_analytics_workspace_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#log_analytics_workspace_id MonitorDiagnosticSetting#log_analytics_workspace_id}.
348
+ :param log_categories: Log Diagnostic categories. Default: null
349
+ :param metric_categories: Diagnostic Metrics. Default: null
350
+ :param name: Name of the diagnostic settings resource.
351
+ :param partner_solution_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#partner_solution_id MonitorDiagnosticSetting#partner_solution_id}.
352
+ :param storage_account_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#storage_account_id MonitorDiagnosticSetting#storage_account_id}.
353
+ '''
354
+ if __debug__:
355
+ type_hints = typing.get_type_hints(_typecheckingstub__de79486227d0f87abf4c04407e9d3509a556e6555a06340dd21f60a0a790062f)
356
+ check_type(argname="argument eventhub_authorization_rule_id", value=eventhub_authorization_rule_id, expected_type=type_hints["eventhub_authorization_rule_id"])
357
+ check_type(argname="argument eventhub_name", value=eventhub_name, expected_type=type_hints["eventhub_name"])
358
+ check_type(argname="argument log_analytics_destination_type", value=log_analytics_destination_type, expected_type=type_hints["log_analytics_destination_type"])
359
+ check_type(argname="argument log_analytics_workspace_id", value=log_analytics_workspace_id, expected_type=type_hints["log_analytics_workspace_id"])
360
+ check_type(argname="argument log_categories", value=log_categories, expected_type=type_hints["log_categories"])
361
+ check_type(argname="argument metric_categories", value=metric_categories, expected_type=type_hints["metric_categories"])
362
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
363
+ check_type(argname="argument partner_solution_id", value=partner_solution_id, expected_type=type_hints["partner_solution_id"])
364
+ check_type(argname="argument storage_account_id", value=storage_account_id, expected_type=type_hints["storage_account_id"])
365
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
366
+ if eventhub_authorization_rule_id is not None:
367
+ self._values["eventhub_authorization_rule_id"] = eventhub_authorization_rule_id
368
+ if eventhub_name is not None:
369
+ self._values["eventhub_name"] = eventhub_name
370
+ if log_analytics_destination_type is not None:
371
+ self._values["log_analytics_destination_type"] = log_analytics_destination_type
372
+ if log_analytics_workspace_id is not None:
373
+ self._values["log_analytics_workspace_id"] = log_analytics_workspace_id
374
+ if log_categories is not None:
375
+ self._values["log_categories"] = log_categories
376
+ if metric_categories is not None:
377
+ self._values["metric_categories"] = metric_categories
378
+ if name is not None:
379
+ self._values["name"] = name
380
+ if partner_solution_id is not None:
381
+ self._values["partner_solution_id"] = partner_solution_id
382
+ if storage_account_id is not None:
383
+ self._values["storage_account_id"] = storage_account_id
384
+
385
+ @builtins.property
386
+ def eventhub_authorization_rule_id(self) -> typing.Optional[builtins.str]:
387
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_authorization_rule_id MonitorDiagnosticSetting#eventhub_authorization_rule_id}.'''
388
+ result = self._values.get("eventhub_authorization_rule_id")
389
+ return typing.cast(typing.Optional[builtins.str], result)
390
+
391
+ @builtins.property
392
+ def eventhub_name(self) -> typing.Optional[builtins.str]:
393
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_name MonitorDiagnosticSetting#eventhub_name}.'''
394
+ result = self._values.get("eventhub_name")
395
+ return typing.cast(typing.Optional[builtins.str], result)
396
+
397
+ @builtins.property
398
+ def log_analytics_destination_type(self) -> typing.Optional[builtins.str]:
399
+ '''When set to 'Dedicated' logs sent to a Log Analytics workspace will go into resource specific tables, instead of the legacy AzureDiagnostics table.'''
400
+ result = self._values.get("log_analytics_destination_type")
401
+ return typing.cast(typing.Optional[builtins.str], result)
402
+
403
+ @builtins.property
404
+ def log_analytics_workspace_id(self) -> typing.Optional[builtins.str]:
405
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#log_analytics_workspace_id MonitorDiagnosticSetting#log_analytics_workspace_id}.'''
406
+ result = self._values.get("log_analytics_workspace_id")
407
+ return typing.cast(typing.Optional[builtins.str], result)
408
+
409
+ @builtins.property
410
+ def log_categories(self) -> typing.Optional[typing.List[builtins.str]]:
411
+ '''Log Diagnostic categories.
412
+
413
+ :default: null
414
+ '''
415
+ result = self._values.get("log_categories")
416
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
417
+
418
+ @builtins.property
419
+ def metric_categories(self) -> typing.Optional[typing.List[builtins.str]]:
420
+ '''Diagnostic Metrics.
421
+
422
+ :default: null
423
+ '''
424
+ result = self._values.get("metric_categories")
425
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
426
+
427
+ @builtins.property
428
+ def name(self) -> typing.Optional[builtins.str]:
429
+ '''Name of the diagnostic settings resource.'''
430
+ result = self._values.get("name")
431
+ return typing.cast(typing.Optional[builtins.str], result)
432
+
433
+ @builtins.property
434
+ def partner_solution_id(self) -> typing.Optional[builtins.str]:
435
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#partner_solution_id MonitorDiagnosticSetting#partner_solution_id}.'''
436
+ result = self._values.get("partner_solution_id")
437
+ return typing.cast(typing.Optional[builtins.str], result)
438
+
439
+ @builtins.property
440
+ def storage_account_id(self) -> typing.Optional[builtins.str]:
441
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#storage_account_id MonitorDiagnosticSetting#storage_account_id}.'''
442
+ result = self._values.get("storage_account_id")
443
+ return typing.cast(typing.Optional[builtins.str], result)
444
+
445
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
446
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
447
+
448
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
449
+ return not (rhs == self)
450
+
451
+ def __repr__(self) -> str:
452
+ return "BaseDiagnosticSettingsProps(%s)" % ", ".join(
453
+ k + "=" + repr(v) for k, v in self._values.items()
454
+ )
455
+
456
+
457
+ class DiagnosticSettings(
458
+ _constructs_77d1e7e8.Construct,
459
+ metaclass=jsii.JSIIMeta,
460
+ jsii_type="@microsoft/terraform-cdk-constructs.core_azure.DiagnosticSettings",
461
+ ):
462
+ def __init__(
463
+ self,
464
+ scope: _constructs_77d1e7e8.Construct,
465
+ id: builtins.str,
466
+ *,
467
+ target_resource_id: builtins.str,
468
+ eventhub_authorization_rule_id: typing.Optional[builtins.str] = None,
469
+ eventhub_name: typing.Optional[builtins.str] = None,
470
+ log_analytics_destination_type: typing.Optional[builtins.str] = None,
471
+ log_analytics_workspace_id: typing.Optional[builtins.str] = None,
472
+ log_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
473
+ metric_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
474
+ name: typing.Optional[builtins.str] = None,
475
+ partner_solution_id: typing.Optional[builtins.str] = None,
476
+ storage_account_id: typing.Optional[builtins.str] = None,
477
+ ) -> None:
478
+ '''Manages the diagnostic settings for monitoring Azure resources.
479
+
480
+ This class is responsible for configuring Azure Monitor Diagnostic Settings to collect and route metrics and logs from
481
+ Azure resources to monitoring and analytics services. Diagnostic settings can be applied to resources like VMs,
482
+ App Services, and more, allowing collected data to be sent to Event Hubs, Log Analytics workspaces, or Azure Storage.
483
+
484
+ :param scope: - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
485
+ :param id: - The unique identifier for this instance of the diagnostic settings.
486
+ :param target_resource_id: Target resource id to enable diagnostic settings on.
487
+ :param eventhub_authorization_rule_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_authorization_rule_id MonitorDiagnosticSetting#eventhub_authorization_rule_id}.
488
+ :param eventhub_name: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_name MonitorDiagnosticSetting#eventhub_name}.
489
+ :param log_analytics_destination_type: When set to 'Dedicated' logs sent to a Log Analytics workspace will go into resource specific tables, instead of the legacy AzureDiagnostics table.
490
+ :param log_analytics_workspace_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#log_analytics_workspace_id MonitorDiagnosticSetting#log_analytics_workspace_id}.
491
+ :param log_categories: Log Diagnostic categories. Default: null
492
+ :param metric_categories: Diagnostic Metrics. Default: null
493
+ :param name: Name of the diagnostic settings resource.
494
+ :param partner_solution_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#partner_solution_id MonitorDiagnosticSetting#partner_solution_id}.
495
+ :param storage_account_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#storage_account_id MonitorDiagnosticSetting#storage_account_id}.
496
+ '''
497
+ if __debug__:
498
+ type_hints = typing.get_type_hints(_typecheckingstub__80dd62adebc7a2ecc3019588edf51d7d9a53544a31ff561745a03f0a50b7b15b)
499
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
500
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
501
+ props = DiagnosticSettingsProps(
502
+ target_resource_id=target_resource_id,
503
+ eventhub_authorization_rule_id=eventhub_authorization_rule_id,
504
+ eventhub_name=eventhub_name,
505
+ log_analytics_destination_type=log_analytics_destination_type,
506
+ log_analytics_workspace_id=log_analytics_workspace_id,
507
+ log_categories=log_categories,
508
+ metric_categories=metric_categories,
509
+ name=name,
510
+ partner_solution_id=partner_solution_id,
511
+ storage_account_id=storage_account_id,
512
+ )
513
+
514
+ jsii.create(self.__class__, self, [scope, id, props])
515
+
516
+ @builtins.property
517
+ @jsii.member(jsii_name="props")
518
+ def props(self) -> "DiagnosticSettingsProps":
519
+ return typing.cast("DiagnosticSettingsProps", jsii.get(self, "props"))
520
+
521
+
522
+ @jsii.data_type(
523
+ jsii_type="@microsoft/terraform-cdk-constructs.core_azure.DiagnosticSettingsProps",
524
+ jsii_struct_bases=[BaseDiagnosticSettingsProps],
525
+ name_mapping={
526
+ "eventhub_authorization_rule_id": "eventhubAuthorizationRuleId",
527
+ "eventhub_name": "eventhubName",
528
+ "log_analytics_destination_type": "logAnalyticsDestinationType",
529
+ "log_analytics_workspace_id": "logAnalyticsWorkspaceId",
530
+ "log_categories": "logCategories",
531
+ "metric_categories": "metricCategories",
532
+ "name": "name",
533
+ "partner_solution_id": "partnerSolutionId",
534
+ "storage_account_id": "storageAccountId",
535
+ "target_resource_id": "targetResourceId",
536
+ },
537
+ )
538
+ class DiagnosticSettingsProps(BaseDiagnosticSettingsProps):
539
+ def __init__(
540
+ self,
541
+ *,
542
+ eventhub_authorization_rule_id: typing.Optional[builtins.str] = None,
543
+ eventhub_name: typing.Optional[builtins.str] = None,
544
+ log_analytics_destination_type: typing.Optional[builtins.str] = None,
545
+ log_analytics_workspace_id: typing.Optional[builtins.str] = None,
546
+ log_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
547
+ metric_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
548
+ name: typing.Optional[builtins.str] = None,
549
+ partner_solution_id: typing.Optional[builtins.str] = None,
550
+ storage_account_id: typing.Optional[builtins.str] = None,
551
+ target_resource_id: builtins.str,
552
+ ) -> None:
553
+ '''
554
+ :param eventhub_authorization_rule_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_authorization_rule_id MonitorDiagnosticSetting#eventhub_authorization_rule_id}.
555
+ :param eventhub_name: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_name MonitorDiagnosticSetting#eventhub_name}.
556
+ :param log_analytics_destination_type: When set to 'Dedicated' logs sent to a Log Analytics workspace will go into resource specific tables, instead of the legacy AzureDiagnostics table.
557
+ :param log_analytics_workspace_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#log_analytics_workspace_id MonitorDiagnosticSetting#log_analytics_workspace_id}.
558
+ :param log_categories: Log Diagnostic categories. Default: null
559
+ :param metric_categories: Diagnostic Metrics. Default: null
560
+ :param name: Name of the diagnostic settings resource.
561
+ :param partner_solution_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#partner_solution_id MonitorDiagnosticSetting#partner_solution_id}.
562
+ :param storage_account_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#storage_account_id MonitorDiagnosticSetting#storage_account_id}.
563
+ :param target_resource_id: Target resource id to enable diagnostic settings on.
564
+ '''
565
+ if __debug__:
566
+ type_hints = typing.get_type_hints(_typecheckingstub__ddb054a038163bb87907b34921a1066d096e6cd55f0734949bd32592e76d01f9)
567
+ check_type(argname="argument eventhub_authorization_rule_id", value=eventhub_authorization_rule_id, expected_type=type_hints["eventhub_authorization_rule_id"])
568
+ check_type(argname="argument eventhub_name", value=eventhub_name, expected_type=type_hints["eventhub_name"])
569
+ check_type(argname="argument log_analytics_destination_type", value=log_analytics_destination_type, expected_type=type_hints["log_analytics_destination_type"])
570
+ check_type(argname="argument log_analytics_workspace_id", value=log_analytics_workspace_id, expected_type=type_hints["log_analytics_workspace_id"])
571
+ check_type(argname="argument log_categories", value=log_categories, expected_type=type_hints["log_categories"])
572
+ check_type(argname="argument metric_categories", value=metric_categories, expected_type=type_hints["metric_categories"])
573
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
574
+ check_type(argname="argument partner_solution_id", value=partner_solution_id, expected_type=type_hints["partner_solution_id"])
575
+ check_type(argname="argument storage_account_id", value=storage_account_id, expected_type=type_hints["storage_account_id"])
576
+ check_type(argname="argument target_resource_id", value=target_resource_id, expected_type=type_hints["target_resource_id"])
577
+ self._values: typing.Dict[builtins.str, typing.Any] = {
578
+ "target_resource_id": target_resource_id,
579
+ }
580
+ if eventhub_authorization_rule_id is not None:
581
+ self._values["eventhub_authorization_rule_id"] = eventhub_authorization_rule_id
582
+ if eventhub_name is not None:
583
+ self._values["eventhub_name"] = eventhub_name
584
+ if log_analytics_destination_type is not None:
585
+ self._values["log_analytics_destination_type"] = log_analytics_destination_type
586
+ if log_analytics_workspace_id is not None:
587
+ self._values["log_analytics_workspace_id"] = log_analytics_workspace_id
588
+ if log_categories is not None:
589
+ self._values["log_categories"] = log_categories
590
+ if metric_categories is not None:
591
+ self._values["metric_categories"] = metric_categories
592
+ if name is not None:
593
+ self._values["name"] = name
594
+ if partner_solution_id is not None:
595
+ self._values["partner_solution_id"] = partner_solution_id
596
+ if storage_account_id is not None:
597
+ self._values["storage_account_id"] = storage_account_id
598
+
599
+ @builtins.property
600
+ def eventhub_authorization_rule_id(self) -> typing.Optional[builtins.str]:
601
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_authorization_rule_id MonitorDiagnosticSetting#eventhub_authorization_rule_id}.'''
602
+ result = self._values.get("eventhub_authorization_rule_id")
603
+ return typing.cast(typing.Optional[builtins.str], result)
604
+
605
+ @builtins.property
606
+ def eventhub_name(self) -> typing.Optional[builtins.str]:
607
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#eventhub_name MonitorDiagnosticSetting#eventhub_name}.'''
608
+ result = self._values.get("eventhub_name")
609
+ return typing.cast(typing.Optional[builtins.str], result)
610
+
611
+ @builtins.property
612
+ def log_analytics_destination_type(self) -> typing.Optional[builtins.str]:
613
+ '''When set to 'Dedicated' logs sent to a Log Analytics workspace will go into resource specific tables, instead of the legacy AzureDiagnostics table.'''
614
+ result = self._values.get("log_analytics_destination_type")
615
+ return typing.cast(typing.Optional[builtins.str], result)
616
+
617
+ @builtins.property
618
+ def log_analytics_workspace_id(self) -> typing.Optional[builtins.str]:
619
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#log_analytics_workspace_id MonitorDiagnosticSetting#log_analytics_workspace_id}.'''
620
+ result = self._values.get("log_analytics_workspace_id")
621
+ return typing.cast(typing.Optional[builtins.str], result)
622
+
623
+ @builtins.property
624
+ def log_categories(self) -> typing.Optional[typing.List[builtins.str]]:
625
+ '''Log Diagnostic categories.
626
+
627
+ :default: null
628
+ '''
629
+ result = self._values.get("log_categories")
630
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
631
+
632
+ @builtins.property
633
+ def metric_categories(self) -> typing.Optional[typing.List[builtins.str]]:
634
+ '''Diagnostic Metrics.
635
+
636
+ :default: null
637
+ '''
638
+ result = self._values.get("metric_categories")
639
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
640
+
641
+ @builtins.property
642
+ def name(self) -> typing.Optional[builtins.str]:
643
+ '''Name of the diagnostic settings resource.'''
644
+ result = self._values.get("name")
645
+ return typing.cast(typing.Optional[builtins.str], result)
646
+
647
+ @builtins.property
648
+ def partner_solution_id(self) -> typing.Optional[builtins.str]:
649
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#partner_solution_id MonitorDiagnosticSetting#partner_solution_id}.'''
650
+ result = self._values.get("partner_solution_id")
651
+ return typing.cast(typing.Optional[builtins.str], result)
652
+
653
+ @builtins.property
654
+ def storage_account_id(self) -> typing.Optional[builtins.str]:
655
+ '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azurerm/3.71.0/docs/resources/monitor_diagnostic_setting#storage_account_id MonitorDiagnosticSetting#storage_account_id}.'''
656
+ result = self._values.get("storage_account_id")
657
+ return typing.cast(typing.Optional[builtins.str], result)
658
+
659
+ @builtins.property
660
+ def target_resource_id(self) -> builtins.str:
661
+ '''Target resource id to enable diagnostic settings on.'''
662
+ result = self._values.get("target_resource_id")
663
+ assert result is not None, "Required property 'target_resource_id' is missing"
664
+ return typing.cast(builtins.str, result)
665
+
666
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
667
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
668
+
669
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
670
+ return not (rhs == self)
671
+
672
+ def __repr__(self) -> str:
673
+ return "DiagnosticSettingsProps(%s)" % ", ".join(
674
+ k + "=" + repr(v) for k, v in self._values.items()
675
+ )
676
+
677
+
678
+ class Rbac(
679
+ _constructs_77d1e7e8.Construct,
680
+ metaclass=jsii.JSIIMeta,
681
+ jsii_type="@microsoft/terraform-cdk-constructs.core_azure.Rbac",
682
+ ):
683
+ def __init__(
684
+ self,
685
+ scope_: _constructs_77d1e7e8.Construct,
686
+ id: builtins.str,
687
+ *,
688
+ object_id: builtins.str,
689
+ role_definition_name: builtins.str,
690
+ scope: builtins.str,
691
+ role_definition_uuid: typing.Optional[builtins.str] = None,
692
+ ) -> None:
693
+ '''Manages Role-Based Access Control (RBAC) assignments within Azure.
694
+
695
+ This class is responsible for creating and managing RBAC role assignments in Azure, which control permissions for Azure AD
696
+ identities to manage Azure resources. It supports assigning roles at different scopes such as subscriptions, resource groups,
697
+ or specific resources.
698
+
699
+ :param scope_: - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
700
+ :param id: - The unique identifier for this instance of the RBAC assignment.
701
+ :param object_id: The unique identifier for objects in Azure AD, such as users, groups, or service principals.
702
+ :param role_definition_name: The human-readable name of the Azure RBAC role, e.g., "Virtual Machine Contributor".
703
+ :param scope: The scope at which the RBAC role assignment is applied. This could be a subscription, resource group, or a specific resource.
704
+ :param role_definition_uuid: The universally unique identifier (UUID) for the Azure RBAC role definition. To find the UUID for a role using Azure CLI, use the command: ``az role definition list --name "Role Name" --query "[].name" -o tsv``
705
+ '''
706
+ if __debug__:
707
+ type_hints = typing.get_type_hints(_typecheckingstub__95b52367ed6e90462817903b7daae252347f5ce187dece5a3502e3c3599976f2)
708
+ check_type(argname="argument scope_", value=scope_, expected_type=type_hints["scope_"])
709
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
710
+ props = RbacProps(
711
+ object_id=object_id,
712
+ role_definition_name=role_definition_name,
713
+ scope=scope,
714
+ role_definition_uuid=role_definition_uuid,
715
+ )
716
+
717
+ jsii.create(self.__class__, self, [scope_, id, props])
718
+
719
+
720
+ @jsii.data_type(
721
+ jsii_type="@microsoft/terraform-cdk-constructs.core_azure.RbacProps",
722
+ jsii_struct_bases=[],
723
+ name_mapping={
724
+ "object_id": "objectId",
725
+ "role_definition_name": "roleDefinitionName",
726
+ "scope": "scope",
727
+ "role_definition_uuid": "roleDefinitionUUID",
728
+ },
729
+ )
730
+ class RbacProps:
731
+ def __init__(
732
+ self,
733
+ *,
734
+ object_id: builtins.str,
735
+ role_definition_name: builtins.str,
736
+ scope: builtins.str,
737
+ role_definition_uuid: typing.Optional[builtins.str] = None,
738
+ ) -> None:
739
+ '''
740
+ :param object_id: The unique identifier for objects in Azure AD, such as users, groups, or service principals.
741
+ :param role_definition_name: The human-readable name of the Azure RBAC role, e.g., "Virtual Machine Contributor".
742
+ :param scope: The scope at which the RBAC role assignment is applied. This could be a subscription, resource group, or a specific resource.
743
+ :param role_definition_uuid: The universally unique identifier (UUID) for the Azure RBAC role definition. To find the UUID for a role using Azure CLI, use the command: ``az role definition list --name "Role Name" --query "[].name" -o tsv``
744
+ '''
745
+ if __debug__:
746
+ type_hints = typing.get_type_hints(_typecheckingstub__aa201a06ac30874dc3cfb95c09452934bc1463c17d71006408982de04ddf0234)
747
+ check_type(argname="argument object_id", value=object_id, expected_type=type_hints["object_id"])
748
+ check_type(argname="argument role_definition_name", value=role_definition_name, expected_type=type_hints["role_definition_name"])
749
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
750
+ check_type(argname="argument role_definition_uuid", value=role_definition_uuid, expected_type=type_hints["role_definition_uuid"])
751
+ self._values: typing.Dict[builtins.str, typing.Any] = {
752
+ "object_id": object_id,
753
+ "role_definition_name": role_definition_name,
754
+ "scope": scope,
755
+ }
756
+ if role_definition_uuid is not None:
757
+ self._values["role_definition_uuid"] = role_definition_uuid
758
+
759
+ @builtins.property
760
+ def object_id(self) -> builtins.str:
761
+ '''The unique identifier for objects in Azure AD, such as users, groups, or service principals.'''
762
+ result = self._values.get("object_id")
763
+ assert result is not None, "Required property 'object_id' is missing"
764
+ return typing.cast(builtins.str, result)
765
+
766
+ @builtins.property
767
+ def role_definition_name(self) -> builtins.str:
768
+ '''The human-readable name of the Azure RBAC role, e.g., "Virtual Machine Contributor".'''
769
+ result = self._values.get("role_definition_name")
770
+ assert result is not None, "Required property 'role_definition_name' is missing"
771
+ return typing.cast(builtins.str, result)
772
+
773
+ @builtins.property
774
+ def scope(self) -> builtins.str:
775
+ '''The scope at which the RBAC role assignment is applied.
776
+
777
+ This could be a subscription, resource group, or a specific resource.
778
+ '''
779
+ result = self._values.get("scope")
780
+ assert result is not None, "Required property 'scope' is missing"
781
+ return typing.cast(builtins.str, result)
782
+
783
+ @builtins.property
784
+ def role_definition_uuid(self) -> typing.Optional[builtins.str]:
785
+ '''The universally unique identifier (UUID) for the Azure RBAC role definition.
786
+
787
+ To find the UUID for a role using Azure CLI, use the command:
788
+ ``az role definition list --name "Role Name" --query "[].name" -o tsv``
789
+ '''
790
+ result = self._values.get("role_definition_uuid")
791
+ return typing.cast(typing.Optional[builtins.str], result)
792
+
793
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
794
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
795
+
796
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
797
+ return not (rhs == self)
798
+
799
+ def __repr__(self) -> str:
800
+ return "RbacProps(%s)" % ", ".join(
801
+ k + "=" + repr(v) for k, v in self._values.items()
802
+ )
803
+
804
+
805
+ __all__ = [
806
+ "AzureResource",
807
+ "AzureResourceWithAlert",
808
+ "BaseDiagnosticSettingsProps",
809
+ "DiagnosticSettings",
810
+ "DiagnosticSettingsProps",
811
+ "Rbac",
812
+ "RbacProps",
813
+ ]
814
+
815
+ publication.publish()
816
+
817
+ def _typecheckingstub__0d809bb91fb460c3d8c1da4639116017ae9094849dd971e79bced0656169e740(
818
+ scope: _constructs_77d1e7e8.Construct,
819
+ id: builtins.str,
820
+ ) -> None:
821
+ """Type checking stubs"""
822
+ pass
823
+
824
+ def _typecheckingstub__1ec54763e2192509c84ee5593e5da4ef4239aca1590aee01d4bb81aa39fb7408(
825
+ object_id: builtins.str,
826
+ custom_role_name: builtins.str,
827
+ ) -> None:
828
+ """Type checking stubs"""
829
+ pass
830
+
831
+ def _typecheckingstub__86a048b49abd3669d94dd16efa624109867367b2a77395f1efa91ed040fc0ae6(
832
+ props: typing.Any,
833
+ ) -> None:
834
+ """Type checking stubs"""
835
+ pass
836
+
837
+ def _typecheckingstub__c76bd62be03329945b350ba9cbdea9590e8d54e5f751f7be82e789363200b281(
838
+ value: builtins.str,
839
+ ) -> None:
840
+ """Type checking stubs"""
841
+ pass
842
+
843
+ def _typecheckingstub__8ec98b98f30c15ce877c15ada05260a413f2e1e07468ff9124c9e8c7413dc8e4(
844
+ value: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
845
+ ) -> None:
846
+ """Type checking stubs"""
847
+ pass
848
+
849
+ def _typecheckingstub__a45c4ecedb362baec5e5a9092dddfd5804232a4339f634bec4aea7bcfd647a80(
850
+ scope: _constructs_77d1e7e8.Construct,
851
+ id: builtins.str,
852
+ ) -> None:
853
+ """Type checking stubs"""
854
+ pass
855
+
856
+ def _typecheckingstub__65d4eb9ef355ec1d15f73a29b1f1e435c0a47019ec2ac5b552cdab9e9bab1852(
857
+ props: _IBaseMetricAlertProps_12d2ea58,
858
+ ) -> None:
859
+ """Type checking stubs"""
860
+ pass
861
+
862
+ def _typecheckingstub__de79486227d0f87abf4c04407e9d3509a556e6555a06340dd21f60a0a790062f(
863
+ *,
864
+ eventhub_authorization_rule_id: typing.Optional[builtins.str] = None,
865
+ eventhub_name: typing.Optional[builtins.str] = None,
866
+ log_analytics_destination_type: typing.Optional[builtins.str] = None,
867
+ log_analytics_workspace_id: typing.Optional[builtins.str] = None,
868
+ log_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
869
+ metric_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
870
+ name: typing.Optional[builtins.str] = None,
871
+ partner_solution_id: typing.Optional[builtins.str] = None,
872
+ storage_account_id: typing.Optional[builtins.str] = None,
873
+ ) -> None:
874
+ """Type checking stubs"""
875
+ pass
876
+
877
+ def _typecheckingstub__80dd62adebc7a2ecc3019588edf51d7d9a53544a31ff561745a03f0a50b7b15b(
878
+ scope: _constructs_77d1e7e8.Construct,
879
+ id: builtins.str,
880
+ *,
881
+ target_resource_id: builtins.str,
882
+ eventhub_authorization_rule_id: typing.Optional[builtins.str] = None,
883
+ eventhub_name: typing.Optional[builtins.str] = None,
884
+ log_analytics_destination_type: typing.Optional[builtins.str] = None,
885
+ log_analytics_workspace_id: typing.Optional[builtins.str] = None,
886
+ log_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
887
+ metric_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
888
+ name: typing.Optional[builtins.str] = None,
889
+ partner_solution_id: typing.Optional[builtins.str] = None,
890
+ storage_account_id: typing.Optional[builtins.str] = None,
891
+ ) -> None:
892
+ """Type checking stubs"""
893
+ pass
894
+
895
+ def _typecheckingstub__ddb054a038163bb87907b34921a1066d096e6cd55f0734949bd32592e76d01f9(
896
+ *,
897
+ eventhub_authorization_rule_id: typing.Optional[builtins.str] = None,
898
+ eventhub_name: typing.Optional[builtins.str] = None,
899
+ log_analytics_destination_type: typing.Optional[builtins.str] = None,
900
+ log_analytics_workspace_id: typing.Optional[builtins.str] = None,
901
+ log_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
902
+ metric_categories: typing.Optional[typing.Sequence[builtins.str]] = None,
903
+ name: typing.Optional[builtins.str] = None,
904
+ partner_solution_id: typing.Optional[builtins.str] = None,
905
+ storage_account_id: typing.Optional[builtins.str] = None,
906
+ target_resource_id: builtins.str,
907
+ ) -> None:
908
+ """Type checking stubs"""
909
+ pass
910
+
911
+ def _typecheckingstub__95b52367ed6e90462817903b7daae252347f5ce187dece5a3502e3c3599976f2(
912
+ scope_: _constructs_77d1e7e8.Construct,
913
+ id: builtins.str,
914
+ *,
915
+ object_id: builtins.str,
916
+ role_definition_name: builtins.str,
917
+ scope: builtins.str,
918
+ role_definition_uuid: typing.Optional[builtins.str] = None,
919
+ ) -> None:
920
+ """Type checking stubs"""
921
+ pass
922
+
923
+ def _typecheckingstub__aa201a06ac30874dc3cfb95c09452934bc1463c17d71006408982de04ddf0234(
924
+ *,
925
+ object_id: builtins.str,
926
+ role_definition_name: builtins.str,
927
+ scope: builtins.str,
928
+ role_definition_uuid: typing.Optional[builtins.str] = None,
929
+ ) -> None:
930
+ """Type checking stubs"""
931
+ pass