in cmd/migrate_command.go [194:249]
func ImportConfig(resources []types.AzureResource, terraformBlock *hclwrite.Block) string {
config := `terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}`
if terraformBlock != nil {
newFile := hclwrite.NewEmptyFile()
newFile.Body().AppendBlock(terraformBlock)
config = string(hclwrite.Format(newFile.Bytes()))
}
for _, r := range resources {
config += r.EmptyImportConfig()
}
subscriptionId := ""
for _, r := range resources {
switch resource := r.(type) {
case *types.AzapiResource:
for _, instance := range resource.Instances {
if strings.HasPrefix(instance.ResourceId, "/subscriptions/") {
subscriptionId = strings.Split(instance.ResourceId, "/")[2]
break
}
}
case *types.AzapiUpdateResource:
if strings.HasPrefix(resource.Id, "/subscriptions/") {
subscriptionId = strings.Split(resource.Id, "/")[2]
}
case *types.AzurermResource:
for _, instance := range resource.Instances {
if strings.HasPrefix(instance.ResourceId, "/subscriptions/") {
subscriptionId = strings.Split(instance.ResourceId, "/")[2]
break
}
}
}
if subscriptionId != "" {
break
}
}
const providerConfig = `
provider "azurerm" {
features {}
subscription_id = "%s"
}
provider "azapi" {
}
`
return fmt.Sprintf(providerConfig, subscriptionId) + config
}