package domain import "strings" func validResourceID(id string) bool { if !strings.Contains(id, "/") { return strings.TrimSpace(id) != "" } if strings.Count(id, "/") != 1 { return false } namespace, localID, _ := strings.Cut(id, "/") return namespace != "" && localID != "" } func validResourceNamespace(namespace string) bool { return strings.TrimSpace(namespace) != "" && !strings.Contains(namespace, "/") } func validLocalResourceKey(key string) bool { return strings.TrimSpace(key) != "" && !strings.Contains(key, "/") } func qualifyResourceID(id, namespace string) (string, bool) { if !validResourceID(id) || (namespace != "" && !validResourceNamespace(namespace)) { return "", false } if strings.Contains(id, "/") || namespace == "" { return id, true } return namespace + "/" + id, true } func resourceNamespaceFromID(id string) (string, bool) { if !validResourceID(id) || !strings.Contains(id, "/") { return "", false } namespace, _, _ := strings.Cut(id, "/") return namespace, true }