@microsoft/terraform-cdk-constructs 0.0.3-pre.6 → 0.0.3-pre.7
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.
- package/.jsii +909 -306
- package/API.md +2488 -255
- package/README.md +112 -18
- package/docs/images/ide-documentation.png +0 -0
- package/lib/azure-actiongroup/lib/actiongroup.d.ts +39 -0
- package/lib/azure-actiongroup/lib/actiongroup.js +40 -1
- package/lib/azure-applicationgateway/lib/gateway.d.ts +76 -0
- package/lib/azure-applicationgateway/lib/gateway.js +78 -2
- package/lib/azure-applicationinsights/lib/appinsights.d.ts +50 -0
- package/lib/azure-applicationinsights/lib/appinsights.js +52 -3
- package/lib/azure-containerregistry/lib/registry.d.ts +29 -0
- package/lib/azure-containerregistry/lib/registry.js +31 -2
- package/lib/azure-datalake/lib/datalake.d.ts +50 -0
- package/lib/azure-datalake/lib/datalake.js +51 -1
- package/lib/azure-datalake/lib/filesystem.d.ts +51 -0
- package/lib/azure-datalake/lib/filesystem.js +52 -1
- package/lib/azure-datalake/lib/path.d.ts +37 -0
- package/lib/azure-datalake/lib/path.js +38 -1
- package/lib/azure-eventhub/lib/authorization.d.ts +30 -0
- package/lib/azure-eventhub/lib/authorization.js +32 -2
- package/lib/azure-eventhub/lib/cluster.d.ts +29 -0
- package/lib/azure-eventhub/lib/cluster.js +31 -2
- package/lib/azure-eventhub/lib/consumer.d.ts +28 -0
- package/lib/azure-eventhub/lib/consumer.js +30 -2
- package/lib/azure-eventhub/lib/instance.d.ts +118 -0
- package/lib/azure-eventhub/lib/instance.js +120 -2
- package/lib/azure-eventhub/lib/kusto-connection.d.ts +41 -0
- package/lib/azure-eventhub/lib/kusto-connection.js +43 -2
- package/lib/azure-eventhub/lib/namespace.d.ts +74 -0
- package/lib/azure-eventhub/lib/namespace.js +76 -3
- package/lib/azure-functionapp/lib/functionapplinux.js +1 -1
- package/lib/azure-keyvault/lib/certificate.d.ts +96 -2
- package/lib/azure-keyvault/lib/certificate.js +55 -3
- package/lib/azure-keyvault/lib/key.d.ts +36 -0
- package/lib/azure-keyvault/lib/key.js +38 -2
- package/lib/azure-keyvault/lib/policy.d.ts +30 -0
- package/lib/azure-keyvault/lib/policy.js +32 -2
- package/lib/azure-keyvault/lib/secret.d.ts +31 -0
- package/lib/azure-keyvault/lib/secret.js +33 -2
- package/lib/azure-keyvault/lib/vault.d.ts +188 -0
- package/lib/azure-keyvault/lib/vault.js +191 -7
- package/lib/azure-kubernetes/lib/cluster.d.ts +25 -4
- package/lib/azure-kubernetes/lib/cluster.js +27 -6
- package/lib/azure-kusto/lib/cluster.d.ts +53 -0
- package/lib/azure-kusto/lib/cluster.js +55 -2
- package/lib/azure-kusto/lib/compute-specification.js +1 -1
- package/lib/azure-kusto/lib/database.d.ts +103 -0
- package/lib/azure-kusto/lib/database.js +105 -2
- package/lib/azure-loganalytics/lib/workspace.d.ts +47 -0
- package/lib/azure-loganalytics/lib/workspace.js +49 -2
- package/lib/azure-metricalert/lib/metric-alert.d.ts +43 -4
- package/lib/azure-metricalert/lib/metric-alert.js +45 -6
- package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +1 -1
- package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +92 -0
- package/lib/azure-networksecuritygroup/lib/securitygroup.js +95 -5
- package/lib/azure-queryrulealert/lib/query-rule-alert.d.ts +35 -4
- package/lib/azure-queryrulealert/lib/query-rule-alert.js +37 -6
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +28 -0
- package/lib/azure-resourcegroup/lib/resource-group.js +30 -2
- package/lib/azure-storageaccount/lib/account.d.ts +75 -48
- package/lib/azure-storageaccount/lib/account.js +77 -50
- package/lib/azure-storageaccount/lib/container.d.ts +94 -12
- package/lib/azure-storageaccount/lib/container.js +97 -15
- package/lib/azure-storageaccount/lib/fileshare.d.ts +36 -0
- package/lib/azure-storageaccount/lib/fileshare.js +39 -3
- package/lib/azure-storageaccount/lib/queue.d.ts +29 -0
- package/lib/azure-storageaccount/lib/queue.js +31 -2
- package/lib/azure-storageaccount/lib/table.d.ts +32 -0
- package/lib/azure-storageaccount/lib/table.js +34 -2
- package/lib/azure-virtualmachine/lib/image-references.js +2 -2
- package/lib/azure-virtualmachine/lib/vm.d.ts +84 -8
- package/lib/azure-virtualmachine/lib/vm.js +87 -11
- package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +98 -8
- package/lib/azure-virtualmachinescaleset/lib/cluster.js +101 -11
- package/lib/azure-virtualnetwork/lib/network.d.ts +61 -0
- package/lib/azure-virtualnetwork/lib/network.js +63 -3
- package/lib/azure-virtualnetwork/lib/peering.d.ts +39 -0
- package/lib/azure-virtualnetwork/lib/peering.js +41 -2
- package/lib/core-azure/lib/diagsettings.d.ts +37 -0
- package/lib/core-azure/lib/diagsettings.js +39 -2
- package/lib/core-azure/lib/rbac.d.ts +22 -4
- package/lib/core-azure/lib/rbac.js +24 -6
- package/lib/core-azure/lib/resource.d.ts +45 -0
- package/lib/core-azure/lib/resource.js +48 -4
- package/package.json +1 -1
|
@@ -11,6 +11,32 @@ const policy_1 = require("./policy");
|
|
|
11
11
|
const secret_1 = require("./secret");
|
|
12
12
|
const lib_1 = require("../../core-azure/lib");
|
|
13
13
|
class Vault extends lib_1.AzureResource {
|
|
14
|
+
/**
|
|
15
|
+
* Constructs a new Azure Key Vault resource.
|
|
16
|
+
*
|
|
17
|
+
* This class creates and configures an Azure Key Vault, a secure store for managing secrets, keys, certificates, and other sensitive data.
|
|
18
|
+
* It supports advanced configurations such as access policies, network rules, and data retention policies.
|
|
19
|
+
*
|
|
20
|
+
* @param scope - The scope in which to define this construct, usually representing the Cloud Development Kit (CDK) stack.
|
|
21
|
+
* @param id - The unique identifier for this instance of the Key Vault.
|
|
22
|
+
* @param props - The properties for creating the Key Vault as defined in VaultProps. These include settings for location, SKU, tenant ID, etc.
|
|
23
|
+
*
|
|
24
|
+
* Example usage:
|
|
25
|
+
* ```typescript
|
|
26
|
+
* new Vault(this, 'MyKeyVault', {
|
|
27
|
+
* name: 'mySecureVault',
|
|
28
|
+
* location: 'East US',
|
|
29
|
+
* resourceGroup: myResourceGroup,
|
|
30
|
+
* sku: 'premium',
|
|
31
|
+
* tenantId: 'my-tenant-id',
|
|
32
|
+
* softDeleteRetentionDays: 90,
|
|
33
|
+
* purgeProtection: true,
|
|
34
|
+
* tags: {
|
|
35
|
+
* project: 'My Application'
|
|
36
|
+
* }
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
14
40
|
constructor(scope, id, props) {
|
|
15
41
|
super(scope, id);
|
|
16
42
|
this.accessPolicies = [];
|
|
@@ -45,7 +71,11 @@ class Vault extends lib_1.AzureResource {
|
|
|
45
71
|
/*This allows the Terraform resource name to match the original name. You can remove the call if you don't need them to match.*/
|
|
46
72
|
cdktfTerraformOutputKeyVaultname.overrideLogicalId("key_vault_name");
|
|
47
73
|
}
|
|
48
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Grants read-only access to secrets stored in the Key Vault to a specified Azure AD group.
|
|
76
|
+
*
|
|
77
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive read access to secrets.
|
|
78
|
+
*/
|
|
49
79
|
grantSecretReaderAccess(azureAdGroupId) {
|
|
50
80
|
const policyProps = {
|
|
51
81
|
keyVaultId: this,
|
|
@@ -56,6 +86,11 @@ class Vault extends lib_1.AzureResource {
|
|
|
56
86
|
const policy = new policy_1.AccessPolicy(this, `kv_secret_reader_access_${azureAdGroupId}`, policyProps);
|
|
57
87
|
this.accessPolicies.push(policy);
|
|
58
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Grants administrative access to secrets stored in the Key Vault to a specified Azure AD group.
|
|
91
|
+
*
|
|
92
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive administrative access to secrets.
|
|
93
|
+
*/
|
|
59
94
|
grantSecretAdminAccess(azureAdGroupId) {
|
|
60
95
|
const policyProps = {
|
|
61
96
|
keyVaultId: this,
|
|
@@ -74,6 +109,11 @@ class Vault extends lib_1.AzureResource {
|
|
|
74
109
|
const policy = new policy_1.AccessPolicy(this, `kv_secret_admin_access_${azureAdGroupId}`, policyProps);
|
|
75
110
|
this.accessPolicies.push(policy);
|
|
76
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Grants administrative access to certificates stored in the Key Vault to a specified Azure AD group.
|
|
114
|
+
*
|
|
115
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive administrative access to certificates.
|
|
116
|
+
*/
|
|
77
117
|
grantCertAdminAccess(azureAdGroupId) {
|
|
78
118
|
const policyProps = {
|
|
79
119
|
keyVaultId: this,
|
|
@@ -92,6 +132,11 @@ class Vault extends lib_1.AzureResource {
|
|
|
92
132
|
const policy = new policy_1.AccessPolicy(this, `kv_cert_admin_access_${azureAdGroupId}`, policyProps);
|
|
93
133
|
this.accessPolicies.push(policy);
|
|
94
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Grants read-only access to certificates stored in the Key Vault to a specified Azure AD group.
|
|
137
|
+
*
|
|
138
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive read access to certificates.
|
|
139
|
+
*/
|
|
95
140
|
grantCertReaderAccess(azureAdGroupId) {
|
|
96
141
|
const policyProps = {
|
|
97
142
|
keyVaultId: this,
|
|
@@ -102,6 +147,11 @@ class Vault extends lib_1.AzureResource {
|
|
|
102
147
|
const policy = new policy_1.AccessPolicy(this, `kv_cert_reader_access_${azureAdGroupId}`, policyProps);
|
|
103
148
|
this.accessPolicies.push(policy);
|
|
104
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Grants administrative access to keys stored in the Key Vault to a specified Azure AD group.
|
|
152
|
+
*
|
|
153
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive administrative access to keys.
|
|
154
|
+
*/
|
|
105
155
|
grantKeyAdminAccess(azureAdGroupId) {
|
|
106
156
|
const policyProps = {
|
|
107
157
|
keyVaultId: this,
|
|
@@ -120,16 +170,27 @@ class Vault extends lib_1.AzureResource {
|
|
|
120
170
|
const policy = new policy_1.AccessPolicy(this, `kv_key_admin_access_${azureAdGroupId}`, policyProps);
|
|
121
171
|
this.accessPolicies.push(policy);
|
|
122
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Grants read-only access to keys stored in the Key Vault to a specified Azure AD group.
|
|
175
|
+
*
|
|
176
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive read access to keys.
|
|
177
|
+
*/
|
|
123
178
|
grantKeyReaderAccess(azureAdGroupId) {
|
|
124
179
|
const policyProps = {
|
|
125
180
|
keyVaultId: this,
|
|
126
181
|
tenantId: this.props.tenantId,
|
|
127
182
|
objectId: azureAdGroupId,
|
|
128
|
-
|
|
183
|
+
keyPermissions: ["Get", "List"],
|
|
129
184
|
};
|
|
130
185
|
const policy = new policy_1.AccessPolicy(this, `kv_key_reader_access_${azureAdGroupId}`, policyProps);
|
|
131
186
|
this.accessPolicies.push(policy);
|
|
132
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Grants custom access based on specified options to an Azure AD group in the Key Vault.
|
|
190
|
+
*
|
|
191
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive the custom access.
|
|
192
|
+
* @param options - Custom access options specifying various permissions for secrets, keys, certificates, and storage.
|
|
193
|
+
*/
|
|
133
194
|
grantCustomAccess(azureAdGroupId, options) {
|
|
134
195
|
const policyProps = {
|
|
135
196
|
keyVaultId: this,
|
|
@@ -140,7 +201,32 @@ class Vault extends lib_1.AzureResource {
|
|
|
140
201
|
const policy = new policy_1.AccessPolicy(this, `kv_custom_policy_access_${azureAdGroupId}`, policyProps);
|
|
141
202
|
this.accessPolicies.push(policy);
|
|
142
203
|
}
|
|
143
|
-
|
|
204
|
+
/**
|
|
205
|
+
* Creates a new secret within the Azure Key Vault.
|
|
206
|
+
*
|
|
207
|
+
* This method facilitates the storage of sensitive information in the form of a secret within the Key Vault.
|
|
208
|
+
* Secrets are protected items such as passwords, database connection strings, or any other piece of information
|
|
209
|
+
* that needs to be securely stored and accessed. This method allows setting additional properties such as
|
|
210
|
+
* expiration date and content type for better management and compliance.
|
|
211
|
+
*
|
|
212
|
+
* @param keyVaultSecretName - The unique name for the secret within the Key Vault.
|
|
213
|
+
* @param secretValue - The sensitive information or data that needs to be securely stored as a secret.
|
|
214
|
+
* @param expirationDate - Optional. The expiration date of the secret in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).
|
|
215
|
+
* If provided, the secret will no longer be valid after this date.
|
|
216
|
+
* @param contentType - Optional. A description of the type of information the secret contains (e.g., 'password', 'connectionString').
|
|
217
|
+
* This can be used by applications to handle the secret appropriately.
|
|
218
|
+
*
|
|
219
|
+
* Example usage:
|
|
220
|
+
* ```typescript
|
|
221
|
+
* vault.addSecret(
|
|
222
|
+
* 'myDatabasePassword',
|
|
223
|
+
* 'p@ssw0rd123!',
|
|
224
|
+
* '2030-01-01',
|
|
225
|
+
* 'databasePassword'
|
|
226
|
+
* );
|
|
227
|
+
* ```
|
|
228
|
+
* This method does not return a value. It creates a secret within the Key Vault with the specified properties.
|
|
229
|
+
*/
|
|
144
230
|
addSecret(keyVaultSecretName, secretValue, expirationDate, contentType) {
|
|
145
231
|
const secretProps = {
|
|
146
232
|
keyVaultId: this,
|
|
@@ -152,7 +238,28 @@ class Vault extends lib_1.AzureResource {
|
|
|
152
238
|
};
|
|
153
239
|
new secret_1.Secret(this, keyVaultSecretName, secretProps);
|
|
154
240
|
}
|
|
155
|
-
|
|
241
|
+
/**
|
|
242
|
+
* Creates an RSA cryptographic key within the Azure Key Vault.
|
|
243
|
+
*
|
|
244
|
+
* This method facilitates the creation of an RSA key, which is useful for a variety of cryptographic operations such as
|
|
245
|
+
* encryption, decryption, digital signature verification, and more. The RSA key created by this method is configurable
|
|
246
|
+
* with an optional expiration date and a default key size of 2048 bits. The key operations allowed include decryption,
|
|
247
|
+
* encryption, signing, verifying signatures, and key wrapping/unwrapping.
|
|
248
|
+
*
|
|
249
|
+
* @param keyVaultKeyName - The unique name for the RSA key within the Key Vault.
|
|
250
|
+
* @param expirationDate - Optional. The expiration date of the key in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).
|
|
251
|
+
* If provided, the key will no longer be valid after this date.
|
|
252
|
+
* @returns A KeyVaultKey object representing the newly created RSA key within the vault.
|
|
253
|
+
*
|
|
254
|
+
* Example usage:
|
|
255
|
+
* ```typescript
|
|
256
|
+
* const rsaKey = vault.addRSAKey(
|
|
257
|
+
* 'myRSAKey',
|
|
258
|
+
* '2030-01-01'
|
|
259
|
+
* );
|
|
260
|
+
* ```
|
|
261
|
+
* This method returns the created KeyVaultKey object, allowing further operations or references to the key.
|
|
262
|
+
*/
|
|
156
263
|
addRSAKey(keyVaultKeyName, expirationDate) {
|
|
157
264
|
const keyProps = {
|
|
158
265
|
keyVaultId: this,
|
|
@@ -166,6 +273,35 @@ class Vault extends lib_1.AzureResource {
|
|
|
166
273
|
const key = new key_1.Key(this, keyVaultKeyName, keyProps);
|
|
167
274
|
return key.vaultKey;
|
|
168
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* Creates a cryptographic key within the Azure Key Vault.
|
|
278
|
+
*
|
|
279
|
+
* This method allows the creation of a cryptographic key of specified type and size within the Key Vault. The key can be
|
|
280
|
+
* configured with specific operations it can perform, such as encryption, decryption, signing, etc. An optional expiration
|
|
281
|
+
* date can also be set to control the key's lifecycle. This method is flexible, supporting various key types and sizes,
|
|
282
|
+
* making it suitable for a wide range of cryptographic needs.
|
|
283
|
+
*
|
|
284
|
+
* @param keyVaultKeyName - The unique name for the cryptographic key within the Key Vault.
|
|
285
|
+
* @param keyType - The type of cryptographic key to create (e.g., 'RSA', 'EC', 'oct-HSM').
|
|
286
|
+
* @param keySize - The size of the cryptographic key in bits (e.g., 2048, 3072, 4096 for RSA).
|
|
287
|
+
* @param keyOpts - A list of cryptographic operations that the key is allowed to perform. Possible values might include
|
|
288
|
+
* 'encrypt', 'decrypt', 'sign', 'verify', 'wrapKey', 'unwrapKey'.
|
|
289
|
+
* @param expirationDate - Optional. The expiration date of the key in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).
|
|
290
|
+
* If provided, the key will no longer be valid after this date, aligning with best practices for key management.
|
|
291
|
+
* @returns A KeyVaultKey object representing the newly created cryptographic key within the vault.
|
|
292
|
+
*
|
|
293
|
+
* Example usage:
|
|
294
|
+
* ```typescript
|
|
295
|
+
* const myKey = vault.addKey(
|
|
296
|
+
* 'myKey',
|
|
297
|
+
* 'RSA',
|
|
298
|
+
* 2048,
|
|
299
|
+
* ['encrypt', 'decrypt', 'sign', 'verify'],
|
|
300
|
+
* '2030-12-31'
|
|
301
|
+
* );
|
|
302
|
+
* ```
|
|
303
|
+
* This method returns the created KeyVaultKey object, enabling immediate use within the application for cryptographic operations.
|
|
304
|
+
*/
|
|
169
305
|
addKey(keyVaultKeyName, keyType, keySize, keyOpts, expirationDate) {
|
|
170
306
|
const keyProps = {
|
|
171
307
|
keyVaultId: this,
|
|
@@ -179,7 +315,34 @@ class Vault extends lib_1.AzureResource {
|
|
|
179
315
|
const key = new key_1.Key(this, keyVaultKeyName, keyProps);
|
|
180
316
|
return key.vaultKey;
|
|
181
317
|
}
|
|
182
|
-
|
|
318
|
+
/**
|
|
319
|
+
* Creates a self-signed certificate within the Azure Key Vault.
|
|
320
|
+
*
|
|
321
|
+
* This method facilitates the creation of a self-signed certificate, which is a digital certificate that is signed by
|
|
322
|
+
* its own creator rather than a trusted authority. Self-signed certificates can be useful for testing, internal
|
|
323
|
+
* communications, or any scenario where public trust is not required. The method allows specifying subject details,
|
|
324
|
+
* DNS names for the certificate, and managing its lifecycle with action types and expiry.
|
|
325
|
+
*
|
|
326
|
+
* @param certName - The unique name for the certificate within the Key Vault.
|
|
327
|
+
* @param subject - The subject name of the certificate, typically formatted as an X.500 Distinguished Name (e.g., "CN=example.com").
|
|
328
|
+
* @param dnsNames - An array of DNS names that should be associated with this certificate. This is useful for certificates
|
|
329
|
+
* that need to be valid for multiple hostnames.
|
|
330
|
+
* @param actionType - Optional. Specifies the action to be performed with the certificate, such as 'create' or 'renew'.
|
|
331
|
+
* @param daysBeforeExpiry - Optional. Number of days before expiry when an action should be taken, useful for auto-renewal scenarios.
|
|
332
|
+
* @returns A KeyVaultCertificate object representing the newly created self-signed certificate.
|
|
333
|
+
*
|
|
334
|
+
* Example usage:
|
|
335
|
+
* ```typescript
|
|
336
|
+
* const myCertificate = vault.addSelfSignedCert(
|
|
337
|
+
* 'myCert',
|
|
338
|
+
* 'CN=mydomain.com',
|
|
339
|
+
* ['mydomain.com', 'www.mydomain.com'],
|
|
340
|
+
* 'create',
|
|
341
|
+
* 30
|
|
342
|
+
* );
|
|
343
|
+
* ```
|
|
344
|
+
* This method returns the KeyVaultCertificate object, enabling it to be used immediately within the application or stored for future use.
|
|
345
|
+
*/
|
|
183
346
|
addSelfSignedCert(certName, subject, dnsNames, actionType, daysBeforeExpiry) {
|
|
184
347
|
const keyProps = {
|
|
185
348
|
keyVaultId: this,
|
|
@@ -193,6 +356,27 @@ class Vault extends lib_1.AzureResource {
|
|
|
193
356
|
const cert = new certificate_1.SelfSignedCertificate(this, certName, keyProps);
|
|
194
357
|
return cert.certificate;
|
|
195
358
|
}
|
|
359
|
+
/**
|
|
360
|
+
* Adds a certificate issuer to the Azure Key Vault.
|
|
361
|
+
*
|
|
362
|
+
* This method configures a certificate issuer within the Key Vault, allowing the Key Vault to issue certificates
|
|
363
|
+
* through external providers. Configuring an issuer is essential for enabling automated certificate management
|
|
364
|
+
* processes, such as issuance and renewal, directly through the Key Vault with a specified Certificate Authority (CA).
|
|
365
|
+
*
|
|
366
|
+
* @param name - The unique name for the certificate issuer within the Key Vault.
|
|
367
|
+
* @param provider - The name of the external provider that will issue the certificates, such as 'DigiCert' or 'GlobalSign'.
|
|
368
|
+
*
|
|
369
|
+
* Example usage:
|
|
370
|
+
* ```typescript
|
|
371
|
+
* vault.addCertIssuer(
|
|
372
|
+
* 'myCertIssuer',
|
|
373
|
+
* 'DigiCert'
|
|
374
|
+
* );
|
|
375
|
+
* ```
|
|
376
|
+
* This method configures a certificate issuer but does not return any value. The issuer details, including provider name
|
|
377
|
+
* and any necessary credentials (managed externally or through additional method parameters), are set up in the Key Vault
|
|
378
|
+
* for future certificate operations.
|
|
379
|
+
*/
|
|
196
380
|
addCertIssuer(name, provider) {
|
|
197
381
|
new certificate_1.CertificateIssuer(this, name, {
|
|
198
382
|
name: name,
|
|
@@ -204,5 +388,5 @@ class Vault extends lib_1.AzureResource {
|
|
|
204
388
|
}
|
|
205
389
|
exports.Vault = Vault;
|
|
206
390
|
_a = JSII_RTTI_SYMBOL_1;
|
|
207
|
-
Vault[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_keyvault.Vault", version: "0.0.3-pre.
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta2V5dmF1bHQvbGliL3ZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBRytDO0FBSy9DLCtCQUErQjtBQUUvQiwrQ0FJdUI7QUFDdkIsK0JBQXNDO0FBQ3RDLHFDQUEyRDtBQUMzRCxxQ0FBK0M7QUFDL0MsOENBQXFEO0FBNEVyRCxNQUFhLEtBQU0sU0FBUSxtQkFBYTtJQU90QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlCO1FBQ3pELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFIWCxtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFLMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBRXpDLHlCQUF5QjtRQUN6QixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQztRQUN0RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQztRQUNwQyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxFQUFFLENBQUM7UUFFcEUsTUFBTSxlQUFlLEdBQUcsSUFBSSxvQkFBUSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDdEQsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixpQkFBaUIsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUk7WUFDM0MsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLE9BQU8sRUFBRSxHQUFHO1lBQ1osUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixzQkFBc0IsRUFBRSxl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LEVBQUU7WUFDaEMsSUFBSSxFQUFFLElBQUk7WUFDVixZQUFZLEVBQUUsUUFBUTtZQUN0QixVQUFVLEVBQUUsSUFBSTtZQUNoQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE1Ukgsc0JBNlJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgS2V5VmF1bHQsXG4gIEtleVZhdWx0TmV0d29ya0FjbHMsXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIva2V5LXZhdWx0XCI7XG5pbXBvcnQgeyBLZXlWYXVsdENlcnRpZmljYXRlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9rZXktdmF1bHQtY2VydGlmaWNhdGVcIjsgLy8gQWRqdXN0IHRoZSBpbXBvcnQgcGF0aCBiYXNlZCBvbiB0aGUgYWN0dWFsIG1vZHVsZSBsb2NhdGlvbi5cbmltcG9ydCB7IEtleVZhdWx0S2V5IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9rZXktdmF1bHQta2V5XCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuXG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBDZXJ0aWZpY2F0ZUlzc3VlcixcbiAgU2VsZlNpZ25lZENlcnRpZmljYXRlLFxuICBTZWxmU2lnbmVkQ2VydGlmaWNhdGVQcm9wcyxcbn0gZnJvbSBcIi4vY2VydGlmaWNhdGVcIjtcbmltcG9ydCB7IEtleSwgS2V5UHJvcHMgfSBmcm9tIFwiLi9rZXlcIjtcbmltcG9ydCB7IEFjY2Vzc1BvbGljeSwgQWNjZXNzUG9saWN5UHJvcHMgfSBmcm9tIFwiLi9wb2xpY3lcIjtcbmltcG9ydCB7IFNlY3JldCwgU2VjcmV0UHJvcHMgfSBmcm9tIFwiLi9zZWNyZXRcIjtcbmltcG9ydCB7IEF6dXJlUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBWYXVsdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBLZXkgVmF1bHQuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQXp1cmUgUmVnaW9uIHRvIGRlcGxveSB0aGUgS2V5IFZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBBenVyZSBSZXNvdXJjZSBHcm91cC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG4gIC8qKlxuICAgKiBUaGUgdGFncyB0byBhc3NpZ24gdG8gdGhlIEtleSBWYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAvKipcbiAgICogVGhlIHRhZ3MgdG8gYXNzaWduIHRvIHRoZSBLZXkgVmF1bHQuXG4gICAqL1xuICByZWFkb25seSBza3U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgTmFtZSBvZiB0aGUgU0tVIHVzZWQgZm9yIHRoaXMgS2V5IFZhdWx0LiBQb3NzaWJsZSB2YWx1ZXMgYXJlIHN0YW5kYXJkIGFuZCBwcmVtaXVtLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVuYW50SWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IHRlbmFudCBJRCB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciBhdXRoZW50aWNhdGluZyByZXF1ZXN0cyB0byB0aGUga2V5IHZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya0FjbHM/OiBLZXlWYXVsdE5ldHdvcmtBY2xzO1xuICAvKipcbiAgICogQSBtYXAgb2YgSVAgbmV0d29yayBBQ0wgcnVsZXMuIFRoZSBrZXkgaXMgdGhlIElQIG9yIElQIHJhbmdlIGluIENJRFIgbm90YXRpb24uXG4gICAqIFRoZSB2YWx1ZSBpcyBhIGRlc2NyaXB0aW9uIG9mIHRoYXQgSVAgcmFuZ2UuXG4gICAqL1xuICByZWFkb25seSBwdXJnZVByb3RlY3Rpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogIFNwZWNpZmllcyB3aGV0aGVyIHByb3RlY3Rpb24gYWdhaW5zdCBwdXJnZSBpcyBlbmFibGVkIGZvciB0aGlzIEtleSBWYXVsdC5cbiAgICogU2V0dGluZyB0aGlzIHByb3BlcnR5IHRvIHRydWUgYWN0aXZhdGVzIHByb3RlY3Rpb24gYWdhaW5zdCBkZWxldGlvbiBvZiBhbnkgYWN0aXZlIGtleSwgc2VjcmV0IG9yIGNlcnRpZmljYXRlIGluIHRoZSB2YXVsdC4gVGhlIHNldHRpbmcgaXMgZWZmZWN0aXZlIG9ubHkgaWYgc29mdCBkZWxldGUgaXMgYWxzbyBlbmFibGVkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS5cbiAgICogT25jZSBhY3RpdmF0ZWQsIHRoZSBwcm9wZXJ0eSBjYW5ub3QgYmUgcmV2ZXJ0ZWQgdG8gZmFsc2UuXG4gICAqL1xuICByZWFkb25seSBzb2Z0RGVsZXRlUmV0ZW50aW9uRGF5cz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGF5cyB0aGF0IGl0ZW1zIHNob3VsZCBiZSByZXRhaW5lZCBmb3Igb25jZSBzb2Z0LWRlbGV0ZWQuXG4gICAqL1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGdyYW50aW5nIGN1c3RvbSBhY2Nlc3MgcGVybWlzc2lvbnMgaW4gQXp1cmUgS2V5IFZhdWx0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50Q3VzdG9tQWNjZXNzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbDogQSBsaXN0IG9mIHBlcm1pc3Npb25zIHRvIGdyYW50IGZvciBzZWNyZXRzIGluIHRoZSBLZXkgVmF1bHQuXG4gICAqIEV4YW1wbGUgcGVybWlzc2lvbnMgaW5jbHVkZSAnZ2V0JywgJ2xpc3QnLCAnc2V0JywgJ2RlbGV0ZScsIGV0Yy5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldFBlcm1pc3Npb25zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsOiBBIGxpc3Qgb2YgcGVybWlzc2lvbnMgdG8gZ3JhbnQgZm9yIGNlcnRpZmljYXRlcyBpbiB0aGUgS2V5IFZhdWx0LlxuICAgKiBFeGFtcGxlIHBlcm1pc3Npb25zIGluY2x1ZGUgJ2dldCcsICdsaXN0JywgJ2NyZWF0ZScsICdkZWxldGUnLCBldGMuXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZVBlcm1pc3Npb25zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsOiBBIGxpc3Qgb2YgcGVybWlzc2lvbnMgdG8gZ3JhbnQgZm9yIGtleXMgaW4gdGhlIEtleSBWYXVsdC5cbiAgICogRXhhbXBsZSBwZXJtaXNzaW9ucyBpbmNsdWRlICdlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcEtleScsICd1bndyYXBLZXknLCBldGMuXG4gICAqL1xuICByZWFkb25seSBrZXlQZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbDogQSBsaXN0IG9mIHBlcm1pc3Npb25zIHRvIGdyYW50IGZvciBzdG9yYWdlIGFjY291bnRzIGluIHRoZSBLZXkgVmF1bHQuXG4gICAqIEV4YW1wbGUgcGVybWlzc2lvbnMgaW5jbHVkZSAnZ2V0JywgJ2xpc3QnLCAnZGVsZXRlJywgJ3NldCcsICd1cGRhdGUnLCBldGMuXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlUGVybWlzc2lvbnM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFZhdWx0IGV4dGVuZHMgQXp1cmVSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IHByb3BzOiBWYXVsdFByb3BzO1xuICBwdWJsaWMga2V5VmF1bHQ6IEtleVZhdWx0O1xuICBwdWJsaWMgcmVzb3VyY2VHcm91cDogUmVzb3VyY2VHcm91cDtcbiAgcHVibGljIGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgYWNjZXNzUG9saWNpZXM6IEFjY2Vzc1BvbGljeVtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFZhdWx0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMucmVzb3VyY2VHcm91cCA9IHByb3BzLnJlc291cmNlR3JvdXA7XG5cbiAgICAvLyBQcm92aWRlIGRlZmF1bHQgdmFsdWVzXG4gICAgY29uc3QgcHVyZ2VQcm90ZWN0aW9uID0gcHJvcHMucHVyZ2VQcm90ZWN0aW9uID8/IHRydWU7XG4gICAgY29uc3Qgc2t1ID0gcHJvcHMuc2t1ID8/IFwic3RhbmRhcmRcIjtcbiAgICBjb25zdCBzb2Z0RGVsZXRlUmV0ZW50aW9uRGF5cyA9IHByb3BzLnNvZnREZWxldGVSZXRlbnRpb25EYXlzID8/IDkwO1xuXG4gICAgY29uc3QgYXp1cmVybUtleVZhdWx0ID0gbmV3IEtleVZhdWx0KHRoaXMsIFwia2V5X3ZhdWx0XCIsIHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICBsb2NhdGlvbjogcHJvcHMubG9jYXRpb24sXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogcHJvcHMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgIHNrdU5hbWU6IHNrdSxcbiAgICAgIHRlbmFudElkOiBwcm9wcy50ZW5hbnRJZCxcbiAgICAgIG5ldHdvcmtBY2xzOiBwcm9wcy5uZXR3b3JrQWNscyxcbiAgICAgIHB1cmdlUHJvdGVjdGlvbkVuYWJsZWQ6IHB1cmdlUHJvdGVjdGlvbixcbiAgICAgIHNvZnREZWxldGVSZXRlbnRpb25EYXlzOiBzb2Z0RGVsZXRlUmV0ZW50aW9uRGF5cyxcbiAgICB9KTtcbiAgICB0aGlzLmlkID0gYXp1cmVybUtleVZhdWx0LmlkO1xuICAgIHRoaXMua2V5VmF1bHQgPSBhenVyZXJtS2V5VmF1bHQ7XG5cbiAgICAvLyBUZXJyYWZvcm0gT3V0cHV0c1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0S2V5VmF1bHRpZCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJpZFwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXp1cmVybUtleVZhdWx0LmlkLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLypUaGlzIGFsbG93cyB0aGUgVGVycmFmb3JtIHJlc291cmNlIG5hbWUgdG8gbWF0Y2ggdGhlIG9yaWdpbmFsIG5hbWUuIFlvdSBjYW4gcmVtb3ZlIHRoZSBjYWxsIGlmIHlvdSBkb24ndCBuZWVkIHRoZW0gdG8gbWF0Y2guKi9cbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dEtleVZhdWx0aWQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcblxuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0S2V5VmF1bHRuYW1lID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcImtleV92YXVsdF9uYW1lXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBhenVyZXJtS2V5VmF1bHQubmFtZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8qVGhpcyBhbGxvd3MgdGhlIFRlcnJhZm9ybSByZXNvdXJjZSBuYW1lIHRvIG1hdGNoIHRoZSBvcmlnaW5hbCBuYW1lLiBZb3UgY2FuIHJlbW92ZSB0aGUgY2FsbCBpZiB5b3UgZG9uJ3QgbmVlZCB0aGVtIHRvIG1hdGNoLiovXG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRLZXlWYXVsdG5hbWUub3ZlcnJpZGVMb2dpY2FsSWQoXCJrZXlfdmF1bHRfbmFtZVwiKTtcbiAgfVxuXG4gIC8vIEFjY2VzcyBQb2xpY3kgTWV0aG9kc1xuICBwdWJsaWMgZ3JhbnRTZWNyZXRSZWFkZXJBY2Nlc3MoYXp1cmVBZEdyb3VwSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHBvbGljeVByb3BzOiBBY2Nlc3NQb2xpY3lQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICB0ZW5hbnRJZDogdGhpcy5wcm9wcy50ZW5hbnRJZCxcbiAgICAgIG9iamVjdElkOiBhenVyZUFkR3JvdXBJZCxcbiAgICAgIHNlY3JldFBlcm1pc3Npb25zOiBbXCJHZXRcIiwgXCJMaXN0XCJdLFxuICAgIH07XG5cbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgQWNjZXNzUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgIGBrdl9zZWNyZXRfcmVhZGVyX2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgcHVibGljIGdyYW50U2VjcmV0QWRtaW5BY2Nlc3MoYXp1cmVBZEdyb3VwSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHBvbGljeVByb3BzOiBBY2Nlc3NQb2xpY3lQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICB0ZW5hbnRJZDogdGhpcy5wcm9wcy50ZW5hbnRJZCxcbiAgICAgIG9iamVjdElkOiBhenVyZUFkR3JvdXBJZCxcbiAgICAgIHNlY3JldFBlcm1pc3Npb25zOiBbXG4gICAgICAgIFwiR2V0XCIsXG4gICAgICAgIFwiTGlzdFwiLFxuICAgICAgICBcIlNldFwiLFxuICAgICAgICBcIkRlbGV0ZVwiLFxuICAgICAgICBcIkJhY2t1cFwiLFxuICAgICAgICBcIlJlc3RvcmVcIixcbiAgICAgICAgXCJSZWNvdmVyXCIsXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgQWNjZXNzUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgIGBrdl9zZWNyZXRfYWRtaW5fYWNjZXNzXyR7YXp1cmVBZEdyb3VwSWR9YCxcbiAgICAgIHBvbGljeVByb3BzLFxuICAgICk7XG4gICAgdGhpcy5hY2Nlc3NQb2xpY2llcy5wdXNoKHBvbGljeSk7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRDZXJ0QWRtaW5BY2Nlc3MoYXp1cmVBZEdyb3VwSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHBvbGljeVByb3BzOiBBY2Nlc3NQb2xpY3lQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICB0ZW5hbnRJZDogdGhpcy5wcm9wcy50ZW5hbnRJZCxcbiAgICAgIG9iamVjdElkOiBhenVyZUFkR3JvdXBJZCxcbiAgICAgIGNlcnRpZmljYXRlUGVybWlzc2lvbnM6IFtcbiAgICAgICAgXCJHZXRcIixcbiAgICAgICAgXCJMaXN0XCIsXG4gICAgICAgIFwiU2V0XCIsXG4gICAgICAgIFwiRGVsZXRlXCIsXG4gICAgICAgIFwiQmFja3VwXCIsXG4gICAgICAgIFwiUmVzdG9yZVwiLFxuICAgICAgICBcIlJlY292ZXJcIixcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIGNvbnN0IHBvbGljeSA9IG5ldyBBY2Nlc3NQb2xpY3koXG4gICAgICB0aGlzLFxuICAgICAgYGt2X2NlcnRfYWRtaW5fYWNjZXNzXyR7YXp1cmVBZEdyb3VwSWR9YCxcbiAgICAgIHBvbGljeVByb3BzLFxuICAgICk7XG4gICAgdGhpcy5hY2Nlc3NQb2xpY2llcy5wdXNoKHBvbGljeSk7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRDZXJ0UmVhZGVyQWNjZXNzKGF6dXJlQWRHcm91cElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb2xpY3lQcm9wczogQWNjZXNzUG9saWN5UHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgdGVuYW50SWQ6IHRoaXMucHJvcHMudGVuYW50SWQsXG4gICAgICBvYmplY3RJZDogYXp1cmVBZEdyb3VwSWQsXG4gICAgICBjZXJ0aWZpY2F0ZVBlcm1pc3Npb25zOiBbXCJHZXRcIiwgXCJMaXN0XCJdLFxuICAgIH07XG5cbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgQWNjZXNzUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgIGBrdl9jZXJ0X3JlYWRlcl9hY2Nlc3NfJHthenVyZUFkR3JvdXBJZH1gLFxuICAgICAgcG9saWN5UHJvcHMsXG4gICAgKTtcbiAgICB0aGlzLmFjY2Vzc1BvbGljaWVzLnB1c2gocG9saWN5KTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudEtleUFkbWluQWNjZXNzKGF6dXJlQWRHcm91cElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb2xpY3lQcm9wczogQWNjZXNzUG9saWN5UHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgdGVuYW50SWQ6IHRoaXMucHJvcHMudGVuYW50SWQsXG4gICAgICBvYmplY3RJZDogYXp1cmVBZEdyb3VwSWQsXG4gICAgICBrZXlQZXJtaXNzaW9uczogW1xuICAgICAgICBcIkdldFwiLFxuICAgICAgICBcIkxpc3RcIixcbiAgICAgICAgXCJTZXRcIixcbiAgICAgICAgXCJEZWxldGVcIixcbiAgICAgICAgXCJCYWNrdXBcIixcbiAgICAgICAgXCJSZXN0b3JlXCIsXG4gICAgICAgIFwiUmVjb3ZlclwiLFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgY29uc3QgcG9saWN5ID0gbmV3IEFjY2Vzc1BvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICBga3Zfa2V5X2FkbWluX2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgcHVibGljIGdyYW50S2V5UmVhZGVyQWNjZXNzKGF6dXJlQWRHcm91cElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb2xpY3lQcm9wczogQWNjZXNzUG9saWN5UHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgdGVuYW50SWQ6IHRoaXMucHJvcHMudGVuYW50SWQsXG4gICAgICBvYmplY3RJZDogYXp1cmVBZEdyb3VwSWQsXG4gICAgICBjZXJ0aWZpY2F0ZVBlcm1pc3Npb25zOiBbXCJHZXRcIiwgXCJMaXN0XCJdLFxuICAgIH07XG5cbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgQWNjZXNzUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgIGBrdl9rZXlfcmVhZGVyX2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgcHVibGljIGdyYW50Q3VzdG9tQWNjZXNzKFxuICAgIGF6dXJlQWRHcm91cElkOiBzdHJpbmcsXG4gICAgb3B0aW9uczogR3JhbnRDdXN0b21BY2Nlc3NPcHRpb25zLFxuICApIHtcbiAgICBjb25zdCBwb2xpY3lQcm9wczogQWNjZXNzUG9saWN5UHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgdGVuYW50SWQ6IHRoaXMucHJvcHMudGVuYW50SWQsXG4gICAgICBvYmplY3RJZDogYXp1cmVBZEdyb3VwSWQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgQWNjZXNzUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgIGBrdl9jdXN0b21fcG9saWN5X2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgLy8gQ3JlYXRlIFNlY3JldCBNZXRob2RzXG4gIHB1YmxpYyBhZGRTZWNyZXQoXG4gICAga2V5VmF1bHRTZWNyZXROYW1lOiBzdHJpbmcsXG4gICAgc2VjcmV0VmFsdWU6IHN0cmluZyxcbiAgICBleHBpcmF0aW9uRGF0ZT86IHN0cmluZyxcbiAgICBjb250ZW50VHlwZT86IHN0cmluZyxcbiAgKSB7XG4gICAgY29uc3Qgc2VjcmV0UHJvcHM6IFNlY3JldFByb3BzID0ge1xuICAgICAga2V5VmF1bHRJZDogdGhpcyxcbiAgICAgIG5hbWU6IGtleVZhdWx0U2VjcmV0TmFtZSxcbiAgICAgIHZhbHVlOiBzZWNyZXRWYWx1ZSxcbiAgICAgIGV4cGlyYXRpb25EYXRlOiBleHBpcmF0aW9uRGF0ZSxcbiAgICAgIGNvbnRlbnRUeXBlOiBjb250ZW50VHlwZSxcbiAgICAgIGFjY2Vzc1BvbGljaWVzOiB0aGlzLmFjY2Vzc1BvbGljaWVzLFxuICAgIH07XG5cbiAgICBuZXcgU2VjcmV0KHRoaXMsIGtleVZhdWx0U2VjcmV0TmFtZSwgc2VjcmV0UHJvcHMpO1xuICB9XG5cbiAgLy8gQ3JlYXRlIEtleSBNZXRob2RzXG4gIHB1YmxpYyBhZGRSU0FLZXkoXG4gICAga2V5VmF1bHRLZXlOYW1lOiBzdHJpbmcsXG4gICAgZXhwaXJhdGlvbkRhdGU/OiBzdHJpbmcsXG4gICk6IEtleVZhdWx0S2V5IHtcbiAgICBjb25zdCBrZXlQcm9wczogS2V5UHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgbmFtZToga2V5VmF1bHRLZXlOYW1lLFxuICAgICAga2V5VHlwZTogXCJSU0FcIixcbiAgICAgIGtleVNpemU6IDIwNDgsXG4gICAgICBrZXlPcHRzOiBbXCJkZWNyeXB0XCIsIFwiZW5jcnlwdFwiLCBcInNpZ25cIiwgXCJ1bndyYXBLZXlcIiwgXCJ2ZXJpZnlcIiwgXCJ3cmFwS2V5XCJdLFxuICAgICAgZXhwaXJlczogZXhwaXJhdGlvbkRhdGUsXG4gICAgICBhY2Nlc3NQb2xpY2llczogdGhpcy5hY2Nlc3NQb2xpY2llcyxcbiAgICB9O1xuXG4gICAgY29uc3Qga2V5ID0gbmV3IEtleSh0aGlzLCBrZXlWYXVsdEtleU5hbWUsIGtleVByb3BzKTtcbiAgICByZXR1cm4ga2V5LnZhdWx0S2V5O1xuICB9XG5cbiAgcHVibGljIGFkZEtleShcbiAgICBrZXlWYXVsdEtleU5hbWU6IHN0cmluZyxcbiAgICBrZXlUeXBlOiBzdHJpbmcsXG4gICAga2V5U2l6ZTogbnVtYmVyLFxuICAgIGtleU9wdHM6IHN0cmluZ1tdLFxuICAgIGV4cGlyYXRpb25EYXRlPzogc3RyaW5nLFxuICApOiBLZXlWYXVsdEtleSB7XG4gICAgY29uc3Qga2V5UHJvcHM6IEtleVByb3BzID0ge1xuICAgICAga2V5VmF1bHRJZDogdGhpcyxcbiAgICAgIG5hbWU6IGtleVZhdWx0S2V5TmFtZSxcbiAgICAgIGtleVR5cGU6IGtleVR5cGUsXG4gICAgICBrZXlTaXplOiBrZXlTaXplLFxuICAgICAga2V5T3B0czoga2V5T3B0cyxcbiAgICAgIGV4cGlyZXM6IGV4cGlyYXRpb25EYXRlLFxuICAgICAgYWNjZXNzUG9saWNpZXM6IHRoaXMuYWNjZXNzUG9saWNpZXMsXG4gICAgfTtcblxuICAgIGNvbnN0IGtleSA9IG5ldyBLZXkodGhpcywga2V5VmF1bHRLZXlOYW1lLCBrZXlQcm9wcyk7XG4gICAgcmV0dXJuIGtleS52YXVsdEtleTtcbiAgfVxuXG4gIC8vIENyZWF0ZSBDZXJ0aWZpY2F0ZSBNZXRob2RzXG5cbiAgcHVibGljIGFkZFNlbGZTaWduZWRDZXJ0KFxuICAgIGNlcnROYW1lOiBzdHJpbmcsXG4gICAgc3ViamVjdDogc3RyaW5nLFxuICAgIGRuc05hbWVzOiBzdHJpbmdbXSxcbiAgICBhY3Rpb25UeXBlPzogc3RyaW5nLFxuICAgIGRheXNCZWZvcmVFeHBpcnk/OiBudW1iZXIsXG4gICk6IEtleVZhdWx0Q2VydGlmaWNhdGUge1xuICAgIGNvbnN0IGtleVByb3BzOiBTZWxmU2lnbmVkQ2VydGlmaWNhdGVQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICBuYW1lOiBjZXJ0TmFtZSxcbiAgICAgIHN1YmplY3Q6IHN1YmplY3QsXG4gICAgICBkbnNOYW1lczogZG5zTmFtZXMsXG4gICAgICBhY3Rpb25UeXBlOiBhY3Rpb25UeXBlLFxuICAgICAgZGF5c0JlZm9yZUV4cGlyeTogZGF5c0JlZm9yZUV4cGlyeSxcbiAgICAgIGFjY2Vzc1BvbGljaWVzOiB0aGlzLmFjY2Vzc1BvbGljaWVzLFxuICAgIH07XG4gICAgY29uc3QgY2VydCA9IG5ldyBTZWxmU2lnbmVkQ2VydGlmaWNhdGUodGhpcywgY2VydE5hbWUsIGtleVByb3BzKTtcbiAgICByZXR1cm4gY2VydC5jZXJ0aWZpY2F0ZTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDZXJ0SXNzdWVyKG5hbWU6IHN0cmluZywgcHJvdmlkZXI6IHN0cmluZykge1xuICAgIG5ldyBDZXJ0aWZpY2F0ZUlzc3Vlcih0aGlzLCBuYW1lLCB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgcHJvdmlkZXJOYW1lOiBwcm92aWRlcixcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICBhY2Nlc3NQb2xpY2llczogdGhpcy5hY2Nlc3NQb2xpY2llcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
391
|
+
Vault[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_keyvault.Vault", version: "0.0.3-pre.7" };
|
|
392
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta2V5dmF1bHQvbGliL3ZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBRytDO0FBSy9DLCtCQUErQjtBQUUvQiwrQ0FJdUI7QUFDdkIsK0JBQXNDO0FBQ3RDLHFDQUEyRDtBQUMzRCxxQ0FBK0M7QUFDL0MsOENBQXFEO0FBNEVyRCxNQUFhLEtBQU0sU0FBUSxtQkFBYTtJQU90Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXlCRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUI7UUFDekQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQTdCWCxtQkFBYyxHQUFtQixFQUFFLENBQUM7UUErQjFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUV6Qyx5QkFBeUI7UUFDekIsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7UUFDdEQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxVQUFVLENBQUM7UUFDcEMsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUMsdUJBQXVCLElBQUksRUFBRSxDQUFDO1FBRXBFLE1BQU0sZUFBZSxHQUFHLElBQUksb0JBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3RELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJO1lBQzNDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixPQUFPLEVBQUUsR0FBRztZQUNaLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsc0JBQXNCLEVBQUUsZUFBZTtZQUN2Qyx1QkFBdUIsRUFBRSx1QkFBdUI7U0FDakQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEVBQUUsR0FBRyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDO1FBRWhDLG9CQUFvQjtRQUNwQixNQUFNLDhCQUE4QixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDOUQsSUFBSSxFQUNKLElBQUksRUFDSjtZQUNFLEtBQUssRUFBRSxlQUFlLENBQUMsRUFBRTtTQUMxQixDQUNGLENBQUM7UUFFRixnSUFBZ0k7UUFDaEksOEJBQThCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkQsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQ2hFLElBQUksRUFDSixnQkFBZ0IsRUFDaEI7WUFDRSxLQUFLLEVBQUUsZUFBZSxDQUFDLElBQUk7U0FDNUIsQ0FDRixDQUFDO1FBRUYsZ0lBQWdJO1FBQ2hJLGdDQUFnQyxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx1QkFBdUIsQ0FBQyxjQUFzQjtRQUNuRCxNQUFNLFdBQVcsR0FBc0I7WUFDckMsVUFBVSxFQUFFLElBQUk7WUFDaEIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUM3QixRQUFRLEVBQUUsY0FBYztZQUN4QixpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7U0FDbkMsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLElBQUkscUJBQVksQ0FDN0IsSUFBSSxFQUNKLDJCQUEyQixjQUFjLEVBQUUsRUFDM0MsV0FBVyxDQUNaLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHNCQUFzQixDQUFDLGNBQXNCO1FBQ2xELE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxVQUFVLEVBQUUsSUFBSTtZQUNoQixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQzdCLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLGlCQUFpQixFQUFFO2dCQUNqQixLQUFLO2dCQUNMLE1BQU07Z0JBQ04sS0FBSztnQkFDTCxRQUFRO2dCQUNSLFFBQVE7Z0JBQ1IsU0FBUztnQkFDVCxTQUFTO2FBQ1Y7U0FDRixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxxQkFBWSxDQUM3QixJQUFJLEVBQ0osMEJBQTBCLGNBQWMsRUFBRSxFQUMxQyxXQUFXLENBQ1osQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksb0JBQW9CLENBQUMsY0FBc0I7UUFDaEQsTUFBTSxXQUFXLEdBQXNCO1lBQ3JDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDN0IsUUFBUSxFQUFFLGNBQWM7WUFDeEIsc0JBQXNCLEVBQUU7Z0JBQ3RCLEtBQUs7Z0JBQ0wsTUFBTTtnQkFDTixLQUFLO2dCQUNMLFFBQVE7Z0JBQ1IsUUFBUTtnQkFDUixTQUFTO2dCQUNULFNBQVM7YUFDVjtTQUNGLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxJQUFJLHFCQUFZLENBQzdCLElBQUksRUFDSix3QkFBd0IsY0FBYyxFQUFFLEVBQ3hDLFdBQVcsQ0FDWixDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxxQkFBcUIsQ0FBQyxjQUFzQjtRQUNqRCxNQUFNLFdBQVcsR0FBc0I7WUFDckMsVUFBVSxFQUFFLElBQUk7WUFDaEIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUM3QixRQUFRLEVBQUUsY0FBYztZQUN4QixzQkFBc0IsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7U0FDeEMsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLElBQUkscUJBQVksQ0FDN0IsSUFBSSxFQUNKLHlCQUF5QixjQUFjLEVBQUUsRUFDekMsV0FBVyxDQUNaLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG1CQUFtQixDQUFDLGNBQXNCO1FBQy9DLE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxVQUFVLEVBQUUsSUFBSTtZQUNoQixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQzdCLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLGNBQWMsRUFBRTtnQkFDZCxLQUFLO2dCQUNMLE1BQU07Z0JBQ04sS0FBSztnQkFDTCxRQUFRO2dCQUNSLFFBQVE7Z0JBQ1IsU0FBUztnQkFDVCxTQUFTO2FBQ1Y7U0FDRixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxxQkFBWSxDQUM3QixJQUFJLEVBQ0osdUJBQXVCLGNBQWMsRUFBRSxFQUN2QyxXQUFXLENBQ1osQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksb0JBQW9CLENBQUMsY0FBc0I7UUFDaEQsTUFBTSxXQUFXLEdBQXNCO1lBQ3JDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDN0IsUUFBUSxFQUFFLGNBQWM7WUFDeEIsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztTQUNoQyxDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxxQkFBWSxDQUM3QixJQUFJLEVBQ0osd0JBQXdCLGNBQWMsRUFBRSxFQUN4QyxXQUFXLENBQ1osQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGlCQUFpQixDQUN0QixjQUFzQixFQUN0QixPQUFpQztRQUVqQyxNQUFNLFdBQVcsR0FBc0I7WUFDckMsVUFBVSxFQUFFLElBQUk7WUFDaEIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUM3QixRQUFRLEVBQUUsY0FBYztZQUN4QixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxxQkFBWSxDQUM3QixJQUFJLEVBQ0osMkJBQTJCLGNBQWMsRUFBRSxFQUMzQyxXQUFXLENBQ1osQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXlCRztJQUNJLFNBQVMsQ0FDZCxrQkFBMEIsRUFDMUIsV0FBbUIsRUFDbkIsY0FBdUIsRUFDdkIsV0FBb0I7UUFFcEIsTUFBTSxXQUFXLEdBQWdCO1lBQy9CLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsS0FBSyxFQUFFLFdBQVc7WUFDbEIsY0FBYyxFQUFFLGNBQWM7WUFDOUIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1NBQ3BDLENBQUM7UUFFRixJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQkc7SUFDSSxTQUFTLENBQ2QsZUFBdUIsRUFDdkIsY0FBdUI7UUFFdkIsTUFBTSxRQUFRLEdBQWE7WUFDekIsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFLGVBQWU7WUFDckIsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDO1lBQ3pFLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztTQUNwQyxDQUFDO1FBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFHLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyRCxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BNEJHO0lBQ0ksTUFBTSxDQUNYLGVBQXVCLEVBQ3ZCLE9BQWUsRUFDZixPQUFlLEVBQ2YsT0FBaUIsRUFDakIsY0FBdUI7UUFFdkIsTUFBTSxRQUFRLEdBQWE7WUFDekIsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFLGVBQWU7WUFDckIsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1NBQ3BDLENBQUM7UUFFRixNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTJCRztJQUNJLGlCQUFpQixDQUN0QixRQUFnQixFQUNoQixPQUFlLEVBQ2YsUUFBa0IsRUFDbEIsVUFBbUIsRUFDbkIsZ0JBQXlCO1FBRXpCLE1BQU0sUUFBUSxHQUErQjtZQUMzQyxVQUFVLEVBQUUsSUFBSTtZQUNoQixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLGdCQUFnQixFQUFFLGdCQUFnQjtZQUNsQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDcEMsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksbUNBQXFCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9CRztJQUNJLGFBQWEsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7UUFDakQsSUFBSSwrQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLElBQUksRUFBRSxJQUFJO1lBQ1YsWUFBWSxFQUFFLFFBQVE7WUFDdEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBbmRILHNCQW9kQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleVZhdWx0LFxuICBLZXlWYXVsdE5ldHdvcmtBY2xzLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2tleS12YXVsdFwiO1xuaW1wb3J0IHsgS2V5VmF1bHRDZXJ0aWZpY2F0ZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIva2V5LXZhdWx0LWNlcnRpZmljYXRlXCI7IC8vIEFkanVzdCB0aGUgaW1wb3J0IHBhdGggYmFzZWQgb24gdGhlIGFjdHVhbCBtb2R1bGUgbG9jYXRpb24uXG5pbXBvcnQgeyBLZXlWYXVsdEtleSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIva2V5LXZhdWx0LWtleVwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcmVzb3VyY2UtZ3JvdXBcIjtcblxuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQ2VydGlmaWNhdGVJc3N1ZXIsXG4gIFNlbGZTaWduZWRDZXJ0aWZpY2F0ZSxcbiAgU2VsZlNpZ25lZENlcnRpZmljYXRlUHJvcHMsXG59IGZyb20gXCIuL2NlcnRpZmljYXRlXCI7XG5pbXBvcnQgeyBLZXksIEtleVByb3BzIH0gZnJvbSBcIi4va2V5XCI7XG5pbXBvcnQgeyBBY2Nlc3NQb2xpY3ksIEFjY2Vzc1BvbGljeVByb3BzIH0gZnJvbSBcIi4vcG9saWN5XCI7XG5pbXBvcnQgeyBTZWNyZXQsIFNlY3JldFByb3BzIH0gZnJvbSBcIi4vc2VjcmV0XCI7XG5pbXBvcnQgeyBBenVyZVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmF1bHRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgS2V5IFZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEF6dXJlIFJlZ2lvbiB0byBkZXBsb3kgdGhlIEtleSBWYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQXp1cmUgUmVzb3VyY2UgR3JvdXAuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuICAvKipcbiAgICogVGhlIHRhZ3MgdG8gYXNzaWduIHRvIHRoZSBLZXkgVmF1bHQuXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIFRoZSB0YWdzIHRvIGFzc2lnbiB0byB0aGUgS2V5IFZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2t1Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIE5hbWUgb2YgdGhlIFNLVSB1c2VkIGZvciB0aGlzIEtleSBWYXVsdC4gUG9zc2libGUgdmFsdWVzIGFyZSBzdGFuZGFyZCBhbmQgcHJlbWl1bS5cbiAgICovXG4gIHJlYWRvbmx5IHRlbmFudElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQXp1cmUgQWN0aXZlIERpcmVjdG9yeSB0ZW5hbnQgSUQgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgYXV0aGVudGljYXRpbmcgcmVxdWVzdHMgdG8gdGhlIGtleSB2YXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtBY2xzPzogS2V5VmF1bHROZXR3b3JrQWNscztcbiAgLyoqXG4gICAqIEEgbWFwIG9mIElQIG5ldHdvcmsgQUNMIHJ1bGVzLiBUaGUga2V5IGlzIHRoZSBJUCBvciBJUCByYW5nZSBpbiBDSURSIG5vdGF0aW9uLlxuICAgKiBUaGUgdmFsdWUgaXMgYSBkZXNjcmlwdGlvbiBvZiB0aGF0IElQIHJhbmdlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVyZ2VQcm90ZWN0aW9uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqICBTcGVjaWZpZXMgd2hldGhlciBwcm90ZWN0aW9uIGFnYWluc3QgcHVyZ2UgaXMgZW5hYmxlZCBmb3IgdGhpcyBLZXkgVmF1bHQuXG4gICAqIFNldHRpbmcgdGhpcyBwcm9wZXJ0eSB0byB0cnVlIGFjdGl2YXRlcyBwcm90ZWN0aW9uIGFnYWluc3QgZGVsZXRpb24gb2YgYW55IGFjdGl2ZSBrZXksIHNlY3JldCBvciBjZXJ0aWZpY2F0ZSBpbiB0aGUgdmF1bHQuIFRoZSBzZXR0aW5nIGlzIGVmZmVjdGl2ZSBvbmx5IGlmIHNvZnQgZGVsZXRlIGlzIGFsc28gZW5hYmxlZC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuXG4gICAqIE9uY2UgYWN0aXZhdGVkLCB0aGUgcHJvcGVydHkgY2Fubm90IGJlIHJldmVydGVkIHRvIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc29mdERlbGV0ZVJldGVudGlvbkRheXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgdGhhdCBpdGVtcyBzaG91bGQgYmUgcmV0YWluZWQgZm9yIG9uY2Ugc29mdC1kZWxldGVkLlxuICAgKi9cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBncmFudGluZyBjdXN0b20gYWNjZXNzIHBlcm1pc3Npb25zIGluIEF6dXJlIEtleSBWYXVsdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFudEN1c3RvbUFjY2Vzc09wdGlvbnMge1xuICAvKipcbiAgICogT3B0aW9uYWw6IEEgbGlzdCBvZiBwZXJtaXNzaW9ucyB0byBncmFudCBmb3Igc2VjcmV0cyBpbiB0aGUgS2V5IFZhdWx0LlxuICAgKiBFeGFtcGxlIHBlcm1pc3Npb25zIGluY2x1ZGUgJ2dldCcsICdsaXN0JywgJ3NldCcsICdkZWxldGUnLCBldGMuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRQZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbDogQSBsaXN0IG9mIHBlcm1pc3Npb25zIHRvIGdyYW50IGZvciBjZXJ0aWZpY2F0ZXMgaW4gdGhlIEtleSBWYXVsdC5cbiAgICogRXhhbXBsZSBwZXJtaXNzaW9ucyBpbmNsdWRlICdnZXQnLCAnbGlzdCcsICdjcmVhdGUnLCAnZGVsZXRlJywgZXRjLlxuICAgKi9cbiAgcmVhZG9ubHkgY2VydGlmaWNhdGVQZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbDogQSBsaXN0IG9mIHBlcm1pc3Npb25zIHRvIGdyYW50IGZvciBrZXlzIGluIHRoZSBLZXkgVmF1bHQuXG4gICAqIEV4YW1wbGUgcGVybWlzc2lvbnMgaW5jbHVkZSAnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5JywgZXRjLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5UGVybWlzc2lvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWw6IEEgbGlzdCBvZiBwZXJtaXNzaW9ucyB0byBncmFudCBmb3Igc3RvcmFnZSBhY2NvdW50cyBpbiB0aGUgS2V5IFZhdWx0LlxuICAgKiBFeGFtcGxlIHBlcm1pc3Npb25zIGluY2x1ZGUgJ2dldCcsICdsaXN0JywgJ2RlbGV0ZScsICdzZXQnLCAndXBkYXRlJywgZXRjLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZVBlcm1pc3Npb25zPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBWYXVsdCBleHRlbmRzIEF6dXJlUmVzb3VyY2Uge1xuICByZWFkb25seSBwcm9wczogVmF1bHRQcm9wcztcbiAgcHVibGljIGtleVZhdWx0OiBLZXlWYXVsdDtcbiAgcHVibGljIHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwcml2YXRlIGFjY2Vzc1BvbGljaWVzOiBBY2Nlc3NQb2xpY3lbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgbmV3IEF6dXJlIEtleSBWYXVsdCByZXNvdXJjZS5cbiAgICpcbiAgICogVGhpcyBjbGFzcyBjcmVhdGVzIGFuZCBjb25maWd1cmVzIGFuIEF6dXJlIEtleSBWYXVsdCwgYSBzZWN1cmUgc3RvcmUgZm9yIG1hbmFnaW5nIHNlY3JldHMsIGtleXMsIGNlcnRpZmljYXRlcywgYW5kIG90aGVyIHNlbnNpdGl2ZSBkYXRhLlxuICAgKiBJdCBzdXBwb3J0cyBhZHZhbmNlZCBjb25maWd1cmF0aW9ucyBzdWNoIGFzIGFjY2VzcyBwb2xpY2llcywgbmV0d29yayBydWxlcywgYW5kIGRhdGEgcmV0ZW50aW9uIHBvbGljaWVzLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0LCB1c3VhbGx5IHJlcHJlc2VudGluZyB0aGUgQ2xvdWQgRGV2ZWxvcG1lbnQgS2l0IChDREspIHN0YWNrLlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIEtleSBWYXVsdC5cbiAgICogQHBhcmFtIHByb3BzIC0gVGhlIHByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIHRoZSBLZXkgVmF1bHQgYXMgZGVmaW5lZCBpbiBWYXVsdFByb3BzLiBUaGVzZSBpbmNsdWRlIHNldHRpbmdzIGZvciBsb2NhdGlvbiwgU0tVLCB0ZW5hbnQgSUQsIGV0Yy5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBuZXcgVmF1bHQodGhpcywgJ015S2V5VmF1bHQnLCB7XG4gICAqICAgbmFtZTogJ215U2VjdXJlVmF1bHQnLFxuICAgKiAgIGxvY2F0aW9uOiAnRWFzdCBVUycsXG4gICAqICAgcmVzb3VyY2VHcm91cDogbXlSZXNvdXJjZUdyb3VwLFxuICAgKiAgIHNrdTogJ3ByZW1pdW0nLFxuICAgKiAgIHRlbmFudElkOiAnbXktdGVuYW50LWlkJyxcbiAgICogICBzb2Z0RGVsZXRlUmV0ZW50aW9uRGF5czogOTAsXG4gICAqICAgcHVyZ2VQcm90ZWN0aW9uOiB0cnVlLFxuICAgKiAgIHRhZ3M6IHtcbiAgICogICAgIHByb2plY3Q6ICdNeSBBcHBsaWNhdGlvbidcbiAgICogICB9XG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBWYXVsdFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLnJlc291cmNlR3JvdXAgPSBwcm9wcy5yZXNvdXJjZUdyb3VwO1xuXG4gICAgLy8gUHJvdmlkZSBkZWZhdWx0IHZhbHVlc1xuICAgIGNvbnN0IHB1cmdlUHJvdGVjdGlvbiA9IHByb3BzLnB1cmdlUHJvdGVjdGlvbiA/PyB0cnVlO1xuICAgIGNvbnN0IHNrdSA9IHByb3BzLnNrdSA/PyBcInN0YW5kYXJkXCI7XG4gICAgY29uc3Qgc29mdERlbGV0ZVJldGVudGlvbkRheXMgPSBwcm9wcy5zb2Z0RGVsZXRlUmV0ZW50aW9uRGF5cyA/PyA5MDtcblxuICAgIGNvbnN0IGF6dXJlcm1LZXlWYXVsdCA9IG5ldyBLZXlWYXVsdCh0aGlzLCBcImtleV92YXVsdFwiLCB7XG4gICAgICBuYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgbG9jYXRpb246IHByb3BzLmxvY2F0aW9uLFxuICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHByb3BzLnJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgICBza3VOYW1lOiBza3UsXG4gICAgICB0ZW5hbnRJZDogcHJvcHMudGVuYW50SWQsXG4gICAgICBuZXR3b3JrQWNsczogcHJvcHMubmV0d29ya0FjbHMsXG4gICAgICBwdXJnZVByb3RlY3Rpb25FbmFibGVkOiBwdXJnZVByb3RlY3Rpb24sXG4gICAgICBzb2Z0RGVsZXRlUmV0ZW50aW9uRGF5czogc29mdERlbGV0ZVJldGVudGlvbkRheXMsXG4gICAgfSk7XG4gICAgdGhpcy5pZCA9IGF6dXJlcm1LZXlWYXVsdC5pZDtcbiAgICB0aGlzLmtleVZhdWx0ID0gYXp1cmVybUtleVZhdWx0O1xuXG4gICAgLy8gVGVycmFmb3JtIE91dHB1dHNcbiAgICBjb25zdCBjZGt0ZlRlcnJhZm9ybU91dHB1dEtleVZhdWx0aWQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwiaWRcIixcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGF6dXJlcm1LZXlWYXVsdC5pZCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8qVGhpcyBhbGxvd3MgdGhlIFRlcnJhZm9ybSByZXNvdXJjZSBuYW1lIHRvIG1hdGNoIHRoZSBvcmlnaW5hbCBuYW1lLiBZb3UgY2FuIHJlbW92ZSB0aGUgY2FsbCBpZiB5b3UgZG9uJ3QgbmVlZCB0aGVtIHRvIG1hdGNoLiovXG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRLZXlWYXVsdGlkLm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG5cbiAgICBjb25zdCBjZGt0ZlRlcnJhZm9ybU91dHB1dEtleVZhdWx0bmFtZSA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJrZXlfdmF1bHRfbmFtZVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXp1cmVybUtleVZhdWx0Lm5hbWUsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvKlRoaXMgYWxsb3dzIHRoZSBUZXJyYWZvcm0gcmVzb3VyY2UgbmFtZSB0byBtYXRjaCB0aGUgb3JpZ2luYWwgbmFtZS4gWW91IGNhbiByZW1vdmUgdGhlIGNhbGwgaWYgeW91IGRvbid0IG5lZWQgdGhlbSB0byBtYXRjaC4qL1xuICAgIGNka3RmVGVycmFmb3JtT3V0cHV0S2V5VmF1bHRuYW1lLm92ZXJyaWRlTG9naWNhbElkKFwia2V5X3ZhdWx0X25hbWVcIik7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHJlYWQtb25seSBhY2Nlc3MgdG8gc2VjcmV0cyBzdG9yZWQgaW4gdGhlIEtleSBWYXVsdCB0byBhIHNwZWNpZmllZCBBenVyZSBBRCBncm91cC5cbiAgICpcbiAgICogQHBhcmFtIGF6dXJlQWRHcm91cElkIC0gVGhlIEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkgZ3JvdXAgSUQgdGhhdCB3aWxsIHJlY2VpdmUgcmVhZCBhY2Nlc3MgdG8gc2VjcmV0cy5cbiAgICovXG4gIHB1YmxpYyBncmFudFNlY3JldFJlYWRlckFjY2VzcyhhenVyZUFkR3JvdXBJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcG9saWN5UHJvcHM6IEFjY2Vzc1BvbGljeVByb3BzID0ge1xuICAgICAga2V5VmF1bHRJZDogdGhpcyxcbiAgICAgIHRlbmFudElkOiB0aGlzLnByb3BzLnRlbmFudElkLFxuICAgICAgb2JqZWN0SWQ6IGF6dXJlQWRHcm91cElkLFxuICAgICAgc2VjcmV0UGVybWlzc2lvbnM6IFtcIkdldFwiLCBcIkxpc3RcIl0sXG4gICAgfTtcblxuICAgIGNvbnN0IHBvbGljeSA9IG5ldyBBY2Nlc3NQb2xpY3koXG4gICAgICB0aGlzLFxuICAgICAgYGt2X3NlY3JldF9yZWFkZXJfYWNjZXNzXyR7YXp1cmVBZEdyb3VwSWR9YCxcbiAgICAgIHBvbGljeVByb3BzLFxuICAgICk7XG4gICAgdGhpcy5hY2Nlc3NQb2xpY2llcy5wdXNoKHBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIGFkbWluaXN0cmF0aXZlIGFjY2VzcyB0byBzZWNyZXRzIHN0b3JlZCBpbiB0aGUgS2V5IFZhdWx0IHRvIGEgc3BlY2lmaWVkIEF6dXJlIEFEIGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0gYXp1cmVBZEdyb3VwSWQgLSBUaGUgQXp1cmUgQWN0aXZlIERpcmVjdG9yeSBncm91cCBJRCB0aGF0IHdpbGwgcmVjZWl2ZSBhZG1pbmlzdHJhdGl2ZSBhY2Nlc3MgdG8gc2VjcmV0cy5cbiAgICovXG4gIHB1YmxpYyBncmFudFNlY3JldEFkbWluQWNjZXNzKGF6dXJlQWRHcm91cElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb2xpY3lQcm9wczogQWNjZXNzUG9saWN5UHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgdGVuYW50SWQ6IHRoaXMucHJvcHMudGVuYW50SWQsXG4gICAgICBvYmplY3RJZDogYXp1cmVBZEdyb3VwSWQsXG4gICAgICBzZWNyZXRQZXJtaXNzaW9uczogW1xuICAgICAgICBcIkdldFwiLFxuICAgICAgICBcIkxpc3RcIixcbiAgICAgICAgXCJTZXRcIixcbiAgICAgICAgXCJEZWxldGVcIixcbiAgICAgICAgXCJCYWNrdXBcIixcbiAgICAgICAgXCJSZXN0b3JlXCIsXG4gICAgICAgIFwiUmVjb3ZlclwiLFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgY29uc3QgcG9saWN5ID0gbmV3IEFjY2Vzc1BvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICBga3Zfc2VjcmV0X2FkbWluX2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBhZG1pbmlzdHJhdGl2ZSBhY2Nlc3MgdG8gY2VydGlmaWNhdGVzIHN0b3JlZCBpbiB0aGUgS2V5IFZhdWx0IHRvIGEgc3BlY2lmaWVkIEF6dXJlIEFEIGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0gYXp1cmVBZEdyb3VwSWQgLSBUaGUgQXp1cmUgQWN0aXZlIERpcmVjdG9yeSBncm91cCBJRCB0aGF0IHdpbGwgcmVjZWl2ZSBhZG1pbmlzdHJhdGl2ZSBhY2Nlc3MgdG8gY2VydGlmaWNhdGVzLlxuICAgKi9cbiAgcHVibGljIGdyYW50Q2VydEFkbWluQWNjZXNzKGF6dXJlQWRHcm91cElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb2xpY3lQcm9wczogQWNjZXNzUG9saWN5UHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgdGVuYW50SWQ6IHRoaXMucHJvcHMudGVuYW50SWQsXG4gICAgICBvYmplY3RJZDogYXp1cmVBZEdyb3VwSWQsXG4gICAgICBjZXJ0aWZpY2F0ZVBlcm1pc3Npb25zOiBbXG4gICAgICAgIFwiR2V0XCIsXG4gICAgICAgIFwiTGlzdFwiLFxuICAgICAgICBcIlNldFwiLFxuICAgICAgICBcIkRlbGV0ZVwiLFxuICAgICAgICBcIkJhY2t1cFwiLFxuICAgICAgICBcIlJlc3RvcmVcIixcbiAgICAgICAgXCJSZWNvdmVyXCIsXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgQWNjZXNzUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgIGBrdl9jZXJ0X2FkbWluX2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyByZWFkLW9ubHkgYWNjZXNzIHRvIGNlcnRpZmljYXRlcyBzdG9yZWQgaW4gdGhlIEtleSBWYXVsdCB0byBhIHNwZWNpZmllZCBBenVyZSBBRCBncm91cC5cbiAgICpcbiAgICogQHBhcmFtIGF6dXJlQWRHcm91cElkIC0gVGhlIEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkgZ3JvdXAgSUQgdGhhdCB3aWxsIHJlY2VpdmUgcmVhZCBhY2Nlc3MgdG8gY2VydGlmaWNhdGVzLlxuICAgKi9cbiAgcHVibGljIGdyYW50Q2VydFJlYWRlckFjY2VzcyhhenVyZUFkR3JvdXBJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcG9saWN5UHJvcHM6IEFjY2Vzc1BvbGljeVByb3BzID0ge1xuICAgICAga2V5VmF1bHRJZDogdGhpcyxcbiAgICAgIHRlbmFudElkOiB0aGlzLnByb3BzLnRlbmFudElkLFxuICAgICAgb2JqZWN0SWQ6IGF6dXJlQWRHcm91cElkLFxuICAgICAgY2VydGlmaWNhdGVQZXJtaXNzaW9uczogW1wiR2V0XCIsIFwiTGlzdFwiXSxcbiAgICB9O1xuXG4gICAgY29uc3QgcG9saWN5ID0gbmV3IEFjY2Vzc1BvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICBga3ZfY2VydF9yZWFkZXJfYWNjZXNzXyR7YXp1cmVBZEdyb3VwSWR9YCxcbiAgICAgIHBvbGljeVByb3BzLFxuICAgICk7XG4gICAgdGhpcy5hY2Nlc3NQb2xpY2llcy5wdXNoKHBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIGFkbWluaXN0cmF0aXZlIGFjY2VzcyB0byBrZXlzIHN0b3JlZCBpbiB0aGUgS2V5IFZhdWx0IHRvIGEgc3BlY2lmaWVkIEF6dXJlIEFEIGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0gYXp1cmVBZEdyb3VwSWQgLSBUaGUgQXp1cmUgQWN0aXZlIERpcmVjdG9yeSBncm91cCBJRCB0aGF0IHdpbGwgcmVjZWl2ZSBhZG1pbmlzdHJhdGl2ZSBhY2Nlc3MgdG8ga2V5cy5cbiAgICovXG4gIHB1YmxpYyBncmFudEtleUFkbWluQWNjZXNzKGF6dXJlQWRHcm91cElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb2xpY3lQcm9wczogQWNjZXNzUG9saWN5UHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgdGVuYW50SWQ6IHRoaXMucHJvcHMudGVuYW50SWQsXG4gICAgICBvYmplY3RJZDogYXp1cmVBZEdyb3VwSWQsXG4gICAgICBrZXlQZXJtaXNzaW9uczogW1xuICAgICAgICBcIkdldFwiLFxuICAgICAgICBcIkxpc3RcIixcbiAgICAgICAgXCJTZXRcIixcbiAgICAgICAgXCJEZWxldGVcIixcbiAgICAgICAgXCJCYWNrdXBcIixcbiAgICAgICAgXCJSZXN0b3JlXCIsXG4gICAgICAgIFwiUmVjb3ZlclwiLFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgY29uc3QgcG9saWN5ID0gbmV3IEFjY2Vzc1BvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICBga3Zfa2V5X2FkbWluX2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyByZWFkLW9ubHkgYWNjZXNzIHRvIGtleXMgc3RvcmVkIGluIHRoZSBLZXkgVmF1bHQgdG8gYSBzcGVjaWZpZWQgQXp1cmUgQUQgZ3JvdXAuXG4gICAqXG4gICAqIEBwYXJhbSBhenVyZUFkR3JvdXBJZCAtIFRoZSBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IGdyb3VwIElEIHRoYXQgd2lsbCByZWNlaXZlIHJlYWQgYWNjZXNzIHRvIGtleXMuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRLZXlSZWFkZXJBY2Nlc3MoYXp1cmVBZEdyb3VwSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHBvbGljeVByb3BzOiBBY2Nlc3NQb2xpY3lQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICB0ZW5hbnRJZDogdGhpcy5wcm9wcy50ZW5hbnRJZCxcbiAgICAgIG9iamVjdElkOiBhenVyZUFkR3JvdXBJZCxcbiAgICAgIGtleVBlcm1pc3Npb25zOiBbXCJHZXRcIiwgXCJMaXN0XCJdLFxuICAgIH07XG5cbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgQWNjZXNzUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgIGBrdl9rZXlfcmVhZGVyX2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBjdXN0b20gYWNjZXNzIGJhc2VkIG9uIHNwZWNpZmllZCBvcHRpb25zIHRvIGFuIEF6dXJlIEFEIGdyb3VwIGluIHRoZSBLZXkgVmF1bHQuXG4gICAqXG4gICAqIEBwYXJhbSBhenVyZUFkR3JvdXBJZCAtIFRoZSBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IGdyb3VwIElEIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBjdXN0b20gYWNjZXNzLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIEN1c3RvbSBhY2Nlc3Mgb3B0aW9ucyBzcGVjaWZ5aW5nIHZhcmlvdXMgcGVybWlzc2lvbnMgZm9yIHNlY3JldHMsIGtleXMsIGNlcnRpZmljYXRlcywgYW5kIHN0b3JhZ2UuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRDdXN0b21BY2Nlc3MoXG4gICAgYXp1cmVBZEdyb3VwSWQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiBHcmFudEN1c3RvbUFjY2Vzc09wdGlvbnMsXG4gICkge1xuICAgIGNvbnN0IHBvbGljeVByb3BzOiBBY2Nlc3NQb2xpY3lQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICB0ZW5hbnRJZDogdGhpcy5wcm9wcy50ZW5hbnRJZCxcbiAgICAgIG9iamVjdElkOiBhenVyZUFkR3JvdXBJZCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIGNvbnN0IHBvbGljeSA9IG5ldyBBY2Nlc3NQb2xpY3koXG4gICAgICB0aGlzLFxuICAgICAgYGt2X2N1c3RvbV9wb2xpY3lfYWNjZXNzXyR7YXp1cmVBZEdyb3VwSWR9YCxcbiAgICAgIHBvbGljeVByb3BzLFxuICAgICk7XG4gICAgdGhpcy5hY2Nlc3NQb2xpY2llcy5wdXNoKHBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBzZWNyZXQgd2l0aGluIHRoZSBBenVyZSBLZXkgVmF1bHQuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGZhY2lsaXRhdGVzIHRoZSBzdG9yYWdlIG9mIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBpbiB0aGUgZm9ybSBvZiBhIHNlY3JldCB3aXRoaW4gdGhlIEtleSBWYXVsdC5cbiAgICogU2VjcmV0cyBhcmUgcHJvdGVjdGVkIGl0ZW1zIHN1Y2ggYXMgcGFzc3dvcmRzLCBkYXRhYmFzZSBjb25uZWN0aW9uIHN0cmluZ3MsIG9yIGFueSBvdGhlciBwaWVjZSBvZiBpbmZvcm1hdGlvblxuICAgKiB0aGF0IG5lZWRzIHRvIGJlIHNlY3VyZWx5IHN0b3JlZCBhbmQgYWNjZXNzZWQuIFRoaXMgbWV0aG9kIGFsbG93cyBzZXR0aW5nIGFkZGl0aW9uYWwgcHJvcGVydGllcyBzdWNoIGFzXG4gICAqIGV4cGlyYXRpb24gZGF0ZSBhbmQgY29udGVudCB0eXBlIGZvciBiZXR0ZXIgbWFuYWdlbWVudCBhbmQgY29tcGxpYW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGtleVZhdWx0U2VjcmV0TmFtZSAtIFRoZSB1bmlxdWUgbmFtZSBmb3IgdGhlIHNlY3JldCB3aXRoaW4gdGhlIEtleSBWYXVsdC5cbiAgICogQHBhcmFtIHNlY3JldFZhbHVlIC0gVGhlIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBvciBkYXRhIHRoYXQgbmVlZHMgdG8gYmUgc2VjdXJlbHkgc3RvcmVkIGFzIGEgc2VjcmV0LlxuICAgKiBAcGFyYW0gZXhwaXJhdGlvbkRhdGUgLSBPcHRpb25hbC4gVGhlIGV4cGlyYXRpb24gZGF0ZSBvZiB0aGUgc2VjcmV0IGluIElTTyA4NjAxIGZvcm1hdCAoWVlZWS1NTS1ERCBvciBZWVlZLU1NLUREVEhIOk1NOlNTWikuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgIElmIHByb3ZpZGVkLCB0aGUgc2VjcmV0IHdpbGwgbm8gbG9uZ2VyIGJlIHZhbGlkIGFmdGVyIHRoaXMgZGF0ZS5cbiAgICogQHBhcmFtIGNvbnRlbnRUeXBlIC0gT3B0aW9uYWwuIEEgZGVzY3JpcHRpb24gb2YgdGhlIHR5cGUgb2YgaW5mb3JtYXRpb24gdGhlIHNlY3JldCBjb250YWlucyAoZS5nLiwgJ3Bhc3N3b3JkJywgJ2Nvbm5lY3Rpb25TdHJpbmcnKS5cbiAgICogICAgICAgICAgICAgICAgICAgICAgVGhpcyBjYW4gYmUgdXNlZCBieSBhcHBsaWNhdGlvbnMgdG8gaGFuZGxlIHRoZSBzZWNyZXQgYXBwcm9wcmlhdGVseS5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB2YXVsdC5hZGRTZWNyZXQoXG4gICAqICAgJ215RGF0YWJhc2VQYXNzd29yZCcsXG4gICAqICAgJ3BAc3N3MHJkMTIzIScsXG4gICAqICAgJzIwMzAtMDEtMDEnLFxuICAgKiAgICdkYXRhYmFzZVBhc3N3b3JkJ1xuICAgKiApO1xuICAgKiBgYGBcbiAgICogVGhpcyBtZXRob2QgZG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuIEl0IGNyZWF0ZXMgYSBzZWNyZXQgd2l0aGluIHRoZSBLZXkgVmF1bHQgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgYWRkU2VjcmV0KFxuICAgIGtleVZhdWx0U2VjcmV0TmFtZTogc3RyaW5nLFxuICAgIHNlY3JldFZhbHVlOiBzdHJpbmcsXG4gICAgZXhwaXJhdGlvbkRhdGU/OiBzdHJpbmcsXG4gICAgY29udGVudFR5cGU/OiBzdHJpbmcsXG4gICkge1xuICAgIGNvbnN0IHNlY3JldFByb3BzOiBTZWNyZXRQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICBuYW1lOiBrZXlWYXVsdFNlY3JldE5hbWUsXG4gICAgICB2YWx1ZTogc2VjcmV0VmFsdWUsXG4gICAgICBleHBpcmF0aW9uRGF0ZTogZXhwaXJhdGlvbkRhdGUsXG4gICAgICBjb250ZW50VHlwZTogY29udGVudFR5cGUsXG4gICAgICBhY2Nlc3NQb2xpY2llczogdGhpcy5hY2Nlc3NQb2xpY2llcyxcbiAgICB9O1xuXG4gICAgbmV3IFNlY3JldCh0aGlzLCBrZXlWYXVsdFNlY3JldE5hbWUsIHNlY3JldFByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIFJTQSBjcnlwdG9ncmFwaGljIGtleSB3aXRoaW4gdGhlIEF6dXJlIEtleSBWYXVsdC5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgZmFjaWxpdGF0ZXMgdGhlIGNyZWF0aW9uIG9mIGFuIFJTQSBrZXksIHdoaWNoIGlzIHVzZWZ1bCBmb3IgYSB2YXJpZXR5IG9mIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyBzdWNoIGFzXG4gICAqIGVuY3J5cHRpb24sIGRlY3J5cHRpb24sIGRpZ2l0YWwgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiwgYW5kIG1vcmUuIFRoZSBSU0Ega2V5IGNyZWF0ZWQgYnkgdGhpcyBtZXRob2QgaXMgY29uZmlndXJhYmxlXG4gICAqIHdpdGggYW4gb3B0aW9uYWwgZXhwaXJhdGlvbiBkYXRlIGFuZCBhIGRlZmF1bHQga2V5IHNpemUgb2YgMjA0OCBiaXRzLiBUaGUga2V5IG9wZXJhdGlvbnMgYWxsb3dlZCBpbmNsdWRlIGRlY3J5cHRpb24sXG4gICAqIGVuY3J5cHRpb24sIHNpZ25pbmcsIHZlcmlmeWluZyBzaWduYXR1cmVzLCBhbmQga2V5IHdyYXBwaW5nL3Vud3JhcHBpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBrZXlWYXVsdEtleU5hbWUgLSBUaGUgdW5pcXVlIG5hbWUgZm9yIHRoZSBSU0Ega2V5IHdpdGhpbiB0aGUgS2V5IFZhdWx0LlxuICAgKiBAcGFyYW0gZXhwaXJhdGlvbkRhdGUgLSBPcHRpb25hbC4gVGhlIGV4cGlyYXRpb24gZGF0ZSBvZiB0aGUga2V5IGluIElTTyA4NjAxIGZvcm1hdCAoWVlZWS1NTS1ERCBvciBZWVlZLU1NLUREVEhIOk1NOlNTWikuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgIElmIHByb3ZpZGVkLCB0aGUga2V5IHdpbGwgbm8gbG9uZ2VyIGJlIHZhbGlkIGFmdGVyIHRoaXMgZGF0ZS5cbiAgICogQHJldHVybnMgQSBLZXlWYXVsdEtleSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBuZXdseSBjcmVhdGVkIFJTQSBrZXkgd2l0aGluIHRoZSB2YXVsdC5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByc2FLZXkgPSB2YXVsdC5hZGRSU0FLZXkoXG4gICAqICAgJ215UlNBS2V5JyxcbiAgICogICAnMjAzMC0wMS0wMSdcbiAgICogKTtcbiAgICogYGBgXG4gICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGNyZWF0ZWQgS2V5VmF1bHRLZXkgb2JqZWN0LCBhbGxvd2luZyBmdXJ0aGVyIG9wZXJhdGlvbnMgb3IgcmVmZXJlbmNlcyB0byB0aGUga2V5LlxuICAgKi9cbiAgcHVibGljIGFkZFJTQUtleShcbiAgICBrZXlWYXVsdEtleU5hbWU6IHN0cmluZyxcbiAgICBleHBpcmF0aW9uRGF0ZT86IHN0cmluZyxcbiAgKTogS2V5VmF1bHRLZXkge1xuICAgIGNvbnN0IGtleVByb3BzOiBLZXlQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICBuYW1lOiBrZXlWYXVsdEtleU5hbWUsXG4gICAgICBrZXlUeXBlOiBcIlJTQVwiLFxuICAgICAga2V5U2l6ZTogMjA0OCxcbiAgICAgIGtleU9wdHM6IFtcImRlY3J5cHRcIiwgXCJlbmNyeXB0XCIsIFwic2lnblwiLCBcInVud3JhcEtleVwiLCBcInZlcmlmeVwiLCBcIndyYXBLZXlcIl0sXG4gICAgICBleHBpcmVzOiBleHBpcmF0aW9uRGF0ZSxcbiAgICAgIGFjY2Vzc1BvbGljaWVzOiB0aGlzLmFjY2Vzc1BvbGljaWVzLFxuICAgIH07XG5cbiAgICBjb25zdCBrZXkgPSBuZXcgS2V5KHRoaXMsIGtleVZhdWx0S2V5TmFtZSwga2V5UHJvcHMpO1xuICAgIHJldHVybiBrZXkudmF1bHRLZXk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGNyeXB0b2dyYXBoaWMga2V5IHdpdGhpbiB0aGUgQXp1cmUgS2V5IFZhdWx0LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBhbGxvd3MgdGhlIGNyZWF0aW9uIG9mIGEgY3J5cHRvZ3JhcGhpYyBrZXkgb2Ygc3BlY2lmaWVkIHR5cGUgYW5kIHNpemUgd2l0aGluIHRoZSBLZXkgVmF1bHQuIFRoZSBrZXkgY2FuIGJlXG4gICAqIGNvbmZpZ3VyZWQgd2l0aCBzcGVjaWZpYyBvcGVyYXRpb25zIGl0IGNhbiBwZXJmb3JtLCBzdWNoIGFzIGVuY3J5cHRpb24sIGRlY3J5cHRpb24sIHNpZ25pbmcsIGV0Yy4gQW4gb3B0aW9uYWwgZXhwaXJhdGlvblxuICAgKiBkYXRlIGNhbiBhbHNvIGJlIHNldCB0byBjb250cm9sIHRoZSBrZXkncyBsaWZlY3ljbGUuIFRoaXMgbWV0aG9kIGlzIGZsZXhpYmxlLCBzdXBwb3J0aW5nIHZhcmlvdXMga2V5IHR5cGVzIGFuZCBzaXplcyxcbiAgICogbWFraW5nIGl0IHN1aXRhYmxlIGZvciBhIHdpZGUgcmFuZ2Ugb2YgY3J5cHRvZ3JhcGhpYyBuZWVkcy5cbiAgICpcbiAgICogQHBhcmFtIGtleVZhdWx0S2V5TmFtZSAtIFRoZSB1bmlxdWUgbmFtZSBmb3IgdGhlIGNyeXB0b2dyYXBoaWMga2V5IHdpdGhpbiB0aGUgS2V5IFZhdWx0LlxuICAgKiBAcGFyYW0ga2V5VHlwZSAtIFRoZSB0eXBlIG9mIGNyeXB0b2dyYXBoaWMga2V5IHRvIGNyZWF0ZSAoZS5nLiwgJ1JTQScsICdFQycsICdvY3QtSFNNJykuXG4gICAqIEBwYXJhbSBrZXlTaXplIC0gVGhlIHNpemUgb2YgdGhlIGNyeXB0b2dyYXBoaWMga2V5IGluIGJpdHMgKGUuZy4sIDIwNDgsIDMwNzIsIDQwOTYgZm9yIFJTQSkuXG4gICAqIEBwYXJhbSBrZXlPcHRzIC0gQSBsaXN0IG9mIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyB0aGF0IHRoZSBrZXkgaXMgYWxsb3dlZCB0byBwZXJmb3JtLiBQb3NzaWJsZSB2YWx1ZXMgbWlnaHQgaW5jbHVkZVxuICAgKiAgICAgICAgICAgICAgICAgICdlbmNyeXB0JywgJ2RlY3J5cHQnLCAnc2lnbicsICd2ZXJpZnknLCAnd3JhcEtleScsICd1bndyYXBLZXknLlxuICAgKiBAcGFyYW0gZXhwaXJhdGlvbkRhdGUgLSBPcHRpb25hbC4gVGhlIGV4cGlyYXRpb24gZGF0ZSBvZiB0aGUga2V5IGluIElTTyA4NjAxIGZvcm1hdCAoWVlZWS1NTS1ERCBvciBZWVlZLU1NLUREVEhIOk1NOlNTWikuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgIElmIHByb3ZpZGVkLCB0aGUga2V5IHdpbGwgbm8gbG9uZ2VyIGJlIHZhbGlkIGFmdGVyIHRoaXMgZGF0ZSwgYWxpZ25pbmcgd2l0aCBiZXN0IHByYWN0aWNlcyBmb3Iga2V5IG1hbmFnZW1lbnQuXG4gICAqIEByZXR1cm5zIEEgS2V5VmF1bHRLZXkgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgbmV3bHkgY3JlYXRlZCBjcnlwdG9ncmFwaGljIGtleSB3aXRoaW4gdGhlIHZhdWx0LlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IG15S2V5ID0gdmF1bHQuYWRkS2V5KFxuICAgKiAgICdteUtleScsXG4gICAqICAgJ1JTQScsXG4gICAqICAgMjA0OCxcbiAgICogICBbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICdzaWduJywgJ3ZlcmlmeSddLFxuICAgKiAgICcyMDMwLTEyLTMxJ1xuICAgKiApO1xuICAgKiBgYGBcbiAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgY3JlYXRlZCBLZXlWYXVsdEtleSBvYmplY3QsIGVuYWJsaW5nIGltbWVkaWF0ZSB1c2Ugd2l0aGluIHRoZSBhcHBsaWNhdGlvbiBmb3IgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zLlxuICAgKi9cbiAgcHVibGljIGFkZEtleShcbiAgICBrZXlWYXVsdEtleU5hbWU6IHN0cmluZyxcbiAgICBrZXlUeXBlOiBzdHJpbmcsXG4gICAga2V5U2l6ZTogbnVtYmVyLFxuICAgIGtleU9wdHM6IHN0cmluZ1tdLFxuICAgIGV4cGlyYXRpb25EYXRlPzogc3RyaW5nLFxuICApOiBLZXlWYXVsdEtleSB7XG4gICAgY29uc3Qga2V5UHJvcHM6IEtleVByb3BzID0ge1xuICAgICAga2V5VmF1bHRJZDogdGhpcyxcbiAgICAgIG5hbWU6IGtleVZhdWx0S2V5TmFtZSxcbiAgICAgIGtleVR5cGU6IGtleVR5cGUsXG4gICAgICBrZXlTaXplOiBrZXlTaXplLFxuICAgICAga2V5T3B0czoga2V5T3B0cyxcbiAgICAgIGV4cGlyZXM6IGV4cGlyYXRpb25EYXRlLFxuICAgICAgYWNjZXNzUG9saWNpZXM6IHRoaXMuYWNjZXNzUG9saWNpZXMsXG4gICAgfTtcblxuICAgIGNvbnN0IGtleSA9IG5ldyBLZXkodGhpcywga2V5VmF1bHRLZXlOYW1lLCBrZXlQcm9wcyk7XG4gICAgcmV0dXJuIGtleS52YXVsdEtleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgd2l0aGluIHRoZSBBenVyZSBLZXkgVmF1bHQuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGZhY2lsaXRhdGVzIHRoZSBjcmVhdGlvbiBvZiBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlLCB3aGljaCBpcyBhIGRpZ2l0YWwgY2VydGlmaWNhdGUgdGhhdCBpcyBzaWduZWQgYnlcbiAgICogaXRzIG93biBjcmVhdG9yIHJhdGhlciB0aGFuIGEgdHJ1c3RlZCBhdXRob3JpdHkuIFNlbGYtc2lnbmVkIGNlcnRpZmljYXRlcyBjYW4gYmUgdXNlZnVsIGZvciB0ZXN0aW5nLCBpbnRlcm5hbFxuICAgKiBjb21tdW5pY2F0aW9ucywgb3IgYW55IHNjZW5hcmlvIHdoZXJlIHB1YmxpYyB0cnVzdCBpcyBub3QgcmVxdWlyZWQuIFRoZSBtZXRob2QgYWxsb3dzIHNwZWNpZnlpbmcgc3ViamVjdCBkZXRhaWxzLFxuICAgKiBETlMgbmFtZXMgZm9yIHRoZSBjZXJ0aWZpY2F0ZSwgYW5kIG1hbmFnaW5nIGl0cyBsaWZlY3ljbGUgd2l0aCBhY3Rpb24gdHlwZXMgYW5kIGV4cGlyeS5cbiAgICpcbiAgICogQHBhcmFtIGNlcnROYW1lIC0gVGhlIHVuaXF1ZSBuYW1lIGZvciB0aGUgY2VydGlmaWNhdGUgd2l0aGluIHRoZSBLZXkgVmF1bHQuXG4gICAqIEBwYXJhbSBzdWJqZWN0IC0gVGhlIHN1YmplY3QgbmFtZSBvZiB0aGUgY2VydGlmaWNhdGUsIHR5cGljYWxseSBmb3JtYXR0ZWQgYXMgYW4gWC41MDAgRGlzdGluZ3Vpc2hlZCBOYW1lIChlLmcuLCBcIkNOPWV4YW1wbGUuY29tXCIpLlxuICAgKiBAcGFyYW0gZG5zTmFtZXMgLSBBbiBhcnJheSBvZiBETlMgbmFtZXMgdGhhdCBzaG91bGQgYmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY2VydGlmaWNhdGUuIFRoaXMgaXMgdXNlZnVsIGZvciBjZXJ0aWZpY2F0ZXNcbiAgICogICAgICAgICAgICAgICAgICAgdGhhdCBuZWVkIHRvIGJlIHZhbGlkIGZvciBtdWx0aXBsZSBob3N0bmFtZXMuXG4gICAqIEBwYXJhbSBhY3Rpb25UeXBlIC0gT3B0aW9uYWwuIFNwZWNpZmllcyB0aGUgYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCB3aXRoIHRoZSBjZXJ0aWZpY2F0ZSwgc3VjaCBhcyAnY3JlYXRlJyBvciAncmVuZXcnLlxuICAgKiBAcGFyYW0gZGF5c0JlZm9yZUV4cGlyeSAtIE9wdGlvbmFsLiBOdW1iZXIgb2YgZGF5cyBiZWZvcmUgZXhwaXJ5IHdoZW4gYW4gYWN0aW9uIHNob3VsZCBiZSB0YWtlbiwgdXNlZnVsIGZvciBhdXRvLXJlbmV3YWwgc2NlbmFyaW9zLlxuICAgKiBAcmV0dXJucyBBIEtleVZhdWx0Q2VydGlmaWNhdGUgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgbmV3bHkgY3JlYXRlZCBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZS5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBteUNlcnRpZmljYXRlID0gdmF1bHQuYWRkU2VsZlNpZ25lZENlcnQoXG4gICAqICAgJ215Q2VydCcsXG4gICAqICAgJ0NOPW15ZG9tYWluLmNvbScsXG4gICAqICAgWydteWRvbWFpbi5jb20nLCAnd3d3Lm15ZG9tYWluLmNvbSddLFxuICAgKiAgICdjcmVhdGUnLFxuICAgKiAgIDMwXG4gICAqICk7XG4gICAqIGBgYFxuICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBLZXlWYXVsdENlcnRpZmljYXRlIG9iamVjdCwgZW5hYmxpbmcgaXQgdG8gYmUgdXNlZCBpbW1lZGlhdGVseSB3aXRoaW4gdGhlIGFwcGxpY2F0aW9uIG9yIHN0b3JlZCBmb3IgZnV0dXJlIHVzZS5cbiAgICovXG4gIHB1YmxpYyBhZGRTZWxmU2lnbmVkQ2VydChcbiAgICBjZXJ0TmFtZTogc3RyaW5nLFxuICAgIHN1YmplY3Q6IHN0cmluZyxcbiAgICBkbnNOYW1lczogc3RyaW5nW10sXG4gICAgYWN0aW9uVHlwZT86IHN0cmluZyxcbiAgICBkYXlzQmVmb3JlRXhwaXJ5PzogbnVtYmVyLFxuICApOiBLZXlWYXVsdENlcnRpZmljYXRlIHtcbiAgICBjb25zdCBrZXlQcm9wczogU2VsZlNpZ25lZENlcnRpZmljYXRlUHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgbmFtZTogY2VydE5hbWUsXG4gICAgICBzdWJqZWN0OiBzdWJqZWN0LFxuICAgICAgZG5zTmFtZXM6IGRuc05hbWVzLFxuICAgICAgYWN0aW9uVHlwZTogYWN0aW9uVHlwZSxcbiAgICAgIGRheXNCZWZvcmVFeHBpcnk6IGRheXNCZWZvcmVFeHBpcnksXG4gICAgICBhY2Nlc3NQb2xpY2llczogdGhpcy5hY2Nlc3NQb2xpY2llcyxcbiAgICB9O1xuICAgIGNvbnN0IGNlcnQgPSBuZXcgU2VsZlNpZ25lZENlcnRpZmljYXRlKHRoaXMsIGNlcnROYW1lLCBrZXlQcm9wcyk7XG4gICAgcmV0dXJuIGNlcnQuY2VydGlmaWNhdGU7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGNlcnRpZmljYXRlIGlzc3VlciB0byB0aGUgQXp1cmUgS2V5IFZhdWx0LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjb25maWd1cmVzIGEgY2VydGlmaWNhdGUgaXNzdWVyIHdpdGhpbiB0aGUgS2V5IFZhdWx0LCBhbGxvd2luZyB0aGUgS2V5IFZhdWx0IHRvIGlzc3VlIGNlcnRpZmljYXRlc1xuICAgKiB0aHJvdWdoIGV4dGVybmFsIHByb3ZpZGVycy4gQ29uZmlndXJpbmcgYW4gaXNzdWVyIGlzIGVzc2VudGlhbCBmb3IgZW5hYmxpbmcgYXV0b21hdGVkIGNlcnRpZmljYXRlIG1hbmFnZW1lbnRcbiAgICogcHJvY2Vzc2VzLCBzdWNoIGFzIGlzc3VhbmNlIGFuZCByZW5ld2FsLCBkaXJlY3RseSB0aHJvdWdoIHRoZSBLZXkgVmF1bHQgd2l0aCBhIHNwZWNpZmllZCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgKENBKS5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgdW5pcXVlIG5hbWUgZm9yIHRoZSBjZXJ0aWZpY2F0ZSBpc3N1ZXIgd2l0aGluIHRoZSBLZXkgVmF1bHQuXG4gICAqIEBwYXJhbSBwcm92aWRlciAtIFRoZSBuYW1lIG9mIHRoZSBleHRlcm5hbCBwcm92aWRlciB0aGF0IHdpbGwgaXNzdWUgdGhlIGNlcnRpZmljYXRlcywgc3VjaCBhcyAnRGlnaUNlcnQnIG9yICdHbG9iYWxTaWduJy5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB2YXVsdC5hZGRDZXJ0SXNzdWVyKFxuICAgKiAgICdteUNlcnRJc3N1ZXInLFxuICAgKiAgICdEaWdpQ2VydCdcbiAgICogKTtcbiAgICogYGBgXG4gICAqIFRoaXMgbWV0aG9kIGNvbmZpZ3VyZXMgYSBjZXJ0aWZpY2F0ZSBpc3N1ZXIgYnV0IGRvZXMgbm90IHJldHVybiBhbnkgdmFsdWUuIFRoZSBpc3N1ZXIgZGV0YWlscywgaW5jbHVkaW5nIHByb3ZpZGVyIG5hbWVcbiAgICogYW5kIGFueSBuZWNlc3NhcnkgY3JlZGVudGlhbHMgKG1hbmFnZWQgZXh0ZXJuYWxseSBvciB0aHJvdWdoIGFkZGl0aW9uYWwgbWV0aG9kIHBhcmFtZXRlcnMpLCBhcmUgc2V0IHVwIGluIHRoZSBLZXkgVmF1bHRcbiAgICogZm9yIGZ1dHVyZSBjZXJ0aWZpY2F0ZSBvcGVyYXRpb25zLlxuICAgKi9cbiAgcHVibGljIGFkZENlcnRJc3N1ZXIobmFtZTogc3RyaW5nLCBwcm92aWRlcjogc3RyaW5nKSB7XG4gICAgbmV3IENlcnRpZmljYXRlSXNzdWVyKHRoaXMsIG5hbWUsIHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICBwcm92aWRlck5hbWU6IHByb3ZpZGVyLFxuICAgICAga2V5VmF1bHRJZDogdGhpcyxcbiAgICAgIGFjY2Vzc1BvbGljaWVzOiB0aGlzLmFjY2Vzc1BvbGljaWVzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -63,10 +63,31 @@ export declare class Cluster extends AzureResource {
|
|
|
63
63
|
/** The Resource Group associated with the AKS cluster. */
|
|
64
64
|
resourceGroup: ResourceGroup;
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
66
|
+
* Represents an Azure Kubernetes Service (AKS) cluster resource in Azure.
|
|
67
|
+
*
|
|
68
|
+
* This class is responsible for the creation and management of an AKS cluster, allowing for the deployment and orchestration
|
|
69
|
+
* of containerized applications using Kubernetes within the Azure cloud platform.
|
|
70
|
+
*
|
|
71
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
|
|
72
|
+
* @param id - The unique identifier for this instance of the AKS cluster.
|
|
73
|
+
* @param props - The properties required to configure the AKS cluster, as defined in the ClusterProps interface.
|
|
74
|
+
*
|
|
75
|
+
* Example usage:
|
|
76
|
+
* ```typescript
|
|
77
|
+
* new Cluster(this, 'MyAKSCluster', {
|
|
78
|
+
* name: 'example-cluster',
|
|
79
|
+
* location: 'East US',
|
|
80
|
+
* defaultNodePool: {
|
|
81
|
+
* vmSize: 'Standard_D2_v3',
|
|
82
|
+
* nodeCount: 3,
|
|
83
|
+
* type: 'VirtualMachineScaleSets'
|
|
84
|
+
* },
|
|
85
|
+
* resourceGroup: existingResourceGroup,
|
|
86
|
+
* tags: {
|
|
87
|
+
* environment: 'production'
|
|
88
|
+
* }
|
|
89
|
+
* });
|
|
90
|
+
* ```
|
|
70
91
|
*/
|
|
71
92
|
constructor(scope: Construct, id: string, props: ClusterProps);
|
|
72
93
|
}
|
|
@@ -10,10 +10,31 @@ const lib_1 = require("../../core-azure/lib");
|
|
|
10
10
|
*/
|
|
11
11
|
class Cluster extends lib_1.AzureResource {
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
13
|
+
* Represents an Azure Kubernetes Service (AKS) cluster resource in Azure.
|
|
14
|
+
*
|
|
15
|
+
* This class is responsible for the creation and management of an AKS cluster, allowing for the deployment and orchestration
|
|
16
|
+
* of containerized applications using Kubernetes within the Azure cloud platform.
|
|
17
|
+
*
|
|
18
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
|
|
19
|
+
* @param id - The unique identifier for this instance of the AKS cluster.
|
|
20
|
+
* @param props - The properties required to configure the AKS cluster, as defined in the ClusterProps interface.
|
|
21
|
+
*
|
|
22
|
+
* Example usage:
|
|
23
|
+
* ```typescript
|
|
24
|
+
* new Cluster(this, 'MyAKSCluster', {
|
|
25
|
+
* name: 'example-cluster',
|
|
26
|
+
* location: 'East US',
|
|
27
|
+
* defaultNodePool: {
|
|
28
|
+
* vmSize: 'Standard_D2_v3',
|
|
29
|
+
* nodeCount: 3,
|
|
30
|
+
* type: 'VirtualMachineScaleSets'
|
|
31
|
+
* },
|
|
32
|
+
* resourceGroup: existingResourceGroup,
|
|
33
|
+
* tags: {
|
|
34
|
+
* environment: 'production'
|
|
35
|
+
* }
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
17
38
|
*/
|
|
18
39
|
constructor(scope, id, props) {
|
|
19
40
|
super(scope, id);
|
|
@@ -38,5 +59,5 @@ class Cluster extends lib_1.AzureResource {
|
|
|
38
59
|
}
|
|
39
60
|
exports.Cluster = Cluster;
|
|
40
61
|
_a = JSII_RTTI_SYMBOL_1;
|
|
41
|
-
Cluster[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_kubernetes.Cluster", version: "0.0.3-pre.
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
Cluster[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_kubernetes.Cluster", version: "0.0.3-pre.7" };
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1rdWJlcm5ldGVzL2xpYi9jbHVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUZBS3dEO0FBR3hELDhDQUFxRDtBQTREckQ7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSxtQkFBYTtJQU94Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQkc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsOENBQThDO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBELHVEQUF1RDtRQUN2RCxNQUFNLEdBQUcsR0FBRyxJQUFJLHNDQUFpQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDN0MsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixpQkFBaUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUk7WUFDMUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLDJCQUEyQixFQUFFLEtBQUssQ0FBQywyQkFBMkI7WUFDOUQsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ3JCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQiw2QkFBNkIsRUFBRSxJQUFJO1lBQ25DLDBDQUEwQyxFQUN4QyxLQUFLLENBQUMsMENBQTBDO1lBQ2xELFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtTQUN6QixDQUFDLENBQUM7UUFFSCxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7O0FBekRILDBCQWlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEt1YmVybmV0ZXNDbHVzdGVyLFxuICBLdWJlcm5ldGVzQ2x1c3RlckRlZmF1bHROb2RlUG9vbCxcbiAgS3ViZXJuZXRlc0NsdXN0ZXJJZGVudGl0eSxcbiAgS3ViZXJuZXRlc0NsdXN0ZXJBenVyZUFjdGl2ZURpcmVjdG9yeVJvbGVCYXNlZEFjY2Vzc0NvbnRyb2wsXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIva3ViZXJuZXRlcy1jbHVzdGVyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEF6dXJlUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWJcIjtcblxuLyoqXG4gKiBJbnRlcmZhY2UgZGVmaW5pbmcgdGhlIHByb3BlcnRpZXMgcmVxdWlyZWQgdG8gY3JlYXRlIGFuIEFLUyBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJQcm9wcyB7XG4gIC8qKiBUaGUgbmFtZSBvZiB0aGUgQUtTIGNsdXN0ZXIuIE11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgQXp1cmUgcmVnaW9uLiAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBBenVyZSByZWdpb24gd2hlcmUgdGhlIEFLUyBjbHVzdGVyIHdpbGwgYmUgZGVwbG95ZWQuICovXG4gIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmc7XG5cbiAgLyoqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkZWZhdWx0IG5vZGUgcG9vbCBvZiB0aGUgQUtTIGNsdXN0ZXIuICovXG4gIHJlYWRvbmx5IGRlZmF1bHROb2RlUG9vbDogS3ViZXJuZXRlc0NsdXN0ZXJEZWZhdWx0Tm9kZVBvb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBBenVyZSBSZXNvdXJjZSBHcm91cCB3aGVyZSB0aGUgQUtTIGNsdXN0ZXIgd2lsbCBiZSBkZXBsb3llZC5cbiAgICogT3B0aW9uYWwuIElmIG5vdCBwcm92aWRlZCwgYSBuZXcgcmVzb3VyY2UgZ3JvdXAgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cD86IFJlc291cmNlR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBpZGVudGl0eSB1c2VkIGZvciB0aGUgQUtTIGNsdXN0ZXIuIENhbiBiZSBlaXRoZXIgU3lzdGVtQXNzaWduZWQgb3IgVXNlckFzc2lnbmVkLlxuICAgKiBPcHRpb25hbC5cbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aXR5PzogS3ViZXJuZXRlc0NsdXN0ZXJJZGVudGl0eTtcblxuICAvKipcbiAgICogQ29uZmlndXJlcyBpbnRlZ3JhdGlvbiBvZiBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IChBQUQpIHdpdGggS3ViZXJuZXRlcyBSb2xlLUJhc2VkIEFjY2VzcyBDb250cm9sIChSQkFDKSBmb3IgdGhlIEFLUyBjbHVzdGVyLiBUaGlzIGZlYXR1cmUgZW5hYmxlcyB0aGUgdXNlIG9mIEFBRCB0byBtYW5hZ2UgdXNlciBhbmQgZ3JvdXAgYWNjZXNzIHBlcm1pc3Npb25zIHRvIHRoZSBLdWJlcm5ldGVzIGNsdXN0ZXIgcmVzb3VyY2VzLCBsZXZlcmFnaW5nIEFBRCdzIHJvYnVzdCBpZGVudGl0eSBhbmQgYWNjZXNzIG1hbmFnZW1lbnQgY2FwYWJpbGl0aWVzLlxuICAgKlxuICAgKiBVdGlsaXppbmcgQUFEIHdpdGggS3ViZXJuZXRlcyBSQkFDIHByb3ZpZGVzOlxuICAgKiAtIEVuaGFuY2VkIHNlY3VyaXR5IHRocm91Z2ggQUFEJ3MgaWRlbnRpdHkgcHJvdGVjdGlvbiBmZWF0dXJlcy5cbiAgICogLSBTaW1wbGlmaWVkIHVzZXIgYW5kIGdyb3VwIG1hbmFnZW1lbnQgYnkgbGV2ZXJhZ2luZyBleGlzdGluZyBBQUQgZGVmaW5pdGlvbnMuXG4gICAqIC0gU3RyZWFtbGluZWQgYWNjZXNzIGNvbnRyb2wgZm9yIEt1YmVybmV0ZXMgcmVzb3VyY2VzLCBhbGxvd2luZyBmb3IgdGhlIGRlZmluaXRpb24gb2Ygcm9sZXMgYW5kIHJvbGUgYmluZGluZ3MgYmFzZWQgb24gQUFEIGlkZW50aXRpZXMuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgb3B0aW9uYWwgYnV0IGhpZ2hseSByZWNvbW1lbmRlZCBmb3IgY2x1c3RlcnMgd2hlcmUgc2VjdXJpdHkgYW5kIGFjY2VzcyBnb3Zlcm5hbmNlIGFyZSBhIHByaW9yaXR5LiBJdCBhbGxvd3MgZm9yIGZpbmVyLWdyYWluZWQgYWNjZXNzIGNvbnRyb2wgYW5kIGludGVncmF0ZXMgdGhlIGNsdXN0ZXIncyBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9yaXphdGlvbiBwcm9jZXNzZXMgd2l0aCBjb3Jwb3JhdGUgaWRlbnRpdHkgbWFuYWdlbWVudCBzeXN0ZW1zLlxuICAgKlxuICAgKiBFeGFtcGxlIGNvbmZpZ3VyYXRpb24gbWlnaHQgaW5jbHVkZSBzcGVjaWZ5aW5nIHRoZSBBQUQgdGVuYW50IGRldGFpbHMsIGVuYWJsaW5nIEF6dXJlIFJCQUMgZm9yIEt1YmVybmV0ZXMgYXV0aG9yaXphdGlvbiwgYW5kIG9wdGlvbmFsbHkgZGVmaW5pbmcgc3BlY2lmaWMgQUFEIGdyb3VwcyBmb3IgY2x1c3RlciBhZG1pbiByb2xlcy5cbiAgICovXG4gIHJlYWRvbmx5IGF6dXJlQWN0aXZlRGlyZWN0b3J5Um9sZUJhc2VkQWNjZXNzQ29udHJvbD86IEt1YmVybmV0ZXNDbHVzdGVyQXp1cmVBY3RpdmVEaXJlY3RvcnlSb2xlQmFzZWRBY2Nlc3NDb250cm9sO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgSVAgYWRkcmVzcyByYW5nZXMgdGhhdCBhcmUgYXV0aG9yaXplZCB0byBhY2Nlc3MgdGhlIEFLUyBBUEkgc2VydmVyLiBUaGlzIGVuaGFuY2VzIHRoZSBzZWN1cml0eSBvZiB5b3VyIGNsdXN0ZXIgYnkgZW5zdXJpbmcgdGhhdCBvbmx5IHRyYWZmaWMgZnJvbSB0aGVzZSBJUCByYW5nZXMgY2FuIGNvbW11bmljYXRlIHdpdGggdGhlIEt1YmVybmV0ZXMgQVBJIHNlcnZlci5cbiAgICpcbiAgICogU3BlY2lmeWluZyB0aGlzIGxpc3QgaGVscHMgdG8gcHJvdGVjdCB5b3VyIGNsdXN0ZXIgZnJvbSB1bmF1dGhvcml6ZWQgYWNjZXNzIGF0dGVtcHRzLiBJdCdzIGEgY3JpdGljYWwgc2VjdXJpdHkgbWVhc3VyZSBmb3IgY2x1c3RlcnMgdGhhdCBhcmUgZXhwb3NlZCB0byB0aGUgaW50ZXJuZXQuIElmIHlvdSBzcGVjaWZ5IGFuIGVtcHR5IGFycmF5LCBubyBJUCBhZGRyZXNzZXMgd2lsbCBiZSBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgQVBJIHNlcnZlciwgZWZmZWN0aXZlbHkgYmxvY2tpbmcgYWxsIGFjY2Vzcy4gSWYgdGhpcyBwcm9wZXJ0eSBpcyBub3QgZGVmaW5lZCwgYWxsIElQIGFkZHJlc3NlcyBhcmUgYWxsb3dlZCBieSBkZWZhdWx0LCB3aGljaCBpcyBub3QgcmVjb21tZW5kZWQgZm9yIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiBhcGlTZXJ2ZXJBdXRob3JpemVkSXBSYW5nZXM6IFsnMjAzLjAuMTEzLjAvMjQnLCAnMTk4LjUxLjEwMC4wLzI0J11cbiAgICpcbiAgICogSXQncyBpbXBvcnRhbnQgdG8gY29uZmlndXJlIHRoaXMgcHJvcGVydHkgY2FyZWZ1bGx5LCBiYXNlZCBvbiB5b3VyIG9yZ2FuaXphdGlvbidzIG5ldHdvcmsgcG9saWNpZXMgYW5kIGFjY2VzcyByZXF1aXJlbWVudHMuXG4gICAqL1xuICByZWFkb25seSBhcGlTZXJ2ZXJBdXRob3JpemVkSXBSYW5nZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGFncyB0byBiZSBhcHBsaWVkIHRvIHRoZSBBS1MgY2x1c3RlciByZXNvdXJjZXMgZm9yIG9yZ2FuaXphdGlvbmFsIHB1cnBvc2VzLlxuICAgKiBLZXktdmFsdWUgcGFpcnMuIE9wdGlvbmFsLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogQ2xhc3MgcmVwcmVzZW50aW5nIHRoZSBBS1MgY2x1c3RlciByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsdXN0ZXIgZXh0ZW5kcyBBenVyZVJlc291cmNlIHtcbiAgLyoqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQUtTIGNsdXN0ZXIgcmVzb3VyY2UuICovXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgUmVzb3VyY2UgR3JvdXAgYXNzb2NpYXRlZCB3aXRoIHRoZSBBS1MgY2x1c3Rlci4gKi9cbiAgcHVibGljIHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYW4gQXp1cmUgS3ViZXJuZXRlcyBTZXJ2aWNlIChBS1MpIGNsdXN0ZXIgcmVzb3VyY2UgaW4gQXp1cmUuXG4gICAqXG4gICAqIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBjcmVhdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBhbiBBS1MgY2x1c3RlciwgYWxsb3dpbmcgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBvcmNoZXN0cmF0aW9uXG4gICAqIG9mIGNvbnRhaW5lcml6ZWQgYXBwbGljYXRpb25zIHVzaW5nIEt1YmVybmV0ZXMgd2l0aGluIHRoZSBBenVyZSBjbG91ZCBwbGF0Zm9ybS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdCwgdHlwaWNhbGx5IHJlcHJlc2VudGluZyB0aGUgQ2xvdWQgRGV2ZWxvcG1lbnQgS2l0IChDREspIHN0YWNrLlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIEFLUyBjbHVzdGVyLlxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgcHJvcGVydGllcyByZXF1aXJlZCB0byBjb25maWd1cmUgdGhlIEFLUyBjbHVzdGVyLCBhcyBkZWZpbmVkIGluIHRoZSBDbHVzdGVyUHJvcHMgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIG5ldyBDbHVzdGVyKHRoaXMsICdNeUFLU0NsdXN0ZXInLCB7XG4gICAqICAgbmFtZTogJ2V4YW1wbGUtY2x1c3RlcicsXG4gICAqICAgbG9jYXRpb246ICdFYXN0IFVTJyxcbiAgICogICBkZWZhdWx0Tm9kZVBvb2w6IHtcbiAgICogICAgIHZtU2l6ZTogJ1N0YW5kYXJkX0QyX3YzJyxcbiAgICogICAgIG5vZGVDb3VudDogMyxcbiAgICogICAgIHR5cGU6ICdWaXJ0dWFsTWFjaGluZVNjYWxlU2V0cydcbiAgICogICB9LFxuICAgKiAgIHJlc291cmNlR3JvdXA6IGV4aXN0aW5nUmVzb3VyY2VHcm91cCxcbiAgICogICB0YWdzOiB7XG4gICAqICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nXG4gICAqICAgfVxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2x1c3RlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIFNldHVwIG9yIHJldXNlIHRoZSBwcm92aWRlZCByZXNvdXJjZSBncm91cC5cbiAgICB0aGlzLnJlc291cmNlR3JvdXAgPSB0aGlzLnNldHVwUmVzb3VyY2VHcm91cChwcm9wcyk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIEFLUyBDbHVzdGVyIHdpdGggdGhlIHByb3ZpZGVkIHByb3BlcnRpZXMuXG4gICAgY29uc3QgYWtzID0gbmV3IEt1YmVybmV0ZXNDbHVzdGVyKHRoaXMsIFwiQUtTXCIsIHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICBsb2NhdGlvbjogcHJvcHMubG9jYXRpb24sXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogdGhpcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICBkZWZhdWx0Tm9kZVBvb2w6IHByb3BzLmRlZmF1bHROb2RlUG9vbCxcbiAgICAgIGFwaVNlcnZlckF1dGhvcml6ZWRJcFJhbmdlczogcHJvcHMuYXBpU2VydmVyQXV0aG9yaXplZElwUmFuZ2VzLFxuICAgICAgZG5zUHJlZml4OiBwcm9wcy5uYW1lLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgIHJvbGVCYXNlZEFjY2Vzc0NvbnRyb2xFbmFibGVkOiB0cnVlLFxuICAgICAgYXp1cmVBY3RpdmVEaXJlY3RvcnlSb2xlQmFzZWRBY2Nlc3NDb250cm9sOlxuICAgICAgICBwcm9wcy5henVyZUFjdGl2ZURpcmVjdG9yeVJvbGVCYXNlZEFjY2Vzc0NvbnRyb2wsXG4gICAgICBpZGVudGl0eTogcHJvcHMuaWRlbnRpdHksXG4gICAgfSk7XG5cbiAgICAvLyBBc3NpZ24gdGhlIEFLUyBjbHVzdGVyIElEIGZvciBleHRlcm5hbCByZWZlcmVuY2UuXG4gICAgdGhpcy5pZCA9IGFrcy5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIHRoZSBBenVyZSBSZXNvdXJjZSBHcm91cCBmb3IgdGhlIEFLUyBjbHVzdGVyLlxuICAgKiBJZiBhIHJlc291cmNlIGdyb3VwIGlzIG5vdCBwcm92aWRlZCBpbiB0aGUgcHJvcGVydGllcywgYSBuZXcgb25lIGlzIGNyZWF0ZWQuXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgcHJvcGVydGllcyBwcm92aWRlZCB0byBjb25maWd1cmUgdGhlIEFLUyBjbHVzdGVyLlxuICAgKiBAcmV0dXJucyBUaGUgUmVzb3VyY2UgR3JvdXAgd2hlcmUgdGhlIEFLUyBjbHVzdGVyIHdpbGwgYmUgZGVwbG95ZWQuXG4gICAqL1xufVxuIl19
|
|
@@ -78,6 +78,59 @@ export declare class Cluster extends AzureResource {
|
|
|
78
78
|
id: string;
|
|
79
79
|
resourceGroup: ResourceGroup;
|
|
80
80
|
readonly uri: string;
|
|
81
|
+
/**
|
|
82
|
+
* Represents a Kusto (Azure Data Explorer) cluster in Azure.
|
|
83
|
+
*
|
|
84
|
+
* This class is responsible for the creation and management of a Kusto Cluster, which is a highly scalable and secure
|
|
85
|
+
* analytics service for ingesting, storing, and analyzing large volumes of data. The cluster supports various configurations
|
|
86
|
+
* tailored to the needs of specific data workloads and security requirements.
|
|
87
|
+
*
|
|
88
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
|
|
89
|
+
* @param id - The unique identifier for this instance of the cluster.
|
|
90
|
+
* @param kustoProps - The properties required to configure the Kusto cluster, as defined in the ClusterProps interface.
|
|
91
|
+
*
|
|
92
|
+
* Example usage:
|
|
93
|
+
* ```typescript
|
|
94
|
+
* new Cluster(this, 'MyKustoCluster', {
|
|
95
|
+
* name: 'example-cluster',
|
|
96
|
+
* location: 'West US',
|
|
97
|
+
* resourceGroup: myResourceGroup,
|
|
98
|
+
* sku: { tier: 'Standard', name: 'D13_v2', capacity: 2 },
|
|
99
|
+
* tags: {
|
|
100
|
+
* project: 'Data Analytics'
|
|
101
|
+
* }
|
|
102
|
+
* });
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
81
105
|
constructor(scope: Construct, id: string, kustoProps: ClusterProps);
|
|
106
|
+
/**
|
|
107
|
+
* Adds a new database to the Azure Kusto Cluster.
|
|
108
|
+
*
|
|
109
|
+
* This method creates a database within the Azure Data Explorer (Kusto) cluster, defined by the properties provided.
|
|
110
|
+
* A database in Kusto serves as a logical group to manage various tables and store data. It is essential for performing
|
|
111
|
+
* data analytics and running queries. The database configuration can include settings like hot cache and soft delete periods,
|
|
112
|
+
* which optimize query performance and manage data lifecycle according to specific requirements.
|
|
113
|
+
*
|
|
114
|
+
* @param databaseProps - The properties required to create the database. These properties should include:
|
|
115
|
+
* - `kusto`: Reference to the Kusto cluster to which the database will be added.
|
|
116
|
+
* - `name`: The name of the database, which must be unique within the cluster.
|
|
117
|
+
* - `hotCachePeriod`: Optional. Specifies the duration that data should be kept in cache for faster query access.
|
|
118
|
+
* - `softDeletePeriod`: Optional. Specifies the duration that data should be retained before it stops being accessible to queries.
|
|
119
|
+
* Both the hot cache and soft delete periods should be specified in ISO 8601 duration format.
|
|
120
|
+
*
|
|
121
|
+
* @returns A `Database` object representing the newly created database within the Kusto cluster.
|
|
122
|
+
*
|
|
123
|
+
* Example usage:
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const myDatabase = myCluster.addDatabase({
|
|
126
|
+
* kusto: myKustoCluster,
|
|
127
|
+
* name: 'OperationalData',
|
|
128
|
+
* hotCachePeriod: 'P14D', // 14 days
|
|
129
|
+
* softDeletePeriod: 'P365D' // 1 year
|
|
130
|
+
* });
|
|
131
|
+
* ```
|
|
132
|
+
* This method facilitates the efficient setup and scaling of databases within an Azure Kusto cluster, allowing
|
|
133
|
+
* for complex data analytics operations across large datasets.
|
|
134
|
+
*/
|
|
82
135
|
addDatabase(databaseProps: DatabaseProps): Database;
|
|
83
136
|
}
|