Implement and test service creation.
diff --git a/openstack/identity/v3/services/requests.go b/openstack/identity/v3/services/requests.go
new file mode 100644
index 0000000..a752d57
--- /dev/null
+++ b/openstack/identity/v3/services/requests.go
@@ -0,0 +1,32 @@
+package services
+
+import (
+	"github.com/racker/perigee"
+	"github.com/rackspace/gophercloud"
+)
+
+// Create adds a new service of the requested type to the catalog.
+func Create(client *gophercloud.ServiceClient, serviceType string) (*ServiceResult, error) {
+	type request struct {
+		Type string `json:"type"`
+	}
+
+	type response struct {
+		Service ServiceResult `json:"service"`
+	}
+
+	req := request{Type: serviceType}
+	var resp response
+
+	_, err := perigee.Request("POST", getListURL(client), perigee.Options{
+		MoreHeaders: client.AuthenticatedHeaders(),
+		ReqBody:     &req,
+		Results:     &resp,
+		OkCodes:     []int{201},
+	})
+	if err != nil {
+		return nil, err
+	}
+
+	return &resp.Service, nil
+}