@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,209 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ApplicationInsights = exports.APPLICATION_INSIGHTS_VALID_RETENTION_DAYS = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /**
7
+ * Unified Azure Application Insights implementation using AzapiResource framework
8
+ *
9
+ * This class provides a version-aware implementation for Azure Application Insights
10
+ * components that automatically handles version management, schema validation, and
11
+ * property transformation across all supported API versions.
12
+ *
13
+ * Supported API Versions:
14
+ * - 2020-02-02 (Active, Latest)
15
+ *
16
+ * Features:
17
+ * - Automatic latest version resolution when no version is specified
18
+ * - Explicit version pinning for stability requirements
19
+ * - Schema-driven validation and transformation
20
+ * - Full JSII compliance for multi-language support
21
+ * - Workspace-based Application Insights (classic mode is retired)
22
+ * - Configurable sampling, retention, IP masking, and network access
23
+ */
24
+ const cdktf = require("cdktf");
25
+ const application_insights_schemas_1 = require("./application-insights-schemas");
26
+ const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
27
+ /**
28
+ * Allowed retention values (in days) for Application Insights
29
+ */
30
+ exports.APPLICATION_INSIGHTS_VALID_RETENTION_DAYS = [
31
+ 30, 60, 90, 120, 180, 270, 365, 550, 730,
32
+ ];
33
+ /**
34
+ * Unified Azure Application Insights implementation
35
+ *
36
+ * This class provides a single, version-aware implementation that automatically
37
+ * handles version resolution, schema validation, and property transformation
38
+ * while maintaining full JSII compliance.
39
+ *
40
+ * Application Insights is an extensible Application Performance Management (APM)
41
+ * service that helps you monitor live web applications. It automatically detects
42
+ * performance anomalies and includes powerful analytics tools to help diagnose
43
+ * issues and understand application usage.
44
+ *
45
+ * Workspace-based Application Insights resources send telemetry to a Log
46
+ * Analytics workspace, where you can use the full power of Kusto Query Language
47
+ * (KQL) to analyze your data.
48
+ *
49
+ * @example
50
+ * // Basic Application Insights component:
51
+ * const appInsights = new ApplicationInsights(this, "my-appinsights", {
52
+ * name: "my-application-insights",
53
+ * location: "eastus",
54
+ * resourceGroupId: resourceGroup.id,
55
+ * workspaceResourceId: workspace.id,
56
+ * });
57
+ *
58
+ * @example
59
+ * // Application Insights with custom retention and sampling:
60
+ * const appInsights = new ApplicationInsights(this, "production-ai", {
61
+ * name: "production-ai",
62
+ * location: "eastus",
63
+ * resourceGroupId: resourceGroup.id,
64
+ * workspaceResourceId: workspace.id,
65
+ * applicationType: "web",
66
+ * retentionInDays: 365,
67
+ * samplingPercentage: 50,
68
+ * tags: {
69
+ * environment: "production"
70
+ * }
71
+ * });
72
+ *
73
+ * @stability stable
74
+ */
75
+ class ApplicationInsights extends azapi_resource_1.AzapiResource {
76
+ /**
77
+ * Creates a new Azure Application Insights component using the AzapiResource framework
78
+ *
79
+ * The constructor automatically handles version resolution, schema registration,
80
+ * validation, and resource creation.
81
+ *
82
+ * @param scope - The scope in which to define this construct
83
+ * @param id - The unique identifier for this instance
84
+ * @param props - Configuration properties for the Application Insights component
85
+ */
86
+ constructor(scope, id, props) {
87
+ // Validate retention days if provided
88
+ if (props.retentionInDays !== undefined) {
89
+ if (!exports.APPLICATION_INSIGHTS_VALID_RETENTION_DAYS.includes(props.retentionInDays)) {
90
+ throw new Error(`retentionInDays must be one of ${exports.APPLICATION_INSIGHTS_VALID_RETENTION_DAYS.join(", ")} days`);
91
+ }
92
+ }
93
+ // Validate sampling percentage if provided
94
+ if (props.samplingPercentage !== undefined) {
95
+ if (props.samplingPercentage < 0 || props.samplingPercentage > 100) {
96
+ throw new Error("samplingPercentage must be between 0 and 100");
97
+ }
98
+ }
99
+ super(scope, id, props);
100
+ this.props = props;
101
+ // Create Terraform outputs for easy access and referencing from other resources
102
+ this.idOutput = new cdktf.TerraformOutput(this, "id", {
103
+ value: this.id,
104
+ description: "The ID of the Application Insights component",
105
+ });
106
+ this.nameOutput = new cdktf.TerraformOutput(this, "name", {
107
+ value: `\${${this.terraformResource.fqn}.name}`,
108
+ description: "The name of the Application Insights component",
109
+ });
110
+ this.instrumentationKeyOutput = new cdktf.TerraformOutput(this, "instrumentation_key", {
111
+ value: `\${${this.terraformResource.fqn}.output.properties.InstrumentationKey}`,
112
+ description: "The instrumentation key of the Application Insights component",
113
+ sensitive: true,
114
+ });
115
+ this.connectionStringOutput = new cdktf.TerraformOutput(this, "connection_string", {
116
+ value: `\${${this.terraformResource.fqn}.output.properties.ConnectionString}`,
117
+ description: "The connection string of the Application Insights component",
118
+ sensitive: true,
119
+ });
120
+ this.appIdOutput = new cdktf.TerraformOutput(this, "app_id", {
121
+ value: `\${${this.terraformResource.fqn}.output.properties.AppId}`,
122
+ description: "The App ID of the Application Insights component",
123
+ });
124
+ // Override logical IDs
125
+ this.idOutput.overrideLogicalId("id");
126
+ this.nameOutput.overrideLogicalId("name");
127
+ this.instrumentationKeyOutput.overrideLogicalId("instrumentation_key");
128
+ this.connectionStringOutput.overrideLogicalId("connection_string");
129
+ this.appIdOutput.overrideLogicalId("app_id");
130
+ }
131
+ // =============================================================================
132
+ // REQUIRED ABSTRACT METHODS FROM AzapiResource
133
+ // =============================================================================
134
+ /**
135
+ * Gets the default API version to use when no explicit version is specified
136
+ * Returns the latest stable version as the default
137
+ */
138
+ defaultVersion() {
139
+ return "2020-02-02";
140
+ }
141
+ /**
142
+ * Gets the Azure resource type for Application Insights
143
+ */
144
+ resourceType() {
145
+ return application_insights_schemas_1.APPLICATION_INSIGHTS_TYPE;
146
+ }
147
+ /**
148
+ * Gets the API schema for the resolved version
149
+ * Uses the framework's schema resolution to get the appropriate schema
150
+ */
151
+ apiSchema() {
152
+ return this.resolveSchema();
153
+ }
154
+ /**
155
+ * Indicates that this resource type requires a location
156
+ */
157
+ requiresLocation() {
158
+ return true;
159
+ }
160
+ /**
161
+ * Creates the resource body for the Azure API call
162
+ * Transforms the input properties into the JSON format expected by Azure REST API
163
+ */
164
+ createResourceBody(props) {
165
+ const typedProps = props;
166
+ const body = {
167
+ kind: "web",
168
+ properties: {
169
+ Application_Type: typedProps.applicationType ?? "web",
170
+ WorkspaceResourceId: typedProps.workspaceResourceId,
171
+ RetentionInDays: typedProps.retentionInDays ?? 90,
172
+ publicNetworkAccessForIngestion: typedProps.publicNetworkAccessForIngestion ?? "Enabled",
173
+ publicNetworkAccessForQuery: typedProps.publicNetworkAccessForQuery ?? "Enabled",
174
+ },
175
+ };
176
+ // Add optional properties only if specified
177
+ if (typedProps.samplingPercentage !== undefined) {
178
+ body.properties.SamplingPercentage = typedProps.samplingPercentage;
179
+ }
180
+ if (typedProps.disableIpMasking !== undefined) {
181
+ body.properties.DisableIpMasking = typedProps.disableIpMasking;
182
+ }
183
+ if (typedProps.disableLocalAuth !== undefined) {
184
+ body.properties.DisableLocalAuth = typedProps.disableLocalAuth;
185
+ }
186
+ if (typedProps.forceCustomerStorageForProfiler !== undefined) {
187
+ body.properties.ForceCustomerStorageForProfiler =
188
+ typedProps.forceCustomerStorageForProfiler;
189
+ }
190
+ return body;
191
+ }
192
+ /**
193
+ * Resolves the parent resource ID for Application Insights
194
+ * Application Insights is a top-level resource within a resource group
195
+ *
196
+ * @param props - The resource properties
197
+ * @returns The parent resource ID (the resource group)
198
+ */
199
+ resolveParentId(props) {
200
+ return props.resourceGroupId;
201
+ }
202
+ }
203
+ exports.ApplicationInsights = ApplicationInsights;
204
+ _a = JSII_RTTI_SYMBOL_1;
205
+ ApplicationInsights[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ApplicationInsights", version: "1.10.0" };
206
+ (() => {
207
+ azapi_resource_1.AzapiResource.registerSchemas(application_insights_schemas_1.APPLICATION_INSIGHTS_TYPE, application_insights_schemas_1.ALL_APPLICATION_INSIGHTS_VERSIONS);
208
+ })();
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24taW5zaWdodHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtYXBwbGljYXRpb25pbnNpZ2h0cy9saWIvYXBwbGljYXRpb24taW5zaWdodHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCwrQkFBK0I7QUFFL0IsaUZBR3dDO0FBQ3hDLDhFQUdtRDtBQWlCbkQ7O0dBRUc7QUFDVSxRQUFBLHlDQUF5QyxHQUFhO0lBQ2pFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRztDQUN6QyxDQUFDO0FBMkZGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlDRztBQUNILE1BQWEsbUJBQW9CLFNBQVEsOEJBQWE7SUFvQnBEOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBK0I7UUFDdkUsc0NBQXNDO1FBQ3RDLElBQUksS0FBSyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QyxJQUNFLENBQUMsaURBQXlDLENBQUMsUUFBUSxDQUNqRCxLQUFLLENBQUMsZUFBZSxDQUN0QixFQUNELENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixrQ0FBa0MsaURBQXlDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQzlGLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELDJDQUEyQztRQUMzQyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLGtCQUFrQixHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNuRSxNQUFNLElBQUksS0FB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O2dCQUNqRCwrQkFBK0IsRUFDN0IsVUFBVSxDQUFDLCtCQUErQixJQUFJLFNBQVM7Z0JBQ3pELDJCQUEyQixFQUN6QixVQUFVLENBQUMsMkJBQTJCLElBQUksU0FBUzthQUN0RDtTQUNGLENBQUM7UUFFRiw0Q0FBNEM7UUFDNUMsSUFBSSxVQUFVLENBQUMsa0JBQWtCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxVQUFVLENBQUMsa0JBQWtCLENBQUM7UUFDckUsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDO1FBQ2pFLENBQUM7UUFFRCxJQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNqRSxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsK0JBQStCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQywrQkFBK0I7Z0JBQzdDLFVBQVUsQ0FBQywrQkFBK0IsQ0FBQztRQUMvQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sZUFBZSxDQUFDLEtBQVU7UUFDbEMsT0FBUSxLQUFrQyxDQUFDLGVBQWUsQ0FBQztJQUM3RCxDQUFDOztBQXpMSCxrREEwTEM7OztBQXpMQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQix3REFBeUIsRUFDekIsZ0VBQWlDLENBQ2xDLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBpbXBsZW1lbnRhdGlvbiB1c2luZyBBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBBenVyZSBBcHBsaWNhdGlvbiBJbnNpZ2h0c1xuICogY29tcG9uZW50cyB0aGF0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uIG1hbmFnZW1lbnQsIHNjaGVtYSB2YWxpZGF0aW9uLCBhbmRcbiAqIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDIwLTAyLTAyIChBY3RpdmUsIExhdGVzdClcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBGdWxsIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICogLSBXb3Jrc3BhY2UtYmFzZWQgQXBwbGljYXRpb24gSW5zaWdodHMgKGNsYXNzaWMgbW9kZSBpcyByZXRpcmVkKVxuICogLSBDb25maWd1cmFibGUgc2FtcGxpbmcsIHJldGVudGlvbiwgSVAgbWFza2luZywgYW5kIG5ldHdvcmsgYWNjZXNzXG4gKi9cblxuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQUxMX0FQUExJQ0FUSU9OX0lOU0lHSFRTX1ZFUlNJT05TLFxuICBBUFBMSUNBVElPTl9JTlNJR0hUU19UWVBFLFxufSBmcm9tIFwiLi9hcHBsaWNhdGlvbi1pbnNpZ2h0cy1zY2hlbWFzXCI7XG5pbXBvcnQge1xuICBBemFwaVJlc291cmNlLFxuICBBemFwaVJlc291cmNlUHJvcHMsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi9hemFwaS9hemFwaS1yZXNvdXJjZVwiO1xuaW1wb3J0IHsgQXBpU2NoZW1hIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuXG4vKipcbiAqIFN1cHBvcnRlZCBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBhcHBsaWNhdGlvbiB0eXBlc1xuICpcbiAqIERldGVybWluZXMgaG93IHRlbGVtZXRyeSBpcyBwcm9jZXNzZWQgYW5kIHZpc3VhbGl6ZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uSW5zaWdodHNBcHBsaWNhdGlvblR5cGUgPVxuICB8IFwid2ViXCJcbiAgfCBcIm90aGVyXCJcbiAgfCBcImphdmFcIlxuICB8IFwiTW9iaWxlQ2VudGVyXCJcbiAgfCBcIk5vZGUuSlNcIlxuICB8IFwiaW9zXCJcbiAgfCBcInN0b3JlXCI7XG5cbi8qKlxuICogQWxsb3dlZCByZXRlbnRpb24gdmFsdWVzIChpbiBkYXlzKSBmb3IgQXBwbGljYXRpb24gSW5zaWdodHNcbiAqL1xuZXhwb3J0IGNvbnN0IEFQUExJQ0FUSU9OX0lOU0lHSFRTX1ZBTElEX1JFVEVOVElPTl9EQVlTOiBudW1iZXJbXSA9IFtcbiAgMzAsIDYwLCA5MCwgMTIwLCAxODAsIDI3MCwgMzY1LCA1NTAsIDczMCxcbl07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIHVuaWZpZWQgQXp1cmUgQXBwbGljYXRpb24gSW5zaWdodHMgY29tcG9uZW50XG4gKlxuICogRXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMgd2l0aCBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25JbnNpZ2h0c1Byb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFJlc291cmNlIEdyb3VwIElEIHdoZXJlIHRoZSBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBjb21wb25lbnQgd2lsbCBiZSBjcmVhdGVkXG4gICAqIFRoZSBjb21wb25lbnQgd2lsbCBiZSBjcmVhdGVkIGFzIGEgY2hpbGQgb2YgdGhpcyByZXNvdXJjZSBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIElEIG9mIHRoZSBMb2cgQW5hbHl0aWNzIHdvcmtzcGFjZSB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIGNvbXBvbmVudFxuICAgKlxuICAgKiBSZXF1aXJlZCBmb3Igd29ya3NwYWNlLWJhc2VkIEFwcGxpY2F0aW9uIEluc2lnaHRzICh0aGUgb25seSBzdXBwb3J0ZWQgbW9kZVxuICAgKiBzaW5jZSB0aGUgY2xhc3NpYyBtb2RlIHdhcyByZXRpcmVkIG9uIEZlYnJ1YXJ5IDI5LCAyMDI0KS5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtzcGFjZVJlc291cmNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVHlwZSBvZiBhcHBsaWNhdGlvbiBiZWluZyBtb25pdG9yZWRcbiAgICpcbiAgICogRGV0ZXJtaW5lcyBob3cgdGVsZW1ldHJ5IGRhdGEgaXMgcHJvY2Vzc2VkIGFuZCB2aXN1YWxpemVkLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFwid2ViXCJcbiAgICovXG4gIHJlYWRvbmx5IGFwcGxpY2F0aW9uVHlwZT86IEFwcGxpY2F0aW9uSW5zaWdodHNBcHBsaWNhdGlvblR5cGU7XG5cbiAgLyoqXG4gICAqIFRlbGVtZXRyeSBkYXRhIHJldGVudGlvbiBwZXJpb2QgaW4gZGF5c1xuICAgKlxuICAgKiBBbGxvd2VkIHZhbHVlczogMzAsIDYwLCA5MCwgMTIwLCAxODAsIDI3MCwgMzY1LCA1NTAsIDczMC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSA5MFxuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uSW5EYXlzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUZWxlbWV0cnkgc2FtcGxpbmcgcGVyY2VudGFnZVxuICAgKlxuICAgKiBWYWx1ZSBiZXR3ZWVuIDAgYW5kIDEwMC4gV2hlbiBzZXQgYmVsb3cgMTAwLCBvbmx5IGEgc3Vic2V0IG9mIHRlbGVtZXRyeSBpc1xuICAgKiBjYXB0dXJlZCB0byByZWR1Y2UgaW5nZXN0aW9uIHZvbHVtZSBhbmQgY29zdC5cbiAgICovXG4gIHJlYWRvbmx5IHNhbXBsaW5nUGVyY2VudGFnZT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBJUCBhZGRyZXNzIG1hc2tpbmcgaXMgZGlzYWJsZWRcbiAgICpcbiAgICogV2hlbiBmYWxzZSAoZGVmYXVsdCksIEFwcGxpY2F0aW9uIEluc2lnaHRzIG1hc2tzIHRoZSBsYXN0IG9jdGV0IG9mIGNsaWVudFxuICAgKiBJUCBhZGRyZXNzZXMgdG8gcHJvdGVjdCBlbmQtdXNlciBwcml2YWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlSXBNYXNraW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHVibGljIG5ldHdvcmsgYWNjZXNzIGZvciBkYXRhIGluZ2VzdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFwiRW5hYmxlZFwiXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNOZXR3b3JrQWNjZXNzRm9ySW5nZXN0aW9uPzogXCJFbmFibGVkXCIgfCBcIkRpc2FibGVkXCI7XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBuZXR3b3JrIGFjY2VzcyBmb3IgcXVlcnlpbmcgdGVsZW1ldHJ5XG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgXCJFbmFibGVkXCJcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JRdWVyeT86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGxvY2FsIChpbnN0cnVtZW50YXRpb24ga2V5IGJhc2VkKSBhdXRoZW50aWNhdGlvbiBpcyBkaXNhYmxlZFxuICAgKlxuICAgKiBXaGVuIHRydWUsIG9ubHkgTWljcm9zb2Z0IEVudHJhIElEIChBenVyZSBBRCkgYXV0aGVudGljYXRpb24gY2FuIGJlIHVzZWQgdG9cbiAgICogaW5nZXN0IGFuZCBxdWVyeSB0ZWxlbWV0cnkuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVMb2NhbEF1dGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGb3JjZSB0aGUgdXNlIG9mIGEgY3VzdG9tZXItcHJvdmlkZWQgc3RvcmFnZSBhY2NvdW50IGZvciB0aGUgcHJvZmlsZXIgYW5kXG4gICAqIHNuYXBzaG90IGRlYnVnZ2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmb3JjZUN1c3RvbWVyU3RvcmFnZUZvclByb2ZpbGVyPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBVbmlmaWVkIEF6dXJlIEFwcGxpY2F0aW9uIEluc2lnaHRzIGltcGxlbWVudGF0aW9uXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHNpbmdsZSwgdmVyc2lvbi1hd2FyZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGF1dG9tYXRpY2FsbHlcbiAqIGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uXG4gKiB3aGlsZSBtYWludGFpbmluZyBmdWxsIEpTSUkgY29tcGxpYW5jZS5cbiAqXG4gKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBpcyBhbiBleHRlbnNpYmxlIEFwcGxpY2F0aW9uIFBlcmZvcm1hbmNlIE1hbmFnZW1lbnQgKEFQTSlcbiAqIHNlcnZpY2UgdGhhdCBoZWxwcyB5b3UgbW9uaXRvciBsaXZlIHdlYiBhcHBsaWNhdGlvbnMuIEl0IGF1dG9tYXRpY2FsbHkgZGV0ZWN0c1xuICogcGVyZm9ybWFuY2UgYW5vbWFsaWVzIGFuZCBpbmNsdWRlcyBwb3dlcmZ1bCBhbmFseXRpY3MgdG9vbHMgdG8gaGVscCBkaWFnbm9zZVxuICogaXNzdWVzIGFuZCB1bmRlcnN0YW5kIGFwcGxpY2F0aW9uIHVzYWdlLlxuICpcbiAqIFdvcmtzcGFjZS1iYXNlZCBBcHBsaWNhdGlvbiBJbnNpZ2h0cyByZXNvdXJjZXMgc2VuZCB0ZWxlbWV0cnkgdG8gYSBMb2dcbiAqIEFuYWx5dGljcyB3b3Jrc3BhY2UsIHdoZXJlIHlvdSBjYW4gdXNlIHRoZSBmdWxsIHBvd2VyIG9mIEt1c3RvIFF1ZXJ5IExhbmd1YWdlXG4gKiAoS1FMKSB0byBhbmFseXplIHlvdXIgZGF0YS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgQXBwbGljYXRpb24gSW5zaWdodHMgY29tcG9uZW50OlxuICogY29uc3QgYXBwSW5zaWdodHMgPSBuZXcgQXBwbGljYXRpb25JbnNpZ2h0cyh0aGlzLCBcIm15LWFwcGluc2lnaHRzXCIsIHtcbiAqICAgbmFtZTogXCJteS1hcHBsaWNhdGlvbi1pbnNpZ2h0c1wiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogICB3b3Jrc3BhY2VSZXNvdXJjZUlkOiB3b3Jrc3BhY2UuaWQsXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQXBwbGljYXRpb24gSW5zaWdodHMgd2l0aCBjdXN0b20gcmV0ZW50aW9uIGFuZCBzYW1wbGluZzpcbiAqIGNvbnN0IGFwcEluc2lnaHRzID0gbmV3IEFwcGxpY2F0aW9uSW5zaWdodHModGhpcywgXCJwcm9kdWN0aW9uLWFpXCIsIHtcbiAqICAgbmFtZTogXCJwcm9kdWN0aW9uLWFpXCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiAgIHdvcmtzcGFjZVJlc291cmNlSWQ6IHdvcmtzcGFjZS5pZCxcbiAqICAgYXBwbGljYXRpb25UeXBlOiBcIndlYlwiLFxuICogICByZXRlbnRpb25JbkRheXM6IDM2NSxcbiAqICAgc2FtcGxpbmdQZXJjZW50YWdlOiA1MCxcbiAqICAgdGFnczoge1xuICogICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIlxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25JbnNpZ2h0cyBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKFxuICAgICAgQVBQTElDQVRJT05fSU5TSUdIVFNfVFlQRSxcbiAgICAgIEFMTF9BUFBMSUNBVElPTl9JTlNJR0hUU19WRVJTSU9OUyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBwcm9wZXJ0aWVzIGZvciB0aGlzIEFwcGxpY2F0aW9uIEluc2lnaHRzIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcHM6IEFwcGxpY2F0aW9uSW5zaWdodHNQcm9wcztcblxuICAvLyBPdXRwdXQgcHJvcGVydGllcyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nXG4gIHB1YmxpYyByZWFkb25seSBpZE91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZU91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdHJ1bWVudGF0aW9uS2V5T3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uU3RyaW5nT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBhcHBJZE91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIEFwcGxpY2F0aW9uIEluc2lnaHRzIGNvbXBvbmVudCB1c2luZyB0aGUgQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAgICpcbiAgICogVGhlIGNvbnN0cnVjdG9yIGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uIHJlc29sdXRpb24sIHNjaGVtYSByZWdpc3RyYXRpb24sXG4gICAqIHZhbGlkYXRpb24sIGFuZCByZXNvdXJjZSBjcmVhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgaW5zdGFuY2VcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgQXBwbGljYXRpb24gSW5zaWdodHMgY29tcG9uZW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwbGljYXRpb25JbnNpZ2h0c1Byb3BzKSB7XG4gICAgLy8gVmFsaWRhdGUgcmV0ZW50aW9uIGRheXMgaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMucmV0ZW50aW9uSW5EYXlzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIUFQUExJQ0FUSU9OX0lOU0lHSFRTX1ZBTElEX1JFVEVOVElPTl9EQVlTLmluY2x1ZGVzKFxuICAgICAgICAgIHByb3BzLnJldGVudGlvbkluRGF5cyxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgcmV0ZW50aW9uSW5EYXlzIG11c3QgYmUgb25lIG9mICR7QVBQTElDQVRJT05fSU5TSUdIVFNfVkFMSURfUkVURU5USU9OX0RBWVMuam9pbihcIiwgXCIpfSBkYXlzYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBzYW1wbGluZyBwZXJjZW50YWdlIGlmIHByb3ZpZGVkXG4gICAgaWYgKHByb3BzLnNhbXBsaW5nUGVyY2VudGFnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAocHJvcHMuc2FtcGxpbmdQZXJjZW50YWdlIDwgMCB8fCBwcm9wcy5zYW1wbGluZ1BlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic2FtcGxpbmdQZXJjZW50YWdlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAxMDBcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICAvLyBDcmVhdGUgVGVycmFmb3JtIG91dHB1dHMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZyBmcm9tIG90aGVyIHJlc291cmNlc1xuICAgIHRoaXMuaWRPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwiaWRcIiwge1xuICAgICAgdmFsdWU6IHRoaXMuaWQsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgSUQgb2YgdGhlIEFwcGxpY2F0aW9uIEluc2lnaHRzIGNvbXBvbmVudFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIEFwcGxpY2F0aW9uIEluc2lnaHRzIGNvbXBvbmVudFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnN0cnVtZW50YXRpb25LZXlPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwiaW5zdHJ1bWVudGF0aW9uX2tleVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5JbnN0cnVtZW50YXRpb25LZXl9YCxcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgXCJUaGUgaW5zdHJ1bWVudGF0aW9uIGtleSBvZiB0aGUgQXBwbGljYXRpb24gSW5zaWdodHMgY29tcG9uZW50XCIsXG4gICAgICAgIHNlbnNpdGl2ZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuY29ubmVjdGlvblN0cmluZ091dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJjb25uZWN0aW9uX3N0cmluZ1wiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5Db25uZWN0aW9uU3RyaW5nfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgIFwiVGhlIGNvbm5lY3Rpb24gc3RyaW5nIG9mIHRoZSBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBjb21wb25lbnRcIixcbiAgICAgICAgc2Vuc2l0aXZlOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5hcHBJZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJhcHBfaWRcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMuQXBwSWR9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBBcHAgSUQgb2YgdGhlIEFwcGxpY2F0aW9uIEluc2lnaHRzIGNvbXBvbmVudFwiLFxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgbG9naWNhbCBJRHNcbiAgICB0aGlzLmlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gICAgdGhpcy5uYW1lT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibmFtZVwiKTtcbiAgICB0aGlzLmluc3RydW1lbnRhdGlvbktleU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImluc3RydW1lbnRhdGlvbl9rZXlcIik7XG4gICAgdGhpcy5jb25uZWN0aW9uU3RyaW5nT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiY29ubmVjdGlvbl9zdHJpbmdcIik7XG4gICAgdGhpcy5hcHBJZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImFwcF9pZFwiKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJFUVVJUkVEIEFCU1RSQUNUIE1FVEhPRFMgRlJPTSBBemFwaVJlc291cmNlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICogUmV0dXJucyB0aGUgbGF0ZXN0IHN0YWJsZSB2ZXJzaW9uIGFzIHRoZSBkZWZhdWx0XG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCIyMDIwLTAyLTAyXCI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQXp1cmUgcmVzb3VyY2UgdHlwZSBmb3IgQXBwbGljYXRpb24gSW5zaWdodHNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQVBQTElDQVRJT05fSU5TSUdIVFNfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKiBVc2VzIHRoZSBmcmFtZXdvcmsncyBzY2hlbWEgcmVzb2x1dGlvbiB0byBnZXQgdGhlIGFwcHJvcHJpYXRlIHNjaGVtYVxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIHJlc291cmNlIHR5cGUgcmVxdWlyZXMgYSBsb2NhdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIHJlcXVpcmVzTG9jYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgcmVzb3VyY2UgYm9keSBmb3IgdGhlIEF6dXJlIEFQSSBjYWxsXG4gICAqIFRyYW5zZm9ybXMgdGhlIGlucHV0IHByb3BlcnRpZXMgaW50byB0aGUgSlNPTiBmb3JtYXQgZXhwZWN0ZWQgYnkgQXp1cmUgUkVTVCBBUElcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIEFwcGxpY2F0aW9uSW5zaWdodHNQcm9wcztcblxuICAgIGNvbnN0IGJvZHk6IGFueSA9IHtcbiAgICAgIGtpbmQ6IFwid2ViXCIsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIEFwcGxpY2F0aW9uX1R5cGU6IHR5cGVkUHJvcHMuYXBwbGljYXRpb25UeXBlID8/IFwid2ViXCIsXG4gICAgICAgIFdvcmtzcGFjZVJlc291cmNlSWQ6IHR5cGVkUHJvcHMud29ya3NwYWNlUmVzb3VyY2VJZCxcbiAgICAgICAgUmV0ZW50aW9uSW5EYXlzOiB0eXBlZFByb3BzLnJldGVudGlvbkluRGF5cyA/PyA5MCxcbiAgICAgICAgcHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvbjpcbiAgICAgICAgICB0eXBlZFByb3BzLnB1YmxpY05ldHdvcmtBY2Nlc3NGb3JJbmdlc3Rpb24gPz8gXCJFbmFibGVkXCIsXG4gICAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JRdWVyeTpcbiAgICAgICAgICB0eXBlZFByb3BzLnB1YmxpY05ldHdvcmtBY2Nlc3NGb3JRdWVyeSA/PyBcIkVuYWJsZWRcIixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIEFkZCBvcHRpb25hbCBwcm9wZXJ0aWVzIG9ubHkgaWYgc3BlY2lmaWVkXG4gICAgaWYgKHR5cGVkUHJvcHMuc2FtcGxpbmdQZXJjZW50YWdlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy5TYW1wbGluZ1BlcmNlbnRhZ2UgPSB0eXBlZFByb3BzLnNhbXBsaW5nUGVyY2VudGFnZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZWRQcm9wcy5kaXNhYmxlSXBNYXNraW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy5EaXNhYmxlSXBNYXNraW5nID0gdHlwZWRQcm9wcy5kaXNhYmxlSXBNYXNraW5nO1xuICAgIH1cblxuICAgIGlmICh0eXBlZFByb3BzLmRpc2FibGVMb2NhbEF1dGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgYm9keS5wcm9wZXJ0aWVzLkRpc2FibGVMb2NhbEF1dGggPSB0eXBlZFByb3BzLmRpc2FibGVMb2NhbEF1dGg7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVkUHJvcHMuZm9yY2VDdXN0b21lclN0b3JhZ2VGb3JQcm9maWxlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBib2R5LnByb3BlcnRpZXMuRm9yY2VDdXN0b21lclN0b3JhZ2VGb3JQcm9maWxlciA9XG4gICAgICAgIHR5cGVkUHJvcHMuZm9yY2VDdXN0b21lclN0b3JhZ2VGb3JQcm9maWxlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gYm9keTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgcGFyZW50IHJlc291cmNlIElEIGZvciBBcHBsaWNhdGlvbiBJbnNpZ2h0c1xuICAgKiBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBpcyBhIHRvcC1sZXZlbCByZXNvdXJjZSB3aXRoaW4gYSByZXNvdXJjZSBncm91cFxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgcmVzb3VyY2UgcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyBUaGUgcGFyZW50IHJlc291cmNlIElEICh0aGUgcmVzb3VyY2UgZ3JvdXApXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZVBhcmVudElkKHByb3BzOiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiAocHJvcHMgYXMgQXBwbGljYXRpb25JbnNpZ2h0c1Byb3BzKS5yZXNvdXJjZUdyb3VwSWQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Azure Application Insights construct exports
3
+ */
4
+ export * from "./application-insights-schemas";
5
+ export * from "./application-insights";
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /**
3
+ * Azure Application Insights construct exports
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./application-insights-schemas"), exports);
21
+ __exportStar(require("./application-insights"), exports);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtYXBwbGljYXRpb25pbnNpZ2h0cy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsaUVBQStDO0FBQy9DLHlEQUF1QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXp1cmUgQXBwbGljYXRpb24gSW5zaWdodHMgY29uc3RydWN0IGV4cG9ydHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9hcHBsaWNhdGlvbi1pbnNpZ2h0cy1zY2hlbWFzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hcHBsaWNhdGlvbi1pbnNpZ2h0c1wiO1xuIl19
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Integration test for Azure Application Insights
3
+ *
4
+ * This test demonstrates basic usage of the ApplicationInsights construct
5
+ * and validates deployment, idempotency, and cleanup.
6
+ *
7
+ * Run with: npm run integration:nostream
8
+ */
9
+ import "cdktf/lib/testing/adapters/jest";
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ /**
3
+ * Integration test for Azure Application Insights
4
+ *
5
+ * This test demonstrates basic usage of the ApplicationInsights construct
6
+ * and validates deployment, idempotency, and cleanup.
7
+ *
8
+ * Run with: npm run integration:nostream
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ const cdktf_1 = require("cdktf");
12
+ require("cdktf/lib/testing/adapters/jest");
13
+ const azure_loganalyticsworkspace_1 = require("../../azure-loganalyticsworkspace");
14
+ const azure_resourcegroup_1 = require("../../azure-resourcegroup");
15
+ const provider_1 = require("../../core-azure/lib/azapi/providers-azapi/provider");
16
+ const testing_1 = require("../../testing");
17
+ const application_insights_1 = require("../lib/application-insights");
18
+ /**
19
+ * Example stack demonstrating Application Insights usage
20
+ */
21
+ class ApplicationInsightsExampleStack extends cdktf_1.TerraformStack {
22
+ constructor(scope, id) {
23
+ super(scope, id);
24
+ // Configure AZAPI provider
25
+ new provider_1.AzapiProvider(this, "azapi", {});
26
+ // Create a resource group
27
+ const resourceGroup = new azure_resourcegroup_1.ResourceGroup(this, "example-rg", {
28
+ name: "ai-example-rg",
29
+ location: "eastus",
30
+ tags: {
31
+ environment: "example",
32
+ purpose: "integration-test",
33
+ },
34
+ });
35
+ // Create a Log Analytics Workspace (required for workspace-based App Insights)
36
+ const workspace = new azure_loganalyticsworkspace_1.LogAnalyticsWorkspace(this, "example-workspace", {
37
+ name: "ai-example-law",
38
+ location: resourceGroup.props.location,
39
+ resourceGroupId: resourceGroup.id,
40
+ retentionInDays: 30,
41
+ tags: {
42
+ purpose: "integration-test",
43
+ },
44
+ });
45
+ // Example 1: Basic Application Insights component
46
+ new application_insights_1.ApplicationInsights(this, "basic-appinsights", {
47
+ name: "ai-basic-example",
48
+ location: resourceGroup.props.location,
49
+ resourceGroupId: resourceGroup.id,
50
+ workspaceResourceId: workspace.id,
51
+ tags: {
52
+ example: "basic",
53
+ },
54
+ });
55
+ // Example 2: Application Insights with custom configuration
56
+ new application_insights_1.ApplicationInsights(this, "configured-appinsights", {
57
+ name: "ai-configured-example",
58
+ location: resourceGroup.props.location,
59
+ resourceGroupId: resourceGroup.id,
60
+ workspaceResourceId: workspace.id,
61
+ applicationType: "web",
62
+ retentionInDays: 60,
63
+ samplingPercentage: 75,
64
+ disableIpMasking: false,
65
+ apiVersion: "2020-02-02",
66
+ tags: {
67
+ example: "configured",
68
+ },
69
+ });
70
+ }
71
+ }
72
+ describe("Application Insights Integration Test", () => {
73
+ it("should deploy, validate idempotency, and cleanup Application Insights resources", () => {
74
+ const app = cdktf_1.Testing.app();
75
+ const stack = new ApplicationInsightsExampleStack(app, "test-application-insights");
76
+ const synthesized = cdktf_1.Testing.fullSynth(stack);
77
+ // This will:
78
+ // 1. Run terraform apply to deploy resources
79
+ // 2. Run terraform plan to check idempotency (no changes expected)
80
+ // 3. Run terraform destroy to cleanup resources
81
+ (0, testing_1.TerraformApplyCheckAndDestroy)(synthesized);
82
+ }, 1200000); // 20 minute timeout for deployment and cleanup
83
+ });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24taW5zaWdodHMuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtYXBwbGljYXRpb25pbnNpZ2h0cy90ZXN0L2FwcGxpY2F0aW9uLWluc2lnaHRzLmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQUVILGlDQUFnRDtBQUVoRCwyQ0FBeUM7QUFDekMsbUZBQTBFO0FBQzFFLG1FQUEwRDtBQUMxRCxrRkFBb0Y7QUFDcEYsMkNBQThEO0FBQzlELHNFQUFrRTtBQUVsRTs7R0FFRztBQUNILE1BQU0sK0JBQWdDLFNBQVEsc0JBQWM7SUFDMUQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQiwyQkFBMkI7UUFDM0IsSUFBSSx3QkFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckMsMEJBQTBCO1FBQzFCLE1BQU0sYUFBYSxHQUFHLElBQUksbUNBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQzFELElBQUksRUFBRSxlQUFlO1lBQ3JCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRTtnQkFDSixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLGtCQUFrQjthQUM1QjtTQUNGLENBQUMsQ0FBQztRQUVILCtFQUErRTtRQUMvRSxNQUFNLFNBQVMsR0FBRyxJQUFJLG1EQUFxQixDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUNyRSxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVM7WUFDdkMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLGVBQWUsRUFBRSxFQUFFO1lBQ25CLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsa0JBQWtCO2FBQzVCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsa0RBQWtEO1FBQ2xELElBQUksMENBQW1CLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQ2pELElBQUksRUFBRSxrQkFBa0I7WUFDeEIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUztZQUN2QyxlQUFlLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDakMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDakMsSUFBSSxFQUFFO2dCQUNKLE9BQU8sRUFBRSxPQUFPO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsNERBQTREO1FBQzVELElBQUksMENBQW1CLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFO1lBQ3RELElBQUksRUFBRSx1QkFBdUI7WUFDN0IsUUFBUSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUztZQUN2QyxlQUFlLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDakMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDakMsZUFBZSxFQUFFLEtBQUs7WUFDdEIsZUFBZSxFQUFFLEVBQUU7WUFDbkIsa0JBQWtCLEVBQUUsRUFBRTtZQUN0QixnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLFVBQVUsRUFBRSxZQUFZO1lBQ3hCLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsWUFBWTthQUN0QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVELFFBQVEsQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7SUFDckQsRUFBRSxDQUFDLGlGQUFpRixFQUFFLEdBQUcsRUFBRTtRQUN6RixNQUFNLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSwrQkFBK0IsQ0FDL0MsR0FBRyxFQUNILDJCQUEyQixDQUM1QixDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsZUFBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxhQUFhO1FBQ2IsNkNBQTZDO1FBQzdDLG1FQUFtRTtRQUNuRSxnREFBZ0Q7UUFDaEQsSUFBQSx1Q0FBNkIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQywrQ0FBK0M7QUFDOUQsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVncmF0aW9uIHRlc3QgZm9yIEF6dXJlIEFwcGxpY2F0aW9uIEluc2lnaHRzXG4gKlxuICogVGhpcyB0ZXN0IGRlbW9uc3RyYXRlcyBiYXNpYyB1c2FnZSBvZiB0aGUgQXBwbGljYXRpb25JbnNpZ2h0cyBjb25zdHJ1Y3RcbiAqIGFuZCB2YWxpZGF0ZXMgZGVwbG95bWVudCwgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwLlxuICpcbiAqIFJ1biB3aXRoOiBucG0gcnVuIGludGVncmF0aW9uOm5vc3RyZWFtXG4gKi9cblxuaW1wb3J0IHsgVGVzdGluZywgVGVycmFmb3JtU3RhY2sgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5pbXBvcnQgeyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UgfSBmcm9tIFwiLi4vLi4vYXp1cmUtbG9nYW5hbHl0aWNzd29ya3NwYWNlXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIi4uLy4uL2F6dXJlLXJlc291cmNlZ3JvdXBcIjtcbmltcG9ydCB7IEF6YXBpUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvcHJvdmlkZXJzLWF6YXBpL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1BcHBseUNoZWNrQW5kRGVzdHJveSB9IGZyb20gXCIuLi8uLi90ZXN0aW5nXCI7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluc2lnaHRzIH0gZnJvbSBcIi4uL2xpYi9hcHBsaWNhdGlvbi1pbnNpZ2h0c1wiO1xuXG4vKipcbiAqIEV4YW1wbGUgc3RhY2sgZGVtb25zdHJhdGluZyBBcHBsaWNhdGlvbiBJbnNpZ2h0cyB1c2FnZVxuICovXG5jbGFzcyBBcHBsaWNhdGlvbkluc2lnaHRzRXhhbXBsZVN0YWNrIGV4dGVuZHMgVGVycmFmb3JtU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIENvbmZpZ3VyZSBBWkFQSSBwcm92aWRlclxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgLy8gQ3JlYXRlIGEgcmVzb3VyY2UgZ3JvdXBcbiAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAodGhpcywgXCJleGFtcGxlLXJnXCIsIHtcbiAgICAgIG5hbWU6IFwiYWktZXhhbXBsZS1yZ1wiLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIGVudmlyb25tZW50OiBcImV4YW1wbGVcIixcbiAgICAgICAgcHVycG9zZTogXCJpbnRlZ3JhdGlvbi10ZXN0XCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIGEgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgKHJlcXVpcmVkIGZvciB3b3Jrc3BhY2UtYmFzZWQgQXBwIEluc2lnaHRzKVxuICAgIGNvbnN0IHdvcmtzcGFjZSA9IG5ldyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UodGhpcywgXCJleGFtcGxlLXdvcmtzcGFjZVwiLCB7XG4gICAgICBuYW1lOiBcImFpLWV4YW1wbGUtbGF3XCIsXG4gICAgICBsb2NhdGlvbjogcmVzb3VyY2VHcm91cC5wcm9wcy5sb2NhdGlvbiEsXG4gICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICByZXRlbnRpb25JbkRheXM6IDMwLFxuICAgICAgdGFnczoge1xuICAgICAgICBwdXJwb3NlOiBcImludGVncmF0aW9uLXRlc3RcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDE6IEJhc2ljIEFwcGxpY2F0aW9uIEluc2lnaHRzIGNvbXBvbmVudFxuICAgIG5ldyBBcHBsaWNhdGlvbkluc2lnaHRzKHRoaXMsIFwiYmFzaWMtYXBwaW5zaWdodHNcIiwge1xuICAgICAgbmFtZTogXCJhaS1iYXNpYy1leGFtcGxlXCIsXG4gICAgICBsb2NhdGlvbjogcmVzb3VyY2VHcm91cC5wcm9wcy5sb2NhdGlvbiEsXG4gICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICB3b3Jrc3BhY2VSZXNvdXJjZUlkOiB3b3Jrc3BhY2UuaWQsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIGV4YW1wbGU6IFwiYmFzaWNcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDI6IEFwcGxpY2F0aW9uIEluc2lnaHRzIHdpdGggY3VzdG9tIGNvbmZpZ3VyYXRpb25cbiAgICBuZXcgQXBwbGljYXRpb25JbnNpZ2h0cyh0aGlzLCBcImNvbmZpZ3VyZWQtYXBwaW5zaWdodHNcIiwge1xuICAgICAgbmFtZTogXCJhaS1jb25maWd1cmVkLWV4YW1wbGVcIixcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHdvcmtzcGFjZVJlc291cmNlSWQ6IHdvcmtzcGFjZS5pZCxcbiAgICAgIGFwcGxpY2F0aW9uVHlwZTogXCJ3ZWJcIixcbiAgICAgIHJldGVudGlvbkluRGF5czogNjAsXG4gICAgICBzYW1wbGluZ1BlcmNlbnRhZ2U6IDc1LFxuICAgICAgZGlzYWJsZUlwTWFza2luZzogZmFsc2UsXG4gICAgICBhcGlWZXJzaW9uOiBcIjIwMjAtMDItMDJcIixcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgZXhhbXBsZTogXCJjb25maWd1cmVkXCIsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmRlc2NyaWJlKFwiQXBwbGljYXRpb24gSW5zaWdodHMgSW50ZWdyYXRpb24gVGVzdFwiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIGRlcGxveSwgdmFsaWRhdGUgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwIEFwcGxpY2F0aW9uIEluc2lnaHRzIHJlc291cmNlc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBBcHBsaWNhdGlvbkluc2lnaHRzRXhhbXBsZVN0YWNrKFxuICAgICAgYXBwLFxuICAgICAgXCJ0ZXN0LWFwcGxpY2F0aW9uLWluc2lnaHRzXCIsXG4gICAgKTtcbiAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3RpbmcuZnVsbFN5bnRoKHN0YWNrKTtcblxuICAgIC8vIFRoaXMgd2lsbDpcbiAgICAvLyAxLiBSdW4gdGVycmFmb3JtIGFwcGx5IHRvIGRlcGxveSByZXNvdXJjZXNcbiAgICAvLyAyLiBSdW4gdGVycmFmb3JtIHBsYW4gdG8gY2hlY2sgaWRlbXBvdGVuY3kgKG5vIGNoYW5nZXMgZXhwZWN0ZWQpXG4gICAgLy8gMy4gUnVuIHRlcnJhZm9ybSBkZXN0cm95IHRvIGNsZWFudXAgcmVzb3VyY2VzXG4gICAgVGVycmFmb3JtQXBwbHlDaGVja0FuZERlc3Ryb3koc3ludGhlc2l6ZWQpO1xuICB9LCAxMjAwMDAwKTsgLy8gMjAgbWludXRlIHRpbWVvdXQgZm9yIGRlcGxveW1lbnQgYW5kIGNsZWFudXBcbn0pO1xuIl19
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Comprehensive tests for the ApplicationInsights implementation
3
+ *
4
+ * This test suite validates the ApplicationInsights class using the AzapiResource framework.
5
+ * Tests cover automatic version resolution, explicit version pinning, schema validation,
6
+ * property configurations, and resource creation.
7
+ */
8
+ export {};