func (f *FaxService) Cancel(sid string) (*Fax, error) {
	data := url.Values{}
	data.Set("Status", string(StatusCanceled))
	return f.Update(context.Background(), sid, data)
}
Cancel an in-progress Fax with the given sid. Cancel will not affect
in-progress Faxes, only those in queued or in-progress.
package twilio
import (
	"context"
	"net/url"
)
const faxPathPart = "Faxes"
type FaxService struct {
	client *Client
}
type Fax struct {
	Sid         string      `json:"sid"`
	AccountSid  string      `json:"account_sid"`
	From        PhoneNumber `json:"from"`
	To          PhoneNumber `json:"to"`
	Direction   Direction   `json:"direction"`
	NumPages    uint        `json:"num_pages"`
	Duration    uint        `json:"duration"`
	MediaURL    string      `json:"media_url"`
	Status      Status      `json:"status"`
	DateCreated TwilioTime  `json:"date_created"`
	DateUpdated TwilioTime  `json:"date_updated"`
	Price       string      `json:"price"`
	PriceUnit   string      `json:"price_unit"`
	Quality     string      `json:"quality"`
	URL         string      `json:"url"`
	APIVersion  string      `json:"api_version"`
}
type FaxPage struct {
	Meta  Meta   `json:"meta"`
	Faxes []*Fax `json:"faxes"`
}
func (f *Fax) FriendlyPrice() string {
	if f == nil {
		return ""
	}
	if len(f.Price) >= 1 && f.Price[0] != '-' {
		return price(f.PriceUnit, "-"+f.Price)
	}
	return price(f.PriceUnit, "-"+f.Price)
}
func (f *FaxService) Get(ctx context.Context, sid string) (*Fax, error) {
	fax := new(Fax)
	err := f.client.GetResource(ctx, faxPathPart, sid, fax)
	return fax, err
}
func (c *FaxService) Update(ctx context.Context, sid string, data url.Values) (*Fax, error) {
	fax := new(Fax)
	err := c.client.UpdateResource(ctx, faxPathPart, sid, data, fax)
	return fax, err
}