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,1982 @@
1
+ '''
2
+ # Azure Key Vault Construct
3
+
4
+ This class represents a Key Vault in Azure. It provides a convenient way to manage Azure Key Vault resources.
5
+
6
+ ## What is Azure Key Vault?
7
+
8
+ Azure Key Vault is a service for securely storing and accessing secrets. A secret is anything that you want to tightly control access to, such as API keys, passwords, certificates, or cryptographic keys.
9
+
10
+ You can learn more about Azure Key Vault in the [official Azure documentation](https://docs.microsoft.com/en-us/azure/key-vault/general/overview).
11
+
12
+ ## Key Vault Best Practices
13
+
14
+ * Consolidate your secrets, keys, and certificates into as few key vaults as possible.
15
+ * Use Azure RBAC roles for Key Vault for fine-grained access control.
16
+ * Enable soft delete and purge protection to prevent accidental deletion of secrets.
17
+ * Use Managed identities with Key Vault where possible.
18
+
19
+ ## Key Vault Class Properties
20
+
21
+ This class has several properties that control the Key Vault's behaviour:
22
+
23
+ * `name`: The name of the Key Vault.
24
+ * `location`: The Azure Region where the Key Vault will be deployed.
25
+ * `resource_group_name`: The name of the Azure Resource Group.
26
+ * `tags`: The tags to assign to the Key Vault.
27
+ * `sku`: The Name of the SKU used for this Key Vault. Possible values are `standard` and `premium`.
28
+ * `tenant_id`: The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
29
+
30
+ ## Deploying the Key Vault
31
+
32
+ You can deploy a Key Vault using this class like so:
33
+
34
+ ```python
35
+ const azureKeyVault = new AzureKeyVault(this, 'myKeyVault', {
36
+ name: 'myKeyVault',
37
+ location: 'West US',
38
+ resource_group_name: 'myResourceGroup',
39
+ sku: 'standard',
40
+ tenant_id: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
41
+ tags: {
42
+ 'env': 'production',
43
+ },
44
+ });
45
+ ```
46
+
47
+ This code will create a new Key Vault named myKeyVault in the West US Azure region with a production environment tag. The vault belongs to the resource group myResourceGroup, uses the standard pricing model, and will authenticate requests using the provided tenant ID.
48
+ '''
49
+ from pkgutil import extend_path
50
+ __path__ = extend_path(__path__, __name__)
51
+
52
+ import abc
53
+ import builtins
54
+ import datetime
55
+ import enum
56
+ import typing
57
+
58
+ import jsii
59
+ import publication
60
+ import typing_extensions
61
+
62
+ from typeguard import check_type
63
+
64
+ from .._jsii import *
65
+
66
+ import cdktf_cdktf_provider_azurerm.key_vault as _cdktf_cdktf_provider_azurerm_key_vault_92bbcedf
67
+ import cdktf_cdktf_provider_azurerm.key_vault_certificate as _cdktf_cdktf_provider_azurerm_key_vault_certificate_92bbcedf
68
+ import cdktf_cdktf_provider_azurerm.key_vault_key as _cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf
69
+ import cdktf_cdktf_provider_azurerm.resource_group as _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf
70
+ import constructs as _constructs_77d1e7e8
71
+ from ..core_azure import AzureResource as _AzureResource_74eec1c4
72
+
73
+
74
+ class AccessPolicy(
75
+ _constructs_77d1e7e8.Construct,
76
+ metaclass=jsii.JSIIMeta,
77
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.AccessPolicy",
78
+ ):
79
+ def __init__(
80
+ self,
81
+ scope: _constructs_77d1e7e8.Construct,
82
+ id: builtins.str,
83
+ *,
84
+ key_vault_id: "Vault",
85
+ object_id: builtins.str,
86
+ tenant_id: builtins.str,
87
+ certificate_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
88
+ key_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
89
+ secret_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
90
+ storage_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
91
+ ) -> None:
92
+ '''Constructs a new Access Policy for Azure Key Vault.
93
+
94
+ This class is responsible for setting up access policies that define what operations an Azure AD identity
95
+ can perform on the keys, secrets, certificates, and storage accounts within a specified Azure Key Vault.
96
+
97
+ :param scope: - The scope in which to define this construct, usually representing the Cloud Development Kit (CDK) stack.
98
+ :param id: - The unique identifier for this instance of the access policy.
99
+ :param key_vault_id: The Azure Key Vault instance or its identifier.
100
+ :param object_id: The Azure Active Directory object ID for which the policy will be applied. This can be a user, group, or service principal.
101
+ :param tenant_id: The Azure Active Directory tenant ID where the Key Vault is hosted. This is typically the directory ID of your Azure AD.
102
+ :param certificate_permissions: The permissions to certificates stored in the Key Vault. Possible values might include: 'get', 'list', 'create', 'update', etc. If not provided, no certificate permissions are set.
103
+ :param key_permissions: The permissions to keys stored in the Key Vault. Possible values might include: 'get', 'list', 'create', 'sign', etc. If not provided, no key permissions are set.
104
+ :param secret_permissions: The permissions to secrets stored in the Key Vault. Possible values might include: 'get', 'list', 'set', 'delete', etc. If not provided, no secret permissions are set.
105
+ :param storage_permissions: The permissions to storage accounts linked to the Key Vault. Possible values might include: 'get', 'list', 'delete', 'set', etc. If not provided, no storage permissions are set.
106
+ '''
107
+ if __debug__:
108
+ type_hints = typing.get_type_hints(_typecheckingstub__fd7fc0b79a19acf1e5e94e93e6997a8d5f2b15e90adea376529cae5a756db705)
109
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
110
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
111
+ props = AccessPolicyProps(
112
+ key_vault_id=key_vault_id,
113
+ object_id=object_id,
114
+ tenant_id=tenant_id,
115
+ certificate_permissions=certificate_permissions,
116
+ key_permissions=key_permissions,
117
+ secret_permissions=secret_permissions,
118
+ storage_permissions=storage_permissions,
119
+ )
120
+
121
+ jsii.create(self.__class__, self, [scope, id, props])
122
+
123
+ @builtins.property
124
+ @jsii.member(jsii_name="fqdn")
125
+ def fqdn(self) -> builtins.str:
126
+ return typing.cast(builtins.str, jsii.get(self, "fqdn"))
127
+
128
+
129
+ @jsii.data_type(
130
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.AccessPolicyProps",
131
+ jsii_struct_bases=[],
132
+ name_mapping={
133
+ "key_vault_id": "keyVaultId",
134
+ "object_id": "objectId",
135
+ "tenant_id": "tenantId",
136
+ "certificate_permissions": "certificatePermissions",
137
+ "key_permissions": "keyPermissions",
138
+ "secret_permissions": "secretPermissions",
139
+ "storage_permissions": "storagePermissions",
140
+ },
141
+ )
142
+ class AccessPolicyProps:
143
+ def __init__(
144
+ self,
145
+ *,
146
+ key_vault_id: "Vault",
147
+ object_id: builtins.str,
148
+ tenant_id: builtins.str,
149
+ certificate_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
150
+ key_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
151
+ secret_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
152
+ storage_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
153
+ ) -> None:
154
+ '''
155
+ :param key_vault_id: The Azure Key Vault instance or its identifier.
156
+ :param object_id: The Azure Active Directory object ID for which the policy will be applied. This can be a user, group, or service principal.
157
+ :param tenant_id: The Azure Active Directory tenant ID where the Key Vault is hosted. This is typically the directory ID of your Azure AD.
158
+ :param certificate_permissions: The permissions to certificates stored in the Key Vault. Possible values might include: 'get', 'list', 'create', 'update', etc. If not provided, no certificate permissions are set.
159
+ :param key_permissions: The permissions to keys stored in the Key Vault. Possible values might include: 'get', 'list', 'create', 'sign', etc. If not provided, no key permissions are set.
160
+ :param secret_permissions: The permissions to secrets stored in the Key Vault. Possible values might include: 'get', 'list', 'set', 'delete', etc. If not provided, no secret permissions are set.
161
+ :param storage_permissions: The permissions to storage accounts linked to the Key Vault. Possible values might include: 'get', 'list', 'delete', 'set', etc. If not provided, no storage permissions are set.
162
+ '''
163
+ if __debug__:
164
+ type_hints = typing.get_type_hints(_typecheckingstub__5cfe410d8def41b97bf697999052e8eae3ba4691c72f03f9db1d7275baf6ed07)
165
+ check_type(argname="argument key_vault_id", value=key_vault_id, expected_type=type_hints["key_vault_id"])
166
+ check_type(argname="argument object_id", value=object_id, expected_type=type_hints["object_id"])
167
+ check_type(argname="argument tenant_id", value=tenant_id, expected_type=type_hints["tenant_id"])
168
+ check_type(argname="argument certificate_permissions", value=certificate_permissions, expected_type=type_hints["certificate_permissions"])
169
+ check_type(argname="argument key_permissions", value=key_permissions, expected_type=type_hints["key_permissions"])
170
+ check_type(argname="argument secret_permissions", value=secret_permissions, expected_type=type_hints["secret_permissions"])
171
+ check_type(argname="argument storage_permissions", value=storage_permissions, expected_type=type_hints["storage_permissions"])
172
+ self._values: typing.Dict[builtins.str, typing.Any] = {
173
+ "key_vault_id": key_vault_id,
174
+ "object_id": object_id,
175
+ "tenant_id": tenant_id,
176
+ }
177
+ if certificate_permissions is not None:
178
+ self._values["certificate_permissions"] = certificate_permissions
179
+ if key_permissions is not None:
180
+ self._values["key_permissions"] = key_permissions
181
+ if secret_permissions is not None:
182
+ self._values["secret_permissions"] = secret_permissions
183
+ if storage_permissions is not None:
184
+ self._values["storage_permissions"] = storage_permissions
185
+
186
+ @builtins.property
187
+ def key_vault_id(self) -> "Vault":
188
+ '''The Azure Key Vault instance or its identifier.'''
189
+ result = self._values.get("key_vault_id")
190
+ assert result is not None, "Required property 'key_vault_id' is missing"
191
+ return typing.cast("Vault", result)
192
+
193
+ @builtins.property
194
+ def object_id(self) -> builtins.str:
195
+ '''The Azure Active Directory object ID for which the policy will be applied.
196
+
197
+ This can be a user, group, or service principal.
198
+ '''
199
+ result = self._values.get("object_id")
200
+ assert result is not None, "Required property 'object_id' is missing"
201
+ return typing.cast(builtins.str, result)
202
+
203
+ @builtins.property
204
+ def tenant_id(self) -> builtins.str:
205
+ '''The Azure Active Directory tenant ID where the Key Vault is hosted.
206
+
207
+ This is typically the directory ID of your Azure AD.
208
+ '''
209
+ result = self._values.get("tenant_id")
210
+ assert result is not None, "Required property 'tenant_id' is missing"
211
+ return typing.cast(builtins.str, result)
212
+
213
+ @builtins.property
214
+ def certificate_permissions(self) -> typing.Optional[typing.List[builtins.str]]:
215
+ '''The permissions to certificates stored in the Key Vault.
216
+
217
+ Possible values might include: 'get', 'list', 'create', 'update', etc.
218
+ If not provided, no certificate permissions are set.
219
+ '''
220
+ result = self._values.get("certificate_permissions")
221
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
222
+
223
+ @builtins.property
224
+ def key_permissions(self) -> typing.Optional[typing.List[builtins.str]]:
225
+ '''The permissions to keys stored in the Key Vault.
226
+
227
+ Possible values might include: 'get', 'list', 'create', 'sign', etc.
228
+ If not provided, no key permissions are set.
229
+ '''
230
+ result = self._values.get("key_permissions")
231
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
232
+
233
+ @builtins.property
234
+ def secret_permissions(self) -> typing.Optional[typing.List[builtins.str]]:
235
+ '''The permissions to secrets stored in the Key Vault.
236
+
237
+ Possible values might include: 'get', 'list', 'set', 'delete', etc.
238
+ If not provided, no secret permissions are set.
239
+ '''
240
+ result = self._values.get("secret_permissions")
241
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
242
+
243
+ @builtins.property
244
+ def storage_permissions(self) -> typing.Optional[typing.List[builtins.str]]:
245
+ '''The permissions to storage accounts linked to the Key Vault.
246
+
247
+ Possible values might include: 'get', 'list', 'delete', 'set', etc.
248
+ If not provided, no storage permissions are set.
249
+ '''
250
+ result = self._values.get("storage_permissions")
251
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
252
+
253
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
254
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
255
+
256
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
257
+ return not (rhs == self)
258
+
259
+ def __repr__(self) -> str:
260
+ return "AccessPolicyProps(%s)" % ", ".join(
261
+ k + "=" + repr(v) for k, v in self._values.items()
262
+ )
263
+
264
+
265
+ class CertificateIssuer(
266
+ _constructs_77d1e7e8.Construct,
267
+ metaclass=jsii.JSIIMeta,
268
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.CertificateIssuer",
269
+ ):
270
+ def __init__(
271
+ self,
272
+ scope: _constructs_77d1e7e8.Construct,
273
+ id: builtins.str,
274
+ *,
275
+ access_policies: typing.Sequence[AccessPolicy],
276
+ key_vault_id: "Vault",
277
+ name: builtins.str,
278
+ provider_name: builtins.str,
279
+ password: typing.Optional[builtins.str] = None,
280
+ username: typing.Optional[builtins.str] = None,
281
+ ) -> None:
282
+ '''Constructs a new Certificate Issuer within an Azure Key Vault.
283
+
284
+ This class is responsible for setting up a certificate issuer in Azure Key Vault. A certificate issuer is an entity
285
+ that issues digital certificates for use in SSL/TLS and other cryptographic security contexts. By configuring an issuer,
286
+ you can manage certificate lifecycle (issue, renew, revoke) through Azure Key Vault in conjunction with external certificate
287
+ authorities (CAs).
288
+
289
+ :param scope: - The scope in which to define this construct, usually representing the Cloud Development Kit (CDK) stack.
290
+ :param id: - The unique identifier for this instance of the certificate issuer.
291
+ :param access_policies: Access policies defining who can manage this issuer and the certificates it issues within the Key Vault.
292
+ :param key_vault_id: The ID of the Azure Key Vault where the issuer will be configured.
293
+ :param name: The name of the certificate issuer as it will appear in Azure Key Vault.
294
+ :param provider_name: The name of the provider that will issue the certificate, such as 'DigiCert' or 'GlobalSign'.
295
+ :param password: The password required to authenticate with the certificate provider (if applicable).
296
+ :param username: The username required to authenticate with the certificate provider (if applicable).
297
+ '''
298
+ if __debug__:
299
+ type_hints = typing.get_type_hints(_typecheckingstub__0fd1d912631fc8dde1a769566e3ea99baf2954d0af16be561aae29ad55ace25b)
300
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
301
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
302
+ props = CertificateIssuerProps(
303
+ access_policies=access_policies,
304
+ key_vault_id=key_vault_id,
305
+ name=name,
306
+ provider_name=provider_name,
307
+ password=password,
308
+ username=username,
309
+ )
310
+
311
+ jsii.create(self.__class__, self, [scope, id, props])
312
+
313
+
314
+ @jsii.data_type(
315
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.CertificateIssuerProps",
316
+ jsii_struct_bases=[],
317
+ name_mapping={
318
+ "access_policies": "accessPolicies",
319
+ "key_vault_id": "keyVaultId",
320
+ "name": "name",
321
+ "provider_name": "providerName",
322
+ "password": "password",
323
+ "username": "username",
324
+ },
325
+ )
326
+ class CertificateIssuerProps:
327
+ def __init__(
328
+ self,
329
+ *,
330
+ access_policies: typing.Sequence[AccessPolicy],
331
+ key_vault_id: "Vault",
332
+ name: builtins.str,
333
+ provider_name: builtins.str,
334
+ password: typing.Optional[builtins.str] = None,
335
+ username: typing.Optional[builtins.str] = None,
336
+ ) -> None:
337
+ '''Properties required to configure a certificate issuer within Azure Key Vault.
338
+
339
+ :param access_policies: Access policies defining who can manage this issuer and the certificates it issues within the Key Vault.
340
+ :param key_vault_id: The ID of the Azure Key Vault where the issuer will be configured.
341
+ :param name: The name of the certificate issuer as it will appear in Azure Key Vault.
342
+ :param provider_name: The name of the provider that will issue the certificate, such as 'DigiCert' or 'GlobalSign'.
343
+ :param password: The password required to authenticate with the certificate provider (if applicable).
344
+ :param username: The username required to authenticate with the certificate provider (if applicable).
345
+ '''
346
+ if __debug__:
347
+ type_hints = typing.get_type_hints(_typecheckingstub__5040b69059943a548e408c33cf899a9e5cd1230fcfac175e830c76b10642f504)
348
+ check_type(argname="argument access_policies", value=access_policies, expected_type=type_hints["access_policies"])
349
+ check_type(argname="argument key_vault_id", value=key_vault_id, expected_type=type_hints["key_vault_id"])
350
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
351
+ check_type(argname="argument provider_name", value=provider_name, expected_type=type_hints["provider_name"])
352
+ check_type(argname="argument password", value=password, expected_type=type_hints["password"])
353
+ check_type(argname="argument username", value=username, expected_type=type_hints["username"])
354
+ self._values: typing.Dict[builtins.str, typing.Any] = {
355
+ "access_policies": access_policies,
356
+ "key_vault_id": key_vault_id,
357
+ "name": name,
358
+ "provider_name": provider_name,
359
+ }
360
+ if password is not None:
361
+ self._values["password"] = password
362
+ if username is not None:
363
+ self._values["username"] = username
364
+
365
+ @builtins.property
366
+ def access_policies(self) -> typing.List[AccessPolicy]:
367
+ '''Access policies defining who can manage this issuer and the certificates it issues within the Key Vault.'''
368
+ result = self._values.get("access_policies")
369
+ assert result is not None, "Required property 'access_policies' is missing"
370
+ return typing.cast(typing.List[AccessPolicy], result)
371
+
372
+ @builtins.property
373
+ def key_vault_id(self) -> "Vault":
374
+ '''The ID of the Azure Key Vault where the issuer will be configured.'''
375
+ result = self._values.get("key_vault_id")
376
+ assert result is not None, "Required property 'key_vault_id' is missing"
377
+ return typing.cast("Vault", result)
378
+
379
+ @builtins.property
380
+ def name(self) -> builtins.str:
381
+ '''The name of the certificate issuer as it will appear in Azure Key Vault.'''
382
+ result = self._values.get("name")
383
+ assert result is not None, "Required property 'name' is missing"
384
+ return typing.cast(builtins.str, result)
385
+
386
+ @builtins.property
387
+ def provider_name(self) -> builtins.str:
388
+ '''The name of the provider that will issue the certificate, such as 'DigiCert' or 'GlobalSign'.'''
389
+ result = self._values.get("provider_name")
390
+ assert result is not None, "Required property 'provider_name' is missing"
391
+ return typing.cast(builtins.str, result)
392
+
393
+ @builtins.property
394
+ def password(self) -> typing.Optional[builtins.str]:
395
+ '''The password required to authenticate with the certificate provider (if applicable).'''
396
+ result = self._values.get("password")
397
+ return typing.cast(typing.Optional[builtins.str], result)
398
+
399
+ @builtins.property
400
+ def username(self) -> typing.Optional[builtins.str]:
401
+ '''The username required to authenticate with the certificate provider (if applicable).'''
402
+ result = self._values.get("username")
403
+ return typing.cast(typing.Optional[builtins.str], result)
404
+
405
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
406
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
407
+
408
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
409
+ return not (rhs == self)
410
+
411
+ def __repr__(self) -> str:
412
+ return "CertificateIssuerProps(%s)" % ", ".join(
413
+ k + "=" + repr(v) for k, v in self._values.items()
414
+ )
415
+
416
+
417
+ @jsii.data_type(
418
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.GrantCustomAccessOptions",
419
+ jsii_struct_bases=[],
420
+ name_mapping={
421
+ "certificate_permissions": "certificatePermissions",
422
+ "key_permissions": "keyPermissions",
423
+ "secret_permissions": "secretPermissions",
424
+ "storage_permissions": "storagePermissions",
425
+ },
426
+ )
427
+ class GrantCustomAccessOptions:
428
+ def __init__(
429
+ self,
430
+ *,
431
+ certificate_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
432
+ key_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
433
+ secret_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
434
+ storage_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
435
+ ) -> None:
436
+ '''Options for granting custom access permissions in Azure Key Vault.
437
+
438
+ :param certificate_permissions: Optional: A list of permissions to grant for certificates in the Key Vault. Example permissions include 'get', 'list', 'create', 'delete', etc.
439
+ :param key_permissions: Optional: A list of permissions to grant for keys in the Key Vault. Example permissions include 'encrypt', 'decrypt', 'wrapKey', 'unwrapKey', etc.
440
+ :param secret_permissions: Optional: A list of permissions to grant for secrets in the Key Vault. Example permissions include 'get', 'list', 'set', 'delete', etc.
441
+ :param storage_permissions: Optional: A list of permissions to grant for storage accounts in the Key Vault. Example permissions include 'get', 'list', 'delete', 'set', 'update', etc.
442
+ '''
443
+ if __debug__:
444
+ type_hints = typing.get_type_hints(_typecheckingstub__3436fd84bf104b1bc8cd30d3eb2faadc0f58a40d1eabbb47d487be7507134cd7)
445
+ check_type(argname="argument certificate_permissions", value=certificate_permissions, expected_type=type_hints["certificate_permissions"])
446
+ check_type(argname="argument key_permissions", value=key_permissions, expected_type=type_hints["key_permissions"])
447
+ check_type(argname="argument secret_permissions", value=secret_permissions, expected_type=type_hints["secret_permissions"])
448
+ check_type(argname="argument storage_permissions", value=storage_permissions, expected_type=type_hints["storage_permissions"])
449
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
450
+ if certificate_permissions is not None:
451
+ self._values["certificate_permissions"] = certificate_permissions
452
+ if key_permissions is not None:
453
+ self._values["key_permissions"] = key_permissions
454
+ if secret_permissions is not None:
455
+ self._values["secret_permissions"] = secret_permissions
456
+ if storage_permissions is not None:
457
+ self._values["storage_permissions"] = storage_permissions
458
+
459
+ @builtins.property
460
+ def certificate_permissions(self) -> typing.Optional[typing.List[builtins.str]]:
461
+ '''Optional: A list of permissions to grant for certificates in the Key Vault.
462
+
463
+ Example permissions include 'get', 'list', 'create', 'delete', etc.
464
+ '''
465
+ result = self._values.get("certificate_permissions")
466
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
467
+
468
+ @builtins.property
469
+ def key_permissions(self) -> typing.Optional[typing.List[builtins.str]]:
470
+ '''Optional: A list of permissions to grant for keys in the Key Vault.
471
+
472
+ Example permissions include 'encrypt', 'decrypt', 'wrapKey', 'unwrapKey', etc.
473
+ '''
474
+ result = self._values.get("key_permissions")
475
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
476
+
477
+ @builtins.property
478
+ def secret_permissions(self) -> typing.Optional[typing.List[builtins.str]]:
479
+ '''Optional: A list of permissions to grant for secrets in the Key Vault.
480
+
481
+ Example permissions include 'get', 'list', 'set', 'delete', etc.
482
+ '''
483
+ result = self._values.get("secret_permissions")
484
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
485
+
486
+ @builtins.property
487
+ def storage_permissions(self) -> typing.Optional[typing.List[builtins.str]]:
488
+ '''Optional: A list of permissions to grant for storage accounts in the Key Vault.
489
+
490
+ Example permissions include 'get', 'list', 'delete', 'set', 'update', etc.
491
+ '''
492
+ result = self._values.get("storage_permissions")
493
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
494
+
495
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
496
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
497
+
498
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
499
+ return not (rhs == self)
500
+
501
+ def __repr__(self) -> str:
502
+ return "GrantCustomAccessOptions(%s)" % ", ".join(
503
+ k + "=" + repr(v) for k, v in self._values.items()
504
+ )
505
+
506
+
507
+ class Key(
508
+ _constructs_77d1e7e8.Construct,
509
+ metaclass=jsii.JSIIMeta,
510
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.Key",
511
+ ):
512
+ def __init__(
513
+ self,
514
+ scope: _constructs_77d1e7e8.Construct,
515
+ id: builtins.str,
516
+ *,
517
+ access_policies: typing.Sequence[AccessPolicy],
518
+ key_opts: typing.Sequence[builtins.str],
519
+ key_type: builtins.str,
520
+ key_vault_id: "Vault",
521
+ name: builtins.str,
522
+ expires: typing.Optional[builtins.str] = None,
523
+ key_size: typing.Optional[jsii.Number] = None,
524
+ rotation_policy: typing.Optional[typing.Union[_cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKeyRotationPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
525
+ ) -> None:
526
+ '''Constructs a new Key resource in Azure Key Vault.
527
+
528
+ This class is responsible for the creation and management of a cryptographic key stored in Azure Key Vault.
529
+ The key can be used for a variety of cryptographic operations, such as encryption, decryption, signing, or
530
+ verifying signatures, depending on the permissions granted. It supports different key types and configurations,
531
+ allowing for customization to meet specific security requirements.
532
+
533
+ :param scope: - The scope in which to define this construct, usually representing the Cloud Development Kit (CDK) stack.
534
+ :param id: - The unique identifier for this instance of the Key.
535
+ :param access_policies:
536
+ :param key_opts: Additional options or attributes related to the key.
537
+ :param key_type: The type of key to create (e.g., RSA, EC, etc.).
538
+ :param key_vault_id:
539
+ :param name: The name of the key in the Azure Key Vault.
540
+ :param expires: Expiration date of the key. Format: UTC, YYYY-MM-DDTHH:MM:SSZ.
541
+ :param key_size: The size of the key, typically specified for RSA keys.
542
+ :param rotation_policy: The policy for key rotation.
543
+ '''
544
+ if __debug__:
545
+ type_hints = typing.get_type_hints(_typecheckingstub__764ad04fbd1fc7abfe91c3ca71a3f0df1b038969bfda7c952f3021ce45b03094)
546
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
547
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
548
+ props = KeyProps(
549
+ access_policies=access_policies,
550
+ key_opts=key_opts,
551
+ key_type=key_type,
552
+ key_vault_id=key_vault_id,
553
+ name=name,
554
+ expires=expires,
555
+ key_size=key_size,
556
+ rotation_policy=rotation_policy,
557
+ )
558
+
559
+ jsii.create(self.__class__, self, [scope, id, props])
560
+
561
+ @builtins.property
562
+ @jsii.member(jsii_name="vaultKey")
563
+ def vault_key(
564
+ self,
565
+ ) -> _cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKey:
566
+ return typing.cast(_cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKey, jsii.get(self, "vaultKey"))
567
+
568
+ @vault_key.setter
569
+ def vault_key(
570
+ self,
571
+ value: _cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKey,
572
+ ) -> None:
573
+ if __debug__:
574
+ type_hints = typing.get_type_hints(_typecheckingstub__1f2906c60b67daeedd0649a513a69c7c29965637edc934b937264e3d9e84d21f)
575
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
576
+ jsii.set(self, "vaultKey", value)
577
+
578
+
579
+ @jsii.data_type(
580
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.KeyProps",
581
+ jsii_struct_bases=[],
582
+ name_mapping={
583
+ "access_policies": "accessPolicies",
584
+ "key_opts": "keyOpts",
585
+ "key_type": "keyType",
586
+ "key_vault_id": "keyVaultId",
587
+ "name": "name",
588
+ "expires": "expires",
589
+ "key_size": "keySize",
590
+ "rotation_policy": "rotationPolicy",
591
+ },
592
+ )
593
+ class KeyProps:
594
+ def __init__(
595
+ self,
596
+ *,
597
+ access_policies: typing.Sequence[AccessPolicy],
598
+ key_opts: typing.Sequence[builtins.str],
599
+ key_type: builtins.str,
600
+ key_vault_id: "Vault",
601
+ name: builtins.str,
602
+ expires: typing.Optional[builtins.str] = None,
603
+ key_size: typing.Optional[jsii.Number] = None,
604
+ rotation_policy: typing.Optional[typing.Union[_cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKeyRotationPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
605
+ ) -> None:
606
+ '''
607
+ :param access_policies:
608
+ :param key_opts: Additional options or attributes related to the key.
609
+ :param key_type: The type of key to create (e.g., RSA, EC, etc.).
610
+ :param key_vault_id:
611
+ :param name: The name of the key in the Azure Key Vault.
612
+ :param expires: Expiration date of the key. Format: UTC, YYYY-MM-DDTHH:MM:SSZ.
613
+ :param key_size: The size of the key, typically specified for RSA keys.
614
+ :param rotation_policy: The policy for key rotation.
615
+ '''
616
+ if isinstance(rotation_policy, dict):
617
+ rotation_policy = _cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKeyRotationPolicy(**rotation_policy)
618
+ if __debug__:
619
+ type_hints = typing.get_type_hints(_typecheckingstub__995ed0d726015be1e472d81cda4bb9836358aa4c155e115c8314614e4171b257)
620
+ check_type(argname="argument access_policies", value=access_policies, expected_type=type_hints["access_policies"])
621
+ check_type(argname="argument key_opts", value=key_opts, expected_type=type_hints["key_opts"])
622
+ check_type(argname="argument key_type", value=key_type, expected_type=type_hints["key_type"])
623
+ check_type(argname="argument key_vault_id", value=key_vault_id, expected_type=type_hints["key_vault_id"])
624
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
625
+ check_type(argname="argument expires", value=expires, expected_type=type_hints["expires"])
626
+ check_type(argname="argument key_size", value=key_size, expected_type=type_hints["key_size"])
627
+ check_type(argname="argument rotation_policy", value=rotation_policy, expected_type=type_hints["rotation_policy"])
628
+ self._values: typing.Dict[builtins.str, typing.Any] = {
629
+ "access_policies": access_policies,
630
+ "key_opts": key_opts,
631
+ "key_type": key_type,
632
+ "key_vault_id": key_vault_id,
633
+ "name": name,
634
+ }
635
+ if expires is not None:
636
+ self._values["expires"] = expires
637
+ if key_size is not None:
638
+ self._values["key_size"] = key_size
639
+ if rotation_policy is not None:
640
+ self._values["rotation_policy"] = rotation_policy
641
+
642
+ @builtins.property
643
+ def access_policies(self) -> typing.List[AccessPolicy]:
644
+ result = self._values.get("access_policies")
645
+ assert result is not None, "Required property 'access_policies' is missing"
646
+ return typing.cast(typing.List[AccessPolicy], result)
647
+
648
+ @builtins.property
649
+ def key_opts(self) -> typing.List[builtins.str]:
650
+ '''Additional options or attributes related to the key.'''
651
+ result = self._values.get("key_opts")
652
+ assert result is not None, "Required property 'key_opts' is missing"
653
+ return typing.cast(typing.List[builtins.str], result)
654
+
655
+ @builtins.property
656
+ def key_type(self) -> builtins.str:
657
+ '''The type of key to create (e.g., RSA, EC, etc.).'''
658
+ result = self._values.get("key_type")
659
+ assert result is not None, "Required property 'key_type' is missing"
660
+ return typing.cast(builtins.str, result)
661
+
662
+ @builtins.property
663
+ def key_vault_id(self) -> "Vault":
664
+ result = self._values.get("key_vault_id")
665
+ assert result is not None, "Required property 'key_vault_id' is missing"
666
+ return typing.cast("Vault", result)
667
+
668
+ @builtins.property
669
+ def name(self) -> builtins.str:
670
+ '''The name of the key in the Azure Key Vault.'''
671
+ result = self._values.get("name")
672
+ assert result is not None, "Required property 'name' is missing"
673
+ return typing.cast(builtins.str, result)
674
+
675
+ @builtins.property
676
+ def expires(self) -> typing.Optional[builtins.str]:
677
+ '''Expiration date of the key.
678
+
679
+ Format: UTC, YYYY-MM-DDTHH:MM:SSZ.
680
+ '''
681
+ result = self._values.get("expires")
682
+ return typing.cast(typing.Optional[builtins.str], result)
683
+
684
+ @builtins.property
685
+ def key_size(self) -> typing.Optional[jsii.Number]:
686
+ '''The size of the key, typically specified for RSA keys.'''
687
+ result = self._values.get("key_size")
688
+ return typing.cast(typing.Optional[jsii.Number], result)
689
+
690
+ @builtins.property
691
+ def rotation_policy(
692
+ self,
693
+ ) -> typing.Optional[_cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKeyRotationPolicy]:
694
+ '''The policy for key rotation.'''
695
+ result = self._values.get("rotation_policy")
696
+ return typing.cast(typing.Optional[_cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKeyRotationPolicy], result)
697
+
698
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
699
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
700
+
701
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
702
+ return not (rhs == self)
703
+
704
+ def __repr__(self) -> str:
705
+ return "KeyProps(%s)" % ", ".join(
706
+ k + "=" + repr(v) for k, v in self._values.items()
707
+ )
708
+
709
+
710
+ class Secret(
711
+ _constructs_77d1e7e8.Construct,
712
+ metaclass=jsii.JSIIMeta,
713
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.Secret",
714
+ ):
715
+ def __init__(
716
+ self,
717
+ scope: _constructs_77d1e7e8.Construct,
718
+ id: builtins.str,
719
+ *,
720
+ access_policies: typing.Sequence[AccessPolicy],
721
+ key_vault_id: "Vault",
722
+ name: builtins.str,
723
+ value: builtins.str,
724
+ content_type: typing.Optional[builtins.str] = None,
725
+ expiration_date: typing.Optional[builtins.str] = None,
726
+ ) -> None:
727
+ '''Constructs a new Azure Key Vault Secret within a specified Key Vault.
728
+
729
+ This class facilitates the creation and management of a secret, allowing sensitive information to be stored securely
730
+ and accessed as needed while maintaining confidentiality and control through defined access policies.
731
+
732
+ :param scope: - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
733
+ :param id: - The unique identifier for this instance of the secret.
734
+ :param access_policies: A list of access policies that dictate which identities have what kind of access to the secret. Each policy should detail the permissions and the identity it applies to.
735
+ :param key_vault_id: The Key Vault instance where the secret will be stored.
736
+ :param name: The name of the secret. This name should be unique within the Key Vault instance.
737
+ :param value: The value of the secret. This could be any string, including tokens or passwords.
738
+ :param content_type: Optional content type for the secret. This can be used to describe the type of information the secret contains, or how it can be used.
739
+ :param expiration_date: Optional expiration date for the secret. This should be in an appropriate date string format. If provided, the secret will become invalid after this date.
740
+ '''
741
+ if __debug__:
742
+ type_hints = typing.get_type_hints(_typecheckingstub__c78df4e95e03e93ef044f647b9b99dcad3c39f1844594b182e977b52617317f7)
743
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
744
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
745
+ props = SecretProps(
746
+ access_policies=access_policies,
747
+ key_vault_id=key_vault_id,
748
+ name=name,
749
+ value=value,
750
+ content_type=content_type,
751
+ expiration_date=expiration_date,
752
+ )
753
+
754
+ jsii.create(self.__class__, self, [scope, id, props])
755
+
756
+ @builtins.property
757
+ @jsii.member(jsii_name="secretId")
758
+ def secret_id(self) -> builtins.str:
759
+ return typing.cast(builtins.str, jsii.get(self, "secretId"))
760
+
761
+ @secret_id.setter
762
+ def secret_id(self, value: builtins.str) -> None:
763
+ if __debug__:
764
+ type_hints = typing.get_type_hints(_typecheckingstub__000957c0b227f3cb3e6b4710c4ff0c1439839536ed2dd1e6444c6440ae47007c)
765
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
766
+ jsii.set(self, "secretId", value)
767
+
768
+
769
+ @jsii.data_type(
770
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.SecretProps",
771
+ jsii_struct_bases=[],
772
+ name_mapping={
773
+ "access_policies": "accessPolicies",
774
+ "key_vault_id": "keyVaultId",
775
+ "name": "name",
776
+ "value": "value",
777
+ "content_type": "contentType",
778
+ "expiration_date": "expirationDate",
779
+ },
780
+ )
781
+ class SecretProps:
782
+ def __init__(
783
+ self,
784
+ *,
785
+ access_policies: typing.Sequence[AccessPolicy],
786
+ key_vault_id: "Vault",
787
+ name: builtins.str,
788
+ value: builtins.str,
789
+ content_type: typing.Optional[builtins.str] = None,
790
+ expiration_date: typing.Optional[builtins.str] = None,
791
+ ) -> None:
792
+ '''Properties for defining an Azure Key Vault Secret.
793
+
794
+ :param access_policies: A list of access policies that dictate which identities have what kind of access to the secret. Each policy should detail the permissions and the identity it applies to.
795
+ :param key_vault_id: The Key Vault instance where the secret will be stored.
796
+ :param name: The name of the secret. This name should be unique within the Key Vault instance.
797
+ :param value: The value of the secret. This could be any string, including tokens or passwords.
798
+ :param content_type: Optional content type for the secret. This can be used to describe the type of information the secret contains, or how it can be used.
799
+ :param expiration_date: Optional expiration date for the secret. This should be in an appropriate date string format. If provided, the secret will become invalid after this date.
800
+ '''
801
+ if __debug__:
802
+ type_hints = typing.get_type_hints(_typecheckingstub__0d36fbfdf3b4d23e5fe773f0713f10351c70db1fa84f549499f9d58b8ed1ee3f)
803
+ check_type(argname="argument access_policies", value=access_policies, expected_type=type_hints["access_policies"])
804
+ check_type(argname="argument key_vault_id", value=key_vault_id, expected_type=type_hints["key_vault_id"])
805
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
806
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
807
+ check_type(argname="argument content_type", value=content_type, expected_type=type_hints["content_type"])
808
+ check_type(argname="argument expiration_date", value=expiration_date, expected_type=type_hints["expiration_date"])
809
+ self._values: typing.Dict[builtins.str, typing.Any] = {
810
+ "access_policies": access_policies,
811
+ "key_vault_id": key_vault_id,
812
+ "name": name,
813
+ "value": value,
814
+ }
815
+ if content_type is not None:
816
+ self._values["content_type"] = content_type
817
+ if expiration_date is not None:
818
+ self._values["expiration_date"] = expiration_date
819
+
820
+ @builtins.property
821
+ def access_policies(self) -> typing.List[AccessPolicy]:
822
+ '''A list of access policies that dictate which identities have what kind of access to the secret.
823
+
824
+ Each policy should detail the permissions and the identity it applies to.
825
+ '''
826
+ result = self._values.get("access_policies")
827
+ assert result is not None, "Required property 'access_policies' is missing"
828
+ return typing.cast(typing.List[AccessPolicy], result)
829
+
830
+ @builtins.property
831
+ def key_vault_id(self) -> "Vault":
832
+ '''The Key Vault instance where the secret will be stored.'''
833
+ result = self._values.get("key_vault_id")
834
+ assert result is not None, "Required property 'key_vault_id' is missing"
835
+ return typing.cast("Vault", result)
836
+
837
+ @builtins.property
838
+ def name(self) -> builtins.str:
839
+ '''The name of the secret.
840
+
841
+ This name should be unique within the Key Vault instance.
842
+ '''
843
+ result = self._values.get("name")
844
+ assert result is not None, "Required property 'name' is missing"
845
+ return typing.cast(builtins.str, result)
846
+
847
+ @builtins.property
848
+ def value(self) -> builtins.str:
849
+ '''The value of the secret.
850
+
851
+ This could be any string, including tokens or passwords.
852
+ '''
853
+ result = self._values.get("value")
854
+ assert result is not None, "Required property 'value' is missing"
855
+ return typing.cast(builtins.str, result)
856
+
857
+ @builtins.property
858
+ def content_type(self) -> typing.Optional[builtins.str]:
859
+ '''Optional content type for the secret.
860
+
861
+ This can be used to describe the type of information
862
+ the secret contains, or how it can be used.
863
+ '''
864
+ result = self._values.get("content_type")
865
+ return typing.cast(typing.Optional[builtins.str], result)
866
+
867
+ @builtins.property
868
+ def expiration_date(self) -> typing.Optional[builtins.str]:
869
+ '''Optional expiration date for the secret.
870
+
871
+ This should be in an appropriate date string format.
872
+ If provided, the secret will become invalid after this date.
873
+ '''
874
+ result = self._values.get("expiration_date")
875
+ return typing.cast(typing.Optional[builtins.str], result)
876
+
877
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
878
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
879
+
880
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
881
+ return not (rhs == self)
882
+
883
+ def __repr__(self) -> str:
884
+ return "SecretProps(%s)" % ", ".join(
885
+ k + "=" + repr(v) for k, v in self._values.items()
886
+ )
887
+
888
+
889
+ class SelfSignedCertificate(
890
+ _constructs_77d1e7e8.Construct,
891
+ metaclass=jsii.JSIIMeta,
892
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.SelfSignedCertificate",
893
+ ):
894
+ def __init__(
895
+ self,
896
+ scope: _constructs_77d1e7e8.Construct,
897
+ id: builtins.str,
898
+ *,
899
+ access_policies: typing.Sequence[AccessPolicy],
900
+ dns_names: typing.Sequence[builtins.str],
901
+ key_vault_id: "Vault",
902
+ name: builtins.str,
903
+ subject: builtins.str,
904
+ action_type: typing.Optional[builtins.str] = None,
905
+ days_before_expiry: typing.Optional[jsii.Number] = None,
906
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
907
+ ) -> None:
908
+ '''Constructs a self-signed certificate within an Azure Key Vault.
909
+
910
+ This class is responsible for the creation and management of a self-signed certificate, making it available
911
+ within an Azure Key Vault. The certificate can be used for testing or internal secure communications.
912
+
913
+ :param scope: - The scope in which to define this construct, usually representing the Cloud Development Kit (CDK) stack.
914
+ :param id: - The unique identifier for this instance of the certificate.
915
+ :param access_policies: Access policies defining who can access this certificate within the Azure Key Vault.
916
+ :param dns_names: Additional DNS names to be included in the certificate. Useful for creating certificates valid for multiple hostnames.
917
+ :param key_vault_id: The ID of the Azure Key Vault where the certificate will be created and stored.
918
+ :param name: The name of the certificate to be stored in Azure Key Vault.
919
+ :param subject: The subject name for the certificate, typically represented in X.509 distinguished name format.
920
+ :param action_type: Specifies the type of action to perform with the certificate, such as 'create' or 'renew'.
921
+ :param days_before_expiry: Specifies the number of days before expiry when an action should be taken (e.g., renew the certificate).
922
+ :param tags: Tags to be associated with the certificate for organizational purposes.
923
+ '''
924
+ if __debug__:
925
+ type_hints = typing.get_type_hints(_typecheckingstub__4f2fd11aff992ca62fdb1d32287ac5e70f490e423a8220d0fd8b93f168423e61)
926
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
927
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
928
+ props = SelfSignedCertificateProps(
929
+ access_policies=access_policies,
930
+ dns_names=dns_names,
931
+ key_vault_id=key_vault_id,
932
+ name=name,
933
+ subject=subject,
934
+ action_type=action_type,
935
+ days_before_expiry=days_before_expiry,
936
+ tags=tags,
937
+ )
938
+
939
+ jsii.create(self.__class__, self, [scope, id, props])
940
+
941
+ @builtins.property
942
+ @jsii.member(jsii_name="certificate")
943
+ def certificate(
944
+ self,
945
+ ) -> _cdktf_cdktf_provider_azurerm_key_vault_certificate_92bbcedf.KeyVaultCertificate:
946
+ return typing.cast(_cdktf_cdktf_provider_azurerm_key_vault_certificate_92bbcedf.KeyVaultCertificate, jsii.get(self, "certificate"))
947
+
948
+ @certificate.setter
949
+ def certificate(
950
+ self,
951
+ value: _cdktf_cdktf_provider_azurerm_key_vault_certificate_92bbcedf.KeyVaultCertificate,
952
+ ) -> None:
953
+ if __debug__:
954
+ type_hints = typing.get_type_hints(_typecheckingstub__7bcfe32dfda0bfcd75c9886c46d00ae6fe55b59fe44815138f1c45bade1a9a50)
955
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
956
+ jsii.set(self, "certificate", value)
957
+
958
+ @builtins.property
959
+ @jsii.member(jsii_name="id")
960
+ def id(self) -> builtins.str:
961
+ return typing.cast(builtins.str, jsii.get(self, "id"))
962
+
963
+ @id.setter
964
+ def id(self, value: builtins.str) -> None:
965
+ if __debug__:
966
+ type_hints = typing.get_type_hints(_typecheckingstub__8a7832291886fb9d0860c4fe02c693ab9a897d39b628a7dbe1eda21608cd7bbf)
967
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
968
+ jsii.set(self, "id", value)
969
+
970
+ @builtins.property
971
+ @jsii.member(jsii_name="secretId")
972
+ def secret_id(self) -> builtins.str:
973
+ return typing.cast(builtins.str, jsii.get(self, "secretId"))
974
+
975
+ @secret_id.setter
976
+ def secret_id(self, value: builtins.str) -> None:
977
+ if __debug__:
978
+ type_hints = typing.get_type_hints(_typecheckingstub__d9590e40faef06e65b262dcbee4614c369cb45c54a88a331ceaf27f397ea5dba)
979
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
980
+ jsii.set(self, "secretId", value)
981
+
982
+
983
+ @jsii.data_type(
984
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.SelfSignedCertificateProps",
985
+ jsii_struct_bases=[],
986
+ name_mapping={
987
+ "access_policies": "accessPolicies",
988
+ "dns_names": "dnsNames",
989
+ "key_vault_id": "keyVaultId",
990
+ "name": "name",
991
+ "subject": "subject",
992
+ "action_type": "actionType",
993
+ "days_before_expiry": "daysBeforeExpiry",
994
+ "tags": "tags",
995
+ },
996
+ )
997
+ class SelfSignedCertificateProps:
998
+ def __init__(
999
+ self,
1000
+ *,
1001
+ access_policies: typing.Sequence[AccessPolicy],
1002
+ dns_names: typing.Sequence[builtins.str],
1003
+ key_vault_id: "Vault",
1004
+ name: builtins.str,
1005
+ subject: builtins.str,
1006
+ action_type: typing.Optional[builtins.str] = None,
1007
+ days_before_expiry: typing.Optional[jsii.Number] = None,
1008
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1009
+ ) -> None:
1010
+ '''Properties required to create a self-signed certificate within Azure Key Vault.
1011
+
1012
+ :param access_policies: Access policies defining who can access this certificate within the Azure Key Vault.
1013
+ :param dns_names: Additional DNS names to be included in the certificate. Useful for creating certificates valid for multiple hostnames.
1014
+ :param key_vault_id: The ID of the Azure Key Vault where the certificate will be created and stored.
1015
+ :param name: The name of the certificate to be stored in Azure Key Vault.
1016
+ :param subject: The subject name for the certificate, typically represented in X.509 distinguished name format.
1017
+ :param action_type: Specifies the type of action to perform with the certificate, such as 'create' or 'renew'.
1018
+ :param days_before_expiry: Specifies the number of days before expiry when an action should be taken (e.g., renew the certificate).
1019
+ :param tags: Tags to be associated with the certificate for organizational purposes.
1020
+ '''
1021
+ if __debug__:
1022
+ type_hints = typing.get_type_hints(_typecheckingstub__0e1a75ff875f51795d8bc81864b6795d51c7ecac35b8f6a4b8aea44373ec77ea)
1023
+ check_type(argname="argument access_policies", value=access_policies, expected_type=type_hints["access_policies"])
1024
+ check_type(argname="argument dns_names", value=dns_names, expected_type=type_hints["dns_names"])
1025
+ check_type(argname="argument key_vault_id", value=key_vault_id, expected_type=type_hints["key_vault_id"])
1026
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
1027
+ check_type(argname="argument subject", value=subject, expected_type=type_hints["subject"])
1028
+ check_type(argname="argument action_type", value=action_type, expected_type=type_hints["action_type"])
1029
+ check_type(argname="argument days_before_expiry", value=days_before_expiry, expected_type=type_hints["days_before_expiry"])
1030
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
1031
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1032
+ "access_policies": access_policies,
1033
+ "dns_names": dns_names,
1034
+ "key_vault_id": key_vault_id,
1035
+ "name": name,
1036
+ "subject": subject,
1037
+ }
1038
+ if action_type is not None:
1039
+ self._values["action_type"] = action_type
1040
+ if days_before_expiry is not None:
1041
+ self._values["days_before_expiry"] = days_before_expiry
1042
+ if tags is not None:
1043
+ self._values["tags"] = tags
1044
+
1045
+ @builtins.property
1046
+ def access_policies(self) -> typing.List[AccessPolicy]:
1047
+ '''Access policies defining who can access this certificate within the Azure Key Vault.'''
1048
+ result = self._values.get("access_policies")
1049
+ assert result is not None, "Required property 'access_policies' is missing"
1050
+ return typing.cast(typing.List[AccessPolicy], result)
1051
+
1052
+ @builtins.property
1053
+ def dns_names(self) -> typing.List[builtins.str]:
1054
+ '''Additional DNS names to be included in the certificate.
1055
+
1056
+ Useful for creating certificates valid for multiple hostnames.
1057
+ '''
1058
+ result = self._values.get("dns_names")
1059
+ assert result is not None, "Required property 'dns_names' is missing"
1060
+ return typing.cast(typing.List[builtins.str], result)
1061
+
1062
+ @builtins.property
1063
+ def key_vault_id(self) -> "Vault":
1064
+ '''The ID of the Azure Key Vault where the certificate will be created and stored.'''
1065
+ result = self._values.get("key_vault_id")
1066
+ assert result is not None, "Required property 'key_vault_id' is missing"
1067
+ return typing.cast("Vault", result)
1068
+
1069
+ @builtins.property
1070
+ def name(self) -> builtins.str:
1071
+ '''The name of the certificate to be stored in Azure Key Vault.'''
1072
+ result = self._values.get("name")
1073
+ assert result is not None, "Required property 'name' is missing"
1074
+ return typing.cast(builtins.str, result)
1075
+
1076
+ @builtins.property
1077
+ def subject(self) -> builtins.str:
1078
+ '''The subject name for the certificate, typically represented in X.509 distinguished name format.'''
1079
+ result = self._values.get("subject")
1080
+ assert result is not None, "Required property 'subject' is missing"
1081
+ return typing.cast(builtins.str, result)
1082
+
1083
+ @builtins.property
1084
+ def action_type(self) -> typing.Optional[builtins.str]:
1085
+ '''Specifies the type of action to perform with the certificate, such as 'create' or 'renew'.'''
1086
+ result = self._values.get("action_type")
1087
+ return typing.cast(typing.Optional[builtins.str], result)
1088
+
1089
+ @builtins.property
1090
+ def days_before_expiry(self) -> typing.Optional[jsii.Number]:
1091
+ '''Specifies the number of days before expiry when an action should be taken (e.g., renew the certificate).'''
1092
+ result = self._values.get("days_before_expiry")
1093
+ return typing.cast(typing.Optional[jsii.Number], result)
1094
+
1095
+ @builtins.property
1096
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
1097
+ '''Tags to be associated with the certificate for organizational purposes.'''
1098
+ result = self._values.get("tags")
1099
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
1100
+
1101
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1102
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1103
+
1104
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1105
+ return not (rhs == self)
1106
+
1107
+ def __repr__(self) -> str:
1108
+ return "SelfSignedCertificateProps(%s)" % ", ".join(
1109
+ k + "=" + repr(v) for k, v in self._values.items()
1110
+ )
1111
+
1112
+
1113
+ class Vault(
1114
+ _AzureResource_74eec1c4,
1115
+ metaclass=jsii.JSIIMeta,
1116
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.Vault",
1117
+ ):
1118
+ def __init__(
1119
+ self,
1120
+ scope: _constructs_77d1e7e8.Construct,
1121
+ id: builtins.str,
1122
+ *,
1123
+ location: builtins.str,
1124
+ name: builtins.str,
1125
+ tenant_id: builtins.str,
1126
+ network_acls: typing.Optional[typing.Union[_cdktf_cdktf_provider_azurerm_key_vault_92bbcedf.KeyVaultNetworkAcls, typing.Dict[builtins.str, typing.Any]]] = None,
1127
+ purge_protection: typing.Optional[builtins.bool] = None,
1128
+ resource_group: typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup] = None,
1129
+ sku: typing.Optional[builtins.str] = None,
1130
+ soft_delete_retention_days: typing.Optional[jsii.Number] = None,
1131
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1132
+ ) -> None:
1133
+ '''Constructs a new Azure Key Vault resource.
1134
+
1135
+ This class creates and configures an Azure Key Vault, a secure store for managing secrets, keys, certificates, and other sensitive data.
1136
+ It supports advanced configurations such as access policies, network rules, and data retention policies.
1137
+
1138
+ :param scope: - The scope in which to define this construct, usually representing the Cloud Development Kit (CDK) stack.
1139
+ :param id: - The unique identifier for this instance of the Key Vault.
1140
+ :param location: The Azure Region to deploy the Key Vault.
1141
+ :param name: The name of the Key Vault.
1142
+ :param tenant_id: The Name of the SKU used for this Key Vault. Possible values are standard and premium.
1143
+ :param network_acls: The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
1144
+ :param purge_protection: A map of IP network ACL rules. The key is the IP or IP range in CIDR notation. The value is a description of that IP range.
1145
+ :param resource_group: An optional reference to the resource group in which to deploy the Key Vault. If not provided, the Key Vault will be deployed in the default resource group.
1146
+ :param sku: The tags to assign to the Key Vault.
1147
+ :param soft_delete_retention_days: Specifies whether protection against purge is enabled for this Key Vault. Setting this property to true activates protection against deletion of any active key, secret or certificate in the vault. The setting is effective only if soft delete is also enabled. The default value is false. Once activated, the property cannot be reverted to false.
1148
+ :param tags: The tags to assign to the Key Vault.
1149
+ '''
1150
+ if __debug__:
1151
+ type_hints = typing.get_type_hints(_typecheckingstub__917170a8774b61cb3259bde0d15c6881a93b9cdffe2a33390469fe5c8a9e2a05)
1152
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1153
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1154
+ props = VaultProps(
1155
+ location=location,
1156
+ name=name,
1157
+ tenant_id=tenant_id,
1158
+ network_acls=network_acls,
1159
+ purge_protection=purge_protection,
1160
+ resource_group=resource_group,
1161
+ sku=sku,
1162
+ soft_delete_retention_days=soft_delete_retention_days,
1163
+ tags=tags,
1164
+ )
1165
+
1166
+ jsii.create(self.__class__, self, [scope, id, props])
1167
+
1168
+ @jsii.member(jsii_name="addCertIssuer")
1169
+ def add_cert_issuer(self, name: builtins.str, provider: builtins.str) -> None:
1170
+ '''Adds a certificate issuer to the Azure Key Vault.
1171
+
1172
+ This method configures a certificate issuer within the Key Vault, allowing the Key Vault to issue certificates
1173
+ through external providers. Configuring an issuer is essential for enabling automated certificate management
1174
+ processes, such as issuance and renewal, directly through the Key Vault with a specified Certificate Authority (CA).
1175
+
1176
+ :param name: - The unique name for the certificate issuer within the Key Vault.
1177
+ :param provider: - The name of the external provider that will issue the certificates, such as 'DigiCert' or 'GlobalSign'. Example usage:: vault.addCertIssuer( 'myCertIssuer', 'DigiCert' ); This method configures a certificate issuer but does not return any value. The issuer details, including provider name and any necessary credentials (managed externally or through additional method parameters), are set up in the Key Vault for future certificate operations.
1178
+ '''
1179
+ if __debug__:
1180
+ type_hints = typing.get_type_hints(_typecheckingstub__b2f2c045bea927ac556e9d63c71e26ab25277d8da73f00083296262c6f2b0d08)
1181
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
1182
+ check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
1183
+ return typing.cast(None, jsii.invoke(self, "addCertIssuer", [name, provider]))
1184
+
1185
+ @jsii.member(jsii_name="addKey")
1186
+ def add_key(
1187
+ self,
1188
+ key_vault_key_name: builtins.str,
1189
+ key_type: builtins.str,
1190
+ key_size: jsii.Number,
1191
+ key_opts: typing.Sequence[builtins.str],
1192
+ expiration_date: typing.Optional[builtins.str] = None,
1193
+ ) -> _cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKey:
1194
+ '''Creates a cryptographic key within the Azure Key Vault.
1195
+
1196
+ This method allows the creation of a cryptographic key of specified type and size within the Key Vault. The key can be
1197
+ configured with specific operations it can perform, such as encryption, decryption, signing, etc. An optional expiration
1198
+ date can also be set to control the key's lifecycle. This method is flexible, supporting various key types and sizes,
1199
+ making it suitable for a wide range of cryptographic needs.
1200
+
1201
+ :param key_vault_key_name: - The unique name for the cryptographic key within the Key Vault.
1202
+ :param key_type: - The type of cryptographic key to create (e.g., 'RSA', 'EC', 'oct-HSM').
1203
+ :param key_size: - The size of the cryptographic key in bits (e.g., 2048, 3072, 4096 for RSA).
1204
+ :param key_opts: - A list of cryptographic operations that the key is allowed to perform. Possible values might include 'encrypt', 'decrypt', 'sign', 'verify', 'wrapKey', 'unwrapKey'.
1205
+ :param expiration_date: - Optional. The expiration date of the key in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ). If provided, the key will no longer be valid after this date, aligning with best practices for key management.
1206
+
1207
+ :return:
1208
+
1209
+ A KeyVaultKey object representing the newly created cryptographic key within the vault.
1210
+
1211
+ Example usage::
1212
+
1213
+ const myKey = vault.addKey(
1214
+ 'myKey',
1215
+ 'RSA',
1216
+ 2048,
1217
+ ['encrypt', 'decrypt', 'sign', 'verify'],
1218
+ '2030-12-31'
1219
+ );
1220
+
1221
+ This method returns the created KeyVaultKey object, enabling immediate use within the application for cryptographic operations.
1222
+ '''
1223
+ if __debug__:
1224
+ type_hints = typing.get_type_hints(_typecheckingstub__aed59457372f0c3fa0801aa14cefea7ed0289f41e524d4ada63ecf06b1d232ed)
1225
+ check_type(argname="argument key_vault_key_name", value=key_vault_key_name, expected_type=type_hints["key_vault_key_name"])
1226
+ check_type(argname="argument key_type", value=key_type, expected_type=type_hints["key_type"])
1227
+ check_type(argname="argument key_size", value=key_size, expected_type=type_hints["key_size"])
1228
+ check_type(argname="argument key_opts", value=key_opts, expected_type=type_hints["key_opts"])
1229
+ check_type(argname="argument expiration_date", value=expiration_date, expected_type=type_hints["expiration_date"])
1230
+ return typing.cast(_cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKey, jsii.invoke(self, "addKey", [key_vault_key_name, key_type, key_size, key_opts, expiration_date]))
1231
+
1232
+ @jsii.member(jsii_name="addRSAKey")
1233
+ def add_rsa_key(
1234
+ self,
1235
+ key_vault_key_name: builtins.str,
1236
+ expiration_date: typing.Optional[builtins.str] = None,
1237
+ ) -> _cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKey:
1238
+ '''Creates an RSA cryptographic key within the Azure Key Vault.
1239
+
1240
+ This method facilitates the creation of an RSA key, which is useful for a variety of cryptographic operations such as
1241
+ encryption, decryption, digital signature verification, and more. The RSA key created by this method is configurable
1242
+ with an optional expiration date and a default key size of 2048 bits. The key operations allowed include decryption,
1243
+ encryption, signing, verifying signatures, and key wrapping/unwrapping.
1244
+
1245
+ :param key_vault_key_name: - The unique name for the RSA key within the Key Vault.
1246
+ :param expiration_date: - Optional. The expiration date of the key in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ). If provided, the key will no longer be valid after this date.
1247
+
1248
+ :return:
1249
+
1250
+ A KeyVaultKey object representing the newly created RSA key within the vault.
1251
+
1252
+ Example usage::
1253
+
1254
+ const rsaKey = vault.addRSAKey(
1255
+ 'myRSAKey',
1256
+ '2030-01-01'
1257
+ );
1258
+
1259
+ This method returns the created KeyVaultKey object, allowing further operations or references to the key.
1260
+ '''
1261
+ if __debug__:
1262
+ type_hints = typing.get_type_hints(_typecheckingstub__44d7612c9814856bc1bdd84c9c10b3e85c32a5de1d4f059663ecd747493821c4)
1263
+ check_type(argname="argument key_vault_key_name", value=key_vault_key_name, expected_type=type_hints["key_vault_key_name"])
1264
+ check_type(argname="argument expiration_date", value=expiration_date, expected_type=type_hints["expiration_date"])
1265
+ return typing.cast(_cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKey, jsii.invoke(self, "addRSAKey", [key_vault_key_name, expiration_date]))
1266
+
1267
+ @jsii.member(jsii_name="addSecret")
1268
+ def add_secret(
1269
+ self,
1270
+ key_vault_secret_name: builtins.str,
1271
+ secret_value: builtins.str,
1272
+ expiration_date: typing.Optional[builtins.str] = None,
1273
+ content_type: typing.Optional[builtins.str] = None,
1274
+ ) -> None:
1275
+ '''Creates a new secret within the Azure Key Vault.
1276
+
1277
+ This method facilitates the storage of sensitive information in the form of a secret within the Key Vault.
1278
+ Secrets are protected items such as passwords, database connection strings, or any other piece of information
1279
+ that needs to be securely stored and accessed. This method allows setting additional properties such as
1280
+ expiration date and content type for better management and compliance.
1281
+
1282
+ :param key_vault_secret_name: - The unique name for the secret within the Key Vault.
1283
+ :param secret_value: - The sensitive information or data that needs to be securely stored as a secret.
1284
+ :param expiration_date: - Optional. The expiration date of the secret in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ). If provided, the secret will no longer be valid after this date.
1285
+ :param content_type: - Optional. A description of the type of information the secret contains (e.g., 'password', 'connectionString'). This can be used by applications to handle the secret appropriately. Example usage:: vault.addSecret( 'myDatabasePassword', 'p@ssw0rd123!', '2030-01-01', 'databasePassword' ); This method does not return a value. It creates a secret within the Key Vault with the specified properties.
1286
+ '''
1287
+ if __debug__:
1288
+ type_hints = typing.get_type_hints(_typecheckingstub__13221bb3d97d7c10cdc53b21cfc108150b47f04a58e6e97ff9ccd6e2c2a55d4b)
1289
+ check_type(argname="argument key_vault_secret_name", value=key_vault_secret_name, expected_type=type_hints["key_vault_secret_name"])
1290
+ check_type(argname="argument secret_value", value=secret_value, expected_type=type_hints["secret_value"])
1291
+ check_type(argname="argument expiration_date", value=expiration_date, expected_type=type_hints["expiration_date"])
1292
+ check_type(argname="argument content_type", value=content_type, expected_type=type_hints["content_type"])
1293
+ return typing.cast(None, jsii.invoke(self, "addSecret", [key_vault_secret_name, secret_value, expiration_date, content_type]))
1294
+
1295
+ @jsii.member(jsii_name="addSelfSignedCert")
1296
+ def add_self_signed_cert(
1297
+ self,
1298
+ cert_name: builtins.str,
1299
+ subject: builtins.str,
1300
+ dns_names: typing.Sequence[builtins.str],
1301
+ action_type: typing.Optional[builtins.str] = None,
1302
+ days_before_expiry: typing.Optional[jsii.Number] = None,
1303
+ ) -> _cdktf_cdktf_provider_azurerm_key_vault_certificate_92bbcedf.KeyVaultCertificate:
1304
+ '''Creates a self-signed certificate within the Azure Key Vault.
1305
+
1306
+ This method facilitates the creation of a self-signed certificate, which is a digital certificate that is signed by
1307
+ its own creator rather than a trusted authority. Self-signed certificates can be useful for testing, internal
1308
+ communications, or any scenario where public trust is not required. The method allows specifying subject details,
1309
+ DNS names for the certificate, and managing its lifecycle with action types and expiry.
1310
+
1311
+ :param cert_name: - The unique name for the certificate within the Key Vault.
1312
+ :param subject: - The subject name of the certificate, typically formatted as an X.500 Distinguished Name (e.g., "CN=example.com").
1313
+ :param dns_names: - An array of DNS names that should be associated with this certificate. This is useful for certificates that need to be valid for multiple hostnames.
1314
+ :param action_type: - Optional. Specifies the action to be performed with the certificate, such as 'create' or 'renew'.
1315
+ :param days_before_expiry: - Optional. Number of days before expiry when an action should be taken, useful for auto-renewal scenarios.
1316
+
1317
+ :return:
1318
+
1319
+ A KeyVaultCertificate object representing the newly created self-signed certificate.
1320
+
1321
+ Example usage::
1322
+
1323
+ const myCertificate = vault.addSelfSignedCert(
1324
+ 'myCert',
1325
+ 'CN=mydomain.com',
1326
+ ['mydomain.com', 'www.mydomain.com'],
1327
+ 'create',
1328
+ 30
1329
+ );
1330
+
1331
+ This method returns the KeyVaultCertificate object, enabling it to be used immediately within the application or stored for future use.
1332
+ '''
1333
+ if __debug__:
1334
+ type_hints = typing.get_type_hints(_typecheckingstub__bb532d7f4c3c84e1e56fae08e207d5a6fbf5e8ee1ba3c7a9c6b13b42ddf77b3f)
1335
+ check_type(argname="argument cert_name", value=cert_name, expected_type=type_hints["cert_name"])
1336
+ check_type(argname="argument subject", value=subject, expected_type=type_hints["subject"])
1337
+ check_type(argname="argument dns_names", value=dns_names, expected_type=type_hints["dns_names"])
1338
+ check_type(argname="argument action_type", value=action_type, expected_type=type_hints["action_type"])
1339
+ check_type(argname="argument days_before_expiry", value=days_before_expiry, expected_type=type_hints["days_before_expiry"])
1340
+ return typing.cast(_cdktf_cdktf_provider_azurerm_key_vault_certificate_92bbcedf.KeyVaultCertificate, jsii.invoke(self, "addSelfSignedCert", [cert_name, subject, dns_names, action_type, days_before_expiry]))
1341
+
1342
+ @jsii.member(jsii_name="grantCertAdminAccess")
1343
+ def grant_cert_admin_access(self, azure_ad_group_id: builtins.str) -> None:
1344
+ '''Grants administrative access to certificates stored in the Key Vault to a specified Azure AD group.
1345
+
1346
+ :param azure_ad_group_id: - The Azure Active Directory group ID that will receive administrative access to certificates.
1347
+ '''
1348
+ if __debug__:
1349
+ type_hints = typing.get_type_hints(_typecheckingstub__73641a86765e12eff8779da1e3d696365f687b93c56fe402482b12aa728e9244)
1350
+ check_type(argname="argument azure_ad_group_id", value=azure_ad_group_id, expected_type=type_hints["azure_ad_group_id"])
1351
+ return typing.cast(None, jsii.invoke(self, "grantCertAdminAccess", [azure_ad_group_id]))
1352
+
1353
+ @jsii.member(jsii_name="grantCertReaderAccess")
1354
+ def grant_cert_reader_access(self, azure_ad_group_id: builtins.str) -> None:
1355
+ '''Grants read-only access to certificates stored in the Key Vault to a specified Azure AD group.
1356
+
1357
+ :param azure_ad_group_id: - The Azure Active Directory group ID that will receive read access to certificates.
1358
+ '''
1359
+ if __debug__:
1360
+ type_hints = typing.get_type_hints(_typecheckingstub__17b8add7190d8d64361a0ac3cc23e32fa47351b032f69b181322896dba5f7acc)
1361
+ check_type(argname="argument azure_ad_group_id", value=azure_ad_group_id, expected_type=type_hints["azure_ad_group_id"])
1362
+ return typing.cast(None, jsii.invoke(self, "grantCertReaderAccess", [azure_ad_group_id]))
1363
+
1364
+ @jsii.member(jsii_name="grantCustomAccess")
1365
+ def grant_custom_access(
1366
+ self,
1367
+ azure_ad_group_id: builtins.str,
1368
+ *,
1369
+ certificate_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1370
+ key_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1371
+ secret_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1372
+ storage_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1373
+ ) -> None:
1374
+ '''Grants custom access based on specified options to an Azure AD group in the Key Vault.
1375
+
1376
+ :param azure_ad_group_id: - The Azure Active Directory group ID that will receive the custom access.
1377
+ :param certificate_permissions: Optional: A list of permissions to grant for certificates in the Key Vault. Example permissions include 'get', 'list', 'create', 'delete', etc.
1378
+ :param key_permissions: Optional: A list of permissions to grant for keys in the Key Vault. Example permissions include 'encrypt', 'decrypt', 'wrapKey', 'unwrapKey', etc.
1379
+ :param secret_permissions: Optional: A list of permissions to grant for secrets in the Key Vault. Example permissions include 'get', 'list', 'set', 'delete', etc.
1380
+ :param storage_permissions: Optional: A list of permissions to grant for storage accounts in the Key Vault. Example permissions include 'get', 'list', 'delete', 'set', 'update', etc.
1381
+ '''
1382
+ if __debug__:
1383
+ type_hints = typing.get_type_hints(_typecheckingstub__d0c3ff9e135caf120495df7de38fe2e782a7a0248c74e21ee768c7f682223dfb)
1384
+ check_type(argname="argument azure_ad_group_id", value=azure_ad_group_id, expected_type=type_hints["azure_ad_group_id"])
1385
+ options = GrantCustomAccessOptions(
1386
+ certificate_permissions=certificate_permissions,
1387
+ key_permissions=key_permissions,
1388
+ secret_permissions=secret_permissions,
1389
+ storage_permissions=storage_permissions,
1390
+ )
1391
+
1392
+ return typing.cast(None, jsii.invoke(self, "grantCustomAccess", [azure_ad_group_id, options]))
1393
+
1394
+ @jsii.member(jsii_name="grantKeyAdminAccess")
1395
+ def grant_key_admin_access(self, azure_ad_group_id: builtins.str) -> None:
1396
+ '''Grants administrative access to keys stored in the Key Vault to a specified Azure AD group.
1397
+
1398
+ :param azure_ad_group_id: - The Azure Active Directory group ID that will receive administrative access to keys.
1399
+ '''
1400
+ if __debug__:
1401
+ type_hints = typing.get_type_hints(_typecheckingstub__68ff32d57ec319a01c35a0940b03a2e4562a7bc6050cb8010ab4c18e7f3c21f8)
1402
+ check_type(argname="argument azure_ad_group_id", value=azure_ad_group_id, expected_type=type_hints["azure_ad_group_id"])
1403
+ return typing.cast(None, jsii.invoke(self, "grantKeyAdminAccess", [azure_ad_group_id]))
1404
+
1405
+ @jsii.member(jsii_name="grantKeyReaderAccess")
1406
+ def grant_key_reader_access(self, azure_ad_group_id: builtins.str) -> None:
1407
+ '''Grants read-only access to keys stored in the Key Vault to a specified Azure AD group.
1408
+
1409
+ :param azure_ad_group_id: - The Azure Active Directory group ID that will receive read access to keys.
1410
+ '''
1411
+ if __debug__:
1412
+ type_hints = typing.get_type_hints(_typecheckingstub__d4a4fc98889d3ac21c14e506fcf1ccaa72d368be01047ce9db0e55862ca29561)
1413
+ check_type(argname="argument azure_ad_group_id", value=azure_ad_group_id, expected_type=type_hints["azure_ad_group_id"])
1414
+ return typing.cast(None, jsii.invoke(self, "grantKeyReaderAccess", [azure_ad_group_id]))
1415
+
1416
+ @jsii.member(jsii_name="grantSecretAdminAccess")
1417
+ def grant_secret_admin_access(self, azure_ad_group_id: builtins.str) -> None:
1418
+ '''Grants administrative access to secrets stored in the Key Vault to a specified Azure AD group.
1419
+
1420
+ :param azure_ad_group_id: - The Azure Active Directory group ID that will receive administrative access to secrets.
1421
+ '''
1422
+ if __debug__:
1423
+ type_hints = typing.get_type_hints(_typecheckingstub__28c5dd3f8478b3fd3664ab3e6a2c52820e7de6333255d890ba903c13839c3fd7)
1424
+ check_type(argname="argument azure_ad_group_id", value=azure_ad_group_id, expected_type=type_hints["azure_ad_group_id"])
1425
+ return typing.cast(None, jsii.invoke(self, "grantSecretAdminAccess", [azure_ad_group_id]))
1426
+
1427
+ @jsii.member(jsii_name="grantSecretReaderAccess")
1428
+ def grant_secret_reader_access(self, azure_ad_group_id: builtins.str) -> None:
1429
+ '''Grants read-only access to secrets stored in the Key Vault to a specified Azure AD group.
1430
+
1431
+ :param azure_ad_group_id: - The Azure Active Directory group ID that will receive read access to secrets.
1432
+ '''
1433
+ if __debug__:
1434
+ type_hints = typing.get_type_hints(_typecheckingstub__55000ecd371e9c22c7bc145e3c409a38b61720185c5c1d6c9278b5a6413d0696)
1435
+ check_type(argname="argument azure_ad_group_id", value=azure_ad_group_id, expected_type=type_hints["azure_ad_group_id"])
1436
+ return typing.cast(None, jsii.invoke(self, "grantSecretReaderAccess", [azure_ad_group_id]))
1437
+
1438
+ @builtins.property
1439
+ @jsii.member(jsii_name="props")
1440
+ def props(self) -> "VaultProps":
1441
+ return typing.cast("VaultProps", jsii.get(self, "props"))
1442
+
1443
+ @builtins.property
1444
+ @jsii.member(jsii_name="id")
1445
+ def id(self) -> builtins.str:
1446
+ return typing.cast(builtins.str, jsii.get(self, "id"))
1447
+
1448
+ @id.setter
1449
+ def id(self, value: builtins.str) -> None:
1450
+ if __debug__:
1451
+ type_hints = typing.get_type_hints(_typecheckingstub__132293293bc0a019bee63752d4f9c262c329d1d96c14ed0ab713e57d97de3356)
1452
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1453
+ jsii.set(self, "id", value)
1454
+
1455
+ @builtins.property
1456
+ @jsii.member(jsii_name="keyVault")
1457
+ def key_vault(self) -> _cdktf_cdktf_provider_azurerm_key_vault_92bbcedf.KeyVault:
1458
+ return typing.cast(_cdktf_cdktf_provider_azurerm_key_vault_92bbcedf.KeyVault, jsii.get(self, "keyVault"))
1459
+
1460
+ @key_vault.setter
1461
+ def key_vault(
1462
+ self,
1463
+ value: _cdktf_cdktf_provider_azurerm_key_vault_92bbcedf.KeyVault,
1464
+ ) -> None:
1465
+ if __debug__:
1466
+ type_hints = typing.get_type_hints(_typecheckingstub__3b8adbdb4ccba13cd1fcc80c3a5121a26274d2437c1bb9959fa209488f098e78)
1467
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1468
+ jsii.set(self, "keyVault", value)
1469
+
1470
+ @builtins.property
1471
+ @jsii.member(jsii_name="resourceGroup")
1472
+ def resource_group(
1473
+ self,
1474
+ ) -> _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup:
1475
+ return typing.cast(_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup, jsii.get(self, "resourceGroup"))
1476
+
1477
+ @resource_group.setter
1478
+ def resource_group(
1479
+ self,
1480
+ value: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
1481
+ ) -> None:
1482
+ if __debug__:
1483
+ type_hints = typing.get_type_hints(_typecheckingstub__8d02ea52264d9dfc8cc494f7817103a21aa112c5ddf9274911b6c025d63b47b1)
1484
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1485
+ jsii.set(self, "resourceGroup", value)
1486
+
1487
+
1488
+ @jsii.data_type(
1489
+ jsii_type="@microsoft/terraform-cdk-constructs.azure_keyvault.VaultProps",
1490
+ jsii_struct_bases=[],
1491
+ name_mapping={
1492
+ "location": "location",
1493
+ "name": "name",
1494
+ "tenant_id": "tenantId",
1495
+ "network_acls": "networkAcls",
1496
+ "purge_protection": "purgeProtection",
1497
+ "resource_group": "resourceGroup",
1498
+ "sku": "sku",
1499
+ "soft_delete_retention_days": "softDeleteRetentionDays",
1500
+ "tags": "tags",
1501
+ },
1502
+ )
1503
+ class VaultProps:
1504
+ def __init__(
1505
+ self,
1506
+ *,
1507
+ location: builtins.str,
1508
+ name: builtins.str,
1509
+ tenant_id: builtins.str,
1510
+ network_acls: typing.Optional[typing.Union[_cdktf_cdktf_provider_azurerm_key_vault_92bbcedf.KeyVaultNetworkAcls, typing.Dict[builtins.str, typing.Any]]] = None,
1511
+ purge_protection: typing.Optional[builtins.bool] = None,
1512
+ resource_group: typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup] = None,
1513
+ sku: typing.Optional[builtins.str] = None,
1514
+ soft_delete_retention_days: typing.Optional[jsii.Number] = None,
1515
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1516
+ ) -> None:
1517
+ '''
1518
+ :param location: The Azure Region to deploy the Key Vault.
1519
+ :param name: The name of the Key Vault.
1520
+ :param tenant_id: The Name of the SKU used for this Key Vault. Possible values are standard and premium.
1521
+ :param network_acls: The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
1522
+ :param purge_protection: A map of IP network ACL rules. The key is the IP or IP range in CIDR notation. The value is a description of that IP range.
1523
+ :param resource_group: An optional reference to the resource group in which to deploy the Key Vault. If not provided, the Key Vault will be deployed in the default resource group.
1524
+ :param sku: The tags to assign to the Key Vault.
1525
+ :param soft_delete_retention_days: Specifies whether protection against purge is enabled for this Key Vault. Setting this property to true activates protection against deletion of any active key, secret or certificate in the vault. The setting is effective only if soft delete is also enabled. The default value is false. Once activated, the property cannot be reverted to false.
1526
+ :param tags: The tags to assign to the Key Vault.
1527
+ '''
1528
+ if isinstance(network_acls, dict):
1529
+ network_acls = _cdktf_cdktf_provider_azurerm_key_vault_92bbcedf.KeyVaultNetworkAcls(**network_acls)
1530
+ if __debug__:
1531
+ type_hints = typing.get_type_hints(_typecheckingstub__d60e7a7b69f9363156af0a1f5cf4a395b5df716c2f7327f2030a8e6a84ad4da5)
1532
+ check_type(argname="argument location", value=location, expected_type=type_hints["location"])
1533
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
1534
+ check_type(argname="argument tenant_id", value=tenant_id, expected_type=type_hints["tenant_id"])
1535
+ check_type(argname="argument network_acls", value=network_acls, expected_type=type_hints["network_acls"])
1536
+ check_type(argname="argument purge_protection", value=purge_protection, expected_type=type_hints["purge_protection"])
1537
+ check_type(argname="argument resource_group", value=resource_group, expected_type=type_hints["resource_group"])
1538
+ check_type(argname="argument sku", value=sku, expected_type=type_hints["sku"])
1539
+ check_type(argname="argument soft_delete_retention_days", value=soft_delete_retention_days, expected_type=type_hints["soft_delete_retention_days"])
1540
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
1541
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1542
+ "location": location,
1543
+ "name": name,
1544
+ "tenant_id": tenant_id,
1545
+ }
1546
+ if network_acls is not None:
1547
+ self._values["network_acls"] = network_acls
1548
+ if purge_protection is not None:
1549
+ self._values["purge_protection"] = purge_protection
1550
+ if resource_group is not None:
1551
+ self._values["resource_group"] = resource_group
1552
+ if sku is not None:
1553
+ self._values["sku"] = sku
1554
+ if soft_delete_retention_days is not None:
1555
+ self._values["soft_delete_retention_days"] = soft_delete_retention_days
1556
+ if tags is not None:
1557
+ self._values["tags"] = tags
1558
+
1559
+ @builtins.property
1560
+ def location(self) -> builtins.str:
1561
+ '''The Azure Region to deploy the Key Vault.'''
1562
+ result = self._values.get("location")
1563
+ assert result is not None, "Required property 'location' is missing"
1564
+ return typing.cast(builtins.str, result)
1565
+
1566
+ @builtins.property
1567
+ def name(self) -> builtins.str:
1568
+ '''The name of the Key Vault.'''
1569
+ result = self._values.get("name")
1570
+ assert result is not None, "Required property 'name' is missing"
1571
+ return typing.cast(builtins.str, result)
1572
+
1573
+ @builtins.property
1574
+ def tenant_id(self) -> builtins.str:
1575
+ '''The Name of the SKU used for this Key Vault.
1576
+
1577
+ Possible values are standard and premium.
1578
+ '''
1579
+ result = self._values.get("tenant_id")
1580
+ assert result is not None, "Required property 'tenant_id' is missing"
1581
+ return typing.cast(builtins.str, result)
1582
+
1583
+ @builtins.property
1584
+ def network_acls(
1585
+ self,
1586
+ ) -> typing.Optional[_cdktf_cdktf_provider_azurerm_key_vault_92bbcedf.KeyVaultNetworkAcls]:
1587
+ '''The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.'''
1588
+ result = self._values.get("network_acls")
1589
+ return typing.cast(typing.Optional[_cdktf_cdktf_provider_azurerm_key_vault_92bbcedf.KeyVaultNetworkAcls], result)
1590
+
1591
+ @builtins.property
1592
+ def purge_protection(self) -> typing.Optional[builtins.bool]:
1593
+ '''A map of IP network ACL rules.
1594
+
1595
+ The key is the IP or IP range in CIDR notation.
1596
+ The value is a description of that IP range.
1597
+ '''
1598
+ result = self._values.get("purge_protection")
1599
+ return typing.cast(typing.Optional[builtins.bool], result)
1600
+
1601
+ @builtins.property
1602
+ def resource_group(
1603
+ self,
1604
+ ) -> typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup]:
1605
+ '''An optional reference to the resource group in which to deploy the Key Vault.
1606
+
1607
+ If not provided, the Key Vault will be deployed in the default resource group.
1608
+ '''
1609
+ result = self._values.get("resource_group")
1610
+ return typing.cast(typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup], result)
1611
+
1612
+ @builtins.property
1613
+ def sku(self) -> typing.Optional[builtins.str]:
1614
+ '''The tags to assign to the Key Vault.'''
1615
+ result = self._values.get("sku")
1616
+ return typing.cast(typing.Optional[builtins.str], result)
1617
+
1618
+ @builtins.property
1619
+ def soft_delete_retention_days(self) -> typing.Optional[jsii.Number]:
1620
+ '''Specifies whether protection against purge is enabled for this Key Vault.
1621
+
1622
+ Setting this property to true activates protection against deletion of any active key, secret or certificate in the vault. The setting is effective only if soft delete is also enabled. The default value is false.
1623
+ Once activated, the property cannot be reverted to false.
1624
+ '''
1625
+ result = self._values.get("soft_delete_retention_days")
1626
+ return typing.cast(typing.Optional[jsii.Number], result)
1627
+
1628
+ @builtins.property
1629
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
1630
+ '''The tags to assign to the Key Vault.'''
1631
+ result = self._values.get("tags")
1632
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
1633
+
1634
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1635
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1636
+
1637
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1638
+ return not (rhs == self)
1639
+
1640
+ def __repr__(self) -> str:
1641
+ return "VaultProps(%s)" % ", ".join(
1642
+ k + "=" + repr(v) for k, v in self._values.items()
1643
+ )
1644
+
1645
+
1646
+ __all__ = [
1647
+ "AccessPolicy",
1648
+ "AccessPolicyProps",
1649
+ "CertificateIssuer",
1650
+ "CertificateIssuerProps",
1651
+ "GrantCustomAccessOptions",
1652
+ "Key",
1653
+ "KeyProps",
1654
+ "Secret",
1655
+ "SecretProps",
1656
+ "SelfSignedCertificate",
1657
+ "SelfSignedCertificateProps",
1658
+ "Vault",
1659
+ "VaultProps",
1660
+ ]
1661
+
1662
+ publication.publish()
1663
+
1664
+ def _typecheckingstub__fd7fc0b79a19acf1e5e94e93e6997a8d5f2b15e90adea376529cae5a756db705(
1665
+ scope: _constructs_77d1e7e8.Construct,
1666
+ id: builtins.str,
1667
+ *,
1668
+ key_vault_id: Vault,
1669
+ object_id: builtins.str,
1670
+ tenant_id: builtins.str,
1671
+ certificate_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1672
+ key_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1673
+ secret_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1674
+ storage_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1675
+ ) -> None:
1676
+ """Type checking stubs"""
1677
+ pass
1678
+
1679
+ def _typecheckingstub__5cfe410d8def41b97bf697999052e8eae3ba4691c72f03f9db1d7275baf6ed07(
1680
+ *,
1681
+ key_vault_id: Vault,
1682
+ object_id: builtins.str,
1683
+ tenant_id: builtins.str,
1684
+ certificate_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1685
+ key_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1686
+ secret_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1687
+ storage_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1688
+ ) -> None:
1689
+ """Type checking stubs"""
1690
+ pass
1691
+
1692
+ def _typecheckingstub__0fd1d912631fc8dde1a769566e3ea99baf2954d0af16be561aae29ad55ace25b(
1693
+ scope: _constructs_77d1e7e8.Construct,
1694
+ id: builtins.str,
1695
+ *,
1696
+ access_policies: typing.Sequence[AccessPolicy],
1697
+ key_vault_id: Vault,
1698
+ name: builtins.str,
1699
+ provider_name: builtins.str,
1700
+ password: typing.Optional[builtins.str] = None,
1701
+ username: typing.Optional[builtins.str] = None,
1702
+ ) -> None:
1703
+ """Type checking stubs"""
1704
+ pass
1705
+
1706
+ def _typecheckingstub__5040b69059943a548e408c33cf899a9e5cd1230fcfac175e830c76b10642f504(
1707
+ *,
1708
+ access_policies: typing.Sequence[AccessPolicy],
1709
+ key_vault_id: Vault,
1710
+ name: builtins.str,
1711
+ provider_name: builtins.str,
1712
+ password: typing.Optional[builtins.str] = None,
1713
+ username: typing.Optional[builtins.str] = None,
1714
+ ) -> None:
1715
+ """Type checking stubs"""
1716
+ pass
1717
+
1718
+ def _typecheckingstub__3436fd84bf104b1bc8cd30d3eb2faadc0f58a40d1eabbb47d487be7507134cd7(
1719
+ *,
1720
+ certificate_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1721
+ key_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1722
+ secret_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1723
+ storage_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1724
+ ) -> None:
1725
+ """Type checking stubs"""
1726
+ pass
1727
+
1728
+ def _typecheckingstub__764ad04fbd1fc7abfe91c3ca71a3f0df1b038969bfda7c952f3021ce45b03094(
1729
+ scope: _constructs_77d1e7e8.Construct,
1730
+ id: builtins.str,
1731
+ *,
1732
+ access_policies: typing.Sequence[AccessPolicy],
1733
+ key_opts: typing.Sequence[builtins.str],
1734
+ key_type: builtins.str,
1735
+ key_vault_id: Vault,
1736
+ name: builtins.str,
1737
+ expires: typing.Optional[builtins.str] = None,
1738
+ key_size: typing.Optional[jsii.Number] = None,
1739
+ rotation_policy: typing.Optional[typing.Union[_cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKeyRotationPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
1740
+ ) -> None:
1741
+ """Type checking stubs"""
1742
+ pass
1743
+
1744
+ def _typecheckingstub__1f2906c60b67daeedd0649a513a69c7c29965637edc934b937264e3d9e84d21f(
1745
+ value: _cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKey,
1746
+ ) -> None:
1747
+ """Type checking stubs"""
1748
+ pass
1749
+
1750
+ def _typecheckingstub__995ed0d726015be1e472d81cda4bb9836358aa4c155e115c8314614e4171b257(
1751
+ *,
1752
+ access_policies: typing.Sequence[AccessPolicy],
1753
+ key_opts: typing.Sequence[builtins.str],
1754
+ key_type: builtins.str,
1755
+ key_vault_id: Vault,
1756
+ name: builtins.str,
1757
+ expires: typing.Optional[builtins.str] = None,
1758
+ key_size: typing.Optional[jsii.Number] = None,
1759
+ rotation_policy: typing.Optional[typing.Union[_cdktf_cdktf_provider_azurerm_key_vault_key_92bbcedf.KeyVaultKeyRotationPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
1760
+ ) -> None:
1761
+ """Type checking stubs"""
1762
+ pass
1763
+
1764
+ def _typecheckingstub__c78df4e95e03e93ef044f647b9b99dcad3c39f1844594b182e977b52617317f7(
1765
+ scope: _constructs_77d1e7e8.Construct,
1766
+ id: builtins.str,
1767
+ *,
1768
+ access_policies: typing.Sequence[AccessPolicy],
1769
+ key_vault_id: Vault,
1770
+ name: builtins.str,
1771
+ value: builtins.str,
1772
+ content_type: typing.Optional[builtins.str] = None,
1773
+ expiration_date: typing.Optional[builtins.str] = None,
1774
+ ) -> None:
1775
+ """Type checking stubs"""
1776
+ pass
1777
+
1778
+ def _typecheckingstub__000957c0b227f3cb3e6b4710c4ff0c1439839536ed2dd1e6444c6440ae47007c(
1779
+ value: builtins.str,
1780
+ ) -> None:
1781
+ """Type checking stubs"""
1782
+ pass
1783
+
1784
+ def _typecheckingstub__0d36fbfdf3b4d23e5fe773f0713f10351c70db1fa84f549499f9d58b8ed1ee3f(
1785
+ *,
1786
+ access_policies: typing.Sequence[AccessPolicy],
1787
+ key_vault_id: Vault,
1788
+ name: builtins.str,
1789
+ value: builtins.str,
1790
+ content_type: typing.Optional[builtins.str] = None,
1791
+ expiration_date: typing.Optional[builtins.str] = None,
1792
+ ) -> None:
1793
+ """Type checking stubs"""
1794
+ pass
1795
+
1796
+ def _typecheckingstub__4f2fd11aff992ca62fdb1d32287ac5e70f490e423a8220d0fd8b93f168423e61(
1797
+ scope: _constructs_77d1e7e8.Construct,
1798
+ id: builtins.str,
1799
+ *,
1800
+ access_policies: typing.Sequence[AccessPolicy],
1801
+ dns_names: typing.Sequence[builtins.str],
1802
+ key_vault_id: Vault,
1803
+ name: builtins.str,
1804
+ subject: builtins.str,
1805
+ action_type: typing.Optional[builtins.str] = None,
1806
+ days_before_expiry: typing.Optional[jsii.Number] = None,
1807
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1808
+ ) -> None:
1809
+ """Type checking stubs"""
1810
+ pass
1811
+
1812
+ def _typecheckingstub__7bcfe32dfda0bfcd75c9886c46d00ae6fe55b59fe44815138f1c45bade1a9a50(
1813
+ value: _cdktf_cdktf_provider_azurerm_key_vault_certificate_92bbcedf.KeyVaultCertificate,
1814
+ ) -> None:
1815
+ """Type checking stubs"""
1816
+ pass
1817
+
1818
+ def _typecheckingstub__8a7832291886fb9d0860c4fe02c693ab9a897d39b628a7dbe1eda21608cd7bbf(
1819
+ value: builtins.str,
1820
+ ) -> None:
1821
+ """Type checking stubs"""
1822
+ pass
1823
+
1824
+ def _typecheckingstub__d9590e40faef06e65b262dcbee4614c369cb45c54a88a331ceaf27f397ea5dba(
1825
+ value: builtins.str,
1826
+ ) -> None:
1827
+ """Type checking stubs"""
1828
+ pass
1829
+
1830
+ def _typecheckingstub__0e1a75ff875f51795d8bc81864b6795d51c7ecac35b8f6a4b8aea44373ec77ea(
1831
+ *,
1832
+ access_policies: typing.Sequence[AccessPolicy],
1833
+ dns_names: typing.Sequence[builtins.str],
1834
+ key_vault_id: Vault,
1835
+ name: builtins.str,
1836
+ subject: builtins.str,
1837
+ action_type: typing.Optional[builtins.str] = None,
1838
+ days_before_expiry: typing.Optional[jsii.Number] = None,
1839
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1840
+ ) -> None:
1841
+ """Type checking stubs"""
1842
+ pass
1843
+
1844
+ def _typecheckingstub__917170a8774b61cb3259bde0d15c6881a93b9cdffe2a33390469fe5c8a9e2a05(
1845
+ scope: _constructs_77d1e7e8.Construct,
1846
+ id: builtins.str,
1847
+ *,
1848
+ location: builtins.str,
1849
+ name: builtins.str,
1850
+ tenant_id: builtins.str,
1851
+ network_acls: typing.Optional[typing.Union[_cdktf_cdktf_provider_azurerm_key_vault_92bbcedf.KeyVaultNetworkAcls, typing.Dict[builtins.str, typing.Any]]] = None,
1852
+ purge_protection: typing.Optional[builtins.bool] = None,
1853
+ resource_group: typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup] = None,
1854
+ sku: typing.Optional[builtins.str] = None,
1855
+ soft_delete_retention_days: typing.Optional[jsii.Number] = None,
1856
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1857
+ ) -> None:
1858
+ """Type checking stubs"""
1859
+ pass
1860
+
1861
+ def _typecheckingstub__b2f2c045bea927ac556e9d63c71e26ab25277d8da73f00083296262c6f2b0d08(
1862
+ name: builtins.str,
1863
+ provider: builtins.str,
1864
+ ) -> None:
1865
+ """Type checking stubs"""
1866
+ pass
1867
+
1868
+ def _typecheckingstub__aed59457372f0c3fa0801aa14cefea7ed0289f41e524d4ada63ecf06b1d232ed(
1869
+ key_vault_key_name: builtins.str,
1870
+ key_type: builtins.str,
1871
+ key_size: jsii.Number,
1872
+ key_opts: typing.Sequence[builtins.str],
1873
+ expiration_date: typing.Optional[builtins.str] = None,
1874
+ ) -> None:
1875
+ """Type checking stubs"""
1876
+ pass
1877
+
1878
+ def _typecheckingstub__44d7612c9814856bc1bdd84c9c10b3e85c32a5de1d4f059663ecd747493821c4(
1879
+ key_vault_key_name: builtins.str,
1880
+ expiration_date: typing.Optional[builtins.str] = None,
1881
+ ) -> None:
1882
+ """Type checking stubs"""
1883
+ pass
1884
+
1885
+ def _typecheckingstub__13221bb3d97d7c10cdc53b21cfc108150b47f04a58e6e97ff9ccd6e2c2a55d4b(
1886
+ key_vault_secret_name: builtins.str,
1887
+ secret_value: builtins.str,
1888
+ expiration_date: typing.Optional[builtins.str] = None,
1889
+ content_type: typing.Optional[builtins.str] = None,
1890
+ ) -> None:
1891
+ """Type checking stubs"""
1892
+ pass
1893
+
1894
+ def _typecheckingstub__bb532d7f4c3c84e1e56fae08e207d5a6fbf5e8ee1ba3c7a9c6b13b42ddf77b3f(
1895
+ cert_name: builtins.str,
1896
+ subject: builtins.str,
1897
+ dns_names: typing.Sequence[builtins.str],
1898
+ action_type: typing.Optional[builtins.str] = None,
1899
+ days_before_expiry: typing.Optional[jsii.Number] = None,
1900
+ ) -> None:
1901
+ """Type checking stubs"""
1902
+ pass
1903
+
1904
+ def _typecheckingstub__73641a86765e12eff8779da1e3d696365f687b93c56fe402482b12aa728e9244(
1905
+ azure_ad_group_id: builtins.str,
1906
+ ) -> None:
1907
+ """Type checking stubs"""
1908
+ pass
1909
+
1910
+ def _typecheckingstub__17b8add7190d8d64361a0ac3cc23e32fa47351b032f69b181322896dba5f7acc(
1911
+ azure_ad_group_id: builtins.str,
1912
+ ) -> None:
1913
+ """Type checking stubs"""
1914
+ pass
1915
+
1916
+ def _typecheckingstub__d0c3ff9e135caf120495df7de38fe2e782a7a0248c74e21ee768c7f682223dfb(
1917
+ azure_ad_group_id: builtins.str,
1918
+ *,
1919
+ certificate_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1920
+ key_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1921
+ secret_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1922
+ storage_permissions: typing.Optional[typing.Sequence[builtins.str]] = None,
1923
+ ) -> None:
1924
+ """Type checking stubs"""
1925
+ pass
1926
+
1927
+ def _typecheckingstub__68ff32d57ec319a01c35a0940b03a2e4562a7bc6050cb8010ab4c18e7f3c21f8(
1928
+ azure_ad_group_id: builtins.str,
1929
+ ) -> None:
1930
+ """Type checking stubs"""
1931
+ pass
1932
+
1933
+ def _typecheckingstub__d4a4fc98889d3ac21c14e506fcf1ccaa72d368be01047ce9db0e55862ca29561(
1934
+ azure_ad_group_id: builtins.str,
1935
+ ) -> None:
1936
+ """Type checking stubs"""
1937
+ pass
1938
+
1939
+ def _typecheckingstub__28c5dd3f8478b3fd3664ab3e6a2c52820e7de6333255d890ba903c13839c3fd7(
1940
+ azure_ad_group_id: builtins.str,
1941
+ ) -> None:
1942
+ """Type checking stubs"""
1943
+ pass
1944
+
1945
+ def _typecheckingstub__55000ecd371e9c22c7bc145e3c409a38b61720185c5c1d6c9278b5a6413d0696(
1946
+ azure_ad_group_id: builtins.str,
1947
+ ) -> None:
1948
+ """Type checking stubs"""
1949
+ pass
1950
+
1951
+ def _typecheckingstub__132293293bc0a019bee63752d4f9c262c329d1d96c14ed0ab713e57d97de3356(
1952
+ value: builtins.str,
1953
+ ) -> None:
1954
+ """Type checking stubs"""
1955
+ pass
1956
+
1957
+ def _typecheckingstub__3b8adbdb4ccba13cd1fcc80c3a5121a26274d2437c1bb9959fa209488f098e78(
1958
+ value: _cdktf_cdktf_provider_azurerm_key_vault_92bbcedf.KeyVault,
1959
+ ) -> None:
1960
+ """Type checking stubs"""
1961
+ pass
1962
+
1963
+ def _typecheckingstub__8d02ea52264d9dfc8cc494f7817103a21aa112c5ddf9274911b6c025d63b47b1(
1964
+ value: _cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup,
1965
+ ) -> None:
1966
+ """Type checking stubs"""
1967
+ pass
1968
+
1969
+ def _typecheckingstub__d60e7a7b69f9363156af0a1f5cf4a395b5df716c2f7327f2030a8e6a84ad4da5(
1970
+ *,
1971
+ location: builtins.str,
1972
+ name: builtins.str,
1973
+ tenant_id: builtins.str,
1974
+ network_acls: typing.Optional[typing.Union[_cdktf_cdktf_provider_azurerm_key_vault_92bbcedf.KeyVaultNetworkAcls, typing.Dict[builtins.str, typing.Any]]] = None,
1975
+ purge_protection: typing.Optional[builtins.bool] = None,
1976
+ resource_group: typing.Optional[_cdktf_cdktf_provider_azurerm_resource_group_92bbcedf.ResourceGroup] = None,
1977
+ sku: typing.Optional[builtins.str] = None,
1978
+ soft_delete_retention_days: typing.Optional[jsii.Number] = None,
1979
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1980
+ ) -> None:
1981
+ """Type checking stubs"""
1982
+ pass