func (c *Client) RenterStreamPartialGet(siaPath string, start, end uint64) (resp []byte, err error) {
	siaPath = strings.TrimPrefix(siaPath, "/")
	resp, err = c.getRawPartialResponse("/renter/stream/"+siaPath, start, end)
	return
}
RenterStreamPartialGet uses the /renter/stream endpoint to download a part
of data as a stream.
package client
import (
	"fmt"
	"net/url"
	"strconv"
	"strings"
	"time"
	"github.com/NebulousLabs/Sia/modules"
	"github.com/NebulousLabs/Sia/node/api"
)
func (c *Client) RenterContractsGet() (rc api.RenterContracts, err error) {
	err = c.get("/renter/contracts", &rc)
	return
}
func (c *Client) RenterInactiveContractsGet() (rc api.RenterContracts, err error) {
	query := fmt.Sprintf("?inactive=%v", true)
	err = c.get("/renter/contracts"+query, &rc)
	return
}
func (c *Client) RenterExpiredContractsGet() (rc api.RenterContracts, err error) {
	query := fmt.Sprintf("?expired=%v", true)
	err = c.get("/renter/contracts"+query, &rc)
	return
}
func (c *Client) RenterDeletePost(siaPath string) (err error) {
	siaPath = strings.TrimPrefix(siaPath, "/")
	err = c.post(fmt.Sprintf("/renter/delete/%s", siaPath), "", nil)
	return err
}
func (c *Client) RenterDownloadGet(siaPath, destination string, offset, length uint64, async bool) (err error) {
	siaPath = strings.TrimPrefix(siaPath, "/")
	query := fmt.Sprintf("%s?destination=%s&offset=%d&length=%d&httpresp=false&async=%v",
		siaPath, destination, offset, length, async)
	err = c.get("/renter/download/"+query, nil)
	return
}
func (c *Client) RenterDownloadFullGet(siaPath, destination string, async bool) (err error) {
	siaPath = strings.TrimPrefix(siaPath, "/")
	query := fmt.Sprintf("%s?destination=%s&httpresp=false&async=%v",
		siaPath, destination, async)
	err = c.get("/renter/download/"+query, nil)
	return
}
func (c *Client) RenterClearAllDownloadsPost() (err error) {
	err = c.post("/renter/downloads/clear", "", nil)
	return
}
func (c *Client) RenterClearDownloadsAfterPost(after time.Time) (err error) {
	values := url.Values{}
	values.Set("after", strconv.FormatInt(after.UnixNano(), 10))
	err = c.post("/renter/downloads/clear", values.Encode(), nil)
	return
}
func (c *Client) RenterClearDownloadsBeforePost(before time.Time) (err error) {
	values := url.Values{}
	values.Set("before", strconv.FormatInt(before.UnixNano(), 10))
	err = c.post("/renter/downloads/clear", values.Encode(), nil)
	return
}
func (c *Client) RenterClearDownloadsRangePost(after, before time.Time) (err error) {
	values := url.Values{}
	values.Set("before", strconv.FormatInt(before.UnixNano(), 10))
	values.Set("after", strconv.FormatInt(after.UnixNano(), 10))
	err = c.post("/renter/downloads/clear", values.Encode(), nil)
	return
}
func (c *Client) RenterDownloadsGet() (rdq api.RenterDownloadQueue, err error) {
	err = c.get("/renter/downloads", &rdq)
	return
}
func (c *Client) RenterDownloadHTTPResponseGet(siaPath string, offset, length uint64) (resp []byte, err error) {
	siaPath = strings.TrimPrefix(siaPath, "/")
	query := fmt.Sprintf("%s?offset=%d&length=%d&httpresp=true", siaPath, offset, length)
	resp, err = c.getRawResponse("/renter/download/" + query)
	return
}
func (c *Client) RenterFileGet(siaPath string) (rf api.RenterFile, err error) {
	siaPath = strings.TrimPrefix(siaPath, "/")
	err = c.get("/renter/file/"+siaPath, &rf)
	return
}
func (c *Client) RenterFilesGet() (rf api.RenterFiles, err error) {
	err = c.get("/renter/files", &rf)
	return
}
func (c *Client) RenterGet() (rg api.RenterGET, err error) {
	err = c.get("/renter", &rg)
	return
}
func (c *Client) RenterPostAllowance(allowance modules.Allowance) (err error) {
	values := url.Values{}
	values.Set("funds", allowance.Funds.String())
	values.Set("hosts", strconv.FormatUint(allowance.Hosts, 10))
	values.Set("period", strconv.FormatUint(uint64(allowance.Period), 10))
	values.Set("renewwindow", strconv.FormatUint(uint64(allowance.RenewWindow), 10))
	err = c.post("/renter", values.Encode(), nil)
	return
}
func (c *Client) RenterCancelAllowance() (err error) {
	err = c.RenterPostAllowance(modules.Allowance{})
	return
}
func (c *Client) RenterPricesGet() (rpg api.RenterPricesGET, err error) {
	err = c.get("/renter/prices", &rpg)
	return
}
func (c *Client) RenterPostRateLimit(readBPS, writeBPS int64) (err error) {
	values := url.Values{}
	values.Set("maxdownloadspeed", strconv.FormatInt(readBPS, 10))
	values.Set("maxuploadspeed", strconv.FormatInt(writeBPS, 10))
	err = c.post("/renter", values.Encode(), nil)
	return
}
func (c *Client) RenterRenamePost(siaPathOld, siaPathNew string) (err error) {
	siaPathOld = strings.TrimPrefix(siaPathOld, "/")
	siaPathNew = strings.TrimPrefix(siaPathNew, "/")
	err = c.post("/renter/rename/"+siaPathOld, "newsiapath=/"+siaPathNew, nil)
	return
}
func (c *Client) RenterSetStreamCacheSizePost(cacheSize uint64) (err error) {
	values := url.Values{}
	values.Set("streamcachesize", strconv.FormatUint(cacheSize, 10))
	err = c.post("/renter", values.Encode(), nil)
	return
}
func (c *Client) RenterStreamGet(siaPath string) (resp []byte, err error) {
	siaPath = strings.TrimPrefix(siaPath, "/")
	resp, err = c.getRawResponse("/renter/stream/" + siaPath)
	return
}