code: func (client *Client) GetWithContext(ctx context.Context, ls Listable) (interface{}, error) {
  	gs, err := client.ListWithContext(ctx, ls)
  	if err != nil {
  		return nil, err
  	}
  
  	count := len(gs)
  	if count != 1 {
  		req, err := ls.ListRequest()
  		if err != nil {
  			return nil, err
  		}
  		params, err := client.Payload(req)
  		if err != nil {
  			return nil, err
  		}
  
  		// removing sensitive/useless informations
  		params.Del("expires")
  		params.Del("response")
  		params.Del("signature")
  		params.Del("signatureversion")
  
  		// formatting the query string nicely
  		payload := params.Encode()
  		payload = strings.Replace(payload, "&", ", ", -1)
  
  		if count == 0 {
  			return nil, &ErrorResponse{
  				CSErrorCode: ServerAPIException,
  				ErrorCode:   ParamError,
  				ErrorText:   fmt.Sprintf("not found, query: %s", payload),
  			}
  		}
  		return nil, fmt.Errorf("more than one element found: %s", payload)
  	}
  
  	return gs[0], nil
  }
docs: // GetWithContext populates the given resource or fails