@microsoft/terraform-cdk-constructs 1.0.0 → 1.2.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 (385) hide show
  1. package/.jsii +60999 -15780
  2. package/API.md +54947 -10610
  3. package/README.md +72 -36
  4. package/docs/monitoring-guide.md +206 -0
  5. package/docs/testing.md +84 -1
  6. package/lib/azure-actiongroup/index.d.ts +11 -0
  7. package/lib/azure-actiongroup/index.js +28 -0
  8. package/lib/azure-actiongroup/lib/action-group-schemas.d.ts +24 -0
  9. package/lib/azure-actiongroup/lib/action-group-schemas.js +201 -0
  10. package/lib/azure-actiongroup/lib/action-group.d.ts +312 -0
  11. package/lib/azure-actiongroup/lib/action-group.js +201 -0
  12. package/lib/azure-actiongroup/lib/index.d.ts +5 -0
  13. package/lib/azure-actiongroup/lib/index.js +22 -0
  14. package/lib/azure-actiongroup/test/action-group.integ.d.ts +9 -0
  15. package/lib/azure-actiongroup/test/action-group.integ.js +79 -0
  16. package/lib/azure-actiongroup/test/action-group.spec.d.ts +8 -0
  17. package/lib/azure-actiongroup/test/action-group.spec.js +602 -0
  18. package/lib/azure-activitylogalert/index.d.ts +11 -0
  19. package/lib/azure-activitylogalert/index.js +28 -0
  20. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.d.ts +24 -0
  21. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.js +182 -0
  22. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +236 -0
  23. package/lib/azure-activitylogalert/lib/activity-log-alert.js +212 -0
  24. package/lib/azure-activitylogalert/lib/index.d.ts +5 -0
  25. package/lib/azure-activitylogalert/lib/index.js +22 -0
  26. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +9 -0
  27. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +98 -0
  28. package/lib/azure-activitylogalert/test/activity-log-alert.spec.d.ts +9 -0
  29. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +1101 -0
  30. package/lib/azure-aks/index.d.ts +9 -0
  31. package/lib/azure-aks/index.js +28 -0
  32. package/lib/azure-aks/lib/aks-cluster-schemas.d.ts +505 -0
  33. package/lib/azure-aks/lib/aks-cluster-schemas.js +572 -0
  34. package/lib/azure-aks/lib/aks-cluster.d.ts +395 -0
  35. package/lib/azure-aks/lib/aks-cluster.js +489 -0
  36. package/lib/azure-aks/lib/index.d.ts +11 -0
  37. package/lib/azure-aks/lib/index.js +38 -0
  38. package/lib/azure-aks/test/aks-cluster.integ.d.ts +9 -0
  39. package/lib/azure-aks/test/aks-cluster.integ.js +260 -0
  40. package/lib/azure-aks/test/aks-cluster.spec.d.ts +8 -0
  41. package/lib/azure-aks/test/aks-cluster.spec.js +1396 -0
  42. package/lib/azure-diagnosticsettings/index.d.ts +7 -0
  43. package/lib/azure-diagnosticsettings/index.js +24 -0
  44. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.d.ts +50 -0
  45. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.js +207 -0
  46. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +193 -0
  47. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +200 -0
  48. package/lib/azure-diagnosticsettings/lib/index.d.ts +8 -0
  49. package/lib/azure-diagnosticsettings/lib/index.js +25 -0
  50. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.d.ts +8 -0
  51. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +432 -0
  52. package/lib/azure-metricalert/index.d.ts +11 -0
  53. package/lib/azure-metricalert/index.js +28 -0
  54. package/lib/azure-metricalert/lib/index.d.ts +5 -0
  55. package/lib/azure-metricalert/lib/index.js +22 -0
  56. package/lib/azure-metricalert/lib/metric-alert-schemas.d.ts +24 -0
  57. package/lib/azure-metricalert/lib/metric-alert-schemas.js +242 -0
  58. package/lib/azure-metricalert/lib/metric-alert.d.ts +344 -0
  59. package/lib/azure-metricalert/lib/metric-alert.js +252 -0
  60. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +9 -0
  61. package/lib/azure-metricalert/test/metric-alert.integ.js +123 -0
  62. package/lib/azure-metricalert/test/metric-alert.spec.d.ts +9 -0
  63. package/lib/azure-metricalert/test/metric-alert.spec.js +1266 -0
  64. package/lib/azure-networkinterface/index.d.ts +4 -0
  65. package/lib/azure-networkinterface/index.js +21 -0
  66. package/lib/azure-networkinterface/lib/index.d.ts +6 -0
  67. package/lib/azure-networkinterface/lib/index.js +22 -0
  68. package/lib/azure-networkinterface/lib/network-interface-schemas.d.ts +32 -0
  69. package/lib/azure-networkinterface/lib/network-interface-schemas.js +222 -0
  70. package/lib/azure-networkinterface/lib/network-interface.d.ts +265 -0
  71. package/lib/azure-networkinterface/lib/network-interface.js +228 -0
  72. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +9 -0
  73. package/lib/azure-networkinterface/test/network-interface.integ.js +102 -0
  74. package/lib/azure-networkinterface/test/network-interface.spec.d.ts +8 -0
  75. package/lib/azure-networkinterface/test/network-interface.spec.js +655 -0
  76. package/lib/azure-networksecuritygroup/index.d.ts +6 -0
  77. package/lib/azure-networksecuritygroup/index.js +23 -0
  78. package/lib/azure-networksecuritygroup/lib/index.d.ts +5 -0
  79. package/lib/azure-networksecuritygroup/lib/index.js +16 -0
  80. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.d.ts +32 -0
  81. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.js +198 -0
  82. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +268 -0
  83. package/lib/azure-networksecuritygroup/lib/network-security-group.js +248 -0
  84. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +9 -0
  85. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +151 -0
  86. package/lib/azure-networksecuritygroup/test/network-security-group.spec.d.ts +8 -0
  87. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +652 -0
  88. package/lib/azure-publicipaddress/index.d.ts +6 -0
  89. package/lib/azure-publicipaddress/index.js +23 -0
  90. package/lib/azure-publicipaddress/lib/index.d.ts +9 -0
  91. package/lib/azure-publicipaddress/lib/index.js +19 -0
  92. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.d.ts +32 -0
  93. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.js +227 -0
  94. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +256 -0
  95. package/lib/azure-publicipaddress/lib/public-ip-address.js +267 -0
  96. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +9 -0
  97. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +75 -0
  98. package/lib/azure-publicipaddress/test/public-ip-address.spec.d.ts +15 -0
  99. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +498 -0
  100. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  101. package/lib/azure-resourcegroup/test/resource-group.integ.js +23 -11
  102. package/lib/azure-storageaccount/lib/storage-account-schemas.d.ts +98 -0
  103. package/lib/azure-storageaccount/lib/storage-account-schemas.js +1 -1
  104. package/lib/azure-storageaccount/lib/storage-account.d.ts +38 -1
  105. package/lib/azure-storageaccount/lib/storage-account.js +138 -2
  106. package/lib/azure-storageaccount/test/storage-account.integ.js +91 -12
  107. package/lib/azure-subnet/index.d.ts +4 -0
  108. package/lib/azure-subnet/index.js +21 -0
  109. package/lib/azure-subnet/lib/index.d.ts +5 -0
  110. package/lib/azure-subnet/lib/index.js +22 -0
  111. package/lib/azure-subnet/lib/subnet-schemas.d.ts +32 -0
  112. package/lib/azure-subnet/lib/subnet-schemas.js +237 -0
  113. package/lib/azure-subnet/lib/subnet.d.ts +285 -0
  114. package/lib/azure-subnet/lib/subnet.js +254 -0
  115. package/lib/azure-subnet/test/subnet.integ.d.ts +11 -0
  116. package/lib/azure-subnet/test/subnet.integ.js +80 -0
  117. package/lib/azure-subnet/test/subnet.spec.d.ts +8 -0
  118. package/lib/azure-subnet/test/subnet.spec.js +396 -0
  119. package/lib/azure-virtualmachine/index.d.ts +7 -0
  120. package/lib/azure-virtualmachine/index.js +24 -0
  121. package/lib/azure-virtualmachine/lib/index.d.ts +11 -0
  122. package/lib/azure-virtualmachine/lib/index.js +38 -0
  123. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.d.ts +327 -0
  124. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.js +544 -0
  125. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +377 -0
  126. package/lib/azure-virtualmachine/lib/virtual-machine.js +462 -0
  127. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +9 -0
  128. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +220 -0
  129. package/lib/azure-virtualmachine/test/virtual-machine.spec.d.ts +9 -0
  130. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +1032 -0
  131. package/lib/azure-virtualnetwork/index.d.ts +10 -0
  132. package/lib/azure-virtualnetwork/index.js +28 -0
  133. package/lib/azure-virtualnetwork/lib/index.d.ts +9 -0
  134. package/lib/azure-virtualnetwork/lib/index.js +22 -0
  135. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.d.ts +32 -0
  136. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.js +236 -0
  137. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +213 -0
  138. package/lib/azure-virtualnetwork/lib/virtual-network.js +245 -0
  139. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +9 -0
  140. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +91 -0
  141. package/lib/azure-virtualnetwork/test/virtual-network.spec.d.ts +8 -0
  142. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +398 -0
  143. package/lib/azure-vmss/index.d.ts +6 -0
  144. package/lib/azure-vmss/index.js +23 -0
  145. package/lib/azure-vmss/lib/index.d.ts +9 -0
  146. package/lib/azure-vmss/lib/index.js +39 -0
  147. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +258 -0
  148. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +503 -0
  149. package/lib/azure-vmss/lib/vmss-schemas.d.ts +472 -0
  150. package/lib/azure-vmss/lib/vmss-schemas.js +444 -0
  151. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +15 -0
  152. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +261 -0
  153. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.d.ts +8 -0
  154. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +997 -0
  155. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +95 -27
  156. package/lib/core-azure/lib/azapi/azapi-resource.js +95 -58
  157. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +33 -21
  158. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +69 -27
  159. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +134 -120
  160. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +209 -59
  161. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +141 -128
  162. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +183 -36
  163. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +55 -43
  164. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +94 -26
  165. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +129 -116
  166. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +155 -32
  167. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +187 -174
  168. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +267 -48
  169. package/lib/core-azure/lib/azapi/providers-azapi/index.d.ts +10 -10
  170. package/lib/core-azure/lib/azapi/providers-azapi/index.js +1 -1
  171. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.d.ts +0 -0
  172. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +13 -0
  173. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +174 -162
  174. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +274 -14
  175. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +239 -225
  176. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +360 -76
  177. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +163 -150
  178. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +221 -46
  179. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +162 -149
  180. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +249 -50
  181. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +4 -2
  182. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  183. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  184. package/lib/index.d.ts +37 -0
  185. package/lib/index.js +40 -2
  186. package/lib/testing/index.d.ts +92 -2
  187. package/lib/testing/index.js +258 -18
  188. package/lib/testing/lib/cleanup.d.ts +229 -0
  189. package/lib/testing/lib/cleanup.js +331 -0
  190. package/lib/testing/lib/metadata.d.ts +151 -0
  191. package/lib/testing/lib/metadata.js +180 -0
  192. package/lib/testing/lib/naming.d.ts +96 -0
  193. package/lib/testing/lib/naming.js +336 -0
  194. package/node_modules/uuid/LICENSE.md +9 -0
  195. package/node_modules/uuid/README.md +510 -0
  196. package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
  197. package/node_modules/uuid/dist/cjs/index.js +31 -0
  198. package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
  199. package/node_modules/uuid/dist/cjs/max.js +3 -0
  200. package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
  201. package/node_modules/uuid/dist/cjs/md5.js +13 -0
  202. package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
  203. package/node_modules/uuid/dist/cjs/native.js +4 -0
  204. package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
  205. package/node_modules/uuid/dist/cjs/nil.js +3 -0
  206. package/node_modules/uuid/dist/cjs/package.json +1 -0
  207. package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
  208. package/node_modules/uuid/dist/cjs/parse.js +11 -0
  209. package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
  210. package/node_modules/uuid/dist/cjs/regex.js +3 -0
  211. package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
  212. package/node_modules/uuid/dist/cjs/rng.js +13 -0
  213. package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
  214. package/node_modules/uuid/dist/cjs/sha1.js +13 -0
  215. package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
  216. package/node_modules/uuid/dist/cjs/stringify.js +39 -0
  217. package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
  218. package/node_modules/uuid/dist/cjs/types.js +2 -0
  219. package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
  220. package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
  221. package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
  222. package/node_modules/uuid/dist/cjs/v1.js +87 -0
  223. package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
  224. package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
  225. package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
  226. package/node_modules/uuid/dist/cjs/v3.js +14 -0
  227. package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
  228. package/node_modules/uuid/dist/cjs/v35.js +41 -0
  229. package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
  230. package/node_modules/uuid/dist/cjs/v4.js +29 -0
  231. package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
  232. package/node_modules/uuid/dist/cjs/v5.js +14 -0
  233. package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
  234. package/node_modules/uuid/dist/cjs/v6.js +19 -0
  235. package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
  236. package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
  237. package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
  238. package/node_modules/uuid/dist/cjs/v7.js +69 -0
  239. package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
  240. package/node_modules/uuid/dist/cjs/validate.js +7 -0
  241. package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
  242. package/node_modules/uuid/dist/cjs/version.js +10 -0
  243. package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
  244. package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
  245. package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
  246. package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
  247. package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
  248. package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
  249. package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
  250. package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
  251. package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
  252. package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
  253. package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
  254. package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
  255. package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
  256. package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
  257. package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
  258. package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
  259. package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
  260. package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
  261. package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
  262. package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
  263. package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
  264. package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
  265. package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
  266. package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
  267. package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
  268. package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
  269. package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
  270. package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
  271. package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
  272. package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
  273. package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
  274. package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
  275. package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
  276. package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
  277. package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
  278. package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
  279. package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
  280. package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
  281. package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
  282. package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
  283. package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
  284. package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
  285. package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
  286. package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
  287. package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
  288. package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
  289. package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
  290. package/node_modules/uuid/dist/esm/bin/uuid +2 -0
  291. package/node_modules/uuid/dist/esm/index.d.ts +15 -0
  292. package/node_modules/uuid/dist/esm/index.js +14 -0
  293. package/node_modules/uuid/dist/esm/max.d.ts +2 -0
  294. package/node_modules/uuid/dist/esm/max.js +1 -0
  295. package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
  296. package/node_modules/uuid/dist/esm/md5.js +11 -0
  297. package/node_modules/uuid/dist/esm/native.d.ts +6 -0
  298. package/node_modules/uuid/dist/esm/native.js +2 -0
  299. package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
  300. package/node_modules/uuid/dist/esm/nil.js +1 -0
  301. package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
  302. package/node_modules/uuid/dist/esm/parse.js +9 -0
  303. package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
  304. package/node_modules/uuid/dist/esm/regex.js +1 -0
  305. package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
  306. package/node_modules/uuid/dist/esm/rng.js +10 -0
  307. package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
  308. package/node_modules/uuid/dist/esm/sha1.js +11 -0
  309. package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
  310. package/node_modules/uuid/dist/esm/stringify.js +35 -0
  311. package/node_modules/uuid/dist/esm/types.d.ts +21 -0
  312. package/node_modules/uuid/dist/esm/types.js +1 -0
  313. package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
  314. package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
  315. package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
  316. package/node_modules/uuid/dist/esm/v1.js +83 -0
  317. package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
  318. package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
  319. package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
  320. package/node_modules/uuid/dist/esm/v3.js +9 -0
  321. package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
  322. package/node_modules/uuid/dist/esm/v35.js +36 -0
  323. package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
  324. package/node_modules/uuid/dist/esm/v4.js +27 -0
  325. package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
  326. package/node_modules/uuid/dist/esm/v5.js +9 -0
  327. package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
  328. package/node_modules/uuid/dist/esm/v6.js +17 -0
  329. package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
  330. package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
  331. package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
  332. package/node_modules/uuid/dist/esm/v7.js +65 -0
  333. package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
  334. package/node_modules/uuid/dist/esm/validate.js +5 -0
  335. package/node_modules/uuid/dist/esm/version.d.ts +2 -0
  336. package/node_modules/uuid/dist/esm/version.js +8 -0
  337. package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
  338. package/node_modules/uuid/dist/esm-browser/index.js +14 -0
  339. package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
  340. package/node_modules/uuid/dist/esm-browser/max.js +1 -0
  341. package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
  342. package/node_modules/uuid/dist/esm-browser/md5.js +135 -0
  343. package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
  344. package/node_modules/uuid/dist/esm-browser/native.js +2 -0
  345. package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
  346. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  347. package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
  348. package/node_modules/uuid/dist/esm-browser/parse.js +9 -0
  349. package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
  350. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  351. package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
  352. package/node_modules/uuid/dist/esm-browser/rng.js +11 -0
  353. package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
  354. package/node_modules/uuid/dist/esm-browser/sha1.js +70 -0
  355. package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
  356. package/node_modules/uuid/dist/esm-browser/stringify.js +35 -0
  357. package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
  358. package/node_modules/uuid/dist/esm-browser/types.js +1 -0
  359. package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
  360. package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
  361. package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
  362. package/node_modules/uuid/dist/esm-browser/v1.js +83 -0
  363. package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
  364. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
  365. package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
  366. package/node_modules/uuid/dist/esm-browser/v3.js +9 -0
  367. package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
  368. package/node_modules/uuid/dist/esm-browser/v35.js +36 -0
  369. package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
  370. package/node_modules/uuid/dist/esm-browser/v4.js +27 -0
  371. package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
  372. package/node_modules/uuid/dist/esm-browser/v5.js +9 -0
  373. package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
  374. package/node_modules/uuid/dist/esm-browser/v6.js +17 -0
  375. package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
  376. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
  377. package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
  378. package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
  379. package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
  380. package/node_modules/uuid/dist/esm-browser/validate.js +5 -0
  381. package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
  382. package/node_modules/uuid/dist/esm-browser/version.js +8 -0
  383. package/node_modules/uuid/package.json +132 -0
  384. package/package.json +17 -12
  385. package/scripts/cleanup-test-resources.ts +369 -0
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Integration test for Azure Kubernetes Service (AKS) Cluster
3
+ *
4
+ * This test demonstrates comprehensive usage of the AksCluster 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,260 @@
1
+ "use strict";
2
+ /**
3
+ * Integration test for Azure Kubernetes Service (AKS) Cluster
4
+ *
5
+ * This test demonstrates comprehensive usage of the AksCluster 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_actiongroup_1 = require("../../azure-actiongroup");
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 metadata_1 = require("../../testing/lib/metadata");
18
+ const aks_cluster_1 = require("../lib/aks-cluster");
19
+ // Generate unique test run metadata for this test suite
20
+ const testMetadata = new metadata_1.TestRunMetadata("aks-cluster-integration", {
21
+ maxAgeHours: 4,
22
+ });
23
+ /**
24
+ * Example stack demonstrating comprehensive AKS Cluster usage
25
+ */
26
+ class AksClusterExampleStack extends testing_1.BaseTestStack {
27
+ constructor(scope, id) {
28
+ super(scope, id, {
29
+ testRunOptions: {
30
+ maxAgeHours: testMetadata.maxAgeHours,
31
+ autoCleanup: testMetadata.autoCleanup,
32
+ cleanupPolicy: testMetadata.cleanupPolicy,
33
+ },
34
+ });
35
+ // Configure AZAPI provider
36
+ new provider_1.AzapiProvider(this, "azapi", {});
37
+ // Generate unique names
38
+ const rgName = this.generateResourceName("Microsoft.Resources/resourceGroups", "aks");
39
+ // Create a resource group
40
+ const resourceGroup = new azure_resourcegroup_1.ResourceGroup(this, "example-rg", {
41
+ name: rgName,
42
+ location: "westus2",
43
+ tags: {
44
+ ...this.systemTags(),
45
+ },
46
+ });
47
+ // Create an action group for monitoring alerts
48
+ const actionGroup = new azure_actiongroup_1.ActionGroup(this, "monitoring-ag", {
49
+ name: "aks-monitoring-ag",
50
+ location: "global",
51
+ resourceGroupId: resourceGroup.id,
52
+ groupShortName: "aksmon",
53
+ emailReceivers: [
54
+ {
55
+ name: "admin",
56
+ emailAddress: "admin@example.com",
57
+ useCommonAlertSchema: true,
58
+ },
59
+ ],
60
+ });
61
+ // Example 1: Basic AKS cluster with default monitoring
62
+ new aks_cluster_1.AksCluster(this, "monitored-aks", {
63
+ name: "monitoredaks",
64
+ location: resourceGroup.props.location,
65
+ resourceGroupId: resourceGroup.id,
66
+ dnsPrefix: "monaks",
67
+ kubernetesVersion: "1.31.1",
68
+ agentPoolProfiles: [
69
+ {
70
+ name: "system",
71
+ count: 1,
72
+ vmSize: "Standard_D2s_v3",
73
+ mode: "System",
74
+ osType: "Linux",
75
+ osDiskSizeGB: 30,
76
+ maxPods: 30,
77
+ },
78
+ ],
79
+ identity: {
80
+ type: "SystemAssigned",
81
+ },
82
+ networkProfile: {
83
+ networkPlugin: "kubenet",
84
+ loadBalancerSku: "standard",
85
+ serviceCidr: "10.0.0.0/16",
86
+ dnsServiceIP: "10.0.0.10",
87
+ podCidr: "10.244.0.0/16",
88
+ },
89
+ enableRBAC: true,
90
+ tags: {
91
+ ...this.systemTags(),
92
+ example: "monitored",
93
+ features: "default-monitoring",
94
+ },
95
+ monitoring: aks_cluster_1.AksCluster.defaultMonitoring(actionGroup.id),
96
+ });
97
+ // Example 2: AKS cluster with custom monitoring thresholds
98
+ new aks_cluster_1.AksCluster(this, "custom-monitored-aks", {
99
+ name: "custmonaks",
100
+ location: resourceGroup.props.location,
101
+ resourceGroupId: resourceGroup.id,
102
+ dnsPrefix: "custmonaks",
103
+ kubernetesVersion: "1.31.1",
104
+ agentPoolProfiles: [
105
+ {
106
+ name: "system",
107
+ count: 1,
108
+ vmSize: "Standard_D2s_v3",
109
+ mode: "System",
110
+ osType: "Linux",
111
+ osDiskSizeGB: 30,
112
+ maxPods: 30,
113
+ },
114
+ ],
115
+ identity: {
116
+ type: "SystemAssigned",
117
+ },
118
+ networkProfile: {
119
+ networkPlugin: "kubenet",
120
+ loadBalancerSku: "standard",
121
+ serviceCidr: "10.1.0.0/16",
122
+ dnsServiceIP: "10.1.0.10",
123
+ podCidr: "10.245.0.0/16",
124
+ },
125
+ enableRBAC: true,
126
+ tags: {
127
+ ...this.systemTags(),
128
+ example: "custom-monitored",
129
+ features: "custom-thresholds",
130
+ },
131
+ monitoring: aks_cluster_1.AksCluster.defaultMonitoring(actionGroup.id, undefined, {
132
+ nodeCpuThreshold: 90,
133
+ nodeMemoryThreshold: 85,
134
+ failedPodThreshold: 5,
135
+ nodeCpuAlertSeverity: 1,
136
+ nodeMemoryAlertSeverity: 1,
137
+ failedPodAlertSeverity: 0,
138
+ }),
139
+ });
140
+ // Example 3: AKS cluster with selective monitoring (some alerts disabled)
141
+ new aks_cluster_1.AksCluster(this, "selective-monitored-aks", {
142
+ name: "selmonaks",
143
+ location: resourceGroup.props.location,
144
+ resourceGroupId: resourceGroup.id,
145
+ dnsPrefix: "selmonaks",
146
+ kubernetesVersion: "1.31.1",
147
+ agentPoolProfiles: [
148
+ {
149
+ name: "system",
150
+ count: 1,
151
+ vmSize: "Standard_D2s_v3",
152
+ mode: "System",
153
+ osType: "Linux",
154
+ osDiskSizeGB: 30,
155
+ maxPods: 30,
156
+ },
157
+ ],
158
+ identity: {
159
+ type: "SystemAssigned",
160
+ },
161
+ networkProfile: {
162
+ networkPlugin: "kubenet",
163
+ loadBalancerSku: "standard",
164
+ serviceCidr: "10.2.0.0/16",
165
+ dnsServiceIP: "10.2.0.10",
166
+ podCidr: "10.246.0.0/16",
167
+ },
168
+ enableRBAC: true,
169
+ tags: {
170
+ ...this.systemTags(),
171
+ example: "selective-monitored",
172
+ features: "disabled-alerts",
173
+ },
174
+ monitoring: aks_cluster_1.AksCluster.defaultMonitoring(actionGroup.id, undefined, {
175
+ enableNodeMemoryAlert: false,
176
+ enableDeletionAlert: false,
177
+ }),
178
+ });
179
+ // Comprehensive AKS cluster with multiple features
180
+ new aks_cluster_1.AksCluster(this, "comprehensive-aks", {
181
+ name: "comprehensiveaks",
182
+ location: resourceGroup.props.location,
183
+ resourceGroupId: resourceGroup.id,
184
+ dnsPrefix: "compaks",
185
+ kubernetesVersion: "1.31.1",
186
+ agentPoolProfiles: [
187
+ {
188
+ name: "system",
189
+ count: 1,
190
+ vmSize: "Standard_D2s_v3",
191
+ mode: "System",
192
+ osType: "Linux",
193
+ osDiskSizeGB: 30,
194
+ maxPods: 30,
195
+ },
196
+ {
197
+ name: "user",
198
+ count: 1,
199
+ vmSize: "Standard_D2s_v3",
200
+ mode: "User",
201
+ osType: "Linux",
202
+ osDiskSizeGB: 30,
203
+ maxPods: 30,
204
+ },
205
+ ],
206
+ identity: {
207
+ type: "SystemAssigned",
208
+ },
209
+ networkProfile: {
210
+ networkPlugin: "kubenet",
211
+ loadBalancerSku: "standard",
212
+ serviceCidr: "10.0.0.0/16",
213
+ dnsServiceIP: "10.0.0.10",
214
+ podCidr: "10.244.0.0/16",
215
+ },
216
+ autoScalerProfile: {
217
+ balanceSimilarNodeGroups: "false",
218
+ expander: "random",
219
+ maxEmptyBulkDelete: "10",
220
+ maxGracefulTerminationSec: "600",
221
+ maxNodeProvisionTime: "15m",
222
+ maxTotalUnreadyPercentage: "45",
223
+ newPodScaleUpDelay: "0s",
224
+ okTotalUnreadyCount: "3",
225
+ scaleDownDelayAfterAdd: "10m",
226
+ scaleDownDelayAfterDelete: "10s",
227
+ scaleDownDelayAfterFailure: "3m",
228
+ scaleDownUnneededTime: "10m",
229
+ scaleDownUnreadyTime: "20m",
230
+ scaleDownUtilizationThreshold: "0.5",
231
+ scanInterval: "10s",
232
+ skipNodesWithLocalStorage: "false",
233
+ skipNodesWithSystemPods: "true",
234
+ },
235
+ oidcIssuerProfile: {
236
+ enabled: true,
237
+ },
238
+ enableRBAC: true,
239
+ disableLocalAccounts: false,
240
+ tags: {
241
+ ...this.systemTags(),
242
+ example: "comprehensive",
243
+ features: "multi-pool-networking-autoscaling",
244
+ },
245
+ });
246
+ }
247
+ }
248
+ describe("AKS Cluster Integration Test", () => {
249
+ it("should deploy, validate idempotency, and cleanup AKS cluster resources", () => {
250
+ const app = cdktf_1.Testing.app();
251
+ const stack = new AksClusterExampleStack(app, "test-aks-cluster");
252
+ const synthesized = cdktf_1.Testing.fullSynth(stack);
253
+ // This will:
254
+ // 1. Run terraform apply to deploy resources
255
+ // 2. Run terraform plan to check idempotency (no changes expected)
256
+ // 3. Run terraform destroy to cleanup resources
257
+ (0, testing_1.TerraformApplyCheckAndDestroy)(synthesized, { verifyCleanup: true });
258
+ }, 900000); // 15 minute timeout for AKS deployment and cleanup
259
+ });
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWtzLWNsdXN0ZXIuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtYWtzL3Rlc3QvYWtzLWNsdXN0ZXIuaW50ZWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7O0dBT0c7O0FBRUgsaUNBQWdDO0FBRWhDLDJDQUF5QztBQUN6QywrREFBc0Q7QUFDdEQsbUVBQTBEO0FBQzFELGtGQUFvRjtBQUNwRiwyQ0FBNkU7QUFDN0UseURBQTZEO0FBQzdELG9EQUFnRDtBQUVoRCx3REFBd0Q7QUFDeEQsTUFBTSxZQUFZLEdBQUcsSUFBSSwwQkFBZSxDQUFDLHlCQUF5QixFQUFFO0lBQ2xFLFdBQVcsRUFBRSxDQUFDO0NBQ2YsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLHNCQUF1QixTQUFRLHVCQUFhO0lBQ2hELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsY0FBYyxFQUFFO2dCQUNkLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVztnQkFDckMsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO2dCQUNyQyxhQUFhLEVBQUUsWUFBWSxDQUFDLGFBQWE7YUFDMUM7U0FDRixDQUFDLENBQUM7UUFFSCwyQkFBMkI7UUFDM0IsSUFBSSx3QkFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckMsd0JBQXdCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FDdEMsb0NBQW9DLEVBQ3BDLEtBQUssQ0FDTixDQUFDO1FBRUYsMEJBQTBCO1FBQzFCLE1BQU0sYUFBYSxHQUFHLElBQUksbUNBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQzFELElBQUksRUFBRSxNQUFNO1lBQ1osUUFBUSxFQUFFLFNBQVM7WUFDbkIsSUFBSSxFQUFFO2dCQUNKLEdBQUcsSUFBSSxDQUFDLFVB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QyxDQUFDO0lBQ3RFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLG1EQUFtRDtBQUNqRSxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZWdyYXRpb24gdGVzdCBmb3IgQXp1cmUgS3ViZXJuZXRlcyBTZXJ2aWNlIChBS1MpIENsdXN0ZXJcbiAqXG4gKiBUaGlzIHRlc3QgZGVtb25zdHJhdGVzIGNvbXByZWhlbnNpdmUgdXNhZ2Ugb2YgdGhlIEFrc0NsdXN0ZXIgY29uc3RydWN0XG4gKiBhbmQgdmFsaWRhdGVzIGRlcGxveW1lbnQsIGlkZW1wb3RlbmN5LCBhbmQgY2xlYW51cC5cbiAqXG4gKiBSdW4gd2l0aDogbnBtIHJ1biBpbnRlZ3JhdGlvbjpub3N0cmVhbVxuICovXG5cbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5pbXBvcnQgeyBBY3Rpb25Hcm91cCB9IGZyb20gXCIuLi8uLi9henVyZS1hY3Rpb25ncm91cFwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCIuLi8uLi9henVyZS1yZXNvdXJjZWdyb3VwXCI7XG5pbXBvcnQgeyBBemFwaVByb3ZpZGVyIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL3Byb3ZpZGVycy1hemFwaS9wcm92aWRlclwiO1xuaW1wb3J0IHsgQmFzZVRlc3RTdGFjaywgVGVycmFmb3JtQXBwbHlDaGVja0FuZERlc3Ryb3kgfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IHsgVGVzdFJ1bk1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmcvbGliL21ldGFkYXRhXCI7XG5pbXBvcnQgeyBBa3NDbHVzdGVyIH0gZnJvbSBcIi4uL2xpYi9ha3MtY2x1c3RlclwiO1xuXG4vLyBHZW5lcmF0ZSB1bmlxdWUgdGVzdCBydW4gbWV0YWRhdGEgZm9yIHRoaXMgdGVzdCBzdWl0ZVxuY29uc3QgdGVzdE1ldGFkYXRhID0gbmV3IFRlc3RSdW5NZXRhZGF0YShcImFrcy1jbHVzdGVyLWludGVncmF0aW9uXCIsIHtcbiAgbWF4QWdlSG91cnM6IDQsXG59KTtcblxuLyoqXG4gKiBFeGFtcGxlIHN0YWNrIGRlbW9uc3RyYXRpbmcgY29tcHJlaGVuc2l2ZSBBS1MgQ2x1c3RlciB1c2FnZVxuICovXG5jbGFzcyBBa3NDbHVzdGVyRXhhbXBsZVN0YWNrIGV4dGVuZHMgQmFzZVRlc3RTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHRlc3RSdW5PcHRpb25zOiB7XG4gICAgICAgIG1heEFnZUhvdXJzOiB0ZXN0TWV0YWRhdGEubWF4QWdlSG91cnMsXG4gICAgICAgIGF1dG9DbGVhbnVwOiB0ZXN0TWV0YWRhdGEuYXV0b0NsZWFudXAsXG4gICAgICAgIGNsZWFudXBQb2xpY3k6IHRlc3RNZXRhZGF0YS5jbGVhbnVwUG9saWN5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENvbmZpZ3VyZSBBWkFQSSBwcm92aWRlclxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgLy8gR2VuZXJhdGUgdW5pcXVlIG5hbWVzXG4gICAgY29uc3QgcmdOYW1lID0gdGhpcy5nZW5lcmF0ZVJlc291cmNlTmFtZShcbiAgICAgIFwiTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3Vwc1wiLFxuICAgICAgXCJha3NcIixcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIGEgcmVzb3VyY2UgZ3JvdXBcbiAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAodGhpcywgXCJleGFtcGxlLXJnXCIsIHtcbiAgICAgIG5hbWU6IHJnTmFtZSxcbiAgICAgIGxvY2F0aW9uOiBcIndlc3R1czJcIixcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIGFuIGFjdGlvbiBncm91cCBmb3IgbW9uaXRvcmluZyBhbGVydHNcbiAgICBjb25zdCBhY3Rpb25Hcm91cCA9IG5ldyBBY3Rpb25Hcm91cCh0aGlzLCBcIm1vbml0b3JpbmctYWdcIiwge1xuICAgICAgbmFtZTogXCJha3MtbW9uaXRvcmluZy1hZ1wiLFxuICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICBncm91cFNob3J0TmFtZTogXCJha3Ntb25cIixcbiAgICAgIGVtYWlsUmVjZWl2ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImFkbWluXCIsXG4gICAgICAgICAgZW1haWxBZGRyZXNzOiBcImFkbWluQGV4YW1wbGUuY29tXCIsXG4gICAgICAgICAgdXNlQ29tbW9uQWxlcnRTY2hlbWE6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAxOiBCYXNpYyBBS1MgY2x1c3RlciB3aXRoIGRlZmF1bHQgbW9uaXRvcmluZ1xuICAgIG5ldyBBa3NDbHVzdGVyKHRoaXMsIFwibW9uaXRvcmVkLWFrc1wiLCB7XG4gICAgICBuYW1lOiBcIm1vbml0b3JlZGFrc1wiLFxuICAgICAgbG9jYXRpb246IHJlc291cmNlR3JvdXAucHJvcHMubG9jYXRpb24hLFxuICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgZG5zUHJlZml4OiBcIm1vbmFrc1wiLFxuICAgICAga3ViZXJuZXRlc1ZlcnNpb246IFwiMS4zMS4xXCIsXG4gICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJzeXN0ZW1cIixcbiAgICAgICAgICBjb3VudDogMSxcbiAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgbW9kZTogXCJTeXN0ZW1cIixcbiAgICAgICAgICBvc1R5cGU6IFwiTGludXhcIixcbiAgICAgICAgICBvc0Rpc2tTaXplR0I6IDMwLFxuICAgICAgICAgIG1heFBvZHM6IDMwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGlkZW50aXR5OiB7XG4gICAgICAgIHR5cGU6IFwiU3lzdGVtQXNzaWduZWRcIixcbiAgICAgIH0sXG4gICAgICBuZXR3b3JrUHJvZmlsZToge1xuICAgICAgICBuZXR3b3JrUGx1Z2luOiBcImt1YmVuZXRcIixcbiAgICAgICAgbG9hZEJhbGFuY2VyU2t1OiBcInN0YW5kYXJkXCIsXG4gICAgICAgIHNlcnZpY2VDaWRyOiBcIjEwLjAuMC4wLzE2XCIsXG4gICAgICAgIGRuc1NlcnZpY2VJUDogXCIxMC4wLjAuMTBcIixcbiAgICAgICAgcG9kQ2lkcjogXCIxMC4yNDQuMC4wLzE2XCIsXG4gICAgICB9LFxuICAgICAgZW5hYmxlUkJBQzogdHJ1ZSxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwibW9uaXRvcmVkXCIsXG4gICAgICAgIGZlYXR1cmVzOiBcImRlZmF1bHQtbW9uaXRvcmluZ1wiLFxuICAgICAgfSxcbiAgICAgIG1vbml0b3Jpbmc6IEFrc0NsdXN0ZXIuZGVmYXVsdE1vbml0b3JpbmcoYWN0aW9uR3JvdXAuaWQpLFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAyOiBBS1MgY2x1c3RlciB3aXRoIGN1c3RvbSBtb25pdG9yaW5nIHRocmVzaG9sZHNcbiAgICBuZXcgQWtzQ2x1c3Rlcih0aGlzLCBcImN1c3RvbS1tb25pdG9yZWQtYWtzXCIsIHtcbiAgICAgIG5hbWU6IFwiY3VzdG1vbmFrc1wiLFxuICAgICAgbG9jYXRpb246IHJlc291cmNlR3JvdXAucHJvcHMubG9jYXRpb24hLFxuICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgZG5zUHJlZml4OiBcImN1c3Rtb25ha3NcIixcbiAgICAgIGt1YmVybmV0ZXNWZXJzaW9uOiBcIjEuMzEuMVwiLFxuICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwic3lzdGVtXCIsXG4gICAgICAgICAgY291bnQ6IDEsXG4gICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIG1vZGU6IFwiU3lzdGVtXCIsXG4gICAgICAgICAgb3NUeXBlOiBcIkxpbnV4XCIsXG4gICAgICAgICAgb3NEaXNrU2l6ZUdCOiAzMCxcbiAgICAgICAgICBtYXhQb2RzOiAzMCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBpZGVudGl0eToge1xuICAgICAgICB0eXBlOiBcIlN5c3RlbUFzc2lnbmVkXCIsXG4gICAgICB9LFxuICAgICAgbmV0d29ya1Byb2ZpbGU6IHtcbiAgICAgICAgbmV0d29ya1BsdWdpbjogXCJrdWJlbmV0XCIsXG4gICAgICAgIGxvYWRCYWxhbmNlclNrdTogXCJzdGFuZGFyZFwiLFxuICAgICAgICBzZXJ2aWNlQ2lkcjogXCIxMC4xLjAuMC8xNlwiLFxuICAgICAgICBkbnNTZXJ2aWNlSVA6IFwiMTAuMS4wLjEwXCIsXG4gICAgICAgIHBvZENpZHI6IFwiMTAuMjQ1LjAuMC8xNlwiLFxuICAgICAgfSxcbiAgICAgIGVuYWJsZVJCQUM6IHRydWUsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBleGFtcGxlOiBcImN1c3RvbS1tb25pdG9yZWRcIixcbiAgICAgICAgZmVhdHVyZXM6IFwiY3VzdG9tLXRocmVzaG9sZHNcIixcbiAgICAgIH0sXG4gICAgICBtb25pdG9yaW5nOiBBa3NDbHVzdGVyLmRlZmF1bHRNb25pdG9yaW5nKGFjdGlvbkdyb3VwLmlkLCB1bmRlZmluZWQsIHtcbiAgICAgICAgbm9kZUNwdVRocmVzaG9sZDogOTAsXG4gICAgICAgIG5vZGVNZW1vcnlUaHJlc2hvbGQ6IDg1LFxuICAgICAgICBmYWlsZWRQb2RUaHJlc2hvbGQ6IDUsXG4gICAgICAgIG5vZGVDcHVBbGVydFNldmVyaXR5OiAxLFxuICAgICAgICBub2RlTWVtb3J5QWxlcnRTZXZlcml0eTogMSxcbiAgICAgICAgZmFpbGVkUG9kQWxlcnRTZXZlcml0eTogMCxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAzOiBBS1MgY2x1c3RlciB3aXRoIHNlbGVjdGl2ZSBtb25pdG9yaW5nIChzb21lIGFsZXJ0cyBkaXNhYmxlZClcbiAgICBuZXcgQWtzQ2x1c3Rlcih0aGlzLCBcInNlbGVjdGl2ZS1tb25pdG9yZWQtYWtzXCIsIHtcbiAgICAgIG5hbWU6IFwic2VsbW9uYWtzXCIsXG4gICAgICBsb2NhdGlvbjogcmVzb3VyY2VHcm91cC5wcm9wcy5sb2NhdGlvbiEsXG4gICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICBkbnNQcmVmaXg6IFwic2VsbW9uYWtzXCIsXG4gICAgICBrdWJlcm5ldGVzVmVyc2lvbjogXCIxLjMxLjFcIixcbiAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInN5c3RlbVwiLFxuICAgICAgICAgIGNvdW50OiAxLFxuICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICBtb2RlOiBcIlN5c3RlbVwiLFxuICAgICAgICAgIG9zVHlwZTogXCJMaW51eFwiLFxuICAgICAgICAgIG9zRGlza1NpemVHQjogMzAsXG4gICAgICAgICAgbWF4UG9kczogMzAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgaWRlbnRpdHk6IHtcbiAgICAgICAgdHlwZTogXCJTeXN0ZW1Bc3NpZ25lZFwiLFxuICAgICAgfSxcbiAgICAgIG5ldHdvcmtQcm9maWxlOiB7XG4gICAgICAgIG5ldHdvcmtQbHVnaW46IFwia3ViZW5ldFwiLFxuICAgICAgICBsb2FkQmFsYW5jZXJTa3U6IFwic3RhbmRhcmRcIixcbiAgICAgICAgc2VydmljZUNpZHI6IFwiMTAuMi4wLjAvMTZcIixcbiAgICAgICAgZG5zU2VydmljZUlQOiBcIjEwLjIuMC4xMFwiLFxuICAgICAgICBwb2RDaWRyOiBcIjEwLjI0Ni4wLjAvMTZcIixcbiAgICAgIH0sXG4gICAgICBlbmFibGVSQkFDOiB0cnVlLFxuICAgICAgdGFnczoge1xuICAgICAgICAuLi50aGlzLnN5c3RlbVRhZ3MoKSxcbiAgICAgICAgZXhhbXBsZTogXCJzZWxlY3RpdmUtbW9uaXRvcmVkXCIsXG4gICAgICAgIGZlYXR1cmVzOiBcImRpc2FibGVkLWFsZXJ0c1wiLFxuICAgICAgfSxcbiAgICAgIG1vbml0b3Jpbmc6IEFrc0NsdXN0ZXIuZGVmYXVsdE1vbml0b3JpbmcoYWN0aW9uR3JvdXAuaWQsIHVuZGVmaW5lZCwge1xuICAgICAgICBlbmFibGVOb2RlTWVtb3J5QWxlcnQ6IGZhbHNlLFxuICAgICAgICBlbmFibGVEZWxldGlvbkFsZXJ0OiBmYWxzZSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgLy8gQ29tcHJlaGVuc2l2ZSBBS1MgY2x1c3RlciB3aXRoIG11bHRpcGxlIGZlYXR1cmVzXG4gICAgbmV3IEFrc0NsdXN0ZXIodGhpcywgXCJjb21wcmVoZW5zaXZlLWFrc1wiLCB7XG4gICAgICBuYW1lOiBcImNvbXByZWhlbnNpdmVha3NcIixcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIGRuc1ByZWZpeDogXCJjb21wYWtzXCIsXG4gICAgICBrdWJlcm5ldGVzVmVyc2lvbjogXCIxLjMxLjFcIixcbiAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInN5c3RlbVwiLFxuICAgICAgICAgIGNvdW50OiAxLFxuICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICBtb2RlOiBcIlN5c3RlbVwiLFxuICAgICAgICAgIG9zVHlwZTogXCJMaW51eFwiLFxuICAgICAgICAgIG9zRGlza1NpemVHQjogMzAsXG4gICAgICAgICAgbWF4UG9kczogMzAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInVzZXJcIixcbiAgICAgICAgICBjb3VudDogMSxcbiAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgbW9kZTogXCJVc2VyXCIsXG4gICAgICAgICAgb3NUeXBlOiBcIkxpbnV4XCIsXG4gICAgICAgICAgb3NEaXNrU2l6ZUdCOiAzMCxcbiAgICAgICAgICBtYXhQb2RzOiAzMCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBpZGVudGl0eToge1xuICAgICAgICB0eXBlOiBcIlN5c3RlbUFzc2lnbmVkXCIsXG4gICAgICB9LFxuICAgICAgbmV0d29ya1Byb2ZpbGU6IHtcbiAgICAgICAgbmV0d29ya1BsdWdpbjogXCJrdWJlbmV0XCIsXG4gICAgICAgIGxvYWRCYWxhbmNlclNrdTogXCJzdGFuZGFyZFwiLFxuICAgICAgICBzZXJ2aWNlQ2lkcjogXCIxMC4wLjAuMC8xNlwiLFxuICAgICAgICBkbnNTZXJ2aWNlSVA6IFwiMTAuMC4wLjEwXCIsXG4gICAgICAgIHBvZENpZHI6IFwiMTAuMjQ0LjAuMC8xNlwiLFxuICAgICAgfSxcbiAgICAgIGF1dG9TY2FsZXJQcm9maWxlOiB7XG4gICAgICAgIGJhbGFuY2VTaW1pbGFyTm9kZUdyb3VwczogXCJmYWxzZVwiLFxuICAgICAgICBleHBhbmRlcjogXCJyYW5kb21cIixcbiAgICAgICAgbWF4RW1wdHlCdWxrRGVsZXRlOiBcIjEwXCIsXG4gICAgICAgIG1heEdyYWNlZnVsVGVybWluYXRpb25TZWM6IFwiNjAwXCIsXG4gICAgICAgIG1heE5vZGVQcm92aXNpb25UaW1lOiBcIjE1bVwiLFxuICAgICAgICBtYXhUb3RhbFVucmVhZHlQZXJjZW50YWdlOiBcIjQ1XCIsXG4gICAgICAgIG5ld1BvZFNjYWxlVXBEZWxheTogXCIwc1wiLFxuICAgICAgICBva1RvdGFsVW5yZWFkeUNvdW50OiBcIjNcIixcbiAgICAgICAgc2NhbGVEb3duRGVsYXlBZnRlckFkZDogXCIxMG1cIixcbiAgICAgICAgc2NhbGVEb3duRGVsYXlBZnRlckRlbGV0ZTogXCIxMHNcIixcbiAgICAgICAgc2NhbGVEb3duRGVsYXlBZnRlckZhaWx1cmU6IFwiM21cIixcbiAgICAgICAgc2NhbGVEb3duVW5uZWVkZWRUaW1lOiBcIjEwbVwiLFxuICAgICAgICBzY2FsZURvd25VbnJlYWR5VGltZTogXCIyMG1cIixcbiAgICAgICAgc2NhbGVEb3duVXRpbGl6YXRpb25UaHJlc2hvbGQ6IFwiMC41XCIsXG4gICAgICAgIHNjYW5JbnRlcnZhbDogXCIxMHNcIixcbiAgICAgICAgc2tpcE5vZGVzV2l0aExvY2FsU3RvcmFnZTogXCJmYWxzZVwiLFxuICAgICAgICBza2lwTm9kZXNXaXRoU3lzdGVtUG9kczogXCJ0cnVlXCIsXG4gICAgICB9LFxuICAgICAgb2lkY0lzc3VlclByb2ZpbGU6IHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBlbmFibGVSQkFDOiB0cnVlLFxuICAgICAgZGlzYWJsZUxvY2FsQWNjb3VudHM6IGZhbHNlLFxuICAgICAgdGFnczoge1xuICAgICAgICAuLi50aGlzLnN5c3RlbVRhZ3MoKSxcbiAgICAgICAgZXhhbXBsZTogXCJjb21wcmVoZW5zaXZlXCIsXG4gICAgICAgIGZlYXR1cmVzOiBcIm11bHRpLXBvb2wtbmV0d29ya2luZy1hdXRvc2NhbGluZ1wiLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG5kZXNjcmliZShcIkFLUyBDbHVzdGVyIEludGVncmF0aW9uIFRlc3RcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCBkZXBsb3ksIHZhbGlkYXRlIGlkZW1wb3RlbmN5LCBhbmQgY2xlYW51cCBBS1MgY2x1c3RlciByZXNvdXJjZXNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgQWtzQ2x1c3RlckV4YW1wbGVTdGFjayhhcHAsIFwidGVzdC1ha3MtY2x1c3RlclwiKTtcbiAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3RpbmcuZnVsbFN5bnRoKHN0YWNrKTtcblxuICAgIC8vIFRoaXMgd2lsbDpcbiAgICAvLyAxLiBSdW4gdGVycmFmb3JtIGFwcGx5IHRvIGRlcGxveSByZXNvdXJjZXNcbiAgICAvLyAyLiBSdW4gdGVycmFmb3JtIHBsYW4gdG8gY2hlY2sgaWRlbXBvdGVuY3kgKG5vIGNoYW5nZXMgZXhwZWN0ZWQpXG4gICAgLy8gMy4gUnVuIHRlcnJhZm9ybSBkZXN0cm95IHRvIGNsZWFudXAgcmVzb3VyY2VzXG4gICAgVGVycmFmb3JtQXBwbHlDaGVja0FuZERlc3Ryb3koc3ludGhlc2l6ZWQsIHsgdmVyaWZ5Q2xlYW51cDogdHJ1ZSB9KTtcbiAgfSwgOTAwMDAwKTsgLy8gMTUgbWludXRlIHRpbWVvdXQgZm9yIEFLUyBkZXBsb3ltZW50IGFuZCBjbGVhbnVwXG59KTtcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Comprehensive unit tests for Azure Kubernetes Service (AKS) Cluster
3
+ *
4
+ * This test suite validates the unified AksCluster class that uses the VersionedAzapiResource
5
+ * framework. Tests cover automatic version resolution, explicit version pinning, schema validation,
6
+ * property transformation, and full backward compatibility.
7
+ */
8
+ export {};