@microsoft/terraform-cdk-constructs 1.10.0 → 2.5.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 +51855 -36874
- package/API.md +62102 -40530
- package/README.md +15 -0
- package/docs/azure-api-version-update-pipeline.md +271 -0
- package/lib/azure-actiongroup/lib/action-group.d.ts +3 -3
- package/lib/azure-actiongroup/lib/action-group.js +5 -5
- package/lib/azure-actiongroup/test/action-group.integ.d.ts +1 -1
- package/lib/azure-actiongroup/test/action-group.integ.js +5 -5
- package/lib/azure-actiongroup/test/action-group.spec.js +9 -9
- package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +3 -3
- package/lib/azure-activitylogalert/lib/activity-log-alert.js +5 -5
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +1 -1
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +6 -6
- package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +9 -9
- package/lib/azure-aks/lib/aks-cluster.d.ts +6 -6
- package/lib/azure-aks/lib/aks-cluster.js +8 -8
- package/lib/azure-aks/test/aks-cluster.integ.d.ts +1 -1
- package/lib/azure-aks/test/aks-cluster.integ.js +5 -5
- package/lib/azure-aks/test/aks-cluster.spec.js +12 -12
- package/lib/azure-applicationinsights/lib/application-insights.d.ts +6 -6
- package/lib/azure-applicationinsights/lib/application-insights.js +8 -8
- package/lib/azure-applicationinsights/test/application-insights.integ.d.ts +1 -1
- package/lib/azure-applicationinsights/test/application-insights.integ.js +6 -6
- package/lib/azure-applicationinsights/test/application-insights.spec.js +5 -5
- package/lib/azure-containerapps/lib/container-app-environment.d.ts +8 -8
- package/lib/azure-containerapps/lib/container-app-environment.js +10 -10
- package/lib/azure-containerapps/lib/container-app.d.ts +9 -9
- package/lib/azure-containerapps/lib/container-app.js +11 -11
- package/lib/azure-containerapps/lib/container-apps-job-schemas.d.ts +8 -0
- package/lib/azure-containerapps/lib/container-apps-job-schemas.js +179 -0
- package/lib/azure-containerapps/lib/container-apps-job.d.ts +128 -0
- package/lib/azure-containerapps/lib/container-apps-job.js +81 -0
- package/lib/azure-containerapps/lib/index.d.ts +2 -0
- package/lib/azure-containerapps/lib/index.js +3 -1
- package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +1 -1
- package/lib/azure-containerapps/test/container-app-environment.integ.js +5 -5
- package/lib/azure-containerapps/test/container-app-environment.spec.js +19 -19
- package/lib/azure-containerapps/test/container-app.integ.d.ts +1 -1
- package/lib/azure-containerapps/test/container-app.integ.js +5 -5
- package/lib/azure-containerapps/test/container-app.spec.js +30 -30
- package/lib/azure-containerapps/test/container-apps-job.integ.d.ts +6 -0
- package/lib/azure-containerapps/test/container-apps-job.integ.js +95 -0
- package/lib/azure-containerapps/test/container-apps-job.spec.d.ts +1 -0
- package/lib/azure-containerapps/test/container-apps-job.spec.js +261 -0
- package/lib/azure-containerregistry/lib/container-registry.d.ts +6 -6
- package/lib/azure-containerregistry/lib/container-registry.js +8 -8
- package/lib/azure-containerregistry/test/container-registry.integ.d.ts +1 -1
- package/lib/azure-containerregistry/test/container-registry.integ.js +5 -5
- package/lib/azure-containerregistry/test/container-registry.spec.js +11 -11
- package/lib/azure-cosmosdb/lib/cosmos-db.d.ts +6 -6
- package/lib/azure-cosmosdb/lib/cosmos-db.js +8 -8
- package/lib/azure-cosmosdb/test/cosmos-db.integ.d.ts +1 -1
- package/lib/azure-cosmosdb/test/cosmos-db.integ.js +5 -5
- package/lib/azure-cosmosdb/test/cosmos-db.spec.js +11 -11
- package/lib/azure-dataexplorer/index.d.ts +1 -0
- package/lib/azure-dataexplorer/index.js +18 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.js +131 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster.d.ts +54 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster.js +91 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.js +78 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database.d.ts +24 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database.js +68 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.js +94 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table.d.ts +25 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table.js +62 -0
- package/lib/azure-dataexplorer/lib/index.d.ts +6 -0
- package/lib/azure-dataexplorer/lib/index.js +23 -0
- package/lib/azure-dataexplorer/test/data-explorer.integ.d.ts +1 -0
- package/lib/azure-dataexplorer/test/data-explorer.integ.js +78 -0
- package/lib/azure-dataexplorer/test/data-explorer.spec.d.ts +1 -0
- package/lib/azure-dataexplorer/test/data-explorer.spec.js +248 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +3 -3
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +5 -5
- package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +9 -9
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +7 -7
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +9 -9
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +4 -4
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +6 -6
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +4 -4
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +6 -6
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +1 -1
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +5 -5
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +11 -11
- package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +14 -14
- package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +12 -12
- package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +8 -8
- package/lib/azure-dnsresolver/lib/dns-resolver.js +10 -10
- package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +6 -6
- package/lib/azure-dnsresolver/lib/inbound-endpoint.js +8 -8
- package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +7 -7
- package/lib/azure-dnsresolver/lib/outbound-endpoint.js +9 -9
- package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/dns-resolver.integ.js +5 -5
- package/lib/azure-dnsresolver/test/dns-resolver.spec.js +11 -11
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +5 -5
- package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +12 -12
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +5 -5
- package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +9 -9
- package/lib/azure-dnszone/lib/dns-zone.d.ts +6 -6
- package/lib/azure-dnszone/lib/dns-zone.js +8 -8
- package/lib/azure-dnszone/lib/records/dns-records.d.ts +31 -31
- package/lib/azure-dnszone/lib/records/dns-records.js +42 -42
- package/lib/azure-dnszone/test/dns-records.integ.d.ts +1 -1
- package/lib/azure-dnszone/test/dns-records.integ.js +5 -5
- package/lib/azure-dnszone/test/dns-records.spec.js +57 -57
- package/lib/azure-dnszone/test/dns-zone.integ.d.ts +1 -1
- package/lib/azure-dnszone/test/dns-zone.integ.js +5 -5
- package/lib/azure-dnszone/test/dns-zone.spec.js +11 -11
- package/lib/azure-eventgrideventsubscription/index.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/index.js +18 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.d.ts +5 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.js +151 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.d.ts +59 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.js +67 -0
- package/lib/azure-eventgrideventsubscription/lib/index.d.ts +2 -0
- package/lib/azure-eventgrideventsubscription/lib/index.js +19 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.js +100 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.js +242 -0
- package/lib/azure-eventgridsystemtopic/index.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/index.js +18 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.d.ts +5 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.js +164 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.d.ts +46 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.js +68 -0
- package/lib/azure-eventgridsystemtopic/lib/index.d.ts +2 -0
- package/lib/azure-eventgridsystemtopic/lib/index.js +19 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.js +64 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.js +241 -0
- package/lib/azure-eventhub/index.d.ts +7 -0
- package/lib/azure-eventhub/index.js +24 -0
- package/lib/azure-eventhub/lib/event-hub-namespace.d.ts +204 -0
- package/lib/azure-eventhub/lib/event-hub-namespace.js +178 -0
- package/lib/azure-eventhub/lib/event-hub-schemas.d.ts +63 -0
- package/lib/azure-eventhub/lib/event-hub-schemas.js +370 -0
- package/lib/azure-eventhub/lib/event-hub.d.ts +153 -0
- package/lib/azure-eventhub/lib/event-hub.js +171 -0
- package/lib/azure-eventhub/lib/index.d.ts +6 -0
- package/lib/azure-eventhub/lib/index.js +23 -0
- package/lib/azure-eventhub/test/event-hub.integ.d.ts +9 -0
- package/lib/azure-eventhub/test/event-hub.integ.js +113 -0
- package/lib/azure-eventhub/test/event-hub.spec.d.ts +8 -0
- package/lib/azure-eventhub/test/event-hub.spec.js +438 -0
- package/lib/azure-functionapp/lib/function-app.d.ts +6 -6
- package/lib/azure-functionapp/lib/function-app.js +8 -8
- package/lib/azure-functionapp/test/function-app.integ.d.ts +1 -1
- package/lib/azure-functionapp/test/function-app.integ.js +5 -5
- package/lib/azure-functionapp/test/function-app.spec.js +12 -12
- package/lib/azure-keyvault/lib/key-vault.d.ts +6 -6
- package/lib/azure-keyvault/lib/key-vault.js +8 -8
- package/lib/azure-keyvault/test/key-vault.integ.d.ts +1 -1
- package/lib/azure-keyvault/test/key-vault.integ.js +5 -5
- package/lib/azure-keyvault/test/key-vault.spec.js +11 -11
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +1 -1
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +3 -3
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +1 -1
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +6 -6
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +6 -6
- package/lib/azure-metricalert/lib/metric-alert.d.ts +3 -3
- package/lib/azure-metricalert/lib/metric-alert.js +5 -5
- package/lib/azure-metricalert/test/metric-alert.integ.d.ts +1 -1
- package/lib/azure-metricalert/test/metric-alert.integ.js +5 -5
- package/lib/azure-metricalert/test/metric-alert.spec.js +9 -9
- package/lib/azure-networkinterface/lib/network-interface.d.ts +5 -5
- package/lib/azure-networkinterface/lib/network-interface.js +7 -7
- package/lib/azure-networkinterface/test/network-interface.integ.d.ts +1 -1
- package/lib/azure-networkinterface/test/network-interface.integ.js +5 -5
- package/lib/azure-networkinterface/test/network-interface.spec.js +11 -11
- package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +6 -6
- package/lib/azure-networksecuritygroup/lib/network-security-group.js +8 -8
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +1 -1
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +5 -5
- package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +12 -12
- package/lib/azure-networkwatcher/lib/network-watcher.d.ts +1 -1
- package/lib/azure-networkwatcher/lib/network-watcher.js +3 -3
- package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +1 -1
- package/lib/azure-networkwatcher/test/network-watcher.integ.js +6 -6
- package/lib/azure-networkwatcher/test/network-watcher.spec.js +6 -6
- package/lib/azure-policyassignment/lib/policy-assignment.d.ts +3 -3
- package/lib/azure-policyassignment/lib/policy-assignment.js +5 -5
- package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +1 -1
- package/lib/azure-policyassignment/test/policy-assignment.integ.js +5 -5
- package/lib/azure-policyassignment/test/policy-assignment.spec.js +12 -12
- package/lib/azure-policydefinition/lib/policy-definition.d.ts +3 -3
- package/lib/azure-policydefinition/lib/policy-definition.js +5 -5
- package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +1 -1
- package/lib/azure-policydefinition/test/policy-definition.integ.js +5 -5
- package/lib/azure-policydefinition/test/policy-definition.spec.js +19 -19
- package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +1 -1
- package/lib/azure-policysetdefinition/lib/policy-set-definition.js +3 -3
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +1 -1
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +6 -6
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +6 -6
- package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +10 -10
- package/lib/azure-privatednszone/lib/private-dns-zone.js +12 -12
- package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +25 -25
- package/lib/azure-privatednszone/lib/records/private-dns-records.js +34 -34
- package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +1 -1
- package/lib/azure-privatednszone/test/private-dns-records.integ.js +5 -5
- package/lib/azure-privatednszone/test/private-dns-records.spec.js +49 -49
- package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +1 -1
- package/lib/azure-privatednszone/test/private-dns-zone.integ.js +5 -5
- package/lib/azure-privatednszone/test/private-dns-zone.spec.js +12 -12
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +6 -6
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +8 -8
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +1 -1
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +5 -5
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +12 -12
- package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +5 -5
- package/lib/azure-publicipaddress/lib/public-ip-address.js +7 -7
- package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +1 -1
- package/lib/azure-publicipaddress/test/public-ip-address.integ.js +6 -6
- package/lib/azure-publicipaddress/test/public-ip-address.spec.js +11 -11
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +5 -5
- package/lib/azure-resourcegroup/lib/resource-group.js +7 -7
- package/lib/azure-resourcegroup/test/resource-group.integ.d.ts +1 -1
- package/lib/azure-resourcegroup/test/resource-group.integ.js +5 -5
- package/lib/azure-resourcegroup/test/resource-group.spec.js +14 -14
- package/lib/azure-roleassignment/lib/role-assignment.d.ts +3 -3
- package/lib/azure-roleassignment/lib/role-assignment.js +5 -5
- package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +1 -1
- package/lib/azure-roleassignment/test/role-assignment.integ.js +5 -5
- package/lib/azure-roleassignment/test/role-assignment.spec.js +12 -12
- package/lib/azure-roledefinition/lib/role-definition.d.ts +3 -3
- package/lib/azure-roledefinition/lib/role-definition.js +5 -5
- package/lib/azure-roledefinition/test/role-definition.integ.d.ts +1 -1
- package/lib/azure-roledefinition/test/role-definition.integ.js +5 -5
- package/lib/azure-roledefinition/test/role-definition.spec.js +12 -12
- package/lib/azure-sreagent/lib/sre-agent.d.ts +8 -8
- package/lib/azure-sreagent/lib/sre-agent.js +10 -10
- package/lib/azure-sreagent/test/sre-agent.integ.d.ts +1 -1
- package/lib/azure-sreagent/test/sre-agent.integ.js +5 -5
- package/lib/azure-sreagent/test/sre-agent.spec.js +11 -11
- package/lib/azure-staticwebapp/lib/static-web-app.d.ts +6 -6
- package/lib/azure-staticwebapp/lib/static-web-app.js +8 -8
- package/lib/azure-staticwebapp/test/static-web-app.integ.d.ts +1 -1
- package/lib/azure-staticwebapp/test/static-web-app.integ.js +6 -6
- package/lib/azure-staticwebapp/test/static-web-app.spec.js +12 -12
- package/lib/azure-storageaccount/lib/storage-account.d.ts +6 -6
- package/lib/azure-storageaccount/lib/storage-account.js +8 -8
- package/lib/azure-storageaccount/test/storage-account.integ.d.ts +1 -1
- package/lib/azure-storageaccount/test/storage-account.integ.js +5 -5
- package/lib/azure-storageaccount/test/storage-account.spec.js +11 -11
- package/lib/azure-storageblobcontainer/index.d.ts +1 -0
- package/lib/azure-storageblobcontainer/index.js +18 -0
- package/lib/azure-storageblobcontainer/lib/index.d.ts +2 -0
- package/lib/azure-storageblobcontainer/lib/index.js +19 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.d.ts +5 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.js +108 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container.d.ts +37 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container.js +63 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.d.ts +1 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.js +60 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.d.ts +1 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.js +172 -0
- package/lib/azure-subnet/lib/subnet.d.ts +3 -3
- package/lib/azure-subnet/lib/subnet.js +5 -5
- package/lib/azure-subnet/test/subnet.integ.d.ts +1 -1
- package/lib/azure-subnet/test/subnet.integ.js +5 -5
- package/lib/azure-subnet/test/subnet.spec.js +9 -9
- package/lib/azure-userassignedidentity/index.d.ts +1 -0
- package/lib/azure-userassignedidentity/index.js +18 -0
- package/lib/azure-userassignedidentity/lib/index.d.ts +2 -0
- package/lib/azure-userassignedidentity/lib/index.js +19 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.d.ts +8 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.js +107 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity.d.ts +37 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity.js +85 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.d.ts +1 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.js +64 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.d.ts +1 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.js +241 -0
- package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +6 -6
- package/lib/azure-virtualmachine/lib/virtual-machine.js +8 -8
- package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +1 -1
- package/lib/azure-virtualmachine/test/virtual-machine.integ.js +5 -5
- package/lib/azure-virtualmachine/test/virtual-machine.spec.js +17 -17
- package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +6 -6
- package/lib/azure-virtualnetwork/lib/virtual-network.js +8 -8
- package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +1 -1
- package/lib/azure-virtualnetwork/test/virtual-network.integ.js +5 -5
- package/lib/azure-virtualnetwork/test/virtual-network.spec.js +12 -12
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +5 -5
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +7 -7
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.js +5 -5
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +13 -13
- package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.d.ts +5 -5
- package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +7 -7
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.js +5 -5
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.spec.js +20 -20
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/network-group.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +7 -7
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +9 -9
- package/lib/azure-virtualnetworkmanager/test/ipam-pool-static-cidr.spec.js +17 -17
- package/lib/azure-virtualnetworkmanager/test/ipam-pool.spec.js +15 -15
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +5 -5
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +57 -57
- package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +72 -7
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +147 -8
- package/lib/azure-vmss/lib/vmss-schemas.d.ts +195 -0
- package/lib/azure-vmss/lib/vmss-schemas.js +33 -1
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +1 -1
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +5 -5
- package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +474 -12
- package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +6 -6
- package/lib/core-azure/lib/azapi/azapi-resource.d.ts +7 -7
- package/lib/core-azure/lib/azapi/azapi-resource.js +6 -6
- package/lib/core-azure/lib/azapi/azapi-resource.spec.js +7 -7
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +12 -12
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +15 -15
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +35 -35
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +58 -58
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +25 -25
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +49 -49
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +13 -13
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +22 -22
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +24 -24
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +40 -40
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +44 -44
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +72 -72
- package/lib/core-azure/lib/azapi/providers-azapi/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +54 -54
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +86 -86
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +65 -65
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +102 -102
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +25 -25
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +62 -62
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +36 -36
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +69 -69
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
- 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 +26 -0
- package/lib/index.js +28 -2
- package/lib/testing/index.d.ts +1 -1
- package/lib/testing/index.js +25 -8
- package/lib/testing/lib/cleanup.js +1 -1
- package/lib/testing/lib/metadata.js +12 -4
- package/lib/testing/lib/naming.js +57 -1
- package/package.json +10 -22
- package/scripts/azure-version-updater/create-issue.ts +189 -0
- package/scripts/azure-version-updater/discover.ts +382 -0
- package/scripts/azure-version-updater/spec-mapping.ts +164 -0
- package/scripts/azure-version-updater/tsconfig.json +11 -0
- package/setup.js +2 -2
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const cdktn_1 = require("cdktn");
|
|
4
|
+
require("cdktn/lib/testing/adapters/jest");
|
|
5
|
+
const azure_resourcegroup_1 = require("../../azure-resourcegroup");
|
|
6
|
+
const provider_1 = require("../../core-azure/lib/azapi/providers-azapi/provider");
|
|
7
|
+
const testing_1 = require("../../testing");
|
|
8
|
+
const metadata_1 = require("../../testing/lib/metadata");
|
|
9
|
+
const user_assigned_identity_1 = require("../lib/user-assigned-identity");
|
|
10
|
+
const testMetadata = new metadata_1.TestRunMetadata("user-assigned-identity-integration", {
|
|
11
|
+
maxAgeHours: 4,
|
|
12
|
+
});
|
|
13
|
+
class UserAssignedIdentityExampleStack extends testing_1.BaseTestStack {
|
|
14
|
+
constructor(scope, id) {
|
|
15
|
+
super(scope, id, {
|
|
16
|
+
testRunOptions: {
|
|
17
|
+
maxAgeHours: testMetadata.maxAgeHours,
|
|
18
|
+
autoCleanup: testMetadata.autoCleanup,
|
|
19
|
+
cleanupPolicy: testMetadata.cleanupPolicy,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
new provider_1.AzapiProvider(this, "azapi", {});
|
|
23
|
+
const resourceGroupName = this.generateResourceName("Microsoft.Resources/resourceGroups", "identityrg");
|
|
24
|
+
const basicIdentityName = this.generateResourceName("Microsoft.ManagedIdentity/userAssignedIdentities", "basic");
|
|
25
|
+
const versionedIdentityName = this.generateResourceName("Microsoft.ManagedIdentity/userAssignedIdentities", "versioned");
|
|
26
|
+
const resourceGroup = new azure_resourcegroup_1.ResourceGroup(this, "identity-rg", {
|
|
27
|
+
name: resourceGroupName,
|
|
28
|
+
location: "eastus",
|
|
29
|
+
tags: {
|
|
30
|
+
...this.systemTags(),
|
|
31
|
+
example: "identity-rg",
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
new user_assigned_identity_1.UserAssignedIdentity(this, "basic-identity", {
|
|
35
|
+
name: basicIdentityName,
|
|
36
|
+
location: "eastus",
|
|
37
|
+
resourceGroupId: resourceGroup.id,
|
|
38
|
+
tags: {
|
|
39
|
+
...this.systemTags(),
|
|
40
|
+
example: "basic",
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
new user_assigned_identity_1.UserAssignedIdentity(this, "versioned-identity", {
|
|
44
|
+
name: versionedIdentityName,
|
|
45
|
+
location: "eastus2",
|
|
46
|
+
resourceGroupId: resourceGroup.id,
|
|
47
|
+
apiVersion: "2023-01-31",
|
|
48
|
+
tags: {
|
|
49
|
+
...this.systemTags(),
|
|
50
|
+
example: "versioned",
|
|
51
|
+
tier: "production",
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
describe("User Assigned Identity Integration Test", () => {
|
|
57
|
+
it("should deploy, validate idempotency, and cleanup user assigned identity resources", () => {
|
|
58
|
+
const app = cdktn_1.Testing.app();
|
|
59
|
+
const stack = new UserAssignedIdentityExampleStack(app, "test-user-assigned-identity");
|
|
60
|
+
const synthesized = cdktn_1.Testing.fullSynth(stack);
|
|
61
|
+
(0, testing_1.TerraformApplyCheckAndDestroy)(synthesized, { verifyCleanup: true });
|
|
62
|
+
}, 600000);
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hc3NpZ25lZC1pZGVudGl0eS5pbnRlZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS11c2VyYXNzaWduZWRpZGVudGl0eS90ZXN0L3VzZXItYXNzaWduZWQtaWRlbnRpdHkuaW50ZWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBZ0M7QUFFaEMsMkNBQXlDO0FBQ3pDLG1FQUEwRDtBQUMxRCxrRkFBb0Y7QUFDcEYsMkNBQTZFO0FBQzdFLHlEQUE2RDtBQUM3RCwwRUFBcUU7QUFFckUsTUFBTSxZQUFZLEdBQUcsSUFBSSwwQkFBZSxDQUFDLG9DQUFvQyxFQUFFO0lBQzdFLFdBQVcsRUFBRSxDQUFDO0NBQ2YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxnQ0FBaUMsU0FBUSx1QkFBYTtJQUMxRCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLGNBQWMsRUFBRTtnQkFDZCxXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7Z0JBQ3JDLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVztnQkFDckMsYUFBYSxFQUFFLFlBQVksQ0FBQyxhQUFhO2FBQzFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSx3QkFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQ2pELG9DQUFvQyxFQUNwQyxZQUFZLENBQ2IsQ0FBQztRQUNGLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUNqRCxrREFBa0QsRUFDbEQsT0FBTyxDQUNSLENBQUM7UUFDRixNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FDckQsa0RBQWtELEVBQ2xELFdBQVcsQ0FDWixDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxtQ0FBYSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDM0QsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsYUFBYTthQUN2QjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksNkNBQW9CLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQy9DLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLElBQUksRUFBRTtnQkFDSixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE9BQU8sRUFBRSxPQUFPO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSw2Q0FBb0IsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDbkQsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixRQUFRLEVBQUUsU0FBUztZQUNuQixlQUFlLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDakMsVUFBVSxFQUFFLFlBQVk7WUFDeEIsSUFBSSxFQUFFO2dCQUNKLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDcEIsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLElBQUksRUFBRSxZQUFZO2FBQ25CO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsUUFBUSxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsRUFBRTtJQUN2RCxFQUFFLENBQUMsbUZBQW1GLEVBQUUsR0FBRyxFQUFFO1FBQzNGLE1BQU0sR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLGdDQUFnQyxDQUNoRCxHQUFHLEVBQ0gsNkJBQTZCLENBQzlCLENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxlQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdDLElBQUEsdUNBQTZCLEVBQUMsV0FBVyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IFwiY2RrdG4vbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCIuLi8uLi9henVyZS1yZXNvdXJjZWdyb3VwXCI7XG5pbXBvcnQgeyBBemFwaVByb3ZpZGVyIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL3Byb3ZpZGVycy1hemFwaS9wcm92aWRlclwiO1xuaW1wb3J0IHsgQmFzZVRlc3RTdGFjaywgVGVycmFmb3JtQXBwbHlDaGVja0FuZERlc3Ryb3kgfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IHsgVGVzdFJ1bk1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmcvbGliL21ldGFkYXRhXCI7XG5pbXBvcnQgeyBVc2VyQXNzaWduZWRJZGVudGl0eSB9IGZyb20gXCIuLi9saWIvdXNlci1hc3NpZ25lZC1pZGVudGl0eVwiO1xuXG5jb25zdCB0ZXN0TWV0YWRhdGEgPSBuZXcgVGVzdFJ1bk1ldGFkYXRhKFwidXNlci1hc3NpZ25lZC1pZGVudGl0eS1pbnRlZ3JhdGlvblwiLCB7XG4gIG1heEFnZUhvdXJzOiA0LFxufSk7XG5cbmNsYXNzIFVzZXJBc3NpZ25lZElkZW50aXR5RXhhbXBsZVN0YWNrIGV4dGVuZHMgQmFzZVRlc3RTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHRlc3RSdW5PcHRpb25zOiB7XG4gICAgICAgIG1heEFnZUhvdXJzOiB0ZXN0TWV0YWRhdGEubWF4QWdlSG91cnMsXG4gICAgICAgIGF1dG9DbGVhbnVwOiB0ZXN0TWV0YWRhdGEuYXV0b0NsZWFudXAsXG4gICAgICAgIGNsZWFudXBQb2xpY3k6IHRlc3RNZXRhZGF0YS5jbGVhbnVwUG9saWN5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VHcm91cE5hbWUgPSB0aGlzLmdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICAgICAgXCJNaWNyb3NvZnQuUmVzb3VyY2VzL3Jlc291cmNlR3JvdXBzXCIsXG4gICAgICBcImlkZW50aXR5cmdcIixcbiAgICApO1xuICAgIGNvbnN0IGJhc2ljSWRlbnRpdHlOYW1lID0gdGhpcy5nZW5lcmF0ZVJlc291cmNlTmFtZShcbiAgICAgIFwiTWljcm9zb2Z0Lk1hbmFnZWRJZGVudGl0eS91c2VyQXNzaWduZWRJZGVudGl0aWVzXCIsXG4gICAgICBcImJhc2ljXCIsXG4gICAgKTtcbiAgICBjb25zdCB2ZXJzaW9uZWRJZGVudGl0eU5hbWUgPSB0aGlzLmdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICAgICAgXCJNaWNyb3NvZnQuTWFuYWdlZElkZW50aXR5L3VzZXJBc3NpZ25lZElkZW50aXRpZXNcIixcbiAgICAgIFwidmVyc2lvbmVkXCIsXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcImlkZW50aXR5LXJnXCIsIHtcbiAgICAgIG5hbWU6IHJlc291cmNlR3JvdXBOYW1lLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBleGFtcGxlOiBcImlkZW50aXR5LXJnXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgbmV3IFVzZXJBc3NpZ25lZElkZW50aXR5KHRoaXMsIFwiYmFzaWMtaWRlbnRpdHlcIiwge1xuICAgICAgbmFtZTogYmFzaWNJZGVudGl0eU5hbWUsXG4gICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwiYmFzaWNcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBuZXcgVXNlckFzc2lnbmVkSWRlbnRpdHkodGhpcywgXCJ2ZXJzaW9uZWQtaWRlbnRpdHlcIiwge1xuICAgICAgbmFtZTogdmVyc2lvbmVkSWRlbnRpdHlOYW1lLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzMlwiLFxuICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgYXBpVmVyc2lvbjogXCIyMDIzLTAxLTMxXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBleGFtcGxlOiBcInZlcnNpb25lZFwiLFxuICAgICAgICB0aWVyOiBcInByb2R1Y3Rpb25cIixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuZGVzY3JpYmUoXCJVc2VyIEFzc2lnbmVkIElkZW50aXR5IEludGVncmF0aW9uIFRlc3RcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCBkZXBsb3ksIHZhbGlkYXRlIGlkZW1wb3RlbmN5LCBhbmQgY2xlYW51cCB1c2VyIGFzc2lnbmVkIGlkZW50aXR5IHJlc291cmNlc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBVc2VyQXNzaWduZWRJZGVudGl0eUV4YW1wbGVTdGFjayhcbiAgICAgIGFwcCxcbiAgICAgIFwidGVzdC11c2VyLWFzc2lnbmVkLWlkZW50aXR5XCIsXG4gICAgKTtcbiAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3RpbmcuZnVsbFN5bnRoKHN0YWNrKTtcblxuICAgIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95KHN5bnRoZXNpemVkLCB7IHZlcmlmeUNsZWFudXA6IHRydWUgfSk7XG4gIH0sIDYwMDAwMCk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const cdktn_1 = require("cdktn");
|
|
4
|
+
const cdktn = require("cdktn");
|
|
5
|
+
const api_version_manager_1 = require("../../core-azure/lib/version-manager/api-version-manager");
|
|
6
|
+
const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
|
|
7
|
+
const user_assigned_identity_1 = require("../lib/user-assigned-identity");
|
|
8
|
+
const user_assigned_identity_schemas_1 = require("../lib/user-assigned-identity-schemas");
|
|
9
|
+
describe("UserAssignedIdentity", () => {
|
|
10
|
+
let app;
|
|
11
|
+
let stack;
|
|
12
|
+
let manager;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
app = cdktn_1.Testing.app();
|
|
15
|
+
stack = new cdktn.TerraformStack(app, "TestStack");
|
|
16
|
+
manager = api_version_manager_1.ApiVersionManager.instance();
|
|
17
|
+
try {
|
|
18
|
+
manager.registerResourceType(user_assigned_identity_schemas_1.USER_ASSIGNED_IDENTITY_TYPE, user_assigned_identity_schemas_1.ALL_USER_ASSIGNED_IDENTITY_VERSIONS);
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
// Ignore if already registered
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
describe("Constructor and Basic Properties", () => {
|
|
25
|
+
it("should create identity with automatic latest version resolution", () => {
|
|
26
|
+
const props = {
|
|
27
|
+
name: "test-identity",
|
|
28
|
+
location: "eastus",
|
|
29
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
30
|
+
};
|
|
31
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", props);
|
|
32
|
+
expect(identity).toBeInstanceOf(user_assigned_identity_1.UserAssignedIdentity);
|
|
33
|
+
expect(identity.resolvedApiVersion).toBe("2023-01-31");
|
|
34
|
+
expect(identity.props).toBe(props);
|
|
35
|
+
expect(identity.name).toBe("test-identity");
|
|
36
|
+
expect(identity.location).toBe("eastus");
|
|
37
|
+
});
|
|
38
|
+
it("should create identity with explicit version pinning", () => {
|
|
39
|
+
const props = {
|
|
40
|
+
name: "test-identity-pinned",
|
|
41
|
+
location: "westus",
|
|
42
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
43
|
+
apiVersion: "2023-01-31",
|
|
44
|
+
tags: { environment: "test" },
|
|
45
|
+
};
|
|
46
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", props);
|
|
47
|
+
expect(identity.resolvedApiVersion).toBe("2023-01-31");
|
|
48
|
+
expect(identity.tags).toEqual({ environment: "test" });
|
|
49
|
+
});
|
|
50
|
+
it("should create identity with all optional properties", () => {
|
|
51
|
+
const props = {
|
|
52
|
+
name: "test-identity-full",
|
|
53
|
+
location: "centralus",
|
|
54
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
55
|
+
tags: {
|
|
56
|
+
environment: "production",
|
|
57
|
+
project: "cdktf-constructs",
|
|
58
|
+
owner: "team@company.com",
|
|
59
|
+
},
|
|
60
|
+
enableValidation: true,
|
|
61
|
+
enableMigrationAnalysis: true,
|
|
62
|
+
enableTransformation: true,
|
|
63
|
+
};
|
|
64
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", props);
|
|
65
|
+
expect(identity.props.tags).toEqual(props.tags);
|
|
66
|
+
expect(identity.props.resourceGroupId).toBe(props.resourceGroupId);
|
|
67
|
+
});
|
|
68
|
+
it("should use default name when name is not provided", () => {
|
|
69
|
+
const props = {
|
|
70
|
+
location: "eastus",
|
|
71
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
72
|
+
};
|
|
73
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", props);
|
|
74
|
+
expect(identity.name).toBe("TestIdentity");
|
|
75
|
+
});
|
|
76
|
+
it("should require location to be provided", () => {
|
|
77
|
+
const props = {
|
|
78
|
+
name: "test-identity",
|
|
79
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
80
|
+
};
|
|
81
|
+
expect(() => {
|
|
82
|
+
new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", props);
|
|
83
|
+
}).toThrow("Location is required for Microsoft.ManagedIdentity/userAssignedIdentities");
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe("Framework Integration", () => {
|
|
87
|
+
it("should resolve latest API version automatically", () => {
|
|
88
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", {
|
|
89
|
+
name: "test-identity",
|
|
90
|
+
location: "eastus",
|
|
91
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
92
|
+
});
|
|
93
|
+
expect(identity.resolvedApiVersion).toBe("2023-01-31");
|
|
94
|
+
expect(identity.latestVersion()).toBe("2023-01-31");
|
|
95
|
+
});
|
|
96
|
+
it("should support all registered API versions", () => {
|
|
97
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", {
|
|
98
|
+
name: "test-identity",
|
|
99
|
+
location: "eastus",
|
|
100
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
101
|
+
});
|
|
102
|
+
const supportedVersions = identity.supportedVersions();
|
|
103
|
+
expect(supportedVersions).toContain("2023-01-31");
|
|
104
|
+
});
|
|
105
|
+
it("should validate version support", () => {
|
|
106
|
+
expect(() => {
|
|
107
|
+
new user_assigned_identity_1.UserAssignedIdentity(stack, "ValidVersion", {
|
|
108
|
+
name: "test-identity",
|
|
109
|
+
location: "eastus",
|
|
110
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
111
|
+
apiVersion: "2023-01-31",
|
|
112
|
+
});
|
|
113
|
+
}).not.toThrow();
|
|
114
|
+
expect(() => {
|
|
115
|
+
new user_assigned_identity_1.UserAssignedIdentity(stack, "InvalidVersion", {
|
|
116
|
+
name: "test-identity",
|
|
117
|
+
location: "eastus",
|
|
118
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
119
|
+
apiVersion: "2024-01-01",
|
|
120
|
+
});
|
|
121
|
+
}).toThrow("Unsupported API version '2024-01-01'");
|
|
122
|
+
});
|
|
123
|
+
it("should load correct schema for resolved version", () => {
|
|
124
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", {
|
|
125
|
+
name: "test-identity",
|
|
126
|
+
location: "eastus",
|
|
127
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
128
|
+
apiVersion: "2023-01-31",
|
|
129
|
+
});
|
|
130
|
+
expect(identity.schema).toBeDefined();
|
|
131
|
+
expect(identity.schema.resourceType).toBe(user_assigned_identity_schemas_1.USER_ASSIGNED_IDENTITY_TYPE);
|
|
132
|
+
expect(identity.schema.version).toBe("2023-01-31");
|
|
133
|
+
expect(identity.schema.properties).toBeDefined();
|
|
134
|
+
});
|
|
135
|
+
it("should load version configuration correctly", () => {
|
|
136
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", {
|
|
137
|
+
name: "test-identity",
|
|
138
|
+
location: "eastus",
|
|
139
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
140
|
+
});
|
|
141
|
+
expect(identity.versionConfig).toBeDefined();
|
|
142
|
+
expect(identity.versionConfig.version).toBe("2023-01-31");
|
|
143
|
+
expect(identity.versionConfig.supportLevel).toBe(version_interfaces_1.VersionSupportLevel.ACTIVE);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
describe("Property Validation", () => {
|
|
147
|
+
it("should validate properties when validation is enabled", () => {
|
|
148
|
+
const props = {
|
|
149
|
+
name: "test-identity",
|
|
150
|
+
location: "eastus",
|
|
151
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
152
|
+
enableValidation: true,
|
|
153
|
+
};
|
|
154
|
+
expect(() => {
|
|
155
|
+
new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", props);
|
|
156
|
+
}).not.toThrow();
|
|
157
|
+
});
|
|
158
|
+
it("should skip validation when disabled", () => {
|
|
159
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", {
|
|
160
|
+
name: "test-identity",
|
|
161
|
+
location: "eastus",
|
|
162
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
163
|
+
enableValidation: false,
|
|
164
|
+
});
|
|
165
|
+
expect(identity).toBeDefined();
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
describe("Migration Analysis", () => {
|
|
169
|
+
it("should perform migration analysis", () => {
|
|
170
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", {
|
|
171
|
+
name: "test-identity",
|
|
172
|
+
location: "eastus",
|
|
173
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
174
|
+
apiVersion: "2023-01-31",
|
|
175
|
+
});
|
|
176
|
+
const analysis = identity.analyzeMigrationTo("2023-01-31");
|
|
177
|
+
expect(analysis).toBeDefined();
|
|
178
|
+
expect(analysis.fromVersion).toBe("2023-01-31");
|
|
179
|
+
expect(analysis.toVersion).toBe("2023-01-31");
|
|
180
|
+
expect(analysis.compatible).toBe(true);
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
describe("Resource Creation and Outputs", () => {
|
|
184
|
+
it("should create correct resource body", () => {
|
|
185
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", {
|
|
186
|
+
name: "test-identity",
|
|
187
|
+
location: "westus",
|
|
188
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
189
|
+
tags: { environment: "test" },
|
|
190
|
+
});
|
|
191
|
+
expect(identity).toBeDefined();
|
|
192
|
+
expect(identity.props.tags).toEqual({ environment: "test" });
|
|
193
|
+
expect(identity.props.resourceGroupId).toBe("/subscriptions/test-sub/resourceGroups/test-rg");
|
|
194
|
+
});
|
|
195
|
+
it("should create Terraform outputs", () => {
|
|
196
|
+
const identity = new user_assigned_identity_1.UserAssignedIdentity(stack, "TestIdentity", {
|
|
197
|
+
name: "test-identity-outputs",
|
|
198
|
+
location: "eastus",
|
|
199
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
200
|
+
});
|
|
201
|
+
expect(identity.idOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
202
|
+
expect(identity.locationOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
203
|
+
expect(identity.nameOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
204
|
+
expect(identity.tagsOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
205
|
+
expect(identity.clientIdOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
206
|
+
expect(identity.principalIdOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
207
|
+
});
|
|
208
|
+
it("should synthesize to valid Terraform configuration", () => {
|
|
209
|
+
new user_assigned_identity_1.UserAssignedIdentity(stack, "SynthTest", {
|
|
210
|
+
name: "synth-test",
|
|
211
|
+
location: "eastus",
|
|
212
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
213
|
+
tags: { test: "synthesis" },
|
|
214
|
+
});
|
|
215
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
216
|
+
expect(synthesized).toBeDefined();
|
|
217
|
+
const stackConfig = JSON.parse(synthesized);
|
|
218
|
+
expect(stackConfig.resource).toBeDefined();
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
describe("Multiple Resources", () => {
|
|
222
|
+
it("should handle multiple identities in the same stack", () => {
|
|
223
|
+
const identity1 = new user_assigned_identity_1.UserAssignedIdentity(stack, "Identity1", {
|
|
224
|
+
name: "identity-1",
|
|
225
|
+
location: "eastus",
|
|
226
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
227
|
+
});
|
|
228
|
+
const identity2 = new user_assigned_identity_1.UserAssignedIdentity(stack, "Identity2", {
|
|
229
|
+
name: "identity-2",
|
|
230
|
+
location: "westus",
|
|
231
|
+
resourceGroupId: "/subscriptions/test-sub/resourceGroups/test-rg",
|
|
232
|
+
apiVersion: "2023-01-31",
|
|
233
|
+
});
|
|
234
|
+
expect(identity1.resolvedApiVersion).toBe("2023-01-31");
|
|
235
|
+
expect(identity2.resolvedApiVersion).toBe("2023-01-31");
|
|
236
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
237
|
+
expect(synthesized).toBeDefined();
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hc3NpZ25lZC1pZGVudGl0eS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXVzZXJhc3NpZ25lZGlkZW50aXR5L3Rlc3QvdXNlci1hc3NpZ25lZC1pZGVudGl0eS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQixrR0FBNkY7QUFDN0YsMkdBQXlHO0FBQ3pHLDBFQUd1QztBQUN2QywwRkFHK0M7QUFFL0MsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxJQUFJLEdBQWMsQ0FBQztJQUNuQixJQUFJLEtBQTJCLENBQUM7SUFDaEMsSUFBSSxPQUEwQixDQUFDO0lBRS9CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sR0FBRyx1Q0FBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV2QyxJQUFJLENBQUM7WUFDSCxPQUFPLENBQUMsb0JBQW9CLENBQzFCLDREQUEyQixFQUMzQixvRUFBbUMsQ0FDcEMsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsK0JBQStCO1FBQ2pDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsRUFBRSxDQUFDLGlFQUFpRSxFQUFFLEdBQUcsRUFBRTtZQUN6RSxNQUFNLEtBQUssR0FBOEI7Z0JBQ3ZDLElBQUksRUFBRSxlQUFlO2dCQUNyQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsZUFBZSxFQUFFLGdEQUFnRDthQUNsRSxDQUFDO1lBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSw2Q0FBb0Is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RUFBRTtnQkFDN0QsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixlQUFlLEVBQUUsZ0RBQWdEO2dCQUNqRSxVQUFVLEVBQUUsWUFBWTthQUN6QixDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hELE1BQU0sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFeEQsTUFBTSxXQUFXLEdBQUcsZUFBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gXCJjZGt0blwiO1xuaW1wb3J0ICogYXMgY2RrdG4gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgeyBBcGlWZXJzaW9uTWFuYWdlciB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvYXBpLXZlcnNpb24tbWFuYWdlclwiO1xuaW1wb3J0IHsgVmVyc2lvblN1cHBvcnRMZXZlbCB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcbmltcG9ydCB7XG4gIFVzZXJBc3NpZ25lZElkZW50aXR5LFxuICBVc2VyQXNzaWduZWRJZGVudGl0eVByb3BzLFxufSBmcm9tIFwiLi4vbGliL3VzZXItYXNzaWduZWQtaWRlbnRpdHlcIjtcbmltcG9ydCB7XG4gIEFMTF9VU0VSX0FTU0lHTkVEX0lERU5USVRZX1ZFUlNJT05TLFxuICBVU0VSX0FTU0lHTkVEX0lERU5USVRZX1RZUEUsXG59IGZyb20gXCIuLi9saWIvdXNlci1hc3NpZ25lZC1pZGVudGl0eS1zY2hlbWFzXCI7XG5cbmRlc2NyaWJlKFwiVXNlckFzc2lnbmVkSWRlbnRpdHlcIiwgKCkgPT4ge1xuICBsZXQgYXBwOiBjZGt0bi5BcHA7XG4gIGxldCBzdGFjazogY2RrdG4uVGVycmFmb3JtU3RhY2s7XG4gIGxldCBtYW5hZ2VyOiBBcGlWZXJzaW9uTWFuYWdlcjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IGNka3RuLlRlcnJhZm9ybVN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4gICAgbWFuYWdlciA9IEFwaVZlcnNpb25NYW5hZ2VyLmluc3RhbmNlKCk7XG5cbiAgICB0cnkge1xuICAgICAgbWFuYWdlci5yZWdpc3RlclJlc291cmNlVHlwZShcbiAgICAgICAgVVNFUl9BU1NJR05FRF9JREVOVElUWV9UWVBFLFxuICAgICAgICBBTExfVVNFUl9BU1NJR05FRF9JREVOVElUWV9WRVJTSU9OUyxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIElnbm9yZSBpZiBhbHJlYWR5IHJlZ2lzdGVyZWRcbiAgICB9XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ29uc3RydWN0b3IgYW5kIEJhc2ljIFByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBpZGVudGl0eSB3aXRoIGF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBVc2VyQXNzaWduZWRJZGVudGl0eVByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtaWRlbnRpdHlcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBpZGVudGl0eSA9IG5ldyBVc2VyQXNzaWduZWRJZGVudGl0eShzdGFjaywgXCJUZXN0SWRlbnRpdHlcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoaWRlbnRpdHkpLnRvQmVJbnN0YW5jZU9mKFVzZXJBc3NpZ25lZElkZW50aXR5KTtcbiAgICAgIGV4cGVjdChpZGVudGl0eS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDIzLTAxLTMxXCIpO1xuICAgICAgZXhwZWN0KGlkZW50aXR5LnByb3BzKS50b0JlKHByb3BzKTtcbiAgICAgIGV4cGVjdChpZGVudGl0eS5uYW1lKS50b0JlKFwidGVzdC1pZGVudGl0eVwiKTtcbiAgICAgIGV4cGVjdChpZGVudGl0eS5sb2NhdGlvbikudG9CZShcImVhc3R1c1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBpZGVudGl0eSB3aXRoIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZ1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogVXNlckFzc2lnbmVkSWRlbnRpdHlQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWlkZW50aXR5LXBpbm5lZFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDIzLTAxLTMxXCIsXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBpZGVudGl0eSA9IG5ldyBVc2VyQXNzaWduZWRJZGVudGl0eShzdGFjaywgXCJUZXN0SWRlbnRpdHlcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoaWRlbnRpdHkucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyMy0wMS0zMVwiKTtcbiAgICAgIGV4cGVjdChpZGVudGl0eS50YWdzKS50b0VxdWFsKHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGlkZW50aXR5IHdpdGggYWxsIG9wdGlvbmFsIHByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFVzZXJBc3NpZ25lZElkZW50aXR5UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1pZGVudGl0eS1mdWxsXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImNlbnRyYWx1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIHByb2plY3Q6IFwiY2RrdGYtY29uc3RydWN0c1wiLFxuICAgICAgICAgIG93bmVyOiBcInRlYW1AY29tcGFueS5jb21cIixcbiAgICAgICAgfSxcbiAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgZW5hYmxlTWlncmF0aW9uQW5hbHlzaXM6IHRydWUsXG4gICAgICAgIGVuYWJsZVRyYW5zZm9ybWF0aW9uOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgaWRlbnRpdHkgPSBuZXcgVXNlckFzc2lnbmVkSWRlbnRpdHkoc3RhY2ssIFwiVGVzdElkZW50aXR5XCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGlkZW50aXR5LnByb3BzLnRhZ3MpLnRvRXF1YWwocHJvcHMudGFncyk7XG4gICAgICBleHBlY3QoaWRlbnRpdHkucHJvcHMucmVzb3VyY2VHcm91cElkKS50b0JlKHByb3BzLnJlc291cmNlR3JvdXBJZCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB1c2UgZGVmYXVsdCBuYW1lIHdoZW4gbmFtZSBpcyBub3QgcHJvdmlkZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFVzZXJBc3NpZ25lZElkZW50aXR5UHJvcHMgPSB7XG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgaWRlbnRpdHkgPSBuZXcgVXNlckFzc2lnbmVkSWRlbnRpdHkoc3RhY2ssIFwiVGVzdElkZW50aXR5XCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGlkZW50aXR5Lm5hbWUpLnRvQmUoXCJUZXN0SWRlbnRpdHlcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCByZXF1aXJlIGxvY2F0aW9uIHRvIGJlIHByb3ZpZGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBVc2VyQXNzaWduZWRJZGVudGl0eVByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtaWRlbnRpdHlcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBVc2VyQXNzaWduZWRJZGVudGl0eShzdGFjaywgXCJUZXN0SWRlbnRpdHlcIiwgcHJvcHMpO1xuICAgICAgfSkudG9UaHJvdyhcbiAgICAgICAgXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgTWljcm9zb2Z0Lk1hbmFnZWRJZGVudGl0eS91c2VyQXNzaWduZWRJZGVudGl0aWVzXCIsXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkZyYW1ld29yayBJbnRlZ3JhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcmVzb2x2ZSBsYXRlc3QgQVBJIHZlcnNpb24gYXV0b21hdGljYWxseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBpZGVudGl0eSA9IG5ldyBVc2VyQXNzaWduZWRJZGVudGl0eShzdGFjaywgXCJUZXN0SWRlbnRpdHlcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtaWRlbnRpdHlcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGlkZW50aXR5LnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjMtMDEtMzFcIik7XG4gICAgICBleHBlY3QoaWRlbnRpdHkubGF0ZXN0VmVyc2lvbigpKS50b0JlKFwiMjAyMy0wMS0zMVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgYWxsIHJlZ2lzdGVyZWQgQVBJIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGlkZW50aXR5ID0gbmV3IFVzZXJBc3NpZ25lZElkZW50aXR5KHN0YWNrLCBcIlRlc3RJZGVudGl0eVwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1pZGVudGl0eVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzdXBwb3J0ZWRWZXJzaW9ucyA9IGlkZW50aXR5LnN1cHBvcnRlZFZlcnNpb25zKCk7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjMtMDEtMzFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB2YWxpZGF0ZSB2ZXJzaW9uIHN1cHBvcnRcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IFVzZXJBc3NpZ25lZElkZW50aXR5KHN0YWNrLCBcIlZhbGlkVmVyc2lvblwiLCB7XG4gICAgICAgICAgbmFtZTogXCJ0ZXN0LWlkZW50aXR5XCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjMtMDEtMzFcIixcbiAgICAgICAgfSk7XG4gICAgICB9KS5ub3QudG9UaHJvdygpO1xuXG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgVXNlckFzc2lnbmVkSWRlbnRpdHkoc3RhY2ssIFwiSW52YWxpZFZlcnNpb25cIiwge1xuICAgICAgICAgIG5hbWU6IFwidGVzdC1pZGVudGl0eVwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTAxLTAxXCIsXG4gICAgICAgIH0pO1xuICAgICAgfSkudG9UaHJvdyhcIlVuc3VwcG9ydGVkIEFQSSB2ZXJzaW9uICcyMDI0LTAxLTAxJ1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGxvYWQgY29ycmVjdCBzY2hlbWEgZm9yIHJlc29sdmVkIHZlcnNpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgaWRlbnRpdHkgPSBuZXcgVXNlckFzc2lnbmVkSWRlbnRpdHkoc3RhY2ssIFwiVGVzdElkZW50aXR5XCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWlkZW50aXR5XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjMtMDEtMzFcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoaWRlbnRpdHkuc2NoZW1hKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGlkZW50aXR5LnNjaGVtYS5yZXNvdXJjZVR5cGUpLnRvQmUoVVNFUl9BU1NJR05FRF9JREVOVElUWV9UWVBFKTtcbiAgICAgIGV4cGVjdChpZGVudGl0eS5zY2hlbWEudmVyc2lvbikudG9CZShcIjIwMjMtMDEtMzFcIik7XG4gICAgICBleHBlY3QoaWRlbnRpdHkuc2NoZW1hLnByb3BlcnRpZXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBsb2FkIHZlcnNpb24gY29uZmlndXJhdGlvbiBjb3JyZWN0bHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgaWRlbnRpdHkgPSBuZXcgVXNlckFzc2lnbmVkSWRlbnRpdHkoc3RhY2ssIFwiVGVzdElkZW50aXR5XCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWlkZW50aXR5XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChpZGVudGl0eS52ZXJzaW9uQ29uZmlnKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGlkZW50aXR5LnZlcnNpb25Db25maWcudmVyc2lvbikudG9CZShcIjIwMjMtMDEtMzFcIik7XG4gICAgICBleHBlY3QoaWRlbnRpdHkudmVyc2lvbkNvbmZpZy5zdXBwb3J0TGV2ZWwpLnRvQmUoXG4gICAgICAgIFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJQcm9wZXJ0eSBWYWxpZGF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCB2YWxpZGF0ZSBwcm9wZXJ0aWVzIHdoZW4gdmFsaWRhdGlvbiBpcyBlbmFibGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBVc2VyQXNzaWduZWRJZGVudGl0eVByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtaWRlbnRpdHlcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgIGVuYWJsZVZhbGlkYXRpb246IHRydWUsXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgVXNlckFzc2lnbmVkSWRlbnRpdHkoc3RhY2ssIFwiVGVzdElkZW50aXR5XCIsIHByb3BzKTtcbiAgICAgIH0pLm5vdC50b1Rocm93KCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBza2lwIHZhbGlkYXRpb24gd2hlbiBkaXNhYmxlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBpZGVudGl0eSA9IG5ldyBVc2VyQXNzaWduZWRJZGVudGl0eShzdGFjaywgXCJUZXN0SWRlbnRpdHlcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtaWRlbnRpdHlcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgIGVuYWJsZVZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChpZGVudGl0eSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJNaWdyYXRpb24gQW5hbHlzaXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHBlcmZvcm0gbWlncmF0aW9uIGFuYWx5c2lzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGlkZW50aXR5ID0gbmV3IFVzZXJBc3NpZ25lZElkZW50aXR5KHN0YWNrLCBcIlRlc3RJZGVudGl0eVwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1pZGVudGl0eVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDIzLTAxLTMxXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYW5hbHlzaXMgPSBpZGVudGl0eS5hbmFseXplTWlncmF0aW9uVG8oXCIyMDIzLTAxLTMxXCIpO1xuXG4gICAgICBleHBlY3QoYW5hbHlzaXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoYW5hbHlzaXMuZnJvbVZlcnNpb24pLnRvQmUoXCIyMDIzLTAxLTMxXCIpO1xuICAgICAgZXhwZWN0KGFuYWx5c2lzLnRvVmVyc2lvbikudG9CZShcIjIwMjMtMDEtMzFcIik7XG4gICAgICBleHBlY3QoYW5hbHlzaXMuY29tcGF0aWJsZSkudG9CZSh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJSZXNvdXJjZSBDcmVhdGlvbiBhbmQgT3V0cHV0c1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGNvcnJlY3QgcmVzb3VyY2UgYm9keVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBpZGVudGl0eSA9IG5ldyBVc2VyQXNzaWduZWRJZGVudGl0eShzdGFjaywgXCJUZXN0SWRlbnRpdHlcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtaWRlbnRpdHlcIixcbiAgICAgICAgbG9jYXRpb246IFwid2VzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGlkZW50aXR5KS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGlkZW50aXR5LnByb3BzLnRhZ3MpLnRvRXF1YWwoeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIgfSk7XG4gICAgICBleHBlY3QoaWRlbnRpdHkucHJvcHMucmVzb3VyY2VHcm91cElkKS50b0JlKFxuICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgVGVycmFmb3JtIG91dHB1dHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgaWRlbnRpdHkgPSBuZXcgVXNlckFzc2lnbmVkSWRlbnRpdHkoc3RhY2ssIFwiVGVzdElkZW50aXR5XCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWlkZW50aXR5LW91dHB1dHNcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGlkZW50aXR5LmlkT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGlkZW50aXR5LmxvY2F0aW9uT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGlkZW50aXR5Lm5hbWVPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RuLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgICBleHBlY3QoaWRlbnRpdHkudGFnc091dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChpZGVudGl0eS5jbGllbnRJZE91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChpZGVudGl0eS5wcmluY2lwYWxJZE91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IFVzZXJBc3NpZ25lZElkZW50aXR5KHN0YWNrLCBcIlN5bnRoVGVzdFwiLCB7XG4gICAgICAgIG5hbWU6IFwic3ludGgtdGVzdFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgdGFnczogeyB0ZXN0OiBcInN5bnRoZXNpc1wiIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcblxuICAgICAgY29uc3Qgc3RhY2tDb25maWcgPSBKU09OLnBhcnNlKHN5bnRoZXNpemVkKTtcbiAgICAgIGV4cGVjdChzdGFja0NvbmZpZy5yZXNvdXJjZSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJNdWx0aXBsZSBSZXNvdXJjZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBtdWx0aXBsZSBpZGVudGl0aWVzIGluIHRoZSBzYW1lIHN0YWNrXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGlkZW50aXR5MSA9IG5ldyBVc2VyQXNzaWduZWRJZGVudGl0eShzdGFjaywgXCJJZGVudGl0eTFcIiwge1xuICAgICAgICBuYW1lOiBcImlkZW50aXR5LTFcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0LXN1Yi9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgaWRlbnRpdHkyID0gbmV3IFVzZXJBc3NpZ25lZElkZW50aXR5KHN0YWNrLCBcIklkZW50aXR5MlwiLCB7XG4gICAgICAgIG5hbWU6IFwiaWRlbnRpdHktMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qtc3ViL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDIzLTAxLTMxXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGlkZW50aXR5MS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDIzLTAxLTMxXCIpO1xuICAgICAgZXhwZWN0KGlkZW50aXR5Mi5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDIzLTAxLTMxXCIpO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* - Full JSII compliance for multi-language support
|
|
18
18
|
* - Comprehensive support for VM features (networking, storage, identity, etc.)
|
|
19
19
|
*/
|
|
20
|
-
import * as
|
|
20
|
+
import * as cdktn from "cdktn";
|
|
21
21
|
import { Construct } from "constructs";
|
|
22
22
|
import { VirtualMachineHardwareProfile, VirtualMachineStorageProfile, VirtualMachineNetworkProfile, VirtualMachineOSProfile, VirtualMachineIdentity, VirtualMachinePlan, VirtualMachineAdditionalCapabilities, VirtualMachineDiagnosticsProfile, VirtualMachineSecurityProfile, VirtualMachineLicenseType, VirtualMachineAvailabilitySetReference, VirtualMachineScaleSetReference, VirtualMachineProximityPlacementGroupReference, VirtualMachineHostReference, VirtualMachineBillingProfile, VirtualMachineMonitoringOptions } from "./virtual-machine-schemas";
|
|
23
23
|
import { AzapiResource, AzapiResourceProps, MonitoringConfig } from "../../core-azure/lib/azapi/azapi-resource";
|
|
@@ -296,11 +296,11 @@ export declare class VirtualMachine extends AzapiResource {
|
|
|
296
296
|
* The input properties for this Virtual Machine instance
|
|
297
297
|
*/
|
|
298
298
|
readonly props: VirtualMachineProps;
|
|
299
|
-
readonly idOutput:
|
|
300
|
-
readonly locationOutput:
|
|
301
|
-
readonly nameOutput:
|
|
302
|
-
readonly tagsOutput:
|
|
303
|
-
readonly vmIdOutput:
|
|
299
|
+
readonly idOutput: cdktn.TerraformOutput;
|
|
300
|
+
readonly locationOutput: cdktn.TerraformOutput;
|
|
301
|
+
readonly nameOutput: cdktn.TerraformOutput;
|
|
302
|
+
readonly tagsOutput: cdktn.TerraformOutput;
|
|
303
|
+
readonly vmIdOutput: cdktn.TerraformOutput;
|
|
304
304
|
/**
|
|
305
305
|
* Creates a new Azure Virtual Machine using the VersionedAzapiResource framework
|
|
306
306
|
*
|