|  | package roles | 
|  |  | 
|  | import ( | 
|  | "github.com/rackspace/gophercloud" | 
|  | "github.com/rackspace/gophercloud/pagination" | 
|  | ) | 
|  |  | 
|  | // RoleAssignmentsOpts allows you to query the RoleAssignments method. | 
|  | type RoleAssignmentsOpts struct { | 
|  | GroupId        string `q:"group.id"` | 
|  | RoleId         string `q:"role.id"` | 
|  | ScopeDomainId  string `q:"scope.domain.id"` | 
|  | ScopeProjectId string `q:"scope.project.id"` | 
|  | UserId         string `q:"user.id"` | 
|  | Effective      bool   `q:"effective"` | 
|  | } | 
|  |  | 
|  | // RoleAssignments enumerates the roles assigned to a specified resource. | 
|  | func RoleAssignments(client *gophercloud.ServiceClient, opts RoleAssignmentsOpts) pagination.Pager { | 
|  | u := roleAssignmentsURL(client) | 
|  | q, err := gophercloud.BuildQueryString(opts) | 
|  | if err != nil { | 
|  | return pagination.Pager{Err: err} | 
|  | } | 
|  | u += q.String() | 
|  | createPage := func(r pagination.PageResult) pagination.Page { | 
|  | return RoleAssignmentsPage{pagination.LinkedPageBase{PageResult: r}} | 
|  | } | 
|  |  | 
|  | return pagination.NewPager(client, u, createPage) | 
|  | } |