Migrating format for resource id

I ran into an interesting issue with the UltraDNS provider when attempting to implement a resource import func. The composite resource id, OwnerName.Name, uses a period to separate the constituent parts, e.g., Shiny-app.domain.com (OwnerName) and domain.com (Name). Since the period character appears multiple other times in the resource id (a total of four), this complicates parsing the OwnerName vs. Name properties in a safe manner.

In addition, the composite resource id does not include another necessary data element, Type that simplifies the initial read request made after import.

I’m curious if there are any recommended best practices or strategies for migrating the format of a resource id, either explicitly or in the background:

Explict: tf migrate ultradns_record.e_imo_com
Implicit: tf apply and perform “read-repair” to check if resource id uses legacy or new format and updating to new if necessary

Are there other recommendations or strategies I might be missing, i.e., define an entirely new resource?