@@ -17,6 +17,8 @@ const (
1717 RegionalLinkTemplate = "projects/%s/regions/%s/%s/%s"
1818 RegionalLinkBasePattern = "projects/(.+)/regions/(.+)/%s/(.+)"
1919 RegionalPartialLinkBasePattern = "regions/(.+)/%s/(.+)"
20+ LocalLinkBasePattern = "projects/(.+)/locations/(.+)/%s/(.+)"
21+ LocalPartialLinkBasePattern = "locations/(.+)/%s/(.+)"
2022 ProjectLinkTemplate = "projects/%s/%s/%s"
2123 ProjectBasePattern = "projects/(.+)/%s/(.+)"
2224 OrganizationLinkTemplate = "organizations/%s/%s/%s"
@@ -414,6 +416,16 @@ func ParseRegionalFieldValue(resourceType, fieldValue, projectSchemaField, regio
414416 }, nil
415417 }
416418
419+ r = regexp .MustCompile (fmt .Sprintf (LocalLinkBasePattern , resourceType ))
420+ if parts := r .FindStringSubmatch (fieldValue ); parts != nil {
421+ return & RegionalFieldValue {
422+ Project : parts [1 ],
423+ Region : parts [2 ],
424+ Name : parts [3 ],
425+ resourceType : resourceType ,
426+ }, nil
427+ }
428+
417429 project , err := GetProjectFromSchema (projectSchemaField , d , config )
418430 if err != nil {
419431 return nil , err
@@ -429,6 +441,16 @@ func ParseRegionalFieldValue(resourceType, fieldValue, projectSchemaField, regio
429441 }, nil
430442 }
431443
444+ r = regexp .MustCompile (fmt .Sprintf (LocalPartialLinkBasePattern , resourceType ))
445+ if parts := r .FindStringSubmatch (fieldValue ); parts != nil {
446+ return & RegionalFieldValue {
447+ Project : project ,
448+ Region : parts [1 ],
449+ Name : parts [2 ],
450+ resourceType : resourceType ,
451+ }, nil
452+ }
453+
432454 region , err := GetRegionFromSchema (regionSchemaField , zoneSchemaField , d , config )
433455 if err != nil {
434456 return nil , err
0 commit comments