code: func (s *BucketService) CreateBucket(ctx context.Context, b *platform.Bucket) error {
  	u, err := newURL(s.Addr, bucketPath)
  	if err != nil {
  		return err
  	}
  
  	octets, err := json.Marshal(newBucket(b))
  	if err != nil {
  		return err
  	}
  
  	req, err := http.NewRequest("POST", u.String(), bytes.NewReader(octets))
  	if err != nil {
  		return err
  	}
  
  	req.Header.Set("Content-Type", "application/json")
  	SetToken(s.Token, req)
  
  	hc := newClient(u.Scheme, s.InsecureSkipVerify)
  
  	resp, err := hc.Do(req)
  	if err != nil {
  		return err
  	}
  
  	// TODO(jsternberg): Should this check for a 201 explicitly?
  	if err := CheckError(resp, true); err != nil {
  		return err
  	}
  
  	var br bucketResponse
  	if err := json.NewDecoder(resp.Body).Decode(&br); err != nil {
  		return err
  	}
  
  	pb, err := br.toPlatform()
  	if err != nil {
  		return err
  	}
  	*b = *pb
  	return nil
  }
docs: // CreateBucket creates a new bucket and sets b.ID with the new identifier.