diff --git a/openstack/cdn/v1/services/results.go b/openstack/cdn/v1/services/results.go
index 3e806be..40581a4 100644
--- a/openstack/cdn/v1/services/results.go
+++ b/openstack/cdn/v1/services/results.go
@@ -30,6 +30,10 @@
 	return PathDomains
 }
 
+func (d Domain) renderRootOr(render func(p Path) string) string {
+	return render(d.appropriatePath())
+}
+
 // DomainList provides a useful way to perform bulk operations in a single Patch.
 type DomainList []Domain
 
@@ -45,6 +49,10 @@
 	return PathDomains
 }
 
+func (list DomainList) renderRootOr(_ func(p Path) string) string {
+	return list.appropriatePath().renderRoot()
+}
+
 // OriginRule represents a rule that defines when an origin should be accessed.
 type OriginRule struct {
 	// Specifies the name of this rule.
@@ -87,6 +95,10 @@
 	return PathOrigins
 }
 
+func (o Origin) renderRootOr(render func(p Path) string) string {
+	return render(o.appropriatePath())
+}
+
 // OriginList provides a useful way to perform bulk operations in a single Patch.
 type OriginList []Domain
 
@@ -102,6 +114,10 @@
 	return PathOrigins
 }
 
+func (list OriginList) renderRootOr(_ func(p Path) string) string {
+	return list.appropriatePath().renderRoot()
+}
+
 // TTLRule specifies a rule that determines if a TTL should be applied to an asset.
 type TTLRule struct {
 	// Specifies the name of this rule.
@@ -137,6 +153,10 @@
 	return PathCaching
 }
 
+func (c CacheRule) renderRootOr(render func(p Path) string) string {
+	return render(c.appropriatePath())
+}
+
 // CacheRuleList provides a useful way to perform bulk operations in a single Patch.
 type CacheRuleList []Domain
 
@@ -152,6 +172,10 @@
 	return PathCaching
 }
 
+func (list CacheRuleList) renderRootOr(_ func(p Path) string) string {
+	return list.appropriatePath().renderRoot()
+}
+
 // RestrictionRule specifies a rule that determines if this restriction should be applied to an asset.
 type RestrictionRule struct {
 	// Specifies the name of this rule.
