code: func (r *realisClient) SetQuota(role string, cpu *float64, ramMb *int64, diskMb *int64) (*aurora.Response, error) {
  	ramRes := aurora.NewResource()
  	ramRes.RamMb = ramMb
  	cpuRes := aurora.NewResource()
  	cpuRes.NumCpus = cpu
  	diskRes := aurora.NewResource()
  	diskRes.DiskMb = diskMb
  	quota := aurora.NewResourceAggregate()
  	quota.Resources = []*aurora.Resource{cpuRes, ramRes, diskRes}
  	resp, retryErr := r.thriftCallWithRetries(func() (*aurora.Response, error) {
  		return r.adminClient.SetQuota(nil, role, quota)
  	})
  
  	if retryErr != nil {
  		return resp, errors.Wrap(retryErr, "Unable to set role quota")
  	}
  	return resp, retryErr
  
  }
docs: // SetQuota sets a quota aggregate for the given role
  // TODO(zircote) Currently investigating an error that is returned from thrift calls that include resources for `NamedPort` and `NumGpu`