@microsoft/terraform-cdk-constructs 1.9.0 → 1.10.0

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 (165) hide show
  1. package/.jsii +55122 -31830
  2. package/API.md +74039 -46109
  3. package/lib/azure-actiongroup/lib/action-group.js +1 -1
  4. package/lib/azure-activitylogalert/lib/activity-log-alert.js +1 -1
  5. package/lib/azure-aks/lib/aks-cluster.js +1 -1
  6. package/lib/azure-applicationinsights/index.d.ts +7 -0
  7. package/lib/azure-applicationinsights/index.js +24 -0
  8. package/lib/azure-applicationinsights/lib/application-insights-schemas.d.ts +29 -0
  9. package/lib/azure-applicationinsights/lib/application-insights-schemas.js +162 -0
  10. package/lib/azure-applicationinsights/lib/application-insights.d.ts +206 -0
  11. package/lib/azure-applicationinsights/lib/application-insights.js +209 -0
  12. package/lib/azure-applicationinsights/lib/index.d.ts +5 -0
  13. package/lib/azure-applicationinsights/lib/index.js +22 -0
  14. package/lib/azure-applicationinsights/test/application-insights.integ.d.ts +9 -0
  15. package/lib/azure-applicationinsights/test/application-insights.integ.js +84 -0
  16. package/lib/azure-applicationinsights/test/application-insights.spec.d.ts +8 -0
  17. package/lib/azure-applicationinsights/test/application-insights.spec.js +209 -0
  18. package/lib/azure-containerapps/index.d.ts +1 -0
  19. package/lib/azure-containerapps/index.js +18 -0
  20. package/lib/azure-containerapps/lib/container-app-environment-schemas.d.ts +50 -0
  21. package/lib/azure-containerapps/lib/container-app-environment-schemas.js +522 -0
  22. package/lib/azure-containerapps/lib/container-app-environment.d.ts +374 -0
  23. package/lib/azure-containerapps/lib/container-app-environment.js +310 -0
  24. package/lib/azure-containerapps/lib/container-app-schemas.d.ts +48 -0
  25. package/lib/azure-containerapps/lib/container-app-schemas.js +466 -0
  26. package/lib/azure-containerapps/lib/container-app.d.ts +925 -0
  27. package/lib/azure-containerapps/lib/container-app.js +320 -0
  28. package/lib/azure-containerapps/lib/index.d.ts +4 -0
  29. package/lib/azure-containerapps/lib/index.js +21 -0
  30. package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +10 -0
  31. package/lib/azure-containerapps/test/container-app-environment.integ.js +82 -0
  32. package/lib/azure-containerapps/test/container-app-environment.spec.d.ts +9 -0
  33. package/lib/azure-containerapps/test/container-app-environment.spec.js +412 -0
  34. package/lib/azure-containerapps/test/container-app.integ.d.ts +10 -0
  35. package/lib/azure-containerapps/test/container-app.integ.js +119 -0
  36. package/lib/azure-containerapps/test/container-app.spec.d.ts +9 -0
  37. package/lib/azure-containerapps/test/container-app.spec.js +839 -0
  38. package/lib/azure-containerregistry/index.d.ts +1 -0
  39. package/lib/azure-containerregistry/index.js +18 -0
  40. package/lib/azure-containerregistry/lib/container-registry-schemas.d.ts +32 -0
  41. package/lib/azure-containerregistry/lib/container-registry-schemas.js +316 -0
  42. package/lib/azure-containerregistry/lib/container-registry.d.ts +330 -0
  43. package/lib/azure-containerregistry/lib/container-registry.js +217 -0
  44. package/lib/azure-containerregistry/lib/index.d.ts +2 -0
  45. package/lib/azure-containerregistry/lib/index.js +19 -0
  46. package/lib/azure-containerregistry/test/container-registry.integ.d.ts +9 -0
  47. package/lib/azure-containerregistry/test/container-registry.integ.js +101 -0
  48. package/lib/azure-containerregistry/test/container-registry.spec.d.ts +4 -0
  49. package/lib/azure-containerregistry/test/container-registry.spec.js +425 -0
  50. package/lib/azure-cosmosdb/index.d.ts +1 -0
  51. package/lib/azure-cosmosdb/index.js +18 -0
  52. package/lib/azure-cosmosdb/lib/cosmos-db-schemas.d.ts +40 -0
  53. package/lib/azure-cosmosdb/lib/cosmos-db-schemas.js +330 -0
  54. package/lib/azure-cosmosdb/lib/cosmos-db.d.ts +290 -0
  55. package/lib/azure-cosmosdb/lib/cosmos-db.js +222 -0
  56. package/lib/azure-cosmosdb/lib/index.d.ts +2 -0
  57. package/lib/azure-cosmosdb/lib/index.js +19 -0
  58. package/lib/azure-cosmosdb/test/cosmos-db.integ.d.ts +9 -0
  59. package/lib/azure-cosmosdb/test/cosmos-db.integ.js +98 -0
  60. package/lib/azure-cosmosdb/test/cosmos-db.spec.d.ts +4 -0
  61. package/lib/azure-cosmosdb/test/cosmos-db.spec.js +339 -0
  62. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +1 -1
  63. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +1 -1
  64. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +1 -1
  65. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +1 -1
  66. package/lib/azure-dnsresolver/lib/dns-resolver.js +1 -1
  67. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +1 -1
  68. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +1 -1
  69. package/lib/azure-dnszone/lib/dns-zone.js +1 -1
  70. package/lib/azure-dnszone/lib/records/dns-records.js +10 -10
  71. package/lib/azure-functionapp/index.d.ts +1 -0
  72. package/lib/azure-functionapp/index.js +18 -0
  73. package/lib/azure-functionapp/lib/function-app-schemas.d.ts +32 -0
  74. package/lib/azure-functionapp/lib/function-app-schemas.js +303 -0
  75. package/lib/azure-functionapp/lib/function-app.d.ts +367 -0
  76. package/lib/azure-functionapp/lib/function-app.js +223 -0
  77. package/lib/azure-functionapp/lib/index.d.ts +2 -0
  78. package/lib/azure-functionapp/lib/index.js +19 -0
  79. package/lib/azure-functionapp/test/function-app.integ.d.ts +12 -0
  80. package/lib/azure-functionapp/test/function-app.integ.js +134 -0
  81. package/lib/azure-functionapp/test/function-app.spec.d.ts +4 -0
  82. package/lib/azure-functionapp/test/function-app.spec.js +566 -0
  83. package/lib/azure-keyvault/index.d.ts +1 -0
  84. package/lib/azure-keyvault/index.js +18 -0
  85. package/lib/azure-keyvault/lib/index.d.ts +2 -0
  86. package/lib/azure-keyvault/lib/index.js +19 -0
  87. package/lib/azure-keyvault/lib/key-vault-schemas.d.ts +40 -0
  88. package/lib/azure-keyvault/lib/key-vault-schemas.js +312 -0
  89. package/lib/azure-keyvault/lib/key-vault.d.ts +344 -0
  90. package/lib/azure-keyvault/lib/key-vault.js +243 -0
  91. package/lib/azure-keyvault/test/key-vault.integ.d.ts +9 -0
  92. package/lib/azure-keyvault/test/key-vault.integ.js +108 -0
  93. package/lib/azure-keyvault/test/key-vault.spec.d.ts +4 -0
  94. package/lib/azure-keyvault/test/key-vault.spec.js +264 -0
  95. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +1 -1
  96. package/lib/azure-metricalert/lib/metric-alert.js +1 -1
  97. package/lib/azure-networkinterface/lib/network-interface.js +1 -1
  98. package/lib/azure-networksecuritygroup/lib/network-security-group.js +1 -1
  99. package/lib/azure-networkwatcher/lib/network-watcher.js +1 -1
  100. package/lib/azure-policyassignment/lib/policy-assignment.js +1 -1
  101. package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
  102. package/lib/azure-policysetdefinition/lib/policy-set-definition.js +1 -1
  103. package/lib/azure-privatednszone/lib/private-dns-zone.js +1 -1
  104. package/lib/azure-privatednszone/lib/records/private-dns-records.js +8 -8
  105. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +1 -1
  106. package/lib/azure-publicipaddress/lib/public-ip-address.js +1 -1
  107. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  108. package/lib/azure-roleassignment/lib/role-assignment.js +1 -1
  109. package/lib/azure-roledefinition/lib/role-definition.js +1 -1
  110. package/lib/azure-sreagent/index.d.ts +1 -0
  111. package/lib/azure-sreagent/index.js +18 -0
  112. package/lib/azure-sreagent/lib/index.d.ts +2 -0
  113. package/lib/azure-sreagent/lib/index.js +19 -0
  114. package/lib/azure-sreagent/lib/sre-agent-schemas.d.ts +29 -0
  115. package/lib/azure-sreagent/lib/sre-agent-schemas.js +296 -0
  116. package/lib/azure-sreagent/lib/sre-agent.d.ts +208 -0
  117. package/lib/azure-sreagent/lib/sre-agent.js +217 -0
  118. package/lib/azure-sreagent/test/sre-agent.integ.d.ts +9 -0
  119. package/lib/azure-sreagent/test/sre-agent.integ.js +78 -0
  120. package/lib/azure-sreagent/test/sre-agent.spec.d.ts +4 -0
  121. package/lib/azure-sreagent/test/sre-agent.spec.js +216 -0
  122. package/lib/azure-staticwebapp/index.d.ts +1 -0
  123. package/lib/azure-staticwebapp/index.js +18 -0
  124. package/lib/azure-staticwebapp/lib/index.d.ts +2 -0
  125. package/lib/azure-staticwebapp/lib/index.js +19 -0
  126. package/lib/azure-staticwebapp/lib/static-web-app-schemas.d.ts +40 -0
  127. package/lib/azure-staticwebapp/lib/static-web-app-schemas.js +236 -0
  128. package/lib/azure-staticwebapp/lib/static-web-app.d.ts +242 -0
  129. package/lib/azure-staticwebapp/lib/static-web-app.js +232 -0
  130. package/lib/azure-staticwebapp/test/static-web-app.integ.d.ts +9 -0
  131. package/lib/azure-staticwebapp/test/static-web-app.integ.js +76 -0
  132. package/lib/azure-staticwebapp/test/static-web-app.spec.d.ts +15 -0
  133. package/lib/azure-staticwebapp/test/static-web-app.spec.js +293 -0
  134. package/lib/azure-storageaccount/lib/storage-account.js +1 -1
  135. package/lib/azure-subnet/lib/subnet.js +1 -1
  136. package/lib/azure-virtualmachine/lib/virtual-machine.js +1 -1
  137. package/lib/azure-virtualnetwork/lib/virtual-network.js +1 -1
  138. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +1 -1
  139. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +1 -1
  140. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +1 -1
  141. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +1 -1
  142. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +1 -1
  143. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +1 -1
  144. package/lib/azure-virtualnetworkmanager/lib/network-group.js +1 -1
  145. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +1 -1
  146. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +1 -1
  147. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +1 -1
  148. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +1 -1
  149. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +1 -1
  150. package/lib/core-azure/lib/azapi/azapi-resource.js +2 -2
  151. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
  152. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
  153. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +1 -1
  154. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
  155. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
  156. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
  157. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
  158. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  159. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  160. package/lib/index.d.ts +16 -0
  161. package/lib/index.js +18 -2
  162. package/lib/testing/index.js +2 -2
  163. package/lib/testing/lib/cleanup.js +1 -1
  164. package/lib/testing/lib/metadata.js +1 -1
  165. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ export * from "./lib";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./lib"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUta2V5dmF1bHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2xpYlwiO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from "./key-vault-schemas";
2
+ export * from "./key-vault";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./key-vault-schemas"), exports);
18
+ __exportStar(require("./key-vault"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta2V5dmF1bHQvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBb0M7QUFDcEMsOENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4va2V5LXZhdWx0LXNjaGVtYXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2tleS12YXVsdFwiO1xuIl19
@@ -0,0 +1,40 @@
1
+ /**
2
+ * API schemas for Azure Key Vault across all supported versions
3
+ *
4
+ * This file defines the complete API schemas for Microsoft.KeyVault/vaults
5
+ * across all supported API versions. The schemas are used by the AzapiResource
6
+ * framework for validation, transformation, and version management.
7
+ */
8
+ import { ApiSchema, VersionConfig } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
9
+ /**
10
+ * API Schema for Key Vault version 2023-02-01
11
+ */
12
+ export declare const KEY_VAULT_SCHEMA_2023_02_01: ApiSchema;
13
+ /**
14
+ * API Schema for Key Vault version 2023-07-01
15
+ */
16
+ export declare const KEY_VAULT_SCHEMA_2023_07_01: ApiSchema;
17
+ /**
18
+ * API Schema for Key Vault version 2024-11-01
19
+ */
20
+ export declare const KEY_VAULT_SCHEMA_2024_11_01: ApiSchema;
21
+ /**
22
+ * Version configuration for Key Vault 2023-02-01
23
+ */
24
+ export declare const KEY_VAULT_VERSION_2023_02_01: VersionConfig;
25
+ /**
26
+ * Version configuration for Key Vault 2023-07-01
27
+ */
28
+ export declare const KEY_VAULT_VERSION_2023_07_01: VersionConfig;
29
+ /**
30
+ * Version configuration for Key Vault 2024-11-01
31
+ */
32
+ export declare const KEY_VAULT_VERSION_2024_11_01: VersionConfig;
33
+ /**
34
+ * All supported Key Vault versions for registration
35
+ */
36
+ export declare const ALL_KEY_VAULT_VERSIONS: VersionConfig[];
37
+ /**
38
+ * Resource type constant
39
+ */
40
+ export declare const KEY_VAULT_TYPE = "Microsoft.KeyVault/vaults";
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+ /**
3
+ * API schemas for Azure Key Vault across all supported versions
4
+ *
5
+ * This file defines the complete API schemas for Microsoft.KeyVault/vaults
6
+ * across all supported API versions. The schemas are used by the AzapiResource
7
+ * framework for validation, transformation, and version management.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.KEY_VAULT_TYPE = exports.ALL_KEY_VAULT_VERSIONS = exports.KEY_VAULT_VERSION_2024_11_01 = exports.KEY_VAULT_VERSION_2023_07_01 = exports.KEY_VAULT_VERSION_2023_02_01 = exports.KEY_VAULT_SCHEMA_2024_11_01 = exports.KEY_VAULT_SCHEMA_2023_07_01 = exports.KEY_VAULT_SCHEMA_2023_02_01 = void 0;
11
+ const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
12
+ // =============================================================================
13
+ // COMMON PROPERTY DEFINITIONS
14
+ // =============================================================================
15
+ /**
16
+ * Common property definitions shared across all Key Vault versions
17
+ */
18
+ const COMMON_PROPERTIES = {
19
+ location: {
20
+ dataType: version_interfaces_1.PropertyType.STRING,
21
+ required: true,
22
+ description: "The Azure region where the Key Vault will be created",
23
+ validation: [
24
+ {
25
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
26
+ message: "Location is required for Key Vaults",
27
+ },
28
+ {
29
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
30
+ value: "^[a-z0-9]+$",
31
+ message: "Location must contain only lowercase letters and numbers",
32
+ },
33
+ ],
34
+ },
35
+ tags: {
36
+ dataType: version_interfaces_1.PropertyType.OBJECT,
37
+ required: false,
38
+ defaultValue: {},
39
+ description: "A dictionary of tags to apply to the Key Vault",
40
+ validation: [
41
+ {
42
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
43
+ value: version_interfaces_1.PropertyType.OBJECT,
44
+ message: "Tags must be an object with string key-value pairs",
45
+ },
46
+ ],
47
+ },
48
+ name: {
49
+ dataType: version_interfaces_1.PropertyType.STRING,
50
+ required: true,
51
+ description: "The name of the Key Vault. Must be globally unique across Azure",
52
+ validation: [
53
+ {
54
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
55
+ message: "Key Vault name is required",
56
+ },
57
+ {
58
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
59
+ value: "^[a-zA-Z][a-zA-Z0-9-]{1,22}[a-zA-Z0-9]$",
60
+ message: "Key Vault name must be 3-24 alphanumeric characters or hyphens, start with a letter, and end with a letter or digit",
61
+ },
62
+ ],
63
+ },
64
+ sku: {
65
+ dataType: version_interfaces_1.PropertyType.OBJECT,
66
+ required: false,
67
+ defaultValue: { name: "standard", family: "A" },
68
+ description: "The SKU (pricing tier) for the Key Vault",
69
+ },
70
+ tenantId: {
71
+ dataType: version_interfaces_1.PropertyType.STRING,
72
+ required: true,
73
+ description: "The Azure Active Directory tenant ID that should be used for authenticating requests to the Key Vault",
74
+ },
75
+ accessPolicies: {
76
+ dataType: version_interfaces_1.PropertyType.ARRAY,
77
+ required: false,
78
+ description: "Array of access policies for the Key Vault",
79
+ },
80
+ networkAcls: {
81
+ dataType: version_interfaces_1.PropertyType.OBJECT,
82
+ required: false,
83
+ description: "Network ACL rules for the Key Vault",
84
+ },
85
+ enabledForDeployment: {
86
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
87
+ required: false,
88
+ defaultValue: false,
89
+ description: "Whether Azure Virtual Machines are permitted to retrieve certificates from the vault",
90
+ },
91
+ enabledForDiskEncryption: {
92
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
93
+ required: false,
94
+ defaultValue: false,
95
+ description: "Whether Azure Disk Encryption is permitted to retrieve secrets from the vault",
96
+ },
97
+ enabledForTemplateDeployment: {
98
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
99
+ required: false,
100
+ defaultValue: false,
101
+ description: "Whether Azure Resource Manager is permitted to retrieve secrets from the vault",
102
+ },
103
+ enableRbacAuthorization: {
104
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
105
+ required: false,
106
+ defaultValue: true,
107
+ description: "Whether Azure RBAC is used to authorize data actions instead of access policies",
108
+ },
109
+ enableSoftDelete: {
110
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
111
+ required: false,
112
+ defaultValue: true,
113
+ description: "Whether soft-delete is enabled on the Key Vault",
114
+ },
115
+ softDeleteRetentionInDays: {
116
+ dataType: version_interfaces_1.PropertyType.NUMBER,
117
+ required: false,
118
+ defaultValue: 90,
119
+ description: "Number of days that items should be retained after soft-delete (7-90)",
120
+ validation: [
121
+ {
122
+ ruleType: version_interfaces_1.ValidationRuleType.VALUE_RANGE,
123
+ value: { min: 7, max: 90 },
124
+ message: "softDeleteRetentionInDays must be between 7 and 90",
125
+ },
126
+ ],
127
+ },
128
+ enablePurgeProtection: {
129
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
130
+ required: false,
131
+ description: "Whether purge protection is enabled. Once enabled, this property cannot be disabled",
132
+ },
133
+ publicNetworkAccess: {
134
+ dataType: version_interfaces_1.PropertyType.STRING,
135
+ required: false,
136
+ defaultValue: "Enabled",
137
+ description: "Whether the Key Vault accepts traffic from public networks (Enabled/Disabled)",
138
+ validation: [
139
+ {
140
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
141
+ value: "^(Enabled|Disabled)$",
142
+ message: "publicNetworkAccess must be either 'Enabled' or 'Disabled'",
143
+ },
144
+ ],
145
+ },
146
+ ignoreChanges: {
147
+ dataType: version_interfaces_1.PropertyType.ARRAY,
148
+ required: false,
149
+ description: "Array of property names to ignore during updates",
150
+ validation: [
151
+ {
152
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
153
+ value: version_interfaces_1.PropertyType.ARRAY,
154
+ message: "IgnoreChanges must be an array of strings",
155
+ },
156
+ ],
157
+ },
158
+ };
159
+ const COMMON_REQUIRED = ["location", "name", "tenantId"];
160
+ const COMMON_OPTIONAL = [
161
+ "sku",
162
+ "tags",
163
+ "accessPolicies",
164
+ "networkAcls",
165
+ "enabledForDeployment",
166
+ "enabledForDiskEncryption",
167
+ "enabledForTemplateDeployment",
168
+ "enableRbacAuthorization",
169
+ "enableSoftDelete",
170
+ "softDeleteRetentionInDays",
171
+ "enablePurgeProtection",
172
+ "publicNetworkAccess",
173
+ "ignoreChanges",
174
+ ];
175
+ const COMMON_VALIDATION_RULES = [
176
+ {
177
+ property: "location",
178
+ rules: [
179
+ {
180
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
181
+ message: "Location is required for Key Vaults",
182
+ },
183
+ ],
184
+ },
185
+ {
186
+ property: "name",
187
+ rules: [
188
+ {
189
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
190
+ message: "Name is required for Key Vaults",
191
+ },
192
+ ],
193
+ },
194
+ ];
195
+ // =============================================================================
196
+ // VERSION-SPECIFIC SCHEMAS
197
+ // =============================================================================
198
+ /**
199
+ * API Schema for Key Vault version 2023-02-01
200
+ */
201
+ exports.KEY_VAULT_SCHEMA_2023_02_01 = {
202
+ resourceType: "Microsoft.KeyVault/vaults",
203
+ version: "2023-02-01",
204
+ properties: { ...COMMON_PROPERTIES },
205
+ required: [...COMMON_REQUIRED],
206
+ optional: [...COMMON_OPTIONAL],
207
+ deprecated: [],
208
+ transformationRules: {},
209
+ validationRules: [...COMMON_VALIDATION_RULES],
210
+ };
211
+ /**
212
+ * API Schema for Key Vault version 2023-07-01
213
+ */
214
+ exports.KEY_VAULT_SCHEMA_2023_07_01 = {
215
+ resourceType: "Microsoft.KeyVault/vaults",
216
+ version: "2023-07-01",
217
+ properties: { ...COMMON_PROPERTIES },
218
+ required: [...COMMON_REQUIRED],
219
+ optional: [...COMMON_OPTIONAL],
220
+ deprecated: [],
221
+ transformationRules: {},
222
+ validationRules: [...COMMON_VALIDATION_RULES],
223
+ };
224
+ /**
225
+ * API Schema for Key Vault version 2024-11-01
226
+ */
227
+ exports.KEY_VAULT_SCHEMA_2024_11_01 = {
228
+ resourceType: "Microsoft.KeyVault/vaults",
229
+ version: "2024-11-01",
230
+ properties: { ...COMMON_PROPERTIES },
231
+ required: [...COMMON_REQUIRED],
232
+ optional: [...COMMON_OPTIONAL],
233
+ deprecated: [],
234
+ transformationRules: {},
235
+ validationRules: [...COMMON_VALIDATION_RULES],
236
+ };
237
+ // =============================================================================
238
+ // VERSION CONFIGURATIONS
239
+ // =============================================================================
240
+ /**
241
+ * Version configuration for Key Vault 2023-02-01
242
+ */
243
+ exports.KEY_VAULT_VERSION_2023_02_01 = {
244
+ version: "2023-02-01",
245
+ schema: exports.KEY_VAULT_SCHEMA_2023_02_01,
246
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
247
+ releaseDate: "2023-02-01",
248
+ deprecationDate: undefined,
249
+ sunsetDate: undefined,
250
+ breakingChanges: [],
251
+ migrationGuide: "/docs/key-vault/migration-2023-02-01",
252
+ changeLog: [
253
+ {
254
+ changeType: "added",
255
+ description: "Stable release of Key Vault API",
256
+ breaking: false,
257
+ },
258
+ ],
259
+ };
260
+ /**
261
+ * Version configuration for Key Vault 2023-07-01
262
+ */
263
+ exports.KEY_VAULT_VERSION_2023_07_01 = {
264
+ version: "2023-07-01",
265
+ schema: exports.KEY_VAULT_SCHEMA_2023_07_01,
266
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
267
+ releaseDate: "2023-07-01",
268
+ deprecationDate: undefined,
269
+ sunsetDate: undefined,
270
+ breakingChanges: [],
271
+ migrationGuide: "/docs/key-vault/migration-2023-07-01",
272
+ changeLog: [
273
+ {
274
+ changeType: "updated",
275
+ description: "Enhanced security features and minor API improvements",
276
+ breaking: false,
277
+ },
278
+ ],
279
+ };
280
+ /**
281
+ * Version configuration for Key Vault 2024-11-01
282
+ */
283
+ exports.KEY_VAULT_VERSION_2024_11_01 = {
284
+ version: "2024-11-01",
285
+ schema: exports.KEY_VAULT_SCHEMA_2024_11_01,
286
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
287
+ releaseDate: "2024-11-01",
288
+ deprecationDate: undefined,
289
+ sunsetDate: undefined,
290
+ breakingChanges: [],
291
+ migrationGuide: "/docs/key-vault/migration-2024-11-01",
292
+ changeLog: [
293
+ {
294
+ changeType: "updated",
295
+ description: "Latest API version with improved performance and features",
296
+ breaking: false,
297
+ },
298
+ ],
299
+ };
300
+ /**
301
+ * All supported Key Vault versions for registration
302
+ */
303
+ exports.ALL_KEY_VAULT_VERSIONS = [
304
+ exports.KEY_VAULT_VERSION_2023_02_01,
305
+ exports.KEY_VAULT_VERSION_2023_07_01,
306
+ exports.KEY_VAULT_VERSION_2024_11_01,
307
+ ];
308
+ /**
309
+ * Resource type constant
310
+ */
311
+ exports.KEY_VAULT_TYPE = "Microsoft.KeyVault/vaults";
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXZhdWx0LXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta2V5dmF1bHQvbGliL2tleS12YXVsdC1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILDJHQU80RTtBQUU1RSxnRkFBZ0Y7QUFDaEYsOEJBQThCO0FBQzlCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQTBDO0lBQy9ELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsc0RBQXNEO1FBQ25FLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO2dCQUNyQyxPQUFPLEVBQUUscUNBQXFDO2FBQy9DO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLGFBQWE7Z0JBQzFDLEtBQUssRUFBRSxhQUFhO2dCQUNwQixPQUFPLEVBQUUsMERBQTBEO2FBQ3BFO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsRUFBRTtRQUNoQixXQUFXLEVBQUUsZ0RBQWdEO1FBQzdELFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxVQUFVO2dCQUN2QyxLQUFLLEVBQUUsaUNBQVksQ0FBQyxNQUFNO2dCQUMxQixPQUFPLEVBQUUsb0RBQW9EO2FBQzlEO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQ1QsaUVBQWlFO1FBQ25FLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FB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RztBQUNVLFFBQUEsY0FBYyxHQUFHLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBUEkgc2NoZW1hcyBmb3IgQXp1cmUgS2V5IFZhdWx0IGFjcm9zcyBhbGwgc3VwcG9ydGVkIHZlcnNpb25zXG4gKlxuICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIGNvbXBsZXRlIEFQSSBzY2hlbWFzIGZvciBNaWNyb3NvZnQuS2V5VmF1bHQvdmF1bHRzXG4gKiBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuIFRoZSBzY2hlbWFzIGFyZSB1c2VkIGJ5IHRoZSBBemFwaVJlc291cmNlXG4gKiBmcmFtZXdvcmsgZm9yIHZhbGlkYXRpb24sIHRyYW5zZm9ybWF0aW9uLCBhbmQgdmVyc2lvbiBtYW5hZ2VtZW50LlxuICovXG5cbmltcG9ydCB7XG4gIEFwaVNjaGVtYSxcbiAgUHJvcGVydHlEZWZpbml0aW9uLFxuICBQcm9wZXJ0eVR5cGUsXG4gIFZhbGlkYXRpb25SdWxlVHlwZSxcbiAgVmVyc2lvbkNvbmZpZyxcbiAgVmVyc2lvblN1cHBvcnRMZXZlbCxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ09NTU9OIFBST1BFUlRZIERFRklOSVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENvbW1vbiBwcm9wZXJ0eSBkZWZpbml0aW9ucyBzaGFyZWQgYWNyb3NzIGFsbCBLZXkgVmF1bHQgdmVyc2lvbnNcbiAqL1xuY29uc3QgQ09NTU9OX1BST1BFUlRJRVM6IHsgW2tleTogc3RyaW5nXTogUHJvcGVydHlEZWZpbml0aW9uIH0gPSB7XG4gIGxvY2F0aW9uOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIEF6dXJlIHJlZ2lvbiB3aGVyZSB0aGUgS2V5IFZhdWx0IHdpbGwgYmUgY3JlYXRlZFwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgS2V5IFZhdWx0c1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeW2EtejAtOV0rJFwiLFxuICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIG11c3QgY29udGFpbiBvbmx5IGxvd2VyY2FzZSBsZXR0ZXJzIGFuZCBudW1iZXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRhZ3M6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiB7fSxcbiAgICBkZXNjcmlwdGlvbjogXCJBIGRpY3Rpb25hcnkgb2YgdGFncyB0byBhcHBseSB0byB0aGUgS2V5IFZhdWx0XCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgICAgICBtZXNzYWdlOiBcIlRhZ3MgbXVzdCBiZSBhbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5LXZhbHVlIHBhaXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIG5hbWUgb2YgdGhlIEtleSBWYXVsdC4gTXVzdCBiZSBnbG9iYWxseSB1bmlxdWUgYWNyb3NzIEF6dXJlXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIktleSBWYXVsdCBuYW1lIGlzIHJlcXVpcmVkXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl5bYS16QS1aXVthLXpBLVowLTktXXsxLDIyfVthLXpBLVowLTldJFwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiS2V5IFZhdWx0IG5hbWUgbXVzdCBiZSAzLTI0IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9yIGh5cGhlbnMsIHN0YXJ0IHdpdGggYSBsZXR0ZXIsIGFuZCBlbmQgd2l0aCBhIGxldHRlciBvciBkaWdpdFwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBza3U6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiB7IG5hbWU6IFwic3RhbmRhcmRcIiwgZmFtaWx5OiBcIkFcIiB9LFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBTS1UgKHByaWNpbmcgdGllcikgZm9yIHRoZSBLZXkgVmF1bHRcIixcbiAgfSxcbiAgdGVuYW50SWQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkgdGVuYW50IElEIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGF1dGhlbnRpY2F0aW5nIHJlcXVlc3RzIHRvIHRoZSBLZXkgVmF1bHRcIixcbiAgfSxcbiAgYWNjZXNzUG9saWNpZXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJBcnJheSBvZiBhY2Nlc3MgcG9saWNpZXMgZm9yIHRoZSBLZXkgVmF1bHRcIixcbiAgfSxcbiAgbmV0d29ya0FjbHM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiTmV0d29yayBBQ0wgcnVsZXMgZm9yIHRoZSBLZXkgVmF1bHRcIixcbiAgfSxcbiAgZW5hYmxlZEZvckRlcGxveW1lbnQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIldoZXRoZXIgQXp1cmUgVmlydHVhbCBNYWNoaW5lcyBhcmUgcGVybWl0dGVkIHRvIHJldHJpZXZlIGNlcnRpZmljYXRlcyBmcm9tIHRoZSB2YXVsdFwiLFxuICB9LFxuICBlbmFibGVkRm9yRGlza0VuY3J5cHRpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIldoZXRoZXIgQXp1cmUgRGlzayBFbmNyeXB0aW9uIGlzIHBlcm1pdHRlZCB0byByZXRyaWV2ZSBzZWNyZXRzIGZyb20gdGhlIHZhdWx0XCIsXG4gIH0sXG4gIGVuYWJsZWRGb3JUZW1wbGF0ZURlcGxveW1lbnQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIldoZXRoZXIgQXp1cmUgUmVzb3VyY2UgTWFuYWdlciBpcyBwZXJtaXR0ZWQgdG8gcmV0cmlldmUgc2VjcmV0cyBmcm9tIHRoZSB2YXVsdFwiLFxuICB9LFxuICBlbmFibGVSYmFjQXV0aG9yaXphdGlvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJXaGV0aGVyIEF6dXJlIFJCQUMgaXMgdXNlZCB0byBhdXRob3JpemUgZGF0YSBhY3Rpb25zIGluc3RlYWQgb2YgYWNjZXNzIHBvbGljaWVzXCIsXG4gIH0sXG4gIGVuYWJsZVNvZnREZWxldGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHNvZnQtZGVsZXRlIGlzIGVuYWJsZWQgb24gdGhlIEtleSBWYXVsdFwiLFxuICB9LFxuICBzb2Z0RGVsZXRlUmV0ZW50aW9uSW5EYXlzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5OVU1CRVIsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogOTAsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIk51bWJlciBvZiBkYXlzIHRoYXQgaXRlbXMgc2hvdWxkIGJlIHJldGFpbmVkIGFmdGVyIHNvZnQtZGVsZXRlICg3LTkwKVwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5WQUxVRV9SQU5HRSxcbiAgICAgICAgdmFsdWU6IHsgbWluOiA3LCBtYXg6IDkwIH0sXG4gICAgICAgIG1lc3NhZ2U6IFwic29mdERlbGV0ZVJldGVudGlvbkluRGF5cyBtdXN0IGJlIGJldHdlZW4gNyBhbmQgOTBcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZW5hYmxlUHVyZ2VQcm90ZWN0aW9uOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiV2hldGhlciBwdXJnZSBwcm90ZWN0aW9uIGlzIGVuYWJsZWQuIE9uY2UgZW5hYmxlZCwgdGhpcyBwcm9wZXJ0eSBjYW5ub3QgYmUgZGlzYWJsZWRcIixcbiAgfSxcbiAgcHVibGljTmV0d29ya0FjY2Vzczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IFwiRW5hYmxlZFwiLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJXaGV0aGVyIHRoZSBLZXkgVmF1bHQgYWNjZXB0cyB0cmFmZmljIGZyb20gcHVibGljIG5ldHdvcmtzIChFbmFibGVkL0Rpc2FibGVkKVwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeKEVuYWJsZWR8RGlzYWJsZWQpJFwiLFxuICAgICAgICBtZXNzYWdlOiBcInB1YmxpY05ldHdvcmtBY2Nlc3MgbXVzdCBiZSBlaXRoZXIgJ0VuYWJsZWQnIG9yICdEaXNhYmxlZCdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgaWdub3JlQ2hhbmdlczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkFycmF5IG9mIHByb3BlcnR5IG5hbWVzIHRvIGlnbm9yZSBkdXJpbmcgdXBkYXRlc1wiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgICAgICBtZXNzYWdlOiBcIklnbm9yZUNoYW5nZXMgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG59O1xuXG5jb25zdCBDT01NT05fUkVRVUlSRUQgPSBbXCJsb2NhdGlvblwiLCBcIm5hbWVcIiwgXCJ0ZW5hbnRJZFwiXTtcbmNvbnN0IENPTU1PTl9PUFRJT05BTCA9IFtcbiAgXCJza3VcIixcbiAgXCJ0YWdzXCIsXG4gIFwiYWNjZXNzUG9saWNpZXNcIixcbiAgXCJuZXR3b3JrQWNsc1wiLFxuICBcImVuYWJsZWRGb3JEZXBsb3ltZW50XCIsXG4gIFwiZW5hYmxlZEZvckRpc2tFbmNyeXB0aW9uXCIsXG4gIFwiZW5hYmxlZEZvclRlbXBsYXRlRGVwbG95bWVudFwiLFxuICBcImVuYWJsZVJiYWNBdXRob3JpemF0aW9uXCIsXG4gIFwiZW5hYmxlU29mdERlbGV0ZVwiLFxuICBcInNvZnREZWxldGVSZXRlbnRpb25JbkRheXNcIixcbiAgXCJlbmFibGVQdXJnZVByb3RlY3Rpb25cIixcbiAgXCJwdWJsaWNOZXR3b3JrQWNjZXNzXCIsXG4gIFwiaWdub3JlQ2hhbmdlc1wiLFxuXTtcblxuY29uc3QgQ09NTU9OX1ZBTElEQVRJT05fUlVMRVMgPSBbXG4gIHtcbiAgICBwcm9wZXJ0eTogXCJsb2NhdGlvblwiLFxuICAgIHJ1bGVzOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIEtleSBWYXVsdHNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAge1xuICAgIHByb3BlcnR5OiBcIm5hbWVcIixcbiAgICBydWxlczogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIEtleSBWYXVsdHNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbl07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OLVNQRUNJRklDIFNDSEVNQVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgS2V5IFZhdWx0IHZlcnNpb24gMjAyMy0wMi0wMVxuICovXG5leHBvcnQgY29uc3QgS0VZX1ZBVUxUX1NDSEVNQV8yMDIzXzAyXzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuS2V5VmF1bHQvdmF1bHRzXCIsXG4gIHZlcnNpb246IFwiMjAyMy0wMi0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7IC4uLkNPTU1PTl9QUk9QRVJUSUVTIH0sXG4gIHJlcXVpcmVkOiBbLi4uQ09NTU9OX1JFUVVJUkVEXSxcbiAgb3B0aW9uYWw6IFsuLi5DT01NT05fT1BUSU9OQUxdLFxuICBkZXByZWNhdGVkOiBbXSxcbiAgdHJhbnNmb3JtYXRpb25SdWxlczoge30sXG4gIHZhbGlkYXRpb25SdWxlczogWy4uLkNPTU1PTl9WQUxJREFUSU9OX1JVTEVTXSxcbn07XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgS2V5IFZhdWx0IHZlcnNpb24gMjAyMy0wNy0wMVxuICovXG5leHBvcnQgY29uc3QgS0VZX1ZBVUxUX1NDSEVNQV8yMDIzXzA3XzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuS2V5VmF1bHQvdmF1bHRzXCIsXG4gIHZlcnNpb246IFwiMjAyMy0wNy0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7IC4uLkNPTU1PTl9QUk9QRVJUSUVTIH0sXG4gIHJlcXVpcmVkOiBbLi4uQ09NTU9OX1JFUVVJUkVEXSxcbiAgb3B0aW9uYWw6IFsuLi5DT01NT05fT1BUSU9OQUxdLFxuICBkZXByZWNhdGVkOiBbXSxcbiAgdHJhbnNmb3JtYXRpb25SdWxlczoge30sXG4gIHZhbGlkYXRpb25SdWxlczogWy4uLkNPTU1PTl9WQUxJREFUSU9OX1JVTEVTXSxcbn07XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgS2V5IFZhdWx0IHZlcnNpb24gMjAyNC0xMS0wMVxuICovXG5leHBvcnQgY29uc3QgS0VZX1ZBVUxUX1NDSEVNQV8yMDI0XzExXzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuS2V5VmF1bHQvdmF1bHRzXCIsXG4gIHZlcnNpb246IFwiMjAyNC0xMS0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7IC4uLkNPTU1PTl9QUk9QRVJUSUVTIH0sXG4gIHJlcXVpcmVkOiBbLi4uQ09NTU9OX1JFUVVJUkVEXSxcbiAgb3B0aW9uYWw6IFsuLi5DT01NT05fT1BUSU9OQUxdLFxuICBkZXByZWNhdGVkOiBbXSxcbiAgdHJhbnNmb3JtYXRpb25SdWxlczoge30sXG4gIHZhbGlkYXRpb25SdWxlczogWy4uLkNPTU1PTl9WQUxJREFUSU9OX1JVTEVTXSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OIENPTkZJR1VSQVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgS2V5IFZhdWx0IDIwMjMtMDItMDFcbiAqL1xuZXhwb3J0IGNvbnN0IEtFWV9WQVVMVF9WRVJTSU9OXzIwMjNfMDJfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyMy0wMi0wMVwiLFxuICBzY2hlbWE6IEtFWV9WQVVMVF9TQ0hFTUFfMjAyM18wMl8wMSxcbiAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLkFDVElWRSxcbiAgcmVsZWFzZURhdGU6IFwiMjAyMy0wMi0wMVwiLFxuICBkZXByZWNhdGlvbkRhdGU6IHVuZGVmaW5lZCxcbiAgc3Vuc2V0RGF0ZTogdW5kZWZpbmVkLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy9rZXktdmF1bHQvbWlncmF0aW9uLTIwMjMtMDItMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJhZGRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiU3RhYmxlIHJlbGVhc2Ugb2YgS2V5IFZhdWx0IEFQSVwiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgS2V5IFZhdWx0IDIwMjMtMDctMDFcbiAqL1xuZXhwb3J0IGNvbnN0IEtFWV9WQVVMVF9WRVJTSU9OXzIwMjNfMDdfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyMy0wNy0wMVwiLFxuICBzY2hlbWE6IEtFWV9WQVVMVF9TQ0hFTUFfMjAyM18wN18wMSxcbiAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLkFDVElWRSxcbiAgcmVsZWFzZURhdGU6IFwiMjAyMy0wNy0wMVwiLFxuICBkZXByZWNhdGlvbkRhdGU6IHVuZGVmaW5lZCxcbiAgc3Vuc2V0RGF0ZTogdW5kZWZpbmVkLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy9rZXktdmF1bHQvbWlncmF0aW9uLTIwMjMtMDctMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJ1cGRhdGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJFbmhhbmNlZCBzZWN1cml0eSBmZWF0dXJlcyBhbmQgbWlub3IgQVBJIGltcHJvdmVtZW50c1wiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgS2V5IFZhdWx0IDIwMjQtMTEtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IEtFWV9WQVVMVF9WRVJTSU9OXzIwMjRfMTFfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyNC0xMS0wMVwiLFxuICBzY2hlbWE6IEtFWV9WQVVMVF9TQ0hFTUFfMjAyNF8xMV8wMSxcbiAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLkFDVElWRSxcbiAgcmVsZWFzZURhdGU6IFwiMjAyNC0xMS0wMVwiLFxuICBkZXByZWNhdGlvbkRhdGU6IHVuZGVmaW5lZCxcbiAgc3Vuc2V0RGF0ZTogdW5kZWZpbmVkLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy9rZXktdmF1bHQvbWlncmF0aW9uLTIwMjQtMTEtMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJ1cGRhdGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJMYXRlc3QgQVBJIHZlcnNpb24gd2l0aCBpbXByb3ZlZCBwZXJmb3JtYW5jZSBhbmQgZmVhdHVyZXNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBbGwgc3VwcG9ydGVkIEtleSBWYXVsdCB2ZXJzaW9ucyBmb3IgcmVnaXN0cmF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBBTExfS0VZX1ZBVUxUX1ZFUlNJT05TOiBWZXJzaW9uQ29uZmlnW10gPSBbXG4gIEtFWV9WQVVMVF9WRVJTSU9OXzIwMjNfMDJfMDEsXG4gIEtFWV9WQVVMVF9WRVJTSU9OXzIwMjNfMDdfMDEsXG4gIEtFWV9WQVVMVF9WRVJTSU9OXzIwMjRfMTFfMDEsXG5dO1xuXG4vKipcbiAqIFJlc291cmNlIHR5cGUgY29uc3RhbnRcbiAqL1xuZXhwb3J0IGNvbnN0IEtFWV9WQVVMVF9UWVBFID0gXCJNaWNyb3NvZnQuS2V5VmF1bHQvdmF1bHRzXCI7XG4iXX0=