@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,395 @@
1
+ /**
2
+ * Unified Azure Kubernetes Service (AKS) implementation using VersionedAzapiResource framework
3
+ *
4
+ * This class provides a single, version-aware implementation for AKS clusters that automatically
5
+ * handles version management, schema validation, and property transformation across all supported
6
+ * API versions.
7
+ *
8
+ * Supported API Versions:
9
+ * - 2024-10-01 (Active)
10
+ * - 2025-01-01 (Active)
11
+ * - 2025-07-01 (Active, Latest)
12
+ *
13
+ * Features:
14
+ * - Automatic latest version resolution when no version is specified
15
+ * - Explicit version pinning for stability requirements
16
+ * - Schema-driven validation and transformation
17
+ * - Full JSII compliance for multi-language support
18
+ * - Comprehensive support for AKS features (networking, security, scaling, etc.)
19
+ */
20
+ import * as cdktf from "cdktf";
21
+ import { Construct } from "constructs";
22
+ import { AksClusterSku, AksClusterIdentity, AksClusterAgentPoolProfile, AksClusterNetworkProfile, AksClusterServicePrincipalProfile, AksClusterApiServerAccessProfile, AksClusterAutoScalerProfile, AksClusterWindowsProfile, AksClusterLinuxProfile, AksClusterAadProfile, AksClusterAddonProfiles, AksClusterOidcIssuerProfile, AksClusterSecurityProfile, AksClusterStorageProfile, AksClusterHttpProxyConfig, AksClusterWorkloadAutoScalerProfile, AksClusterMonitoringOptions } from "./aks-cluster-schemas";
23
+ import { AzapiResource, AzapiResourceProps, MonitoringConfig } from "../../core-azure/lib/azapi/azapi-resource";
24
+ import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
25
+ /**
26
+ * Properties for the unified Azure Kubernetes Service cluster
27
+ *
28
+ * Extends AzapiResourceProps with AKS-specific properties
29
+ */
30
+ export interface AksClusterProps extends AzapiResourceProps {
31
+ /**
32
+ * The SKU (pricing tier) for the AKS cluster
33
+ * @example { name: "Base", tier: "Free" }
34
+ * @example { name: "Standard", tier: "Standard" }
35
+ */
36
+ readonly sku?: AksClusterSku;
37
+ /**
38
+ * The identity configuration for the AKS cluster
39
+ * @example { type: "SystemAssigned" }
40
+ * @example { type: "UserAssigned", userAssignedIdentities: { "/subscriptions/.../resourceGroups/.../providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {} } }
41
+ */
42
+ readonly identity?: AksClusterIdentity;
43
+ /**
44
+ * The Kubernetes version for the cluster
45
+ * @example "1.28.3"
46
+ * @example "1.29.0"
47
+ */
48
+ readonly kubernetesVersion?: string;
49
+ /**
50
+ * DNS prefix for the cluster
51
+ * @example "myakscluster"
52
+ */
53
+ readonly dnsPrefix: string;
54
+ /**
55
+ * The FQDN for the cluster (read-only)
56
+ */
57
+ readonly fqdn?: string;
58
+ /**
59
+ * The private FQDN for the cluster (read-only)
60
+ */
61
+ readonly privateFQDN?: string;
62
+ /**
63
+ * The agent pool profiles for the cluster node pools
64
+ * At least one agent pool is required
65
+ * @example [{ name: "default", count: 3, vmSize: "Standard_D2s_v3", mode: "System" }]
66
+ */
67
+ readonly agentPoolProfiles: AksClusterAgentPoolProfile[];
68
+ /**
69
+ * The service principal profile for the cluster
70
+ */
71
+ readonly servicePrincipalProfile?: AksClusterServicePrincipalProfile;
72
+ /**
73
+ * The network configuration for the cluster
74
+ */
75
+ readonly networkProfile?: AksClusterNetworkProfile;
76
+ /**
77
+ * The Azure Active Directory integration configuration
78
+ */
79
+ readonly aadProfile?: AksClusterAadProfile;
80
+ /**
81
+ * The auto-scaler configuration for the cluster
82
+ */
83
+ readonly autoScalerProfile?: AksClusterAutoScalerProfile;
84
+ /**
85
+ * The API server access configuration
86
+ */
87
+ readonly apiServerAccessProfile?: AksClusterApiServerAccessProfile;
88
+ /**
89
+ * The resource ID of the disk encryption set for encrypting disks
90
+ */
91
+ readonly diskEncryptionSetID?: string;
92
+ /**
93
+ * Whether to enable Kubernetes Role-Based Access Control
94
+ * @default true
95
+ */
96
+ readonly enableRBAC?: boolean;
97
+ /**
98
+ * The name of the resource group for cluster nodes
99
+ * If not specified, Azure will auto-generate the name
100
+ */
101
+ readonly nodeResourceGroup?: string;
102
+ /**
103
+ * The addon profiles for cluster addons
104
+ */
105
+ readonly addonProfiles?: AksClusterAddonProfiles;
106
+ /**
107
+ * The Linux profile for SSH access
108
+ */
109
+ readonly linuxProfile?: AksClusterLinuxProfile;
110
+ /**
111
+ * The Windows profile for Windows node pools
112
+ */
113
+ readonly windowsProfile?: AksClusterWindowsProfile;
114
+ /**
115
+ * The OIDC issuer profile for workload identity
116
+ */
117
+ readonly oidcIssuerProfile?: AksClusterOidcIssuerProfile;
118
+ /**
119
+ * The security profile for the cluster
120
+ */
121
+ readonly securityProfile?: AksClusterSecurityProfile;
122
+ /**
123
+ * The storage profile for CSI drivers
124
+ */
125
+ readonly storageProfile?: AksClusterStorageProfile;
126
+ /**
127
+ * The HTTP proxy configuration
128
+ */
129
+ readonly httpProxyConfig?: AksClusterHttpProxyConfig;
130
+ /**
131
+ * The workload auto-scaler profile
132
+ */
133
+ readonly workloadAutoScalerProfile?: AksClusterWorkloadAutoScalerProfile;
134
+ /**
135
+ * Whether to disable local accounts
136
+ * @default false
137
+ */
138
+ readonly disableLocalAccounts?: boolean;
139
+ /**
140
+ * Whether the cluster is accessible from the public internet
141
+ * @example "Enabled"
142
+ * @example "Disabled"
143
+ */
144
+ readonly publicNetworkAccess?: string;
145
+ /**
146
+ * The support plan for the cluster
147
+ * @example "KubernetesOfficial"
148
+ * @example "AKSLongTermSupport"
149
+ */
150
+ readonly supportPlan?: string;
151
+ /**
152
+ * The lifecycle rules to ignore changes
153
+ * Useful for properties that are externally managed or should not trigger updates
154
+ * @example ["kubernetesVersion", "agentPoolProfiles"]
155
+ */
156
+ readonly ignoreChanges?: string[];
157
+ /**
158
+ * Resource group ID where the AKS cluster will be created
159
+ */
160
+ readonly resourceGroupId?: string;
161
+ }
162
+ /**
163
+ * The resource body interface for Azure AKS API calls
164
+ */
165
+ export interface AksClusterBody {
166
+ readonly location: string;
167
+ readonly tags?: {
168
+ [key: string]: string;
169
+ };
170
+ readonly sku?: AksClusterSku;
171
+ readonly identity?: AksClusterIdentity;
172
+ readonly properties: AksClusterBodyProperties;
173
+ }
174
+ /**
175
+ * AKS Cluster properties for the request body
176
+ */
177
+ export interface AksClusterBodyProperties {
178
+ readonly kubernetesVersion?: string;
179
+ readonly dnsPrefix: string;
180
+ readonly fqdn?: string;
181
+ readonly privateFQDN?: string;
182
+ readonly agentPoolProfiles: AksClusterAgentPoolProfile[];
183
+ readonly servicePrincipalProfile?: AksClusterServicePrincipalProfile;
184
+ readonly networkProfile?: AksClusterNetworkProfile;
185
+ readonly aadProfile?: AksClusterAadProfile;
186
+ readonly autoScalerProfile?: AksClusterAutoScalerProfile;
187
+ readonly apiServerAccessProfile?: AksClusterApiServerAccessProfile;
188
+ readonly diskEncryptionSetID?: string;
189
+ readonly enableRBAC?: boolean;
190
+ readonly nodeResourceGroup?: string;
191
+ readonly addonProfiles?: AksClusterAddonProfiles;
192
+ readonly linuxProfile?: AksClusterLinuxProfile;
193
+ readonly windowsProfile?: AksClusterWindowsProfile;
194
+ readonly oidcIssuerProfile?: AksClusterOidcIssuerProfile;
195
+ readonly securityProfile?: AksClusterSecurityProfile;
196
+ readonly storageProfile?: AksClusterStorageProfile;
197
+ readonly httpProxyConfig?: AksClusterHttpProxyConfig;
198
+ readonly workloadAutoScalerProfile?: AksClusterWorkloadAutoScalerProfile;
199
+ readonly disableLocalAccounts?: boolean;
200
+ readonly publicNetworkAccess?: string;
201
+ readonly supportPlan?: string;
202
+ }
203
+ /**
204
+ * Unified Azure Kubernetes Service cluster implementation
205
+ *
206
+ * This class provides a single, version-aware implementation that automatically handles version
207
+ * resolution, schema validation, and property transformation while maintaining full JSII compliance.
208
+ *
209
+ * The class uses the VersionedAzapiResource framework to provide:
210
+ * - Automatic latest version resolution (2025-07-01 as of this implementation)
211
+ * - Support for explicit version pinning when stability is required
212
+ * - Schema-driven property validation and transformation
213
+ * - Migration analysis and deprecation warnings
214
+ * - Full JSII compliance for multi-language support
215
+ *
216
+ * @example
217
+ * // Basic AKS cluster with system node pool:
218
+ * const aksCluster = new AksCluster(this, "aks", {
219
+ * name: "my-aks-cluster",
220
+ * location: "eastus",
221
+ * resourceGroupId: resourceGroup.id,
222
+ * dnsPrefix: "myaks",
223
+ * agentPoolProfiles: [{
224
+ * name: "system",
225
+ * count: 3,
226
+ * vmSize: "Standard_D2s_v3",
227
+ * mode: "System"
228
+ * }],
229
+ * identity: {
230
+ * type: "SystemAssigned"
231
+ * }
232
+ * });
233
+ *
234
+ * @example
235
+ * // AKS cluster with explicit version pinning and advanced networking:
236
+ * const aksCluster = new AksCluster(this, "aks", {
237
+ * name: "my-aks-cluster",
238
+ * location: "eastus",
239
+ * resourceGroupId: resourceGroup.id,
240
+ * apiVersion: "2025-07-01",
241
+ * dnsPrefix: "myaks",
242
+ * kubernetesVersion: "1.28.3",
243
+ * agentPoolProfiles: [{
244
+ * name: "system",
245
+ * count: 3,
246
+ * vmSize: "Standard_D2s_v3",
247
+ * mode: "System",
248
+ * vnetSubnetID: subnet.id
249
+ * }],
250
+ * identity: {
251
+ * type: "SystemAssigned"
252
+ * },
253
+ * networkProfile: {
254
+ * networkPlugin: "azure",
255
+ * serviceCidr: "10.0.0.0/16",
256
+ * dnsServiceIP: "10.0.0.10"
257
+ * },
258
+ * enableRBAC: true
259
+ * });
260
+ *
261
+ * @stability stable
262
+ */
263
+ export declare class AksCluster extends AzapiResource {
264
+ /**
265
+ * Returns a production-ready monitoring configuration for AKS Clusters
266
+ *
267
+ * This static factory method provides a complete MonitoringConfig with sensible defaults
268
+ * for AKS monitoring including node CPU, node memory, failed pod alerts, and deletion tracking.
269
+ *
270
+ * @param actionGroupId - The resource ID of the action group for alert notifications
271
+ * @param workspaceId - Optional Log Analytics workspace ID for diagnostic settings
272
+ * @param options - Optional configuration to customize thresholds and enable/disable specific alerts
273
+ * @returns A complete MonitoringConfig object ready to use in AksCluster props
274
+ *
275
+ * @example
276
+ * // Basic usage with all defaults
277
+ * const aksCluster = new AksCluster(this, "aks", {
278
+ * // ... other properties ...
279
+ * monitoring: AksCluster.defaultMonitoring(actionGroup.id, workspace.id)
280
+ * });
281
+ *
282
+ * @example
283
+ * // Custom thresholds and severities
284
+ * const aksCluster = new AksCluster(this, "aks", {
285
+ * // ... other properties ...
286
+ * monitoring: AksCluster.defaultMonitoring(
287
+ * actionGroup.id,
288
+ * workspace.id,
289
+ * {
290
+ * nodeCpuThreshold: 90,
291
+ * nodeMemoryThreshold: 90,
292
+ * enableFailedPodAlert: false
293
+ * }
294
+ * )
295
+ * });
296
+ *
297
+ * @stability stable
298
+ */
299
+ static defaultMonitoring(actionGroupId: string, workspaceId?: string, options?: AksClusterMonitoringOptions): MonitoringConfig;
300
+ /**
301
+ * Static initialization flag to ensure schemas are registered only once
302
+ */
303
+ private static schemasRegistered;
304
+ /**
305
+ * Ensures that AKS Cluster schemas are registered with the ApiVersionManager
306
+ * This is called once during the first AksCluster instantiation
307
+ */
308
+ private static ensureSchemasRegistered;
309
+ /**
310
+ * The input properties for this AKS Cluster instance
311
+ */
312
+ readonly props: AksClusterProps;
313
+ readonly idOutput: cdktf.TerraformOutput;
314
+ readonly locationOutput: cdktf.TerraformOutput;
315
+ readonly nameOutput: cdktf.TerraformOutput;
316
+ readonly tagsOutput: cdktf.TerraformOutput;
317
+ readonly fqdnOutput: cdktf.TerraformOutput;
318
+ readonly id: string;
319
+ readonly tags: {
320
+ [key: string]: string;
321
+ };
322
+ private readonly credentialAction;
323
+ /**
324
+ * Creates a new Azure Kubernetes Service cluster using the VersionedAzapiResource framework
325
+ *
326
+ * The constructor automatically handles version resolution, schema registration,
327
+ * validation, and resource creation.
328
+ *
329
+ * @param scope - The scope in which to define this construct
330
+ * @param id - The unique identifier for this instance
331
+ * @param props - Configuration properties for the AKS cluster
332
+ */
333
+ constructor(scope: Construct, id: string, props: AksClusterProps);
334
+ /**
335
+ * Gets the default API version to use when no explicit version is specified
336
+ * Returns the most recent stable version as the default
337
+ */
338
+ protected defaultVersion(): string;
339
+ /**
340
+ * Gets the Azure resource type for AKS Clusters
341
+ */
342
+ protected resourceType(): string;
343
+ /**
344
+ * Gets the API schema for the resolved version
345
+ * Uses the framework's schema resolution to get the appropriate schema
346
+ */
347
+ protected apiSchema(): ApiSchema;
348
+ /**
349
+ * Creates the resource body for the Azure API call
350
+ * Transforms the input properties into the JSON format expected by Azure REST API
351
+ */
352
+ protected createResourceBody(props: any): any;
353
+ /**
354
+ * Get the FQDN of the cluster
355
+ */
356
+ get fqdn(): string;
357
+ /**
358
+ * Get the private FQDN of the cluster (if private cluster is enabled)
359
+ */
360
+ get privateFqdn(): string;
361
+ /**
362
+ * Get the Kubernetes configuration for the cluster
363
+ *
364
+ * This retrieves the cluster admin credentials using an azapi_resource_action.
365
+ * The kubeConfig is base64 encoded and contains the full kubectl configuration.
366
+ */
367
+ get kubeConfig(): string;
368
+ /**
369
+ * Get the current Kubernetes version running on the cluster
370
+ */
371
+ get currentKubernetesVersion(): string;
372
+ /**
373
+ * Get the node resource group name
374
+ */
375
+ get nodeResourceGroupName(): string;
376
+ /**
377
+ * Add a tag to the AKS Cluster
378
+ * Note: This modifies the construct props but requires a new deployment to take effect
379
+ */
380
+ addTag(key: string, value: string): void;
381
+ /**
382
+ * Remove a tag from the AKS Cluster
383
+ * Note: This modifies the construct props but requires a new deployment to take effect
384
+ */
385
+ removeTag(key: string): void;
386
+ /**
387
+ * Transforms autoScalerProfile properties from camelCase to kebab-case
388
+ * The Azure AKS API requires kebab-case for autoScalerProfile properties
389
+ */
390
+ private _transformAutoScalerProfile;
391
+ /**
392
+ * Applies ignore changes lifecycle rules if specified in props
393
+ */
394
+ private _applyIgnoreChanges;
395
+ }