Change identity endpoints and services.
diff --git a/openstack/identity/v3/services/results.go b/openstack/identity/v3/services/results.go
index 537ea2e..cccea8e 100644
--- a/openstack/identity/v3/services/results.go
+++ b/openstack/identity/v3/services/results.go
@@ -1,7 +1,7 @@
 package services
 
 import (
-	"github.com/rackspace/gophercloud"
+	"github.com/rackspace/gophercloud/pagination"
 
 	"github.com/mitchellh/mapstructure"
 )
@@ -14,12 +14,26 @@
 	Type        string  `json:"type"`
 }
 
+// ServicePage is a single page of Service results.
+type ServicePage struct {
+	pagination.LinkedPageBase
+}
+
+// IsEmpty returns true if the page contains no results.
+func (p ServicePage) IsEmpty() (bool, error) {
+	services, err := ExtractServices(p)
+	if err != nil {
+		return true, err
+	}
+	return len(services) == 0, nil
+}
+
 // ExtractServices extracts a slice of Services from a Collection acquired from List.
-func ExtractServices(page gophercloud.Page) ([]Service, error) {
+func ExtractServices(page pagination.Page) ([]Service, error) {
 	var response struct {
 		Services []Service `mapstructure:"services"`
 	}
 
-	err := mapstructure.Decode(page.(gophercloud.LinkedPage).Body, &response)
+	err := mapstructure.Decode(page.(ServicePage).Body, &response)
 	return response.Services, err
 }