code: func (client *Client) UploadPackage(pkg Package, fileToUpload string) (Package, Warnings, error) {
  	link, ok := pkg.Links["upload"]
  	if !ok {
  		return Package{}, nil, ccerror.UploadLinkNotFoundError{PackageGUID: pkg.GUID}
  	}
  
  	body, contentType, err := client.createUploadStream(fileToUpload, "bits")
  	if err != nil {
  		return Package{}, nil, err
  	}
  
  	request, err := client.newHTTPRequest(requestOptions{
  		URL:    link.HREF,
  		Method: link.Method,
  		Body:   body,
  	})
  	if err != nil {
  		return Package{}, nil, err
  	}
  
  	request.Header.Set("Content-Type", contentType)
  
  	var responsePackage Package
  	response := cloudcontroller.Response{
  		DecodeJSONResponseInto: &responsePackage,
  	}
  	err = client.connection.Make(request, &response)
  
  	return responsePackage, response.Warnings, err
  }
docs: // UploadPackage uploads a file to a given package's Upload resource. Note:
  // fileToUpload is read entirely into memory prior to sending data to CC.