github.com/gophercloud/gophercloud@v1.11.0/openstack/identity/v3/extensions/projectendpoints/requests.go (about) 1 package projectendpoints 2 3 import ( 4 "github.com/gophercloud/gophercloud" 5 "github.com/gophercloud/gophercloud/pagination" 6 ) 7 8 type CreateOptsBuilder interface { 9 ToEndpointCreateMap() (map[string]interface{}, error) 10 } 11 12 // Create inserts a new Endpoint association to a project. 13 func Create(client *gophercloud.ServiceClient, projectID, endpointID string) (r CreateResult) { 14 resp, err := client.Put(createURL(client, projectID, endpointID), nil, nil, &gophercloud.RequestOpts{OkCodes: []int{204}}) 15 _, r.Header, r.Err = gophercloud.ParseResponse(resp, err) 16 return 17 } 18 19 // List enumerates endpoints in a paginated collection, optionally filtered 20 // by ListOpts criteria. 21 func List(client *gophercloud.ServiceClient, projectID string) pagination.Pager { 22 u := listURL(client, projectID) 23 return pagination.NewPager(client, u, func(r pagination.PageResult) pagination.Page { 24 return EndpointPage{pagination.LinkedPageBase{PageResult: r}} 25 }) 26 } 27 28 // Delete removes an endpoint from the service catalog. 29 func Delete(client *gophercloud.ServiceClient, projectID string, endpointID string) (r DeleteResult) { 30 resp, err := client.Delete(deleteURL(client, projectID, endpointID), &gophercloud.RequestOpts{OkCodes: []int{204}}) 31 _, r.Header, r.Err = gophercloud.ParseResponse(resp, err) 32 return 33 }