@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.
- package/.jsii +89270 -15866
- package/API.md +103201 -10557
- package/README.md +72 -36
- package/docs/monitoring-guide.md +206 -0
- package/docs/testing.md +84 -1
- package/lib/azure-actiongroup/index.d.ts +1 -0
- package/lib/azure-actiongroup/index.js +18 -0
- package/lib/azure-actiongroup/lib/action-group-schemas.d.ts +24 -0
- package/lib/azure-actiongroup/lib/action-group-schemas.js +201 -0
- package/lib/azure-actiongroup/lib/action-group.d.ts +302 -0
- package/lib/azure-actiongroup/lib/action-group.js +175 -0
- package/lib/azure-actiongroup/lib/index.d.ts +2 -0
- package/lib/azure-actiongroup/lib/index.js +19 -0
- package/lib/azure-actiongroup/test/action-group.integ.d.ts +9 -0
- package/lib/azure-actiongroup/test/action-group.integ.js +79 -0
- package/lib/azure-actiongroup/test/action-group.spec.d.ts +8 -0
- package/lib/azure-actiongroup/test/action-group.spec.js +602 -0
- package/lib/azure-activitylogalert/index.d.ts +1 -0
- package/lib/azure-activitylogalert/index.js +18 -0
- package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.d.ts +24 -0
- package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.js +182 -0
- package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +226 -0
- package/lib/azure-activitylogalert/lib/activity-log-alert.js +186 -0
- package/lib/azure-activitylogalert/lib/index.d.ts +2 -0
- package/lib/azure-activitylogalert/lib/index.js +19 -0
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +9 -0
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +98 -0
- package/lib/azure-activitylogalert/test/activity-log-alert.spec.d.ts +9 -0
- package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +1101 -0
- package/lib/azure-aks/index.d.ts +1 -0
- package/lib/azure-aks/index.js +18 -0
- package/lib/azure-aks/lib/aks-cluster-schemas.d.ts +505 -0
- package/lib/azure-aks/lib/aks-cluster-schemas.js +572 -0
- package/lib/azure-aks/lib/aks-cluster.d.ts +386 -0
- package/lib/azure-aks/lib/aks-cluster.js +466 -0
- package/lib/azure-aks/lib/index.d.ts +2 -0
- package/lib/azure-aks/lib/index.js +19 -0
- package/lib/azure-aks/test/aks-cluster.integ.d.ts +9 -0
- package/lib/azure-aks/test/aks-cluster.integ.js +260 -0
- package/lib/azure-aks/test/aks-cluster.spec.d.ts +8 -0
- package/lib/azure-aks/test/aks-cluster.spec.js +1396 -0
- package/lib/azure-diagnosticsettings/index.d.ts +1 -0
- package/lib/azure-diagnosticsettings/index.js +18 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.d.ts +50 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.js +207 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +183 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +174 -0
- package/lib/azure-diagnosticsettings/lib/index.d.ts +2 -0
- package/lib/azure-diagnosticsettings/lib/index.js +19 -0
- package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.d.ts +8 -0
- package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +432 -0
- package/lib/azure-dnsforwardingruleset/index.d.ts +1 -0
- package/lib/azure-dnsforwardingruleset/index.js +18 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.d.ts +24 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.js +206 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +174 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +214 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.d.ts +24 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.js +242 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +193 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +193 -0
- package/lib/azure-dnsforwardingruleset/lib/index.d.ts +6 -0
- package/lib/azure-dnsforwardingruleset/lib/index.js +23 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.d.ts +24 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.js +199 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +160 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +178 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +133 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +350 -0
- package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +397 -0
- package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +285 -0
- package/lib/azure-dnsresolver/index.d.ts +1 -0
- package/lib/azure-dnsresolver/index.js +18 -0
- package/lib/azure-dnsresolver/lib/dns-resolver-schemas.d.ts +24 -0
- package/lib/azure-dnsresolver/lib/dns-resolver-schemas.js +218 -0
- package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +170 -0
- package/lib/azure-dnsresolver/lib/dns-resolver.js +236 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.d.ts +24 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.js +261 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +189 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint.js +243 -0
- package/lib/azure-dnsresolver/lib/index.d.ts +6 -0
- package/lib/azure-dnsresolver/lib/index.js +23 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.d.ts +24 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.js +231 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +175 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint.js +234 -0
- package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +14 -0
- package/lib/azure-dnsresolver/test/dns-resolver.integ.js +117 -0
- package/lib/azure-dnsresolver/test/dns-resolver.spec.d.ts +9 -0
- package/lib/azure-dnsresolver/test/dns-resolver.spec.js +353 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +9 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +151 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.spec.d.ts +9 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +441 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +9 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +149 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.spec.d.ts +9 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +301 -0
- package/lib/azure-dnszone/index.d.ts +1 -0
- package/lib/azure-dnszone/index.js +18 -0
- package/lib/azure-dnszone/lib/dns-zone-schemas.d.ts +24 -0
- package/lib/azure-dnszone/lib/dns-zone-schemas.js +191 -0
- package/lib/azure-dnszone/lib/dns-zone.d.ts +182 -0
- package/lib/azure-dnszone/lib/dns-zone.js +228 -0
- package/lib/azure-dnszone/lib/index.d.ts +2 -0
- package/lib/azure-dnszone/lib/index.js +19 -0
- package/lib/azure-dnszone/test/dns-zone.integ.d.ts +9 -0
- package/lib/azure-dnszone/test/dns-zone.integ.js +85 -0
- package/lib/azure-dnszone/test/dns-zone.spec.d.ts +9 -0
- package/lib/azure-dnszone/test/dns-zone.spec.js +285 -0
- package/lib/azure-metricalert/index.d.ts +1 -0
- package/lib/azure-metricalert/index.js +18 -0
- package/lib/azure-metricalert/lib/index.d.ts +2 -0
- package/lib/azure-metricalert/lib/index.js +19 -0
- package/lib/azure-metricalert/lib/metric-alert-schemas.d.ts +24 -0
- package/lib/azure-metricalert/lib/metric-alert-schemas.js +242 -0
- package/lib/azure-metricalert/lib/metric-alert.d.ts +334 -0
- package/lib/azure-metricalert/lib/metric-alert.js +226 -0
- package/lib/azure-metricalert/test/metric-alert.integ.d.ts +9 -0
- package/lib/azure-metricalert/test/metric-alert.integ.js +123 -0
- package/lib/azure-metricalert/test/metric-alert.spec.d.ts +9 -0
- package/lib/azure-metricalert/test/metric-alert.spec.js +1266 -0
- package/lib/azure-networkinterface/index.d.ts +1 -0
- package/lib/azure-networkinterface/index.js +18 -0
- package/lib/azure-networkinterface/lib/index.d.ts +2 -0
- package/lib/azure-networkinterface/lib/index.js +19 -0
- package/lib/azure-networkinterface/lib/network-interface-schemas.d.ts +32 -0
- package/lib/azure-networkinterface/lib/network-interface-schemas.js +222 -0
- package/lib/azure-networkinterface/lib/network-interface.d.ts +260 -0
- package/lib/azure-networkinterface/lib/network-interface.js +213 -0
- package/lib/azure-networkinterface/test/network-interface.integ.d.ts +9 -0
- package/lib/azure-networkinterface/test/network-interface.integ.js +116 -0
- package/lib/azure-networkinterface/test/network-interface.spec.d.ts +8 -0
- package/lib/azure-networkinterface/test/network-interface.spec.js +655 -0
- package/lib/azure-networksecuritygroup/index.d.ts +1 -0
- package/lib/azure-networksecuritygroup/index.js +18 -0
- package/lib/azure-networksecuritygroup/lib/index.d.ts +2 -0
- package/lib/azure-networksecuritygroup/lib/index.js +19 -0
- package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.d.ts +32 -0
- package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.js +198 -0
- package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +259 -0
- package/lib/azure-networksecuritygroup/lib/network-security-group.js +226 -0
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +9 -0
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +151 -0
- package/lib/azure-networksecuritygroup/test/network-security-group.spec.d.ts +8 -0
- package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +652 -0
- package/lib/azure-policyassignment/index.d.ts +1 -0
- package/lib/azure-policyassignment/index.js +18 -0
- package/lib/azure-policyassignment/lib/index.d.ts +2 -0
- package/lib/azure-policyassignment/lib/index.js +19 -0
- package/lib/azure-policyassignment/lib/policy-assignment-schemas.d.ts +25 -0
- package/lib/azure-policyassignment/lib/policy-assignment-schemas.js +260 -0
- package/lib/azure-policyassignment/lib/policy-assignment.d.ts +342 -0
- package/lib/azure-policyassignment/lib/policy-assignment.js +228 -0
- package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +13 -0
- package/lib/azure-policyassignment/test/policy-assignment.integ.js +153 -0
- package/lib/azure-policyassignment/test/policy-assignment.spec.d.ts +9 -0
- package/lib/azure-policyassignment/test/policy-assignment.spec.js +651 -0
- package/lib/azure-policydefinition/index.d.ts +1 -0
- package/lib/azure-policydefinition/index.js +18 -0
- package/lib/azure-policydefinition/lib/index.d.ts +2 -0
- package/lib/azure-policydefinition/lib/index.js +19 -0
- package/lib/azure-policydefinition/lib/policy-definition-schemas.d.ts +25 -0
- package/lib/azure-policydefinition/lib/policy-definition-schemas.js +210 -0
- package/lib/azure-policydefinition/lib/policy-definition.d.ts +260 -0
- package/lib/azure-policydefinition/lib/policy-definition.js +199 -0
- package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +9 -0
- package/lib/azure-policydefinition/test/policy-definition.integ.js +137 -0
- package/lib/azure-policydefinition/test/policy-definition.spec.d.ts +9 -0
- package/lib/azure-policydefinition/test/policy-definition.spec.js +596 -0
- package/lib/azure-privatednszone/index.d.ts +1 -0
- package/lib/azure-privatednszone/index.js +18 -0
- package/lib/azure-privatednszone/lib/index.d.ts +2 -0
- package/lib/azure-privatednszone/lib/index.js +19 -0
- package/lib/azure-privatednszone/lib/private-dns-zone-schemas.d.ts +24 -0
- package/lib/azure-privatednszone/lib/private-dns-zone-schemas.js +254 -0
- package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +178 -0
- package/lib/azure-privatednszone/lib/private-dns-zone.js +272 -0
- package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +9 -0
- package/lib/azure-privatednszone/test/private-dns-zone.integ.js +84 -0
- package/lib/azure-privatednszone/test/private-dns-zone.spec.d.ts +9 -0
- package/lib/azure-privatednszone/test/private-dns-zone.spec.js +341 -0
- package/lib/azure-privatednszonelink/index.d.ts +1 -0
- package/lib/azure-privatednszonelink/index.js +18 -0
- package/lib/azure-privatednszonelink/lib/index.d.ts +2 -0
- package/lib/azure-privatednszonelink/lib/index.js +19 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.d.ts +24 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.js +262 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +202 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +250 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +9 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +110 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.d.ts +9 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +465 -0
- package/lib/azure-publicipaddress/index.d.ts +1 -0
- package/lib/azure-publicipaddress/index.js +18 -0
- package/lib/azure-publicipaddress/lib/index.d.ts +2 -0
- package/lib/azure-publicipaddress/lib/index.js +19 -0
- package/lib/azure-publicipaddress/lib/public-ip-address-schemas.d.ts +32 -0
- package/lib/azure-publicipaddress/lib/public-ip-address-schemas.js +227 -0
- package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +247 -0
- package/lib/azure-publicipaddress/lib/public-ip-address.js +245 -0
- package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +9 -0
- package/lib/azure-publicipaddress/test/public-ip-address.integ.js +75 -0
- package/lib/azure-publicipaddress/test/public-ip-address.spec.d.ts +15 -0
- package/lib/azure-publicipaddress/test/public-ip-address.spec.js +498 -0
- package/lib/azure-resourcegroup/index.d.ts +0 -37
- package/lib/azure-resourcegroup/index.js +1 -39
- package/lib/azure-resourcegroup/lib/index.d.ts +1 -44
- package/lib/azure-resourcegroup/lib/index.js +2 -43
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +9 -23
- package/lib/azure-resourcegroup/lib/resource-group.js +23 -56
- package/lib/azure-resourcegroup/test/resource-group.integ.js +23 -11
- package/lib/azure-resourcegroup/test/resource-group.spec.js +13 -19
- package/lib/azure-roleassignment/index.d.ts +1 -0
- package/lib/azure-roleassignment/index.js +18 -0
- package/lib/azure-roleassignment/lib/index.d.ts +2 -0
- package/lib/azure-roleassignment/lib/index.js +19 -0
- package/lib/azure-roleassignment/lib/role-assignment-schemas.d.ts +25 -0
- package/lib/azure-roleassignment/lib/role-assignment-schemas.js +238 -0
- package/lib/azure-roleassignment/lib/role-assignment.d.ts +294 -0
- package/lib/azure-roleassignment/lib/role-assignment.js +257 -0
- package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +12 -0
- package/lib/azure-roleassignment/test/role-assignment.integ.js +101 -0
- package/lib/azure-roleassignment/test/role-assignment.spec.d.ts +9 -0
- package/lib/azure-roleassignment/test/role-assignment.spec.js +633 -0
- package/lib/azure-roledefinition/index.d.ts +1 -0
- package/lib/azure-roledefinition/index.js +18 -0
- package/lib/azure-roledefinition/lib/index.d.ts +2 -0
- package/lib/azure-roledefinition/lib/index.js +19 -0
- package/lib/azure-roledefinition/lib/role-definition-schemas.d.ts +25 -0
- package/lib/azure-roledefinition/lib/role-definition-schemas.js +195 -0
- package/lib/azure-roledefinition/lib/role-definition.d.ts +236 -0
- package/lib/azure-roledefinition/lib/role-definition.js +192 -0
- package/lib/azure-roledefinition/test/role-definition.integ.d.ts +12 -0
- package/lib/azure-roledefinition/test/role-definition.integ.js +142 -0
- package/lib/azure-roledefinition/test/role-definition.spec.d.ts +9 -0
- package/lib/azure-roledefinition/test/role-definition.spec.js +946 -0
- package/lib/azure-storageaccount/index.d.ts +0 -19
- package/lib/azure-storageaccount/index.js +1 -20
- package/lib/azure-storageaccount/lib/index.d.ts +1 -7
- package/lib/azure-storageaccount/lib/index.js +2 -8
- package/lib/azure-storageaccount/lib/storage-account-schemas.d.ts +98 -0
- package/lib/azure-storageaccount/lib/storage-account-schemas.js +1 -1
- package/lib/azure-storageaccount/lib/storage-account.d.ts +40 -8
- package/lib/azure-storageaccount/lib/storage-account.js +145 -23
- package/lib/azure-storageaccount/test/storage-account.integ.js +91 -12
- package/lib/azure-subnet/index.d.ts +1 -0
- package/lib/azure-subnet/index.js +18 -0
- package/lib/azure-subnet/lib/index.d.ts +2 -0
- package/lib/azure-subnet/lib/index.js +19 -0
- package/lib/azure-subnet/lib/subnet-schemas.d.ts +32 -0
- package/lib/azure-subnet/lib/subnet-schemas.js +237 -0
- package/lib/azure-subnet/lib/subnet.d.ts +274 -0
- package/lib/azure-subnet/lib/subnet.js +235 -0
- package/lib/azure-subnet/test/subnet.integ.d.ts +11 -0
- package/lib/azure-subnet/test/subnet.integ.js +92 -0
- package/lib/azure-subnet/test/subnet.spec.d.ts +8 -0
- package/lib/azure-subnet/test/subnet.spec.js +395 -0
- package/lib/azure-virtualmachine/index.d.ts +1 -0
- package/lib/azure-virtualmachine/index.js +18 -0
- package/lib/azure-virtualmachine/lib/index.d.ts +2 -0
- package/lib/azure-virtualmachine/lib/index.js +19 -0
- package/lib/azure-virtualmachine/lib/virtual-machine-schemas.d.ts +327 -0
- package/lib/azure-virtualmachine/lib/virtual-machine-schemas.js +544 -0
- package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +368 -0
- package/lib/azure-virtualmachine/lib/virtual-machine.js +441 -0
- package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +9 -0
- package/lib/azure-virtualmachine/test/virtual-machine.integ.js +220 -0
- package/lib/azure-virtualmachine/test/virtual-machine.spec.d.ts +9 -0
- package/lib/azure-virtualmachine/test/virtual-machine.spec.js +1032 -0
- package/lib/azure-virtualnetwork/index.d.ts +1 -0
- package/lib/azure-virtualnetwork/index.js +18 -0
- package/lib/azure-virtualnetwork/lib/index.d.ts +2 -0
- package/lib/azure-virtualnetwork/lib/index.js +19 -0
- package/lib/azure-virtualnetwork/lib/virtual-network-schemas.d.ts +32 -0
- package/lib/azure-virtualnetwork/lib/virtual-network-schemas.js +236 -0
- package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +204 -0
- package/lib/azure-virtualnetwork/lib/virtual-network.js +224 -0
- package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +9 -0
- package/lib/azure-virtualnetwork/test/virtual-network.integ.js +91 -0
- package/lib/azure-virtualnetwork/test/virtual-network.spec.d.ts +8 -0
- package/lib/azure-virtualnetwork/test/virtual-network.spec.js +398 -0
- package/lib/azure-virtualnetworkmanager/index.d.ts +1 -0
- package/lib/azure-virtualnetworkmanager/index.js +18 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.d.ts +48 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.js +265 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +185 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +206 -0
- package/lib/azure-virtualnetworkmanager/lib/index.d.ts +14 -0
- package/lib/azure-virtualnetworkmanager/lib/index.js +31 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.js +189 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.js +201 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +135 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +163 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +139 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group.js +158 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.js +182 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +144 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +164 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.d.ts +38 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.js +206 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +142 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +162 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.d.ts +39 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.js +359 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +221 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +204 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.js +236 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +337 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +283 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +25 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +402 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.d.ts +9 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +1652 -0
- package/lib/azure-vmss/index.d.ts +1 -0
- package/lib/azure-vmss/index.js +18 -0
- package/lib/azure-vmss/lib/index.d.ts +2 -0
- package/lib/azure-vmss/lib/index.js +19 -0
- package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +250 -0
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +479 -0
- package/lib/azure-vmss/lib/vmss-schemas.d.ts +472 -0
- package/lib/azure-vmss/lib/vmss-schemas.js +444 -0
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +15 -0
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +261 -0
- package/lib/azure-vmss/test/virtual-machine-scale-set.spec.d.ts +8 -0
- package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +997 -0
- package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.d.ts +10 -0
- package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +218 -0
- package/lib/core-azure/lib/azapi/azapi-resource.d.ts +268 -48
- package/lib/core-azure/lib/azapi/azapi-resource.js +411 -136
- package/lib/core-azure/lib/azapi/azapi-resource.spec.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +33 -21
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +69 -27
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +134 -120
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +209 -59
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +141 -128
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +183 -36
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +55 -43
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +94 -26
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +129 -116
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +155 -32
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +187 -174
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +267 -48
- package/lib/core-azure/lib/azapi/providers-azapi/index.d.ts +10 -10
- package/lib/core-azure/lib/azapi/providers-azapi/index.js +1 -1
- package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.d.ts +0 -0
- package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +13 -0
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +174 -162
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +278 -16
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +239 -225
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +360 -76
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +163 -150
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +221 -46
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +162 -149
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +249 -50
- package/lib/core-azure/lib/azapi/resource-schema-validator.d.ts +118 -0
- package/lib/core-azure/lib/azapi/resource-schema-validator.js +236 -0
- package/lib/core-azure/lib/azapi/resource-version-manager.d.ts +103 -0
- package/lib/core-azure/lib/azapi/resource-version-manager.js +168 -0
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +13 -6
- package/lib/core-azure/lib/index.d.ts +2 -2
- package/lib/core-azure/lib/index.js +5 -5
- package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
- package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
- package/lib/index.d.ts +56 -0
- package/lib/index.js +59 -2
- package/lib/testing/index.d.ts +92 -2
- package/lib/testing/index.js +258 -18
- package/lib/testing/lib/cleanup.d.ts +230 -0
- package/lib/testing/lib/cleanup.js +338 -0
- package/lib/testing/lib/metadata.d.ts +151 -0
- package/lib/testing/lib/metadata.js +183 -0
- package/lib/testing/lib/naming.d.ts +96 -0
- package/lib/testing/lib/naming.js +336 -0
- package/node_modules/uuid/LICENSE.md +9 -0
- package/node_modules/uuid/README.md +510 -0
- package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
- package/node_modules/uuid/dist/cjs/index.js +31 -0
- package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/max.js +3 -0
- package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/md5.js +13 -0
- package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
- package/node_modules/uuid/dist/cjs/native.js +4 -0
- package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/nil.js +3 -0
- package/node_modules/uuid/dist/cjs/package.json +1 -0
- package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/parse.js +11 -0
- package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/regex.js +3 -0
- package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
- package/node_modules/uuid/dist/cjs/rng.js +13 -0
- package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/sha1.js +13 -0
- package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/cjs/stringify.js +39 -0
- package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
- package/node_modules/uuid/dist/cjs/types.js +2 -0
- package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
- package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
- package/node_modules/uuid/dist/cjs/v1.js +87 -0
- package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
- package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
- package/node_modules/uuid/dist/cjs/v3.js +14 -0
- package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
- package/node_modules/uuid/dist/cjs/v35.js +41 -0
- package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/v4.js +29 -0
- package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
- package/node_modules/uuid/dist/cjs/v5.js +14 -0
- package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
- package/node_modules/uuid/dist/cjs/v6.js +19 -0
- package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
- package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
- package/node_modules/uuid/dist/cjs/v7.js +69 -0
- package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/validate.js +7 -0
- package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
- package/node_modules/uuid/dist/cjs/version.js +10 -0
- package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
- package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
- package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
- package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
- package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
- package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
- package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
- package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
- package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
- package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
- package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
- package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
- package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
- package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
- package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
- package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
- package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
- package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
- package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
- package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
- package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
- package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
- package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
- package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
- package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
- package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
- package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
- package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
- package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
- package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
- package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
- package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
- package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
- package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
- package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
- package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
- package/node_modules/uuid/dist/esm/bin/uuid +2 -0
- package/node_modules/uuid/dist/esm/index.d.ts +15 -0
- package/node_modules/uuid/dist/esm/index.js +14 -0
- package/node_modules/uuid/dist/esm/max.d.ts +2 -0
- package/node_modules/uuid/dist/esm/max.js +1 -0
- package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
- package/node_modules/uuid/dist/esm/md5.js +11 -0
- package/node_modules/uuid/dist/esm/native.d.ts +6 -0
- package/node_modules/uuid/dist/esm/native.js +2 -0
- package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
- package/node_modules/uuid/dist/esm/nil.js +1 -0
- package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
- package/node_modules/uuid/dist/esm/parse.js +9 -0
- package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
- package/node_modules/uuid/dist/esm/regex.js +1 -0
- package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
- package/node_modules/uuid/dist/esm/rng.js +10 -0
- package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
- package/node_modules/uuid/dist/esm/sha1.js +11 -0
- package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/esm/stringify.js +35 -0
- package/node_modules/uuid/dist/esm/types.d.ts +21 -0
- package/node_modules/uuid/dist/esm/types.js +1 -0
- package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
- package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
- package/node_modules/uuid/dist/esm/v1.js +83 -0
- package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
- package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
- package/node_modules/uuid/dist/esm/v3.js +9 -0
- package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
- package/node_modules/uuid/dist/esm/v35.js +36 -0
- package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
- package/node_modules/uuid/dist/esm/v4.js +27 -0
- package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
- package/node_modules/uuid/dist/esm/v5.js +9 -0
- package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
- package/node_modules/uuid/dist/esm/v6.js +17 -0
- package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
- package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
- package/node_modules/uuid/dist/esm/v7.js +65 -0
- package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
- package/node_modules/uuid/dist/esm/validate.js +5 -0
- package/node_modules/uuid/dist/esm/version.d.ts +2 -0
- package/node_modules/uuid/dist/esm/version.js +8 -0
- package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
- package/node_modules/uuid/dist/esm-browser/index.js +14 -0
- package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/max.js +1 -0
- package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/md5.js +135 -0
- package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
- package/node_modules/uuid/dist/esm-browser/native.js +2 -0
- package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
- package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/parse.js +9 -0
- package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
- package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
- package/node_modules/uuid/dist/esm-browser/rng.js +11 -0
- package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/sha1.js +70 -0
- package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/esm-browser/stringify.js +35 -0
- package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
- package/node_modules/uuid/dist/esm-browser/types.js +1 -0
- package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
- package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
- package/node_modules/uuid/dist/esm-browser/v1.js +83 -0
- package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
- package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
- package/node_modules/uuid/dist/esm-browser/v3.js +9 -0
- package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
- package/node_modules/uuid/dist/esm-browser/v35.js +36 -0
- package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
- package/node_modules/uuid/dist/esm-browser/v4.js +27 -0
- package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
- package/node_modules/uuid/dist/esm-browser/v5.js +9 -0
- package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
- package/node_modules/uuid/dist/esm-browser/v6.js +17 -0
- package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
- package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
- package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
- package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/validate.js +5 -0
- package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
- package/node_modules/uuid/dist/esm-browser/version.js +8 -0
- package/node_modules/uuid/package.json +132 -0
- package/package.json +17 -12
- package/scripts/cleanup-test-resources.ts +387 -0
- 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 {};
|