@microsoft/terraform-cdk-constructs 1.7.1 → 1.9.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 (121) hide show
  1. package/.jsii +46476 -27231
  2. package/API.md +68443 -28286
  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-diagnosticsettings/lib/diagnostic-settings.js +1 -1
  7. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +1 -1
  8. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +1 -1
  9. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +1 -1
  10. package/lib/azure-dnsresolver/lib/dns-resolver.js +1 -1
  11. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +1 -1
  12. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +1 -1
  13. package/lib/azure-dnszone/lib/dns-zone.js +1 -1
  14. package/lib/azure-dnszone/lib/index.d.ts +1 -0
  15. package/lib/azure-dnszone/lib/index.js +2 -1
  16. package/lib/azure-dnszone/lib/records/dns-record-schemas.d.ts +68 -0
  17. package/lib/azure-dnszone/lib/records/dns-record-schemas.js +813 -0
  18. package/lib/azure-dnszone/lib/records/dns-records.d.ts +688 -0
  19. package/lib/azure-dnszone/lib/records/dns-records.js +924 -0
  20. package/lib/azure-dnszone/lib/records/index.d.ts +19 -0
  21. package/lib/azure-dnszone/lib/records/index.js +38 -0
  22. package/lib/azure-dnszone/test/dns-records.integ.d.ts +21 -0
  23. package/lib/azure-dnszone/test/dns-records.integ.js +321 -0
  24. package/lib/azure-dnszone/test/dns-records.spec.d.ts +20 -0
  25. package/lib/azure-dnszone/test/dns-records.spec.js +950 -0
  26. package/lib/azure-loganalyticsworkspace/index.d.ts +6 -0
  27. package/lib/azure-loganalyticsworkspace/index.js +23 -0
  28. package/lib/azure-loganalyticsworkspace/lib/index.d.ts +5 -0
  29. package/lib/azure-loganalyticsworkspace/lib/index.js +22 -0
  30. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.d.ts +51 -0
  31. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.js +255 -0
  32. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +301 -0
  33. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +213 -0
  34. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +9 -0
  35. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +71 -0
  36. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.d.ts +8 -0
  37. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +504 -0
  38. package/lib/azure-metricalert/lib/metric-alert.js +1 -1
  39. package/lib/azure-networkinterface/lib/network-interface.js +1 -1
  40. package/lib/azure-networksecuritygroup/lib/network-security-group.js +1 -1
  41. package/lib/azure-networkwatcher/index.d.ts +14 -0
  42. package/lib/azure-networkwatcher/index.js +31 -0
  43. package/lib/azure-networkwatcher/lib/index.d.ts +5 -0
  44. package/lib/azure-networkwatcher/lib/index.js +22 -0
  45. package/lib/azure-networkwatcher/lib/network-watcher-schemas.d.ts +47 -0
  46. package/lib/azure-networkwatcher/lib/network-watcher-schemas.js +167 -0
  47. package/lib/azure-networkwatcher/lib/network-watcher.d.ts +181 -0
  48. package/lib/azure-networkwatcher/lib/network-watcher.js +187 -0
  49. package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +12 -0
  50. package/lib/azure-networkwatcher/test/network-watcher.integ.js +84 -0
  51. package/lib/azure-networkwatcher/test/network-watcher.spec.d.ts +8 -0
  52. package/lib/azure-networkwatcher/test/network-watcher.spec.js +312 -0
  53. package/lib/azure-policyassignment/lib/policy-assignment.js +1 -1
  54. package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
  55. package/lib/azure-policysetdefinition/index.d.ts +10 -0
  56. package/lib/azure-policysetdefinition/index.js +27 -0
  57. package/lib/azure-policysetdefinition/lib/index.d.ts +5 -0
  58. package/lib/azure-policysetdefinition/lib/index.js +22 -0
  59. package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.d.ts +50 -0
  60. package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.js +255 -0
  61. package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +426 -0
  62. package/lib/azure-policysetdefinition/lib/policy-set-definition.js +255 -0
  63. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +9 -0
  64. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +56 -0
  65. package/lib/azure-policysetdefinition/test/policy-set-definition.spec.d.ts +8 -0
  66. package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +745 -0
  67. package/lib/azure-privatednszone/lib/index.d.ts +1 -0
  68. package/lib/azure-privatednszone/lib/index.js +2 -1
  69. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +0 -2
  70. package/lib/azure-privatednszone/lib/private-dns-zone.js +6 -13
  71. package/lib/azure-privatednszone/lib/records/index.d.ts +7 -0
  72. package/lib/azure-privatednszone/lib/records/index.js +26 -0
  73. package/lib/azure-privatednszone/lib/records/private-dns-record-schemas.d.ts +52 -0
  74. package/lib/azure-privatednszone/lib/records/private-dns-record-schemas.js +683 -0
  75. package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +523 -0
  76. package/lib/azure-privatednszone/lib/records/private-dns-records.js +739 -0
  77. package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +19 -0
  78. package/lib/azure-privatednszone/test/private-dns-records.integ.js +245 -0
  79. package/lib/azure-privatednszone/test/private-dns-records.spec.d.ts +18 -0
  80. package/lib/azure-privatednszone/test/private-dns-records.spec.js +756 -0
  81. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +5 -5
  82. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +1 -1
  83. package/lib/azure-publicipaddress/lib/public-ip-address.js +1 -1
  84. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  85. package/lib/azure-roleassignment/lib/role-assignment.js +1 -1
  86. package/lib/azure-roledefinition/lib/role-definition.js +1 -1
  87. package/lib/azure-storageaccount/lib/storage-account.js +1 -1
  88. package/lib/azure-subnet/lib/subnet.js +1 -1
  89. package/lib/azure-virtualmachine/lib/virtual-machine.js +1 -1
  90. package/lib/azure-virtualnetwork/lib/virtual-network.js +1 -1
  91. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway-schemas.js +2 -2
  92. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +4 -2
  93. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +8 -5
  94. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +109 -1
  95. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +1 -1
  96. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +1 -1
  97. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +1 -1
  98. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +1 -1
  99. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +1 -1
  100. package/lib/azure-virtualnetworkmanager/lib/network-group.js +1 -1
  101. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +1 -1
  102. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +1 -1
  103. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +1 -1
  104. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +1 -1
  105. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +1 -1
  106. package/lib/core-azure/lib/azapi/azapi-resource.js +4 -4
  107. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
  108. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
  109. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +1 -1
  110. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
  111. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
  112. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
  113. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
  114. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  115. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  116. package/lib/index.d.ts +23 -0
  117. package/lib/index.js +25 -2
  118. package/lib/testing/index.js +2 -2
  119. package/lib/testing/lib/cleanup.js +1 -1
  120. package/lib/testing/lib/metadata.js +1 -1
  121. package/package.json +1 -1
@@ -219,7 +219,7 @@ class NetworkSecurityGroup extends azapi_resource_1.AzapiResource {
219
219
  }
220
220
  exports.NetworkSecurityGroup = NetworkSecurityGroup;
221
221
  _a = JSII_RTTI_SYMBOL_1;
222
- NetworkSecurityGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkSecurityGroup", version: "1.7.1" };
222
+ NetworkSecurityGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkSecurityGroup", version: "1.9.0" };
223
223
  (() => {
224
224
  azapi_resource_1.AzapiResource.registerSchemas(network_security_group_schemas_1.NETWORK_SECURITY_GROUP_TYPE, network_security_group_schemas_1.ALL_NETWORK_SECURITY_GROUP_VERSIONS);
225
225
  })();
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Azure Network Watcher module
3
+ *
4
+ * This module provides constructs for creating and managing Azure Network Watchers.
5
+ *
6
+ * Network Watcher is a regional service that provides network monitoring and diagnostic
7
+ * tools in Azure. It enables you to monitor and diagnose conditions at a network scenario
8
+ * level in, to, and from Azure.
9
+ *
10
+ * IMPORTANT: Azure only allows one Network Watcher per subscription per region.
11
+ * If you need Network Watcher functionality in multiple regions, you must create
12
+ * a separate Network Watcher for each region.
13
+ */
14
+ export * from "./lib";
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * Azure Network Watcher module
4
+ *
5
+ * This module provides constructs for creating and managing Azure Network Watchers.
6
+ *
7
+ * Network Watcher is a regional service that provides network monitoring and diagnostic
8
+ * tools in Azure. It enables you to monitor and diagnose conditions at a network scenario
9
+ * level in, to, and from Azure.
10
+ *
11
+ * IMPORTANT: Azure only allows one Network Watcher per subscription per region.
12
+ * If you need Network Watcher functionality in multiple regions, you must create
13
+ * a separate Network Watcher for each region.
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
27
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ __exportStar(require("./lib"), exports);
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtbmV0d29ya3dhdGNoZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7R0FZRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILHdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXp1cmUgTmV0d29yayBXYXRjaGVyIG1vZHVsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGNvbnN0cnVjdHMgZm9yIGNyZWF0aW5nIGFuZCBtYW5hZ2luZyBBenVyZSBOZXR3b3JrIFdhdGNoZXJzLlxuICpcbiAqIE5ldHdvcmsgV2F0Y2hlciBpcyBhIHJlZ2lvbmFsIHNlcnZpY2UgdGhhdCBwcm92aWRlcyBuZXR3b3JrIG1vbml0b3JpbmcgYW5kIGRpYWdub3N0aWNcbiAqIHRvb2xzIGluIEF6dXJlLiBJdCBlbmFibGVzIHlvdSB0byBtb25pdG9yIGFuZCBkaWFnbm9zZSBjb25kaXRpb25zIGF0IGEgbmV0d29yayBzY2VuYXJpb1xuICogbGV2ZWwgaW4sIHRvLCBhbmQgZnJvbSBBenVyZS5cbiAqXG4gKiBJTVBPUlRBTlQ6IEF6dXJlIG9ubHkgYWxsb3dzIG9uZSBOZXR3b3JrIFdhdGNoZXIgcGVyIHN1YnNjcmlwdGlvbiBwZXIgcmVnaW9uLlxuICogSWYgeW91IG5lZWQgTmV0d29yayBXYXRjaGVyIGZ1bmN0aW9uYWxpdHkgaW4gbXVsdGlwbGUgcmVnaW9ucywgeW91IG11c3QgY3JlYXRlXG4gKiBhIHNlcGFyYXRlIE5ldHdvcmsgV2F0Y2hlciBmb3IgZWFjaCByZWdpb24uXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vbGliXCI7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Azure Network Watcher construct exports
3
+ */
4
+ export * from "./network-watcher-schemas";
5
+ export * from "./network-watcher";
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /**
3
+ * Azure Network Watcher 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("./network-watcher-schemas"), exports);
21
+ __exportStar(require("./network-watcher"), exports);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbmV0d29ya3dhdGNoZXIvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDREQUEwQztBQUMxQyxvREFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF6dXJlIE5ldHdvcmsgV2F0Y2hlciBjb25zdHJ1Y3QgZXhwb3J0c1xuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL25ldHdvcmstd2F0Y2hlci1zY2hlbWFzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9uZXR3b3JrLXdhdGNoZXJcIjtcbiJdfQ==
@@ -0,0 +1,47 @@
1
+ /**
2
+ * API schemas for Azure Network Watcher across all supported versions
3
+ *
4
+ * This file defines the complete API schemas for Microsoft.Network/networkWatchers
5
+ * across all supported API versions. The schemas are used by the AzapiResource
6
+ * framework for validation, transformation, and version management.
7
+ *
8
+ * IMPORTANT: Azure only allows one Network Watcher per subscription per region.
9
+ * Network Watcher is primarily used as a dependency for other Network Watcher features like:
10
+ * - Flow Logs
11
+ * - Connection Monitor
12
+ * - Packet Capture
13
+ * - Network Diagnostic Tools
14
+ */
15
+ import { ApiSchema, VersionConfig } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
16
+ /**
17
+ * API Schema for Network Watcher version 2024-01-01
18
+ *
19
+ * This is the latest stable version for Network Watcher.
20
+ * Network Watcher is a relatively simple resource - it primarily serves as
21
+ * an anchor for Network Watcher features in a region.
22
+ */
23
+ export declare const NETWORK_WATCHER_SCHEMA_2024_01_01: ApiSchema;
24
+ /**
25
+ * API Schema for Network Watcher version 2023-11-01
26
+ *
27
+ * This is a stable version for backward compatibility.
28
+ * Network Watcher API is very stable with minimal changes between versions.
29
+ */
30
+ export declare const NETWORK_WATCHER_SCHEMA_2023_11_01: ApiSchema;
31
+ /**
32
+ * Version configuration for Network Watcher 2024-01-01
33
+ */
34
+ export declare const NETWORK_WATCHER_VERSION_2024_01_01: VersionConfig;
35
+ /**
36
+ * Version configuration for Network Watcher 2023-11-01
37
+ */
38
+ export declare const NETWORK_WATCHER_VERSION_2023_11_01: VersionConfig;
39
+ /**
40
+ * All supported Network Watcher versions for registration
41
+ * Ordered with latest stable version first
42
+ */
43
+ export declare const ALL_NETWORK_WATCHER_VERSIONS: VersionConfig[];
44
+ /**
45
+ * Resource type constant
46
+ */
47
+ export declare const NETWORK_WATCHER_TYPE = "Microsoft.Network/networkWatchers";
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ /**
3
+ * API schemas for Azure Network Watcher across all supported versions
4
+ *
5
+ * This file defines the complete API schemas for Microsoft.Network/networkWatchers
6
+ * across all supported API versions. The schemas are used by the AzapiResource
7
+ * framework for validation, transformation, and version management.
8
+ *
9
+ * IMPORTANT: Azure only allows one Network Watcher per subscription per region.
10
+ * Network Watcher is primarily used as a dependency for other Network Watcher features like:
11
+ * - Flow Logs
12
+ * - Connection Monitor
13
+ * - Packet Capture
14
+ * - Network Diagnostic Tools
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.NETWORK_WATCHER_TYPE = exports.ALL_NETWORK_WATCHER_VERSIONS = exports.NETWORK_WATCHER_VERSION_2023_11_01 = exports.NETWORK_WATCHER_VERSION_2024_01_01 = exports.NETWORK_WATCHER_SCHEMA_2023_11_01 = exports.NETWORK_WATCHER_SCHEMA_2024_01_01 = void 0;
18
+ const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
19
+ // =============================================================================
20
+ // COMMON PROPERTY DEFINITIONS
21
+ // =============================================================================
22
+ /**
23
+ * Common property definitions shared across all Network Watcher versions
24
+ *
25
+ * Network Watcher is a relatively simple resource with minimal properties.
26
+ * It primarily serves as an anchor for Network Watcher features (Flow Logs,
27
+ * Connection Monitor, Packet Capture, etc.) in a specific region.
28
+ */
29
+ const COMMON_NETWORK_WATCHER_PROPERTIES = {
30
+ name: {
31
+ dataType: version_interfaces_1.PropertyType.STRING,
32
+ required: true,
33
+ description: "Name of the Network Watcher",
34
+ validation: [
35
+ {
36
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
37
+ message: "Name is required",
38
+ },
39
+ {
40
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
41
+ value: "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,78}[a-zA-Z0-9_]$",
42
+ message: "Network Watcher name must be 1-80 characters, start with a letter or number, end with a letter, number, or underscore, and contain only letters, numbers, underscores, periods, and hyphens",
43
+ },
44
+ ],
45
+ },
46
+ location: {
47
+ dataType: version_interfaces_1.PropertyType.STRING,
48
+ required: true,
49
+ description: "Azure region where the Network Watcher will be created. Note: Only one Network Watcher per region per subscription is allowed.",
50
+ },
51
+ };
52
+ // =============================================================================
53
+ // VERSION-SPECIFIC SCHEMAS
54
+ // =============================================================================
55
+ /**
56
+ * API Schema for Network Watcher version 2024-01-01
57
+ *
58
+ * This is the latest stable version for Network Watcher.
59
+ * Network Watcher is a relatively simple resource - it primarily serves as
60
+ * an anchor for Network Watcher features in a region.
61
+ */
62
+ exports.NETWORK_WATCHER_SCHEMA_2024_01_01 = {
63
+ resourceType: "Microsoft.Network/networkWatchers",
64
+ version: "2024-01-01",
65
+ properties: {
66
+ ...COMMON_NETWORK_WATCHER_PROPERTIES,
67
+ },
68
+ required: ["name", "location"],
69
+ optional: [],
70
+ deprecated: [],
71
+ transformationRules: {},
72
+ validationRules: [
73
+ {
74
+ property: "name",
75
+ rules: [
76
+ {
77
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
78
+ message: "Name is required for Network Watcher",
79
+ },
80
+ ],
81
+ },
82
+ ],
83
+ };
84
+ /**
85
+ * API Schema for Network Watcher version 2023-11-01
86
+ *
87
+ * This is a stable version for backward compatibility.
88
+ * Network Watcher API is very stable with minimal changes between versions.
89
+ */
90
+ exports.NETWORK_WATCHER_SCHEMA_2023_11_01 = {
91
+ resourceType: "Microsoft.Network/networkWatchers",
92
+ version: "2023-11-01",
93
+ properties: {
94
+ ...COMMON_NETWORK_WATCHER_PROPERTIES,
95
+ },
96
+ required: ["name", "location"],
97
+ optional: [],
98
+ deprecated: [],
99
+ transformationRules: {},
100
+ validationRules: [
101
+ {
102
+ property: "name",
103
+ rules: [
104
+ {
105
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
106
+ message: "Name is required for Network Watcher",
107
+ },
108
+ ],
109
+ },
110
+ ],
111
+ };
112
+ // =============================================================================
113
+ // VERSION CONFIGURATIONS
114
+ // =============================================================================
115
+ /**
116
+ * Version configuration for Network Watcher 2024-01-01
117
+ */
118
+ exports.NETWORK_WATCHER_VERSION_2024_01_01 = {
119
+ version: "2024-01-01",
120
+ schema: exports.NETWORK_WATCHER_SCHEMA_2024_01_01,
121
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
122
+ releaseDate: "2024-01-01",
123
+ deprecationDate: undefined,
124
+ sunsetDate: undefined,
125
+ breakingChanges: [],
126
+ migrationGuide: "/docs/network-watcher/migration-2024-01-01",
127
+ changeLog: [
128
+ {
129
+ changeType: "updated",
130
+ description: "Latest stable API version",
131
+ breaking: false,
132
+ },
133
+ ],
134
+ };
135
+ /**
136
+ * Version configuration for Network Watcher 2023-11-01
137
+ */
138
+ exports.NETWORK_WATCHER_VERSION_2023_11_01 = {
139
+ version: "2023-11-01",
140
+ schema: exports.NETWORK_WATCHER_SCHEMA_2023_11_01,
141
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
142
+ releaseDate: "2023-11-01",
143
+ deprecationDate: undefined,
144
+ sunsetDate: undefined,
145
+ breakingChanges: [],
146
+ migrationGuide: "/docs/network-watcher/migration-2023-11-01",
147
+ changeLog: [
148
+ {
149
+ changeType: "updated",
150
+ description: "Stable API version for backward compatibility",
151
+ breaking: false,
152
+ },
153
+ ],
154
+ };
155
+ /**
156
+ * All supported Network Watcher versions for registration
157
+ * Ordered with latest stable version first
158
+ */
159
+ exports.ALL_NETWORK_WATCHER_VERSIONS = [
160
+ exports.NETWORK_WATCHER_VERSION_2024_01_01,
161
+ exports.NETWORK_WATCHER_VERSION_2023_11_01,
162
+ ];
163
+ /**
164
+ * Resource type constant
165
+ */
166
+ exports.NETWORK_WATCHER_TYPE = "Microsoft.Network/networkWatchers";
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay13YXRjaGVyLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbmV0d29ya3dhdGNoZXIvbGliL25ldHdvcmstd2F0Y2hlci1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHOzs7QUFFSCwyR0FPNEU7QUFFNUUsZ0ZBQWdGO0FBQ2hGLDhCQUE4QjtBQUM5QixnRkFBZ0Y7QUFFaEY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxpQ0FBaUMsR0FFbkM7SUFDRixJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUFFLDZCQUE2QjtRQUMxQyxVQUFVLEVBQUU7WUFDVjtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtnQkFDckMsT0FBTyxFQUFFLGtCQUFrQjthQUM1QjtZQUNEO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxhQUFhO2dCQUMxQyxLQUFLLEVBQUUsK0NBQStDO2dCQUN0RCxPQUFPLEVBQ0wsNkxBQTZMO2FBQ2hNO1NBQ0Y7S0FDRjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQ1QsZ0lBQWdJO0tBQ25JO0NBQ0YsQ0FBQztBQUVGLGdGQUFnRjtBQUNoRiwyQkFBMkI7QUFDM0IsZ0ZBQWdGO0FBRWhGOzs7Ozs7R0FNRztBQUNVLFFBQUEsaUNBQWlDLEdBQWM7SUFDMUQsWUFBWSxFQUFFLG1DQUFtQztJQUNqRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixVQUFVLEVBQUU7UUFDVixHQUFHLGlDQUFpQztLQUNyQztJQUNELFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDOUIsUUFBUSxFQUFFLEVBQUU7SUFDWixVQUFVLEVBQUUsRUFBRTtJQUNkLG1CQUFtQixFQUFFLEVBQUU7SUFDdkIsZUFBZSxFQUFFO1FBQ2Y7WUFDRSxRQUFRLEVBQUUsTUFBTTtZQUNoQixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7b0JBQ3JDLE9BQU8sRUFBRSxzQ0FBc0M7aUJBQ2hEO2FBQ0Y7U0FDRjtLQUNGO0NBQ0YsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ1UsUUFBQSxpQ0FBaUMsR0FBYztJQUMxRCxZQUFZLEVBQUUsbUNBQW1DO0lBQ2pELE9BQU8sRUFBRSxZQUFZO0lBQ3JCLFVBQVUsRUFBRTtRQUNWLEdBQUcsaUNBQWlDO0tBQ3JDO0lBQ0QsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUM5QixRQUFRLEVBQUUsRUFBRTtJQUNaLFVBQVUsRUFBRSxFQUFFO0lBQ2QsbUJBQW1CLEVBQUUsRUFBRTtJQUN2QixlQUFlLEVBQUU7UUFDZjtZQUNFLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtvQkFDckMsT0FBTyxFQUFFLHNDQUFzQztpQkFDaEQ7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsZ0ZBQWdGO0FBQ2hGLHlCQUF5QjtBQUN6QixnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDVSxRQUFBLGtDQUFrQyxHQUFrQjtJQUMvRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUseUNBQWlDO0lBQ3pDLFlBQVksRUFBRSx3Q0FBbUIsQ0FBQyxNQUFNO0lBQ3hDLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLGNBQWMsRUFBRSw0Q0FBNEM7SUFDNUQsU0FBUyxFQUFFO1FBQ1Q7WUFDRSxVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsMkJBQTJCO1lBQ3hDLFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLGtDQUFrQyxHQUFrQjtJQUMvRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUseUNBQWlDO0lBQ3pDLFlBQVksRUFBRSx3Q0FBbUIsQ0FBQyxNQUFNO0lBQ3hDLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLGNBQWMsRUFBRSw0Q0FBNEM7SUFDNUQsU0FBUyxFQUFFO1FBQ1Q7WUFDRSxVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsK0NBQStDO1lBQzVELFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSw0QkFBNEIsR0FBb0I7SUFDM0QsMENBQWtDO0lBQ2xDLDBDQUFrQztDQUNuQyxDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBUEkgc2NoZW1hcyBmb3IgQXp1cmUgTmV0d29yayBXYXRjaGVyIGFjcm9zcyBhbGwgc3VwcG9ydGVkIHZlcnNpb25zXG4gKlxuICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIGNvbXBsZXRlIEFQSSBzY2hlbWFzIGZvciBNaWNyb3NvZnQuTmV0d29yay9uZXR3b3JrV2F0Y2hlcnNcbiAqIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy4gVGhlIHNjaGVtYXMgYXJlIHVzZWQgYnkgdGhlIEF6YXBpUmVzb3VyY2VcbiAqIGZyYW1ld29yayBmb3IgdmFsaWRhdGlvbiwgdHJhbnNmb3JtYXRpb24sIGFuZCB2ZXJzaW9uIG1hbmFnZW1lbnQuXG4gKlxuICogSU1QT1JUQU5UOiBBenVyZSBvbmx5IGFsbG93cyBvbmUgTmV0d29yayBXYXRjaGVyIHBlciBzdWJzY3JpcHRpb24gcGVyIHJlZ2lvbi5cbiAqIE5ldHdvcmsgV2F0Y2hlciBpcyBwcmltYXJpbHkgdXNlZCBhcyBhIGRlcGVuZGVuY3kgZm9yIG90aGVyIE5ldHdvcmsgV2F0Y2hlciBmZWF0dXJlcyBsaWtlOlxuICogLSBGbG93IExvZ3NcbiAqIC0gQ29ubmVjdGlvbiBNb25pdG9yXG4gKiAtIFBhY2tldCBDYXB0dXJlXG4gKiAtIE5ldHdvcmsgRGlhZ25vc3RpYyBUb29sc1xuICovXG5cbmltcG9ydCB7XG4gIEFwaVNjaGVtYSxcbiAgUHJvcGVydHlEZWZpbml0aW9uLFxuICBQcm9wZXJ0eVR5cGUsXG4gIFZhbGlkYXRpb25SdWxlVHlwZSxcbiAgVmVyc2lvbkNvbmZpZyxcbiAgVmVyc2lvblN1cHBvcnRMZXZlbCxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ09NTU9OIFBST1BFUlRZIERFRklOSVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENvbW1vbiBwcm9wZXJ0eSBkZWZpbml0aW9ucyBzaGFyZWQgYWNyb3NzIGFsbCBOZXR3b3JrIFdhdGNoZXIgdmVyc2lvbnNcbiAqXG4gKiBOZXR3b3JrIFdhdGNoZXIgaXMgYSByZWxhdGl2ZWx5IHNpbXBsZSByZXNvdXJjZSB3aXRoIG1pbmltYWwgcHJvcGVydGllcy5cbiAqIEl0IHByaW1hcmlseSBzZXJ2ZXMgYXMgYW4gYW5jaG9yIGZvciBOZXR3b3JrIFdhdGNoZXIgZmVhdHVyZXMgKEZsb3cgTG9ncyxcbiAqIENvbm5lY3Rpb24gTW9uaXRvciwgUGFja2V0IENhcHR1cmUsIGV0Yy4pIGluIGEgc3BlY2lmaWMgcmVnaW9uLlxuICovXG5jb25zdCBDT01NT05fTkVUV09SS19XQVRDSEVSX1BST1BFUlRJRVM6IHtcbiAgW2tleTogc3RyaW5nXTogUHJvcGVydHlEZWZpbml0aW9uO1xufSA9IHtcbiAgbmFtZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOiBcIk5hbWUgb2YgdGhlIE5ldHdvcmsgV2F0Y2hlclwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl5bYS16QS1aMC05XVthLXpBLVowLTlfLi1dezAsNzh9W2EtekEtWjAtOV9dJFwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiTmV0d29yayBXYXRjaGVyIG5hbWUgbXVzdCBiZSAxLTgwIGNoYXJhY3RlcnMsIHN0YXJ0IHdpdGggYSBsZXR0ZXIgb3IgbnVtYmVyLCBlbmQgd2l0aCBhIGxldHRlciwgbnVtYmVyLCBvciB1bmRlcnNjb3JlLCBhbmQgY29udGFpbiBvbmx5IGxldHRlcnMsIG51bWJlcnMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgaHlwaGVuc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBsb2NhdGlvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJBenVyZSByZWdpb24gd2hlcmUgdGhlIE5ldHdvcmsgV2F0Y2hlciB3aWxsIGJlIGNyZWF0ZWQuIE5vdGU6IE9ubHkgb25lIE5ldHdvcmsgV2F0Y2hlciBwZXIgcmVnaW9uIHBlciBzdWJzY3JpcHRpb24gaXMgYWxsb3dlZC5cIixcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OLVNQRUNJRklDIFNDSEVNQVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgTmV0d29yayBXYXRjaGVyIHZlcnNpb24gMjAyNC0wMS0wMVxuICpcbiAqIFRoaXMgaXMgdGhlIGxhdGVzdCBzdGFibGUgdmVyc2lvbiBmb3IgTmV0d29yayBXYXRjaGVyLlxuICogTmV0d29yayBXYXRjaGVyIGlzIGEgcmVsYXRpdmVseSBzaW1wbGUgcmVzb3VyY2UgLSBpdCBwcmltYXJpbHkgc2VydmVzIGFzXG4gKiBhbiBhbmNob3IgZm9yIE5ldHdvcmsgV2F0Y2hlciBmZWF0dXJlcyBpbiBhIHJlZ2lvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE5FVFdPUktfV0FUQ0hFUl9TQ0hFTUFfMjAyNF8wMV8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0Lk5ldHdvcmsvbmV0d29ya1dhdGNoZXJzXCIsXG4gIHZlcnNpb246IFwiMjAyNC0wMS0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLi4uQ09NTU9OX05FVFdPUktfV0FUQ0hFUl9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibmFtZVwiLCBcImxvY2F0aW9uXCJdLFxuICBvcHRpb25hbDogW10sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBOZXR3b3JrIFdhdGNoZXJcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgTmV0d29yayBXYXRjaGVyIHZlcnNpb24gMjAyMy0xMS0wMVxuICpcbiAqIFRoaXMgaXMgYSBzdGFibGUgdmVyc2lvbiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqIE5ldHdvcmsgV2F0Y2hlciBBUEkgaXMgdmVyeSBzdGFibGUgd2l0aCBtaW5pbWFsIGNoYW5nZXMgYmV0d2VlbiB2ZXJzaW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IE5FVFdPUktfV0FUQ0hFUl9TQ0hFTUFfMjAyM18xMV8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0Lk5ldHdvcmsvbmV0d29ya1dhdGNoZXJzXCIsXG4gIHZlcnNpb246IFwiMjAyMy0xMS0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLi4uQ09NTU9OX05FVFdPUktfV0FUQ0hFUl9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibmFtZVwiLCBcImxvY2F0aW9uXCJdLFxuICBvcHRpb25hbDogW10sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBOZXR3b3JrIFdhdGNoZXJcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OIENPTkZJR1VSQVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgTmV0d29yayBXYXRjaGVyIDIwMjQtMDEtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IE5FVFdPUktfV0FUQ0hFUl9WRVJTSU9OXzIwMjRfMDFfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyNC0wMS0wMVwiLFxuICBzY2hlbWE6IE5FVFdPUktfV0FUQ0hFUl9TQ0hFTUFfMjAyNF8wMV8wMSxcbiAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLkFDVElWRSxcbiAgcmVsZWFzZURhdGU6IFwiMjAyNC0wMS0wMVwiLFxuICBkZXByZWNhdGlvbkRhdGU6IHVuZGVmaW5lZCxcbiAgc3Vuc2V0RGF0ZTogdW5kZWZpbmVkLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy9uZXR3b3JrLXdhdGNoZXIvbWlncmF0aW9uLTIwMjQtMDEtMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJ1cGRhdGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJMYXRlc3Qgc3RhYmxlIEFQSSB2ZXJzaW9uXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBOZXR3b3JrIFdhdGNoZXIgMjAyMy0xMS0wMVxuICovXG5leHBvcnQgY29uc3QgTkVUV09SS19XQVRDSEVSX1ZFUlNJT05fMjAyM18xMV8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDIzLTExLTAxXCIsXG4gIHNjaGVtYTogTkVUV09SS19XQVRDSEVSX1NDSEVNQV8yMDIzXzExXzAxLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDIzLTExLTAxXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogdW5kZWZpbmVkLFxuICBzdW5zZXREYXRlOiB1bmRlZmluZWQsXG4gIGJyZWFraW5nQ2hhbmdlczogW10sXG4gIG1pZ3JhdGlvbkd1aWRlOiBcIi9kb2NzL25ldHdvcmstd2F0Y2hlci9taWdyYXRpb24tMjAyMy0xMS0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlN0YWJsZSBBUEkgdmVyc2lvbiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVwiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIEFsbCBzdXBwb3J0ZWQgTmV0d29yayBXYXRjaGVyIHZlcnNpb25zIGZvciByZWdpc3RyYXRpb25cbiAqIE9yZGVyZWQgd2l0aCBsYXRlc3Qgc3RhYmxlIHZlcnNpb24gZmlyc3RcbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9ORVRXT1JLX1dBVENIRVJfVkVSU0lPTlM6IFZlcnNpb25Db25maWdbXSA9IFtcbiAgTkVUV09SS19XQVRDSEVSX1ZFUlNJT05fMjAyNF8wMV8wMSxcbiAgTkVUV09SS19XQVRDSEVSX1ZFUlNJT05fMjAyM18xMV8wMSxcbl07XG5cbi8qKlxuICogUmVzb3VyY2UgdHlwZSBjb25zdGFudFxuICovXG5leHBvcnQgY29uc3QgTkVUV09SS19XQVRDSEVSX1RZUEUgPSBcIk1pY3Jvc29mdC5OZXR3b3JrL25ldHdvcmtXYXRjaGVyc1wiO1xuIl19
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Unified Azure Network Watcher implementation using AzapiResource framework
3
+ *
4
+ * This class provides a version-aware implementation for Azure Network Watcher
5
+ * that automatically handles version management, schema validation, and property
6
+ * transformation across all supported API versions.
7
+ *
8
+ * IMPORTANT: Azure only allows one Network Watcher per subscription per region.
9
+ * If you attempt to create a Network Watcher in a region where one already exists,
10
+ * the deployment will fail.
11
+ *
12
+ * Supported API Versions:
13
+ * - 2024-01-01 (Active, Latest)
14
+ * - 2023-11-01 (Active, Backward Compatibility)
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
+ *
22
+ * Network Watcher is primarily used as a dependency for other Network Watcher features:
23
+ * - Flow Logs
24
+ * - Connection Monitor
25
+ * - Packet Capture
26
+ * - Network Diagnostic Tools
27
+ */
28
+ import * as cdktf from "cdktf";
29
+ import { Construct } from "constructs";
30
+ import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
31
+ import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
32
+ /**
33
+ * Properties for the unified Azure Network Watcher
34
+ *
35
+ * Extends AzapiResourceProps with Network Watcher specific properties.
36
+ *
37
+ * IMPORTANT: Azure only allows one Network Watcher per subscription per region.
38
+ * Attempting to create multiple Network Watchers in the same region will fail.
39
+ */
40
+ export interface NetworkWatcherProps extends AzapiResourceProps {
41
+ /**
42
+ * Resource Group ID where the Network Watcher will be created
43
+ *
44
+ * The Network Watcher will be created as a child of this resource group.
45
+ * It's recommended to use a dedicated resource group for Network Watchers,
46
+ * as Azure automatically creates one named "NetworkWatcherRG" when certain
47
+ * network features are used.
48
+ */
49
+ readonly resourceGroupId: string;
50
+ }
51
+ /**
52
+ * The resource body interface for Azure Network Watcher API calls
53
+ *
54
+ * Network Watcher is a simple resource with minimal properties.
55
+ * The properties block is typically empty.
56
+ */
57
+ export interface NetworkWatcherBody {
58
+ readonly properties: {
59
+ [key: string]: any;
60
+ };
61
+ }
62
+ /**
63
+ * Unified Azure Network Watcher implementation
64
+ *
65
+ * This class provides a single, version-aware implementation that automatically handles version
66
+ * resolution, schema validation, and property transformation while maintaining full JSII compliance.
67
+ *
68
+ * Network Watcher is a regional service that provides tools to monitor, diagnose, and gain
69
+ * insights into your network health and performance in Azure. It serves as the anchor for
70
+ * Network Watcher features like Flow Logs, Connection Monitor, and Packet Capture.
71
+ *
72
+ * IMPORTANT CONSTRAINT: Azure only allows one Network Watcher per subscription per region.
73
+ * If you need Network Watcher functionality in multiple regions, you must create a separate
74
+ * Network Watcher for each region.
75
+ *
76
+ * @example
77
+ * // Basic Network Watcher:
78
+ * const networkWatcher = new NetworkWatcher(this, "network-watcher", {
79
+ * name: "nw-eastus",
80
+ * location: "eastus",
81
+ * resourceGroupId: resourceGroup.id,
82
+ * });
83
+ *
84
+ * @example
85
+ * // Network Watcher with specific API version:
86
+ * const networkWatcher = new NetworkWatcher(this, "network-watcher", {
87
+ * name: "nw-westus2",
88
+ * location: "westus2",
89
+ * resourceGroupId: resourceGroup.id,
90
+ * apiVersion: "2024-01-01",
91
+ * tags: {
92
+ * environment: "production",
93
+ * },
94
+ * });
95
+ *
96
+ * @example
97
+ * // Network Watcher for use with Flow Logs:
98
+ * const networkWatcher = new NetworkWatcher(this, "network-watcher", {
99
+ * name: "NetworkWatcher_eastus",
100
+ * location: "eastus",
101
+ * resourceGroupId: networkWatcherRg.id,
102
+ * });
103
+ *
104
+ * // Then use it with NSG Flow Logs
105
+ * const flowLog = new NsgFlowLog(this, "flow-log", {
106
+ * networkWatcherId: networkWatcher.id,
107
+ * // ... other properties
108
+ * });
109
+ *
110
+ * @stability stable
111
+ */
112
+ export declare class NetworkWatcher extends AzapiResource {
113
+ /**
114
+ * The input properties for this Network Watcher instance
115
+ */
116
+ readonly props: NetworkWatcherProps;
117
+ /**
118
+ * Terraform output for the Network Watcher resource ID
119
+ */
120
+ readonly idOutput: cdktf.TerraformOutput;
121
+ /**
122
+ * Terraform output for the Network Watcher name
123
+ */
124
+ readonly nameOutput: cdktf.TerraformOutput;
125
+ /**
126
+ * Terraform output for the Network Watcher location
127
+ */
128
+ readonly locationOutput: cdktf.TerraformOutput;
129
+ /**
130
+ * Terraform output for the Network Watcher provisioning state
131
+ */
132
+ readonly provisioningStateOutput: cdktf.TerraformOutput;
133
+ /**
134
+ * Creates a new Azure Network Watcher using the AzapiResource framework
135
+ *
136
+ * The constructor automatically handles version resolution, schema registration,
137
+ * validation, and resource creation.
138
+ *
139
+ * IMPORTANT: Azure only allows one Network Watcher per subscription per region.
140
+ * Attempting to create a Network Watcher in a region where one already exists
141
+ * will result in a deployment error.
142
+ *
143
+ * @param scope - The scope in which to define this construct
144
+ * @param id - The unique identifier for this instance
145
+ * @param props - Configuration properties for the Network Watcher
146
+ */
147
+ constructor(scope: Construct, id: string, props: NetworkWatcherProps);
148
+ /**
149
+ * Gets the default API version to use when no explicit version is specified
150
+ * Returns the latest stable version as the default
151
+ */
152
+ protected defaultVersion(): string;
153
+ /**
154
+ * Gets the Azure resource type for Network Watcher
155
+ */
156
+ protected resourceType(): string;
157
+ /**
158
+ * Gets the API schema for the resolved version
159
+ * Uses the framework's schema resolution to get the appropriate schema
160
+ */
161
+ protected apiSchema(): ApiSchema;
162
+ /**
163
+ * Indicates that this resource type requires a location
164
+ */
165
+ protected requiresLocation(): boolean;
166
+ /**
167
+ * Creates the resource body for the Azure API call
168
+ *
169
+ * Network Watcher is a simple resource with an empty properties block.
170
+ * All configuration is handled at the resource level (name, location, tags).
171
+ */
172
+ protected createResourceBody(_props: any): any;
173
+ /**
174
+ * Resolves the parent resource ID for Network Watcher
175
+ * Network Watcher is a top-level resource within a resource group
176
+ *
177
+ * @param props - The resource properties
178
+ * @returns The parent resource ID (the resource group)
179
+ */
180
+ protected resolveParentId(props: any): string;
181
+ }