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
+}