code: func (c *Client) GetRoles() ([]services.Role, error) {
  	out, err := c.Get(c.Endpoint("roles"), url.Values{})
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	var items []json.RawMessage
  	if err := json.Unmarshal(out.Bytes(), &items); err != nil {
  		return nil, trace.Wrap(err)
  	}
  	roles := make([]services.Role, len(items))
  	for i, roleBytes := range items {
  		role, err := services.GetRoleMarshaler().UnmarshalRole(roleBytes, services.SkipValidation())
  		if err != nil {
  			return nil, trace.Wrap(err)
  		}
  		roles[i] = role
  	}
  	return roles, nil
  }
docs: // GetRoles returns a list of roles