@microsoft/terraform-cdk-constructs 1.0.0 → 1.3.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 (577) hide show
  1. package/.jsii +89270 -15866
  2. package/API.md +103201 -10557
  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 +1 -0
  7. package/lib/azure-actiongroup/index.js +18 -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 +302 -0
  11. package/lib/azure-actiongroup/lib/action-group.js +175 -0
  12. package/lib/azure-actiongroup/lib/index.d.ts +2 -0
  13. package/lib/azure-actiongroup/lib/index.js +19 -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 +1 -0
  19. package/lib/azure-activitylogalert/index.js +18 -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 +226 -0
  23. package/lib/azure-activitylogalert/lib/activity-log-alert.js +186 -0
  24. package/lib/azure-activitylogalert/lib/index.d.ts +2 -0
  25. package/lib/azure-activitylogalert/lib/index.js +19 -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 +1 -0
  31. package/lib/azure-aks/index.js +18 -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 +386 -0
  35. package/lib/azure-aks/lib/aks-cluster.js +466 -0
  36. package/lib/azure-aks/lib/index.d.ts +2 -0
  37. package/lib/azure-aks/lib/index.js +19 -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 +1 -0
  43. package/lib/azure-diagnosticsettings/index.js +18 -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 +183 -0
  47. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +174 -0
  48. package/lib/azure-diagnosticsettings/lib/index.d.ts +2 -0
  49. package/lib/azure-diagnosticsettings/lib/index.js +19 -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-dnsforwardingruleset/index.d.ts +1 -0
  53. package/lib/azure-dnsforwardingruleset/index.js +18 -0
  54. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.d.ts +24 -0
  55. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.js +206 -0
  56. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +174 -0
  57. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +214 -0
  58. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.d.ts +24 -0
  59. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.js +242 -0
  60. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +193 -0
  61. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +193 -0
  62. package/lib/azure-dnsforwardingruleset/lib/index.d.ts +6 -0
  63. package/lib/azure-dnsforwardingruleset/lib/index.js +23 -0
  64. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.d.ts +24 -0
  65. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.js +199 -0
  66. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +160 -0
  67. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +178 -0
  68. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +9 -0
  69. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +133 -0
  70. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.d.ts +9 -0
  71. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +350 -0
  72. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.d.ts +9 -0
  73. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +397 -0
  74. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.d.ts +9 -0
  75. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +285 -0
  76. package/lib/azure-dnsresolver/index.d.ts +1 -0
  77. package/lib/azure-dnsresolver/index.js +18 -0
  78. package/lib/azure-dnsresolver/lib/dns-resolver-schemas.d.ts +24 -0
  79. package/lib/azure-dnsresolver/lib/dns-resolver-schemas.js +218 -0
  80. package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +170 -0
  81. package/lib/azure-dnsresolver/lib/dns-resolver.js +236 -0
  82. package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.d.ts +24 -0
  83. package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.js +261 -0
  84. package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +189 -0
  85. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +243 -0
  86. package/lib/azure-dnsresolver/lib/index.d.ts +6 -0
  87. package/lib/azure-dnsresolver/lib/index.js +23 -0
  88. package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.d.ts +24 -0
  89. package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.js +231 -0
  90. package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +175 -0
  91. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +234 -0
  92. package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +14 -0
  93. package/lib/azure-dnsresolver/test/dns-resolver.integ.js +117 -0
  94. package/lib/azure-dnsresolver/test/dns-resolver.spec.d.ts +9 -0
  95. package/lib/azure-dnsresolver/test/dns-resolver.spec.js +353 -0
  96. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +9 -0
  97. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +151 -0
  98. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.d.ts +9 -0
  99. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +441 -0
  100. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +9 -0
  101. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +149 -0
  102. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.d.ts +9 -0
  103. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +301 -0
  104. package/lib/azure-dnszone/index.d.ts +1 -0
  105. package/lib/azure-dnszone/index.js +18 -0
  106. package/lib/azure-dnszone/lib/dns-zone-schemas.d.ts +24 -0
  107. package/lib/azure-dnszone/lib/dns-zone-schemas.js +191 -0
  108. package/lib/azure-dnszone/lib/dns-zone.d.ts +182 -0
  109. package/lib/azure-dnszone/lib/dns-zone.js +228 -0
  110. package/lib/azure-dnszone/lib/index.d.ts +2 -0
  111. package/lib/azure-dnszone/lib/index.js +19 -0
  112. package/lib/azure-dnszone/test/dns-zone.integ.d.ts +9 -0
  113. package/lib/azure-dnszone/test/dns-zone.integ.js +85 -0
  114. package/lib/azure-dnszone/test/dns-zone.spec.d.ts +9 -0
  115. package/lib/azure-dnszone/test/dns-zone.spec.js +285 -0
  116. package/lib/azure-metricalert/index.d.ts +1 -0
  117. package/lib/azure-metricalert/index.js +18 -0
  118. package/lib/azure-metricalert/lib/index.d.ts +2 -0
  119. package/lib/azure-metricalert/lib/index.js +19 -0
  120. package/lib/azure-metricalert/lib/metric-alert-schemas.d.ts +24 -0
  121. package/lib/azure-metricalert/lib/metric-alert-schemas.js +242 -0
  122. package/lib/azure-metricalert/lib/metric-alert.d.ts +334 -0
  123. package/lib/azure-metricalert/lib/metric-alert.js +226 -0
  124. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +9 -0
  125. package/lib/azure-metricalert/test/metric-alert.integ.js +123 -0
  126. package/lib/azure-metricalert/test/metric-alert.spec.d.ts +9 -0
  127. package/lib/azure-metricalert/test/metric-alert.spec.js +1266 -0
  128. package/lib/azure-networkinterface/index.d.ts +1 -0
  129. package/lib/azure-networkinterface/index.js +18 -0
  130. package/lib/azure-networkinterface/lib/index.d.ts +2 -0
  131. package/lib/azure-networkinterface/lib/index.js +19 -0
  132. package/lib/azure-networkinterface/lib/network-interface-schemas.d.ts +32 -0
  133. package/lib/azure-networkinterface/lib/network-interface-schemas.js +222 -0
  134. package/lib/azure-networkinterface/lib/network-interface.d.ts +260 -0
  135. package/lib/azure-networkinterface/lib/network-interface.js +213 -0
  136. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +9 -0
  137. package/lib/azure-networkinterface/test/network-interface.integ.js +116 -0
  138. package/lib/azure-networkinterface/test/network-interface.spec.d.ts +8 -0
  139. package/lib/azure-networkinterface/test/network-interface.spec.js +655 -0
  140. package/lib/azure-networksecuritygroup/index.d.ts +1 -0
  141. package/lib/azure-networksecuritygroup/index.js +18 -0
  142. package/lib/azure-networksecuritygroup/lib/index.d.ts +2 -0
  143. package/lib/azure-networksecuritygroup/lib/index.js +19 -0
  144. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.d.ts +32 -0
  145. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.js +198 -0
  146. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +259 -0
  147. package/lib/azure-networksecuritygroup/lib/network-security-group.js +226 -0
  148. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +9 -0
  149. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +151 -0
  150. package/lib/azure-networksecuritygroup/test/network-security-group.spec.d.ts +8 -0
  151. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +652 -0
  152. package/lib/azure-policyassignment/index.d.ts +1 -0
  153. package/lib/azure-policyassignment/index.js +18 -0
  154. package/lib/azure-policyassignment/lib/index.d.ts +2 -0
  155. package/lib/azure-policyassignment/lib/index.js +19 -0
  156. package/lib/azure-policyassignment/lib/policy-assignment-schemas.d.ts +25 -0
  157. package/lib/azure-policyassignment/lib/policy-assignment-schemas.js +260 -0
  158. package/lib/azure-policyassignment/lib/policy-assignment.d.ts +342 -0
  159. package/lib/azure-policyassignment/lib/policy-assignment.js +228 -0
  160. package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +13 -0
  161. package/lib/azure-policyassignment/test/policy-assignment.integ.js +153 -0
  162. package/lib/azure-policyassignment/test/policy-assignment.spec.d.ts +9 -0
  163. package/lib/azure-policyassignment/test/policy-assignment.spec.js +651 -0
  164. package/lib/azure-policydefinition/index.d.ts +1 -0
  165. package/lib/azure-policydefinition/index.js +18 -0
  166. package/lib/azure-policydefinition/lib/index.d.ts +2 -0
  167. package/lib/azure-policydefinition/lib/index.js +19 -0
  168. package/lib/azure-policydefinition/lib/policy-definition-schemas.d.ts +25 -0
  169. package/lib/azure-policydefinition/lib/policy-definition-schemas.js +210 -0
  170. package/lib/azure-policydefinition/lib/policy-definition.d.ts +260 -0
  171. package/lib/azure-policydefinition/lib/policy-definition.js +199 -0
  172. package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +9 -0
  173. package/lib/azure-policydefinition/test/policy-definition.integ.js +137 -0
  174. package/lib/azure-policydefinition/test/policy-definition.spec.d.ts +9 -0
  175. package/lib/azure-policydefinition/test/policy-definition.spec.js +596 -0
  176. package/lib/azure-privatednszone/index.d.ts +1 -0
  177. package/lib/azure-privatednszone/index.js +18 -0
  178. package/lib/azure-privatednszone/lib/index.d.ts +2 -0
  179. package/lib/azure-privatednszone/lib/index.js +19 -0
  180. package/lib/azure-privatednszone/lib/private-dns-zone-schemas.d.ts +24 -0
  181. package/lib/azure-privatednszone/lib/private-dns-zone-schemas.js +254 -0
  182. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +178 -0
  183. package/lib/azure-privatednszone/lib/private-dns-zone.js +272 -0
  184. package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +9 -0
  185. package/lib/azure-privatednszone/test/private-dns-zone.integ.js +84 -0
  186. package/lib/azure-privatednszone/test/private-dns-zone.spec.d.ts +9 -0
  187. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +341 -0
  188. package/lib/azure-privatednszonelink/index.d.ts +1 -0
  189. package/lib/azure-privatednszonelink/index.js +18 -0
  190. package/lib/azure-privatednszonelink/lib/index.d.ts +2 -0
  191. package/lib/azure-privatednszonelink/lib/index.js +19 -0
  192. package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.d.ts +24 -0
  193. package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.js +262 -0
  194. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +202 -0
  195. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +250 -0
  196. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +9 -0
  197. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +110 -0
  198. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.d.ts +9 -0
  199. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +465 -0
  200. package/lib/azure-publicipaddress/index.d.ts +1 -0
  201. package/lib/azure-publicipaddress/index.js +18 -0
  202. package/lib/azure-publicipaddress/lib/index.d.ts +2 -0
  203. package/lib/azure-publicipaddress/lib/index.js +19 -0
  204. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.d.ts +32 -0
  205. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.js +227 -0
  206. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +247 -0
  207. package/lib/azure-publicipaddress/lib/public-ip-address.js +245 -0
  208. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +9 -0
  209. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +75 -0
  210. package/lib/azure-publicipaddress/test/public-ip-address.spec.d.ts +15 -0
  211. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +498 -0
  212. package/lib/azure-resourcegroup/index.d.ts +0 -37
  213. package/lib/azure-resourcegroup/index.js +1 -39
  214. package/lib/azure-resourcegroup/lib/index.d.ts +1 -44
  215. package/lib/azure-resourcegroup/lib/index.js +2 -43
  216. package/lib/azure-resourcegroup/lib/resource-group.d.ts +9 -23
  217. package/lib/azure-resourcegroup/lib/resource-group.js +23 -56
  218. package/lib/azure-resourcegroup/test/resource-group.integ.js +23 -11
  219. package/lib/azure-resourcegroup/test/resource-group.spec.js +13 -19
  220. package/lib/azure-roleassignment/index.d.ts +1 -0
  221. package/lib/azure-roleassignment/index.js +18 -0
  222. package/lib/azure-roleassignment/lib/index.d.ts +2 -0
  223. package/lib/azure-roleassignment/lib/index.js +19 -0
  224. package/lib/azure-roleassignment/lib/role-assignment-schemas.d.ts +25 -0
  225. package/lib/azure-roleassignment/lib/role-assignment-schemas.js +238 -0
  226. package/lib/azure-roleassignment/lib/role-assignment.d.ts +294 -0
  227. package/lib/azure-roleassignment/lib/role-assignment.js +257 -0
  228. package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +12 -0
  229. package/lib/azure-roleassignment/test/role-assignment.integ.js +101 -0
  230. package/lib/azure-roleassignment/test/role-assignment.spec.d.ts +9 -0
  231. package/lib/azure-roleassignment/test/role-assignment.spec.js +633 -0
  232. package/lib/azure-roledefinition/index.d.ts +1 -0
  233. package/lib/azure-roledefinition/index.js +18 -0
  234. package/lib/azure-roledefinition/lib/index.d.ts +2 -0
  235. package/lib/azure-roledefinition/lib/index.js +19 -0
  236. package/lib/azure-roledefinition/lib/role-definition-schemas.d.ts +25 -0
  237. package/lib/azure-roledefinition/lib/role-definition-schemas.js +195 -0
  238. package/lib/azure-roledefinition/lib/role-definition.d.ts +236 -0
  239. package/lib/azure-roledefinition/lib/role-definition.js +192 -0
  240. package/lib/azure-roledefinition/test/role-definition.integ.d.ts +12 -0
  241. package/lib/azure-roledefinition/test/role-definition.integ.js +142 -0
  242. package/lib/azure-roledefinition/test/role-definition.spec.d.ts +9 -0
  243. package/lib/azure-roledefinition/test/role-definition.spec.js +946 -0
  244. package/lib/azure-storageaccount/index.d.ts +0 -19
  245. package/lib/azure-storageaccount/index.js +1 -20
  246. package/lib/azure-storageaccount/lib/index.d.ts +1 -7
  247. package/lib/azure-storageaccount/lib/index.js +2 -8
  248. package/lib/azure-storageaccount/lib/storage-account-schemas.d.ts +98 -0
  249. package/lib/azure-storageaccount/lib/storage-account-schemas.js +1 -1
  250. package/lib/azure-storageaccount/lib/storage-account.d.ts +40 -8
  251. package/lib/azure-storageaccount/lib/storage-account.js +145 -23
  252. package/lib/azure-storageaccount/test/storage-account.integ.js +91 -12
  253. package/lib/azure-subnet/index.d.ts +1 -0
  254. package/lib/azure-subnet/index.js +18 -0
  255. package/lib/azure-subnet/lib/index.d.ts +2 -0
  256. package/lib/azure-subnet/lib/index.js +19 -0
  257. package/lib/azure-subnet/lib/subnet-schemas.d.ts +32 -0
  258. package/lib/azure-subnet/lib/subnet-schemas.js +237 -0
  259. package/lib/azure-subnet/lib/subnet.d.ts +274 -0
  260. package/lib/azure-subnet/lib/subnet.js +235 -0
  261. package/lib/azure-subnet/test/subnet.integ.d.ts +11 -0
  262. package/lib/azure-subnet/test/subnet.integ.js +92 -0
  263. package/lib/azure-subnet/test/subnet.spec.d.ts +8 -0
  264. package/lib/azure-subnet/test/subnet.spec.js +395 -0
  265. package/lib/azure-virtualmachine/index.d.ts +1 -0
  266. package/lib/azure-virtualmachine/index.js +18 -0
  267. package/lib/azure-virtualmachine/lib/index.d.ts +2 -0
  268. package/lib/azure-virtualmachine/lib/index.js +19 -0
  269. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.d.ts +327 -0
  270. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.js +544 -0
  271. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +368 -0
  272. package/lib/azure-virtualmachine/lib/virtual-machine.js +441 -0
  273. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +9 -0
  274. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +220 -0
  275. package/lib/azure-virtualmachine/test/virtual-machine.spec.d.ts +9 -0
  276. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +1032 -0
  277. package/lib/azure-virtualnetwork/index.d.ts +1 -0
  278. package/lib/azure-virtualnetwork/index.js +18 -0
  279. package/lib/azure-virtualnetwork/lib/index.d.ts +2 -0
  280. package/lib/azure-virtualnetwork/lib/index.js +19 -0
  281. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.d.ts +32 -0
  282. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.js +236 -0
  283. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +204 -0
  284. package/lib/azure-virtualnetwork/lib/virtual-network.js +224 -0
  285. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +9 -0
  286. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +91 -0
  287. package/lib/azure-virtualnetwork/test/virtual-network.spec.d.ts +8 -0
  288. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +398 -0
  289. package/lib/azure-virtualnetworkmanager/index.d.ts +1 -0
  290. package/lib/azure-virtualnetworkmanager/index.js +18 -0
  291. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.d.ts +48 -0
  292. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.js +265 -0
  293. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +185 -0
  294. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +206 -0
  295. package/lib/azure-virtualnetworkmanager/lib/index.d.ts +14 -0
  296. package/lib/azure-virtualnetworkmanager/lib/index.js +31 -0
  297. package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.d.ts +32 -0
  298. package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.js +189 -0
  299. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.d.ts +32 -0
  300. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.js +201 -0
  301. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +135 -0
  302. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +163 -0
  303. package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +139 -0
  304. package/lib/azure-virtualnetworkmanager/lib/network-group.js +158 -0
  305. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.d.ts +32 -0
  306. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.js +182 -0
  307. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +144 -0
  308. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +164 -0
  309. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.d.ts +38 -0
  310. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.js +206 -0
  311. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +142 -0
  312. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +162 -0
  313. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.d.ts +39 -0
  314. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.js +359 -0
  315. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +221 -0
  316. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +204 -0
  317. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.d.ts +32 -0
  318. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.js +236 -0
  319. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +337 -0
  320. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +283 -0
  321. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +25 -0
  322. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +402 -0
  323. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.d.ts +9 -0
  324. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +1652 -0
  325. package/lib/azure-vmss/index.d.ts +1 -0
  326. package/lib/azure-vmss/index.js +18 -0
  327. package/lib/azure-vmss/lib/index.d.ts +2 -0
  328. package/lib/azure-vmss/lib/index.js +19 -0
  329. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +250 -0
  330. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +479 -0
  331. package/lib/azure-vmss/lib/vmss-schemas.d.ts +472 -0
  332. package/lib/azure-vmss/lib/vmss-schemas.js +444 -0
  333. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +15 -0
  334. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +261 -0
  335. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.d.ts +8 -0
  336. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +997 -0
  337. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.d.ts +10 -0
  338. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +218 -0
  339. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +268 -48
  340. package/lib/core-azure/lib/azapi/azapi-resource.js +411 -136
  341. package/lib/core-azure/lib/azapi/azapi-resource.spec.js +2 -2
  342. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +33 -21
  343. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +69 -27
  344. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +134 -120
  345. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +209 -59
  346. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +141 -128
  347. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +183 -36
  348. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +55 -43
  349. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +94 -26
  350. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +129 -116
  351. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +155 -32
  352. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +187 -174
  353. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +267 -48
  354. package/lib/core-azure/lib/azapi/providers-azapi/index.d.ts +10 -10
  355. package/lib/core-azure/lib/azapi/providers-azapi/index.js +1 -1
  356. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.d.ts +0 -0
  357. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +13 -0
  358. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +174 -162
  359. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +278 -16
  360. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +239 -225
  361. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +360 -76
  362. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +163 -150
  363. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +221 -46
  364. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +162 -149
  365. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +249 -50
  366. package/lib/core-azure/lib/azapi/resource-schema-validator.d.ts +118 -0
  367. package/lib/core-azure/lib/azapi/resource-schema-validator.js +236 -0
  368. package/lib/core-azure/lib/azapi/resource-version-manager.d.ts +103 -0
  369. package/lib/core-azure/lib/azapi/resource-version-manager.js +168 -0
  370. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +13 -6
  371. package/lib/core-azure/lib/index.d.ts +2 -2
  372. package/lib/core-azure/lib/index.js +5 -5
  373. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  374. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  375. package/lib/index.d.ts +56 -0
  376. package/lib/index.js +59 -2
  377. package/lib/testing/index.d.ts +92 -2
  378. package/lib/testing/index.js +258 -18
  379. package/lib/testing/lib/cleanup.d.ts +230 -0
  380. package/lib/testing/lib/cleanup.js +338 -0
  381. package/lib/testing/lib/metadata.d.ts +151 -0
  382. package/lib/testing/lib/metadata.js +183 -0
  383. package/lib/testing/lib/naming.d.ts +96 -0
  384. package/lib/testing/lib/naming.js +336 -0
  385. package/node_modules/uuid/LICENSE.md +9 -0
  386. package/node_modules/uuid/README.md +510 -0
  387. package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
  388. package/node_modules/uuid/dist/cjs/index.js +31 -0
  389. package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
  390. package/node_modules/uuid/dist/cjs/max.js +3 -0
  391. package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
  392. package/node_modules/uuid/dist/cjs/md5.js +13 -0
  393. package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
  394. package/node_modules/uuid/dist/cjs/native.js +4 -0
  395. package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
  396. package/node_modules/uuid/dist/cjs/nil.js +3 -0
  397. package/node_modules/uuid/dist/cjs/package.json +1 -0
  398. package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
  399. package/node_modules/uuid/dist/cjs/parse.js +11 -0
  400. package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
  401. package/node_modules/uuid/dist/cjs/regex.js +3 -0
  402. package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
  403. package/node_modules/uuid/dist/cjs/rng.js +13 -0
  404. package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
  405. package/node_modules/uuid/dist/cjs/sha1.js +13 -0
  406. package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
  407. package/node_modules/uuid/dist/cjs/stringify.js +39 -0
  408. package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
  409. package/node_modules/uuid/dist/cjs/types.js +2 -0
  410. package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
  411. package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
  412. package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
  413. package/node_modules/uuid/dist/cjs/v1.js +87 -0
  414. package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
  415. package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
  416. package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
  417. package/node_modules/uuid/dist/cjs/v3.js +14 -0
  418. package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
  419. package/node_modules/uuid/dist/cjs/v35.js +41 -0
  420. package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
  421. package/node_modules/uuid/dist/cjs/v4.js +29 -0
  422. package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
  423. package/node_modules/uuid/dist/cjs/v5.js +14 -0
  424. package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
  425. package/node_modules/uuid/dist/cjs/v6.js +19 -0
  426. package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
  427. package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
  428. package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
  429. package/node_modules/uuid/dist/cjs/v7.js +69 -0
  430. package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
  431. package/node_modules/uuid/dist/cjs/validate.js +7 -0
  432. package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
  433. package/node_modules/uuid/dist/cjs/version.js +10 -0
  434. package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
  435. package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
  436. package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
  437. package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
  438. package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
  439. package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
  440. package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
  441. package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
  442. package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
  443. package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
  444. package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
  445. package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
  446. package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
  447. package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
  448. package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
  449. package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
  450. package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
  451. package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
  452. package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
  453. package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
  454. package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
  455. package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
  456. package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
  457. package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
  458. package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
  459. package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
  460. package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
  461. package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
  462. package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
  463. package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
  464. package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
  465. package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
  466. package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
  467. package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
  468. package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
  469. package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
  470. package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
  471. package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
  472. package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
  473. package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
  474. package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
  475. package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
  476. package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
  477. package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
  478. package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
  479. package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
  480. package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
  481. package/node_modules/uuid/dist/esm/bin/uuid +2 -0
  482. package/node_modules/uuid/dist/esm/index.d.ts +15 -0
  483. package/node_modules/uuid/dist/esm/index.js +14 -0
  484. package/node_modules/uuid/dist/esm/max.d.ts +2 -0
  485. package/node_modules/uuid/dist/esm/max.js +1 -0
  486. package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
  487. package/node_modules/uuid/dist/esm/md5.js +11 -0
  488. package/node_modules/uuid/dist/esm/native.d.ts +6 -0
  489. package/node_modules/uuid/dist/esm/native.js +2 -0
  490. package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
  491. package/node_modules/uuid/dist/esm/nil.js +1 -0
  492. package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
  493. package/node_modules/uuid/dist/esm/parse.js +9 -0
  494. package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
  495. package/node_modules/uuid/dist/esm/regex.js +1 -0
  496. package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
  497. package/node_modules/uuid/dist/esm/rng.js +10 -0
  498. package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
  499. package/node_modules/uuid/dist/esm/sha1.js +11 -0
  500. package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
  501. package/node_modules/uuid/dist/esm/stringify.js +35 -0
  502. package/node_modules/uuid/dist/esm/types.d.ts +21 -0
  503. package/node_modules/uuid/dist/esm/types.js +1 -0
  504. package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
  505. package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
  506. package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
  507. package/node_modules/uuid/dist/esm/v1.js +83 -0
  508. package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
  509. package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
  510. package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
  511. package/node_modules/uuid/dist/esm/v3.js +9 -0
  512. package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
  513. package/node_modules/uuid/dist/esm/v35.js +36 -0
  514. package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
  515. package/node_modules/uuid/dist/esm/v4.js +27 -0
  516. package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
  517. package/node_modules/uuid/dist/esm/v5.js +9 -0
  518. package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
  519. package/node_modules/uuid/dist/esm/v6.js +17 -0
  520. package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
  521. package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
  522. package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
  523. package/node_modules/uuid/dist/esm/v7.js +65 -0
  524. package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
  525. package/node_modules/uuid/dist/esm/validate.js +5 -0
  526. package/node_modules/uuid/dist/esm/version.d.ts +2 -0
  527. package/node_modules/uuid/dist/esm/version.js +8 -0
  528. package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
  529. package/node_modules/uuid/dist/esm-browser/index.js +14 -0
  530. package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
  531. package/node_modules/uuid/dist/esm-browser/max.js +1 -0
  532. package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
  533. package/node_modules/uuid/dist/esm-browser/md5.js +135 -0
  534. package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
  535. package/node_modules/uuid/dist/esm-browser/native.js +2 -0
  536. package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
  537. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  538. package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
  539. package/node_modules/uuid/dist/esm-browser/parse.js +9 -0
  540. package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
  541. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  542. package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
  543. package/node_modules/uuid/dist/esm-browser/rng.js +11 -0
  544. package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
  545. package/node_modules/uuid/dist/esm-browser/sha1.js +70 -0
  546. package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
  547. package/node_modules/uuid/dist/esm-browser/stringify.js +35 -0
  548. package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
  549. package/node_modules/uuid/dist/esm-browser/types.js +1 -0
  550. package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
  551. package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
  552. package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
  553. package/node_modules/uuid/dist/esm-browser/v1.js +83 -0
  554. package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
  555. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
  556. package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
  557. package/node_modules/uuid/dist/esm-browser/v3.js +9 -0
  558. package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
  559. package/node_modules/uuid/dist/esm-browser/v35.js +36 -0
  560. package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
  561. package/node_modules/uuid/dist/esm-browser/v4.js +27 -0
  562. package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
  563. package/node_modules/uuid/dist/esm-browser/v5.js +9 -0
  564. package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
  565. package/node_modules/uuid/dist/esm-browser/v6.js +17 -0
  566. package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
  567. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
  568. package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
  569. package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
  570. package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
  571. package/node_modules/uuid/dist/esm-browser/validate.js +5 -0
  572. package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
  573. package/node_modules/uuid/dist/esm-browser/version.js +8 -0
  574. package/node_modules/uuid/package.json +132 -0
  575. package/package.json +17 -12
  576. package/scripts/cleanup-test-resources.ts +387 -0
  577. package/scripts/generate-index.js +25 -8
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Test run metadata management
3
+ *
4
+ * Provides classes and utilities for generating and managing
5
+ * integration test metadata including unique IDs, timestamps,
6
+ * CI context, and system tags.
7
+ */
8
+ /**
9
+ * CI/CD pipeline context
10
+ *
11
+ * Extracted from environment variables during test execution.
12
+ * Enables tracing resources back to specific pipeline runs.
13
+ */
14
+ export interface CIContext {
15
+ /**
16
+ * CI platform ('github-actions', 'azure-devops', 'generic-ci', 'local')
17
+ */
18
+ readonly platform: string;
19
+ /**
20
+ * GitHub Actions workflow ID or equivalent
21
+ */
22
+ readonly pipelineId?: string;
23
+ /**
24
+ * GitHub Actions run ID or equivalent
25
+ */
26
+ readonly runId?: string;
27
+ /**
28
+ * GitHub Actions run number or equivalent
29
+ */
30
+ readonly runNumber?: string;
31
+ /**
32
+ * Git commit SHA (full)
33
+ */
34
+ readonly commitSha?: string;
35
+ /**
36
+ * Git commit SHA (short, 7 chars)
37
+ */
38
+ readonly commitShaShort?: string;
39
+ /**
40
+ * Git branch name
41
+ */
42
+ readonly branch?: string;
43
+ /**
44
+ * Git repository name
45
+ */
46
+ readonly repository?: string;
47
+ }
48
+ /**
49
+ * Integration test system tags
50
+ *
51
+ * Returns a record of tag key-value pairs for Azure resources.
52
+ * Uses Azure tag naming conventions with colons and hyphens.
53
+ */
54
+ export type IntegrationTestTags = Record<string, string>;
55
+ /**
56
+ * Test run configuration options
57
+ */
58
+ export interface TestRunOptions {
59
+ /**
60
+ * Maximum age in hours before cleanup eligible (default: 4)
61
+ */
62
+ readonly maxAgeHours?: number;
63
+ /**
64
+ * Enable automated cleanup (default: true)
65
+ */
66
+ readonly autoCleanup?: boolean;
67
+ /**
68
+ * Cleanup policy (default: 'immediate')
69
+ */
70
+ readonly cleanupPolicy?: "immediate" | "delayed" | "manual";
71
+ }
72
+ /**
73
+ * Metadata for an integration test run
74
+ *
75
+ * Generated once per test execution and shared across all resources
76
+ * in that test. Provides unique identification, temporal tracking,
77
+ * and CI/CD context.
78
+ */
79
+ export declare class TestRunMetadata {
80
+ /**
81
+ * Unique identifier for this test run (UUID v4)
82
+ */
83
+ readonly runId: string;
84
+ /**
85
+ * Sanitized test name from the describe block
86
+ */
87
+ readonly testName: string;
88
+ /**
89
+ * Timestamp when the test run started
90
+ */
91
+ readonly createdAt: Date;
92
+ /**
93
+ * Cleanup after timestamp (createdAt + maxAgeHours)
94
+ */
95
+ readonly cleanupAfter: Date;
96
+ /**
97
+ * Maximum age in hours before cleanup eligible
98
+ */
99
+ readonly maxAgeHours: number;
100
+ /**
101
+ * Enable automated cleanup
102
+ */
103
+ readonly autoCleanup: boolean;
104
+ /**
105
+ * Cleanup policy
106
+ */
107
+ readonly cleanupPolicy: "immediate" | "delayed" | "manual";
108
+ /**
109
+ * CI/CD context (populated from environment variables)
110
+ */
111
+ readonly ciContext?: CIContext;
112
+ /**
113
+ * Creates new test run metadata
114
+ *
115
+ * @param testName - Test name (will be sanitized)
116
+ * @param options - Optional configuration
117
+ */
118
+ constructor(testName: string, options?: TestRunOptions);
119
+ /**
120
+ * Generates system tags for resources
121
+ *
122
+ * @returns Integration test system tags
123
+ */
124
+ generateSystemTags(): Record<string, string>;
125
+ /**
126
+ * Checks if resources from this run are eligible for cleanup
127
+ *
128
+ * @param now - Current time (defaults to now)
129
+ * @returns Whether cleanup is eligible
130
+ */
131
+ isCleanupEligible(now?: Date): boolean;
132
+ /**
133
+ * Serializes metadata to JSON for logging
134
+ *
135
+ * @returns JSON-serializable object
136
+ */
137
+ toJSON(): Record<string, any>;
138
+ /**
139
+ * Sanitizes test name to be Azure-compliant
140
+ *
141
+ * @param name - Raw test name
142
+ * @returns Sanitized name
143
+ */
144
+ private sanitizeTestName;
145
+ }
146
+ /**
147
+ * Detects and extracts CI context from environment
148
+ *
149
+ * @returns CI context or undefined if not in CI
150
+ */
151
+ export declare function detectCIContext(): CIContext | undefined;
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TestRunMetadata = void 0;
5
+ exports.detectCIContext = detectCIContext;
6
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
+ /**
8
+ * Test run metadata management
9
+ *
10
+ * Provides classes and utilities for generating and managing
11
+ * integration test metadata including unique IDs, timestamps,
12
+ * CI context, and system tags.
13
+ */
14
+ const uuid_1 = require("uuid");
15
+ /**
16
+ * Metadata for an integration test run
17
+ *
18
+ * Generated once per test execution and shared across all resources
19
+ * in that test. Provides unique identification, temporal tracking,
20
+ * and CI/CD context.
21
+ */
22
+ class TestRunMetadata {
23
+ /**
24
+ * Creates new test run metadata
25
+ *
26
+ * @param testName - Test name (will be sanitized)
27
+ * @param options - Optional configuration
28
+ */
29
+ constructor(testName, options) {
30
+ this.runId = (0, uuid_1.v4)();
31
+ this.testName = this.sanitizeTestName(testName);
32
+ this.createdAt = new Date();
33
+ this.maxAgeHours = options?.maxAgeHours ?? 4;
34
+ this.autoCleanup = options?.autoCleanup ?? true;
35
+ this.cleanupPolicy = options?.cleanupPolicy ?? "immediate";
36
+ this.cleanupAfter = new Date(this.createdAt.getTime() + this.maxAgeHours * 60 * 60 * 1000);
37
+ this.ciContext = detectCIContext();
38
+ }
39
+ /**
40
+ * Generates system tags for resources
41
+ *
42
+ * @returns Integration test system tags
43
+ */
44
+ generateSystemTags() {
45
+ // Build tags object with all properties
46
+ // NOTE: Tag names use hyphens instead of colons because Azure DNS zones
47
+ // and some other resource types don't support colons (":") in tag names.
48
+ // See: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tag-resources#limitations
49
+ const tags = {
50
+ // Resource Identification
51
+ "test-run-id": this.runId,
52
+ "test-name": this.testName,
53
+ "test-resource-type": "integration-test",
54
+ // Temporal Tracking
55
+ "test-created-at": this.createdAt.toISOString(),
56
+ "test-cleanup-after": this.cleanupAfter.toISOString(),
57
+ "test-max-age-hours": this.maxAgeHours.toString(),
58
+ // Lifecycle Management
59
+ "test-managed-by": "terraform-cdk-constructs-tests",
60
+ "test-auto-cleanup": this.autoCleanup.toString(),
61
+ "test-cleanup-policy": this.cleanupPolicy,
62
+ // Backward Compatibility
63
+ environment: "integration-test",
64
+ purpose: "integration-test",
65
+ };
66
+ // Add CI/CD context if available
67
+ if (this.ciContext) {
68
+ if (this.ciContext.pipelineId) {
69
+ tags["test-ci-pipeline"] = this.ciContext.pipelineId;
70
+ }
71
+ if (this.ciContext.runId) {
72
+ tags["test-ci-run-id"] = this.ciContext.runId;
73
+ }
74
+ if (this.ciContext.runNumber) {
75
+ tags["test-ci-run-number"] = this.ciContext.runNumber;
76
+ }
77
+ if (this.ciContext.commitShaShort) {
78
+ tags["test-git-commit"] = this.ciContext.commitShaShort;
79
+ }
80
+ if (this.ciContext.branch) {
81
+ tags["test-git-branch"] = this.ciContext.branch;
82
+ }
83
+ }
84
+ return tags;
85
+ }
86
+ /**
87
+ * Checks if resources from this run are eligible for cleanup
88
+ *
89
+ * @param now - Current time (defaults to now)
90
+ * @returns Whether cleanup is eligible
91
+ */
92
+ isCleanupEligible(now) {
93
+ const currentTime = now || new Date();
94
+ return currentTime >= this.cleanupAfter;
95
+ }
96
+ /**
97
+ * Serializes metadata to JSON for logging
98
+ *
99
+ * @returns JSON-serializable object
100
+ */
101
+ toJSON() {
102
+ return {
103
+ runId: this.runId,
104
+ testName: this.testName,
105
+ createdAt: this.createdAt.toISOString(),
106
+ cleanupAfter: this.cleanupAfter.toISOString(),
107
+ maxAgeHours: this.maxAgeHours,
108
+ autoCleanup: this.autoCleanup,
109
+ cleanupPolicy: this.cleanupPolicy,
110
+ ciContext: this.ciContext,
111
+ };
112
+ }
113
+ /**
114
+ * Sanitizes test name to be Azure-compliant
115
+ *
116
+ * @param name - Raw test name
117
+ * @returns Sanitized name
118
+ */
119
+ sanitizeTestName(name) {
120
+ let sanitized = name
121
+ .toLowerCase()
122
+ // Replace spaces and special characters with hyphens
123
+ .replace(/[^a-z0-9-]/g, "-")
124
+ // Remove consecutive hyphens
125
+ .replace(/-+/g, "-")
126
+ // Remove leading/trailing hyphens
127
+ .replace(/^-+|-+$/g, "");
128
+ // Truncate to 63 characters (DNS label limit)
129
+ if (sanitized.length > 63) {
130
+ sanitized = sanitized.substring(0, 63).replace(/-+$/, "");
131
+ }
132
+ return sanitized;
133
+ }
134
+ }
135
+ exports.TestRunMetadata = TestRunMetadata;
136
+ _a = JSII_RTTI_SYMBOL_1;
137
+ TestRunMetadata[_a] = { fqn: "@microsoft/terraform-cdk-constructs.TestRunMetadata", version: "1.3.0" };
138
+ /**
139
+ * Detects and extracts CI context from environment
140
+ *
141
+ * @returns CI context or undefined if not in CI
142
+ */
143
+ function detectCIContext() {
144
+ // Detect GitHub Actions
145
+ if (process.env.GITHUB_ACTIONS === "true") {
146
+ return {
147
+ platform: "github-actions",
148
+ pipelineId: process.env.GITHUB_WORKFLOW,
149
+ runId: process.env.GITHUB_RUN_ID,
150
+ runNumber: process.env.GITHUB_RUN_NUMBER,
151
+ commitSha: process.env.GITHUB_SHA,
152
+ commitShaShort: process.env.GITHUB_SHA?.substring(0, 7),
153
+ branch: process.env.GITHUB_REF_NAME,
154
+ repository: process.env.GITHUB_REPOSITORY,
155
+ };
156
+ }
157
+ // Detect Azure DevOps
158
+ if (process.env.TF_BUILD === "True") {
159
+ return {
160
+ platform: "azure-devops",
161
+ pipelineId: process.env.BUILD_DEFINITIONNAME,
162
+ runId: process.env.BUILD_BUILDID,
163
+ runNumber: process.env.BUILD_BUILDNUMBER,
164
+ commitSha: process.env.BUILD_SOURCEVERSION,
165
+ commitShaShort: process.env.BUILD_SOURCEVERSION?.substring(0, 7),
166
+ branch: process.env.BUILD_SOURCEBRANCHNAME,
167
+ repository: process.env.BUILD_REPOSITORY_NAME,
168
+ };
169
+ }
170
+ // Detect generic CI
171
+ if (process.env.CI === "true") {
172
+ return {
173
+ platform: "generic-ci",
174
+ commitShaShort: "ci",
175
+ };
176
+ }
177
+ // Local execution
178
+ return {
179
+ platform: "local",
180
+ commitShaShort: "local",
181
+ };
182
+ }
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy9saWIvbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQXlRQSwwQ0EwQ0M7O0FBblREOzs7Ozs7R0FNRztBQUVILCtCQUFvQztBQThFcEM7Ozs7OztHQU1HO0FBQ0gsTUFBYSxlQUFlO0lBeUMxQjs7Ozs7T0FLRztJQUNILFlBQVksUUFBZ0IsRUFBRSxPQUF3QjtRQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUEsU0FBTSxHQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxFQUFFLFdBQVcsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQztRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sRUFBRSxhQUFhLElBQUksV0FBVyxDQUFDO1FBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FDN0QsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxrQkFBa0I7UUFDdkIsd0NBQXdDO1FBQ3hDLHdFQUF3RTtRQUN4RSx5RUFBeUU7UUFDekUsMkdBQTJHO1FBQzNHLE1BQU0sSUFBSSxHQUEyQjtZQUNuQywwQkFBMEI7WUFDMUIsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3pC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QWlCO1lBQ3hDLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtZQUMxQyxjQUFjLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRSxNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0I7WUFDMUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCO1NBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDOUIsT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLGNBQWMsRUFBRSxJQUFJO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU87UUFDTCxRQUFRLEVBQUUsT0FBTztRQUNqQixjQUFjLEVBQUUsT0FBTztLQUN4QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGVzdCBydW4gbWV0YWRhdGEgbWFuYWdlbWVudFxuICpcbiAqIFByb3ZpZGVzIGNsYXNzZXMgYW5kIHV0aWxpdGllcyBmb3IgZ2VuZXJhdGluZyBhbmQgbWFuYWdpbmdcbiAqIGludGVncmF0aW9uIHRlc3QgbWV0YWRhdGEgaW5jbHVkaW5nIHVuaXF1ZSBJRHMsIHRpbWVzdGFtcHMsXG4gKiBDSSBjb250ZXh0LCBhbmQgc3lzdGVtIHRhZ3MuXG4gKi9cblxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSBcInV1aWRcIjtcblxuLyoqXG4gKiBDSS9DRCBwaXBlbGluZSBjb250ZXh0XG4gKlxuICogRXh0cmFjdGVkIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzIGR1cmluZyB0ZXN0IGV4ZWN1dGlvbi5cbiAqIEVuYWJsZXMgdHJhY2luZyByZXNvdXJjZXMgYmFjayB0byBzcGVjaWZpYyBwaXBlbGluZSBydW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENJQ29udGV4dCB7XG4gIC8qKlxuICAgKiBDSSBwbGF0Zm9ybSAoJ2dpdGh1Yi1hY3Rpb25zJywgJ2F6dXJlLWRldm9wcycsICdnZW5lcmljLWNpJywgJ2xvY2FsJylcbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93IElEIG9yIGVxdWl2YWxlbnRcbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBBY3Rpb25zIHJ1biBJRCBvciBlcXVpdmFsZW50XG4gICAqL1xuICByZWFkb25seSBydW5JZD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIEFjdGlvbnMgcnVuIG51bWJlciBvciBlcXVpdmFsZW50XG4gICAqL1xuICByZWFkb25seSBydW5OdW1iZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdCBjb21taXQgU0hBIChmdWxsKVxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWl0U2hhPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXQgY29tbWl0IFNIQSAoc2hvcnQsIDcgY2hhcnMpXG4gICAqL1xuICByZWFkb25seSBjb21taXRTaGFTaG9ydD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0IGJyYW5jaCBuYW1lXG4gICAqL1xuICByZWFkb25seSBicmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdCByZXBvc2l0b3J5IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZWdyYXRpb24gdGVzdCBzeXN0ZW0gdGFnc1xuICpcbiAqIFJldHVybnMgYSByZWNvcmQgb2YgdGFnIGtleS12YWx1ZSBwYWlycyBmb3IgQXp1cmUgcmVzb3VyY2VzLlxuICogVXNlcyBBenVyZSB0YWcgbmFtaW5nIGNvbnZlbnRpb25zIHdpdGggY29sb25zIGFuZCBoeXBoZW5zLlxuICovXG5leHBvcnQgdHlwZSBJbnRlZ3JhdGlvblRlc3RUYWdzID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuLyoqXG4gKiBUZXN0IHJ1biBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXN0UnVuT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGFnZSBpbiBob3VycyBiZWZvcmUgY2xlYW51cCBlbGlnaWJsZSAoZGVmYXVsdDogNClcbiAgICovXG4gIHJlYWRvbmx5IG1heEFnZUhvdXJzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgYXV0b21hdGVkIGNsZWFudXAgKGRlZmF1bHQ6IHRydWUpXG4gICAqL1xuICByZWFkb25seSBhdXRvQ2xlYW51cD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENsZWFudXAgcG9saWN5IChkZWZhdWx0OiAnaW1tZWRpYXRlJylcbiAgICovXG4gIHJlYWRvbmx5IGNsZWFudXBQb2xpY3k/OiBcImltbWVkaWF0ZVwiIHwgXCJkZWxheWVkXCIgfCBcIm1hbnVhbFwiO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIGZvciBhbiBpbnRlZ3JhdGlvbiB0ZXN0IHJ1blxuICpcbiAqIEdlbmVyYXRlZCBvbmNlIHBlciB0ZXN0IGV4ZWN1dGlvbiBhbmQgc2hhcmVkIGFjcm9zcyBhbGwgcmVzb3VyY2VzXG4gKiBpbiB0aGF0IHRlc3QuIFByb3ZpZGVzIHVuaXF1ZSBpZGVudGlmaWNhdGlvbiwgdGVtcG9yYWwgdHJhY2tpbmcsXG4gKiBhbmQgQ0kvQ0QgY29udGV4dC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRlc3RSdW5NZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyB0ZXN0IHJ1biAoVVVJRCB2NClcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBydW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTYW5pdGl6ZWQgdGVzdCBuYW1lIGZyb20gdGhlIGRlc2NyaWJlIGJsb2NrXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGVzdE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIHRlc3QgcnVuIHN0YXJ0ZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVkQXQ6IERhdGU7XG5cbiAgLyoqXG4gICAqIENsZWFudXAgYWZ0ZXIgdGltZXN0YW1wIChjcmVhdGVkQXQgKyBtYXhBZ2VIb3VycylcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjbGVhbnVwQWZ0ZXI6IERhdGU7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gYWdlIGluIGhvdXJzIGJlZm9yZSBjbGVhbnVwIGVsaWdpYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWF4QWdlSG91cnM6IG51bWJlcjtcblxuICAvKipcbiAgICogRW5hYmxlIGF1dG9tYXRlZCBjbGVhbnVwXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXV0b0NsZWFudXA6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENsZWFudXAgcG9saWN5XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2xlYW51cFBvbGljeTogXCJpbW1lZGlhdGVcIiB8IFwiZGVsYXllZFwiIHwgXCJtYW51YWxcIjtcblxuICAvKipcbiAgICogQ0kvQ0QgY29udGV4dCAocG9wdWxhdGVkIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzKVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNpQ29udGV4dD86IENJQ29udGV4dDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBuZXcgdGVzdCBydW4gbWV0YWRhdGFcbiAgICpcbiAgICogQHBhcmFtIHRlc3ROYW1lIC0gVGVzdCBuYW1lICh3aWxsIGJlIHNhbml0aXplZClcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0ZXN0TmFtZTogc3RyaW5nLCBvcHRpb25zPzogVGVzdFJ1bk9wdGlvbnMpIHtcbiAgICB0aGlzLnJ1bklkID0gdXVpZHY0KCk7XG4gICAgdGhpcy50ZXN0TmFtZSA9IHRoaXMuc2FuaXRpemVUZXN0TmFtZSh0ZXN0TmFtZSk7XG4gICAgdGhpcy5jcmVhdGVkQXQgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMubWF4QWdlSG91cnMgPSBvcHRpb25zPy5tYXhBZ2VIb3VycyA/PyA0O1xuICAgIHRoaXMuYXV0b0NsZWFudXAgPSBvcHRpb25zPy5hdXRvQ2xlYW51cCA/PyB0cnVlO1xuICAgIHRoaXMuY2xlYW51cFBvbGljeSA9IG9wdGlvbnM/LmNsZWFudXBQb2xpY3kgPz8gXCJpbW1lZGlhdGVcIjtcbiAgICB0aGlzLmNsZWFudXBBZnRlciA9IG5ldyBEYXRlKFxuICAgICAgdGhpcy5jcmVhdGVkQXQuZ2V0VGltZSgpICsgdGhpcy5tYXhBZ2VIb3VycyAqIDYwICogNjAgKiAxMDAwLFxuICAgICk7XG4gICAgdGhpcy5jaUNvbnRleHQgPSBkZXRlY3RDSUNvbnRleHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgc3lzdGVtIHRhZ3MgZm9yIHJlc291cmNlc1xuICAgKlxuICAgKiBAcmV0dXJucyBJbnRlZ3JhdGlvbiB0ZXN0IHN5c3RlbSB0YWdzXG4gICAqL1xuICBwdWJsaWMgZ2VuZXJhdGVTeXN0ZW1UYWdzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIC8vIEJ1aWxkIHRhZ3Mgb2JqZWN0IHdpdGggYWxsIHByb3BlcnRpZXNcbiAgICAvLyBOT1RFOiBUYWcgbmFtZXMgdXNlIGh5cGhlbnMgaW5zdGVhZCBvZiBjb2xvbnMgYmVjYXVzZSBBenVyZSBETlMgem9uZXNcbiAgICAvLyBhbmQgc29tZSBvdGhlciByZXNvdXJjZSB0eXBlcyBkb24ndCBzdXBwb3J0IGNvbG9ucyAoXCI6XCIpIGluIHRhZyBuYW1lcy5cbiAgICAvLyBTZWU6IGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9henVyZS9henVyZS1yZXNvdXJjZS1tYW5hZ2VyL21hbmFnZW1lbnQvdGFnLXJlc291cmNlcyNsaW1pdGF0aW9uc1xuICAgIGNvbnN0IHRhZ3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAvLyBSZXNvdXJjZSBJZGVudGlmaWNhdGlvblxuICAgICAgXCJ0ZXN0LXJ1bi1pZFwiOiB0aGlzLnJ1bklkLFxuICAgICAgXCJ0ZXN0LW5hbWVcIjogdGhpcy50ZXN0TmFtZSxcbiAgICAgIFwidGVzdC1yZXNvdXJjZS10eXBlXCI6IFwiaW50ZWdyYXRpb24tdGVzdFwiLFxuXG4gICAgICAvLyBUZW1wb3JhbCBUcmFja2luZ1xuICAgICAgXCJ0ZXN0LWNyZWF0ZWQtYXRcIjogdGhpcy5jcmVhdGVkQXQudG9JU09TdHJpbmcoKSxcbiAgICAgIFwidGVzdC1jbGVhbnVwLWFmdGVyXCI6IHRoaXMuY2xlYW51cEFmdGVyLnRvSVNPU3RyaW5nKCksXG4gICAgICBcInRlc3QtbWF4LWFnZS1ob3Vyc1wiOiB0aGlzLm1heEFnZUhvdXJzLnRvU3RyaW5nKCksXG5cbiAgICAgIC8vIExpZmVjeWNsZSBNYW5hZ2VtZW50XG4gICAgICBcInRlc3QtbWFuYWdlZC1ieVwiOiBcInRlcnJhZm9ybS1jZGstY29uc3RydWN0cy10ZXN0c1wiLFxuICAgICAgXCJ0ZXN0LWF1dG8tY2xlYW51cFwiOiB0aGlzLmF1dG9DbGVhbnVwLnRvU3RyaW5nKCksXG4gICAgICBcInRlc3QtY2xlYW51cC1wb2xpY3lcIjogdGhpcy5jbGVhbnVwUG9saWN5LFxuXG4gICAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5XG4gICAgICBlbnZpcm9ubWVudDogXCJpbnRlZ3JhdGlvbi10ZXN0XCIsXG4gICAgICBwdXJwb3NlOiBcImludGVncmF0aW9uLXRlc3RcIixcbiAgICB9O1xuXG4gICAgLy8gQWRkIENJL0NEIGNvbnRleHQgaWYgYXZhaWxhYmxlXG4gICAgaWYgKHRoaXMuY2lDb250ZXh0KSB7XG4gICAgICBpZiAodGhpcy5jaUNvbnRleHQucGlwZWxpbmVJZCkge1xuICAgICAgICB0YWdzW1widGVzdC1jaS1waXBlbGluZVwiXSA9IHRoaXMuY2lDb250ZXh0LnBpcGVsaW5lSWQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jaUNvbnRleHQucnVuSWQpIHtcbiAgICAgICAgdGFnc1tcInRlc3QtY2ktcnVuLWlkXCJdID0gdGhpcy5jaUNvbnRleHQucnVuSWQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jaUNvbnRleHQucnVuTnVtYmVyKSB7XG4gICAgICAgIHRhZ3NbXCJ0ZXN0LWNpLXJ1bi1udW1iZXJcIl0gPSB0aGlzLmNpQ29udGV4dC5ydW5OdW1iZXI7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jaUNvbnRleHQuY29tbWl0U2hhU2hvcnQpIHtcbiAgICAgICAgdGFnc1tcInRlc3QtZ2l0LWNvbW1pdFwiXSA9IHRoaXMuY2lDb250ZXh0LmNvbW1pdFNoYVNob3J0O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY2lDb250ZXh0LmJyYW5jaCkge1xuICAgICAgICB0YWdzW1widGVzdC1naXQtYnJhbmNoXCJdID0gdGhpcy5jaUNvbnRleHQuYnJhbmNoO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YWdzIGFzIEludGVncmF0aW9uVGVzdFRhZ3M7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHJlc291cmNlcyBmcm9tIHRoaXMgcnVuIGFyZSBlbGlnaWJsZSBmb3IgY2xlYW51cFxuICAgKlxuICAgKiBAcGFyYW0gbm93IC0gQ3VycmVudCB0aW1lIChkZWZhdWx0cyB0byBub3cpXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgY2xlYW51cCBpcyBlbGlnaWJsZVxuICAgKi9cbiAgcHVibGljIGlzQ2xlYW51cEVsaWdpYmxlKG5vdz86IERhdGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBjdXJyZW50VGltZSA9IG5vdyB8fCBuZXcgRGF0ZSgpO1xuICAgIHJldHVybiBjdXJyZW50VGltZSA+PSB0aGlzLmNsZWFudXBBZnRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIG1ldGFkYXRhIHRvIEpTT04gZm9yIGxvZ2dpbmdcbiAgICpcbiAgICogQHJldHVybnMgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgdG9KU09OKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICBydW5JZDogdGhpcy5ydW5JZCxcbiAgICAgIHRlc3ROYW1lOiB0aGlzLnRlc3ROYW1lLFxuICAgICAgY3JlYXRlZEF0OiB0aGlzLmNyZWF0ZWRBdC50b0lTT1N0cmluZygpLFxuICAgICAgY2xlYW51cEFmdGVyOiB0aGlzLmNsZWFudXBBZnRlci50b0lTT1N0cmluZygpLFxuICAgICAgbWF4QWdlSG91cnM6IHRoaXMubWF4QWdlSG91cnMsXG4gICAgICBhdXRvQ2xlYW51cDogdGhpcy5hdXRvQ2xlYW51cCxcbiAgICAgIGNsZWFudXBQb2xpY3k6IHRoaXMuY2xlYW51cFBvbGljeSxcbiAgICAgIGNpQ29udGV4dDogdGhpcy5jaUNvbnRleHQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYW5pdGl6ZXMgdGVzdCBuYW1lIHRvIGJlIEF6dXJlLWNvbXBsaWFudFxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIFJhdyB0ZXN0IG5hbWVcbiAgICogQHJldHVybnMgU2FuaXRpemVkIG5hbWVcbiAgICovXG4gIHByaXZhdGUgc2FuaXRpemVUZXN0TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBzYW5pdGl6ZWQgPSBuYW1lXG4gICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgLy8gUmVwbGFjZSBzcGFjZXMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycyB3aXRoIGh5cGhlbnNcbiAgICAgIC5yZXBsYWNlKC9bXmEtejAtOS1dL2csIFwiLVwiKVxuICAgICAgLy8gUmVtb3ZlIGNvbnNlY3V0aXZlIGh5cGhlbnNcbiAgICAgIC5yZXBsYWNlKC8tKy9nLCBcIi1cIilcbiAgICAgIC8vIFJlbW92ZSBsZWFkaW5nL3RyYWlsaW5nIGh5cGhlbnNcbiAgICAgIC5yZXBsYWNlKC9eLSt8LSskL2csIFwiXCIpO1xuXG4gICAgLy8gVHJ1bmNhdGUgdG8gNjMgY2hhcmFjdGVycyAoRE5TIGxhYmVsIGxpbWl0KVxuICAgIGlmIChzYW5pdGl6ZWQubGVuZ3RoID4gNjMpIHtcbiAgICAgIHNhbml0aXplZCA9IHNhbml0aXplZC5zdWJzdHJpbmcoMCwgNjMpLnJlcGxhY2UoLy0rJC8sIFwiXCIpO1xuICAgIH1cblxuICAgIHJldHVybiBzYW5pdGl6ZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlY3RzIGFuZCBleHRyYWN0cyBDSSBjb250ZXh0IGZyb20gZW52aXJvbm1lbnRcbiAqXG4gKiBAcmV0dXJucyBDSSBjb250ZXh0IG9yIHVuZGVmaW5lZCBpZiBub3QgaW4gQ0lcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdENJQ29udGV4dCgpOiBDSUNvbnRleHQgfCB1bmRlZmluZWQge1xuICAvLyBEZXRlY3QgR2l0SHViIEFjdGlvbnNcbiAgaWYgKHByb2Nlc3MuZW52LkdJVEhVQl9BQ1RJT05TID09PSBcInRydWVcIikge1xuICAgIHJldHVybiB7XG4gICAgICBwbGF0Zm9ybTogXCJnaXRodWItYWN0aW9uc1wiLFxuICAgICAgcGlwZWxpbmVJZDogcHJvY2Vzcy5lbnYuR0lUSFVCX1dPUktGTE9XLFxuICAgICAgcnVuSWQ6IHByb2Nlc3MuZW52LkdJVEhVQl9SVU5fSUQsXG4gICAgICBydW5OdW1iZXI6IHByb2Nlc3MuZW52LkdJVEhVQl9SVU5fTlVNQkVSLFxuICAgICAgY29tbWl0U2hhOiBwcm9jZXNzLmVudi5HSVRIVUJfU0hBLFxuICAgICAgY29tbWl0U2hhU2hvcnQ6IHByb2Nlc3MuZW52LkdJVEhVQl9TSEE/LnN1YnN0cmluZygwLCA3KSxcbiAgICAgIGJyYW5jaDogcHJvY2Vzcy5lbnYuR0lUSFVCX1JFRl9OQU1FLFxuICAgICAgcmVwb3NpdG9yeTogcHJvY2Vzcy5lbnYuR0lUSFVCX1JFUE9TSVRPUlksXG4gICAgfTtcbiAgfVxuXG4gIC8vIERldGVjdCBBenVyZSBEZXZPcHNcbiAgaWYgKHByb2Nlc3MuZW52LlRGX0JVSUxEID09PSBcIlRydWVcIikge1xuICAgIHJldHVybiB7XG4gICAgICBwbGF0Zm9ybTogXCJhenVyZS1kZXZvcHNcIixcbiAgICAgIHBpcGVsaW5lSWQ6IHByb2Nlc3MuZW52LkJVSUxEX0RFRklOSVRJT05OQU1FLFxuICAgICAgcnVuSWQ6IHByb2Nlc3MuZW52LkJVSUxEX0JVSUxESUQsXG4gICAgICBydW5OdW1iZXI6IHByb2Nlc3MuZW52LkJVSUxEX0JVSUxETlVNQkVSLFxuICAgICAgY29tbWl0U2hhOiBwcm9jZXNzLmVudi5CVUlMRF9TT1VSQ0VWRVJTSU9OLFxuICAgICAgY29tbWl0U2hhU2hvcnQ6IHByb2Nlc3MuZW52LkJVSUxEX1NPVVJDRVZFUlNJT04/LnN1YnN0cmluZygwLCA3KSxcbiAgICAgIGJyYW5jaDogcHJvY2Vzcy5lbnYuQlVJTERfU09VUkNFQlJBTkNITkFNRSxcbiAgICAgIHJlcG9zaXRvcnk6IHByb2Nlc3MuZW52LkJVSUxEX1JFUE9TSVRPUllfTkFNRSxcbiAgICB9O1xuICB9XG5cbiAgLy8gRGV0ZWN0IGdlbmVyaWMgQ0lcbiAgaWYgKHByb2Nlc3MuZW52LkNJID09PSBcInRydWVcIikge1xuICAgIHJldHVybiB7XG4gICAgICBwbGF0Zm9ybTogXCJnZW5lcmljLWNpXCIsXG4gICAgICBjb21taXRTaGFTaG9ydDogXCJjaVwiLFxuICAgIH07XG4gIH1cblxuICAvLyBMb2NhbCBleGVjdXRpb25cbiAgcmV0dXJuIHtcbiAgICBwbGF0Zm9ybTogXCJsb2NhbFwiLFxuICAgIGNvbW1pdFNoYVNob3J0OiBcImxvY2FsXCIsXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Resource naming utilities for integration tests
3
+ *
4
+ * Provides functions for generating unique, Azure-compliant
5
+ * resource names with proper length constraints and character restrictions.
6
+ */
7
+ /**
8
+ * Azure resource naming constraints
9
+ */
10
+ interface ResourceConstraints {
11
+ maxLength: number;
12
+ allowHyphens: boolean;
13
+ allowUnderscores: boolean;
14
+ allowPeriods: boolean;
15
+ casePolicy: "lower" | "upper" | "any";
16
+ allowedPattern?: RegExp;
17
+ }
18
+ /**
19
+ * Options for generating resource names
20
+ */
21
+ export interface NameGenerationOptions {
22
+ /**
23
+ * Azure resource type (e.g., 'Microsoft.Resources/resourceGroups')
24
+ */
25
+ resourceType: string;
26
+ /**
27
+ * Test name or identifier
28
+ */
29
+ testName: string;
30
+ /**
31
+ * Test run UUID
32
+ */
33
+ runId: string;
34
+ /**
35
+ * Optional custom identifier to include in name
36
+ */
37
+ customIdentifier?: string;
38
+ }
39
+ /**
40
+ * Generates a unique, Azure-compliant resource name
41
+ *
42
+ * Creates names in format: {prefix}-{identifier}-{suffix} or
43
+ * {prefix}{identifier}{suffix} depending on resource constraints.
44
+ *
45
+ * @param options - Name generation options
46
+ * @returns Azure-compliant resource name
47
+ *
48
+ * @example
49
+ * generateResourceName({
50
+ * resourceType: 'Microsoft.Resources/resourceGroups',
51
+ * testName: 'storage-test',
52
+ * runId: 'a1b2c3d4-e5f6-4789-b012-3456789abcde'
53
+ * });
54
+ * // Returns: 'rg-storage-test-a1b2c3'
55
+ *
56
+ * generateResourceName({
57
+ * resourceType: 'Microsoft.Storage/storageAccounts',
58
+ * testName: 'basic-test',
59
+ * runId: 'a1b2c3d4-e5f6-4789-b012-3456789abcde'
60
+ * });
61
+ * // Returns: 'stbasictesta1b2c3'
62
+ */
63
+ export declare function generateResourceName(options: NameGenerationOptions): string;
64
+ /**
65
+ * Gets the resource type prefix
66
+ *
67
+ * @param resourceType - Azure resource type
68
+ * @returns Short prefix for the resource type
69
+ */
70
+ export declare function getResourcePrefix(resourceType: string): string;
71
+ /**
72
+ * Sanitizes a test identifier to be Azure-compliant
73
+ *
74
+ * @param identifier - Raw identifier
75
+ * @param constraints - Resource naming constraints
76
+ * @returns Sanitized identifier
77
+ */
78
+ export declare function sanitizeIdentifier(identifier: string, constraints: ResourceConstraints): string;
79
+ /**
80
+ * Generates a short unique ID from a UUID
81
+ *
82
+ * Takes the first 6 characters of the UUID (without hyphens)
83
+ * to create a short, unique suffix.
84
+ *
85
+ * @param runId - UUID v4 run ID
86
+ * @returns Short ID (6 characters)
87
+ */
88
+ export declare function generateShortId(runId: string): string;
89
+ /**
90
+ * Gets resource naming constraints for a resource type
91
+ *
92
+ * @param resourceType - Azure resource type
93
+ * @returns Naming constraints for the resource type
94
+ */
95
+ export declare function getResourceConstraints(resourceType: string): ResourceConstraints;
96
+ export {};