code: func (osioclient *OSIOClient) GetUserServices(ctx context.Context) (*app.UserService, error) {
  
  	if osioclient.userServices != nil {
  		return osioclient.userServices, nil
  	}
  	resp, err := osioclient.wc.ShowUserService(goasupport.ForwardContextRequestID(ctx), witclient.ShowUserServicePath())
  	if err != nil {
  		return nil, errs.Wrapf(err, "could not retrieve user's services")
  	}
  
  	respBody, err := osioclient.responseReader.ReadResponse(resp)
  
  	status := resp.StatusCode
  	if status == http.StatusNotFound {
  		return nil, nil
  	} else if status != http.StatusOK {
  		log.Error(nil, map[string]interface{}{
  			"err":         err,
  			"path":        witclient.ShowUserServicePath(),
  			"http_status": status,
  		}, "failed to get user service from WIT service due to HTTP error %d", status)
  		return nil, errs.Errorf("failed to GET %s due to status code %d", witclient.ShowUserServicePath(), status)
  	}
  
  	var respType app.UserServiceSingle
  	err = json.Unmarshal(respBody, &respType)
  	if err != nil {
  		log.Error(nil, map[string]interface{}{
  			"err":      err,
  			"path":     witclient.ShowUserServicePath(),
  			"response": respBody,
  		}, "unable to unmarshal user service from WIT service")
  		return nil, errs.Wrapf(err, "could not unmarshal user services JSON")
  	}
  
  	osioclient.userServices = respType.Data
  	return respType.Data, nil
  }
docs: // GetUserServices - fetch array of user services
  // In the future, consider calling the tenant service (as /api/user/services implementation does)