openstack cdn base operations
diff --git a/openstack/cdn/v1/base/results.go b/openstack/cdn/v1/base/results.go
new file mode 100644
index 0000000..da6ad2f
--- /dev/null
+++ b/openstack/cdn/v1/base/results.go
@@ -0,0 +1,34 @@
+package base
+
+import (
+ "github.com/mitchellh/mapstructure"
+ "github.com/rackspace/gophercloud"
+)
+
+// HomeDocument is a resource that contains all the resources for the CDN API.
+type HomeDocument map[string]interface{}
+
+// GetResult represents the result of a Get operation.
+type GetResult struct {
+ gophercloud.Result
+}
+
+// Extract is a function that accepts a result and extracts a home document resource.
+func (r GetResult) Extract() (*HomeDocument, error) {
+ if r.Err != nil {
+ return nil, r.Err
+ }
+
+ var res struct {
+ HomeDocument *HomeDocument `mapstructure:"resources"`
+ }
+
+ err := mapstructure.Decode(r.Body, &res)
+
+ return res.HomeDocument, err
+}
+
+// PingResult represents the result of a Ping operation.
+type PingResult struct {
+ gophercloud.ErrResult
+}