Change identity endpoints and services.
diff --git a/openstack/identity/v3/endpoints/results.go b/openstack/identity/v3/endpoints/results.go
index 4d7bfbc..8da90f3 100644
--- a/openstack/identity/v3/endpoints/results.go
+++ b/openstack/identity/v3/endpoints/results.go
@@ -3,6 +3,7 @@
 import (
 	"github.com/mitchellh/mapstructure"
 	"github.com/rackspace/gophercloud"
+	"github.com/rackspace/gophercloud/pagination"
 )
 
 // Endpoint describes the entry point for another service's API.
@@ -15,13 +16,27 @@
 	URL          string                   `mapstructure:"url" json:"url"`
 }
 
+// EndpointPage is a single page of Endpoint results.
+type EndpointPage struct {
+	pagination.LinkedPageBase
+}
+
+// IsEmpty returns true if no Endpoints were returned.
+func (p EndpointPage) IsEmpty() (bool, error) {
+	es, err := ExtractEndpoints(p)
+	if err != nil {
+		return true, err
+	}
+	return len(es) == 0, nil
+}
+
 // ExtractEndpoints extracts an Endpoint slice from a Page.
-func ExtractEndpoints(page gophercloud.Page) ([]Endpoint, error) {
+func ExtractEndpoints(page pagination.Page) ([]Endpoint, error) {
 	var response struct {
 		Endpoints []Endpoint `mapstructure:"endpoints"`
 	}
 
-	err := mapstructure.Decode(page.(gophercloud.LinkedPage).Body, &response)
+	err := mapstructure.Decode(page.(EndpointPage).Body, &response)
 	if err != nil {
 		return nil, err
 	}