code: func (c *Client) CreateSnippet(i *CreateSnippetInput) (*Snippet, error) {
  	if i.Service == "" {
  		return nil, ErrMissingService
  	}
  
  	if i.Version == 0 {
  		return nil, ErrMissingVersion
  	}
  
  	if i.Name == "" {
  		return nil, ErrMissingName
  	}
  
  	if i.Dynamic == 0 && i.Content == "" {
  		return nil, ErrMissingContent
  	}
  
  	path := fmt.Sprintf("/service/%s/version/%d/snippet", i.Service, i.Version)
  	resp, err := c.PostForm(path, i, nil)
  	if err != nil {
  		return nil, err
  	}
  
  	var snippet *Snippet
  	if err := decodeJSON(&snippet, resp.Body); err != nil {
  		return nil, err
  	}
  	return snippet, err
  }
docs: // CreateSnippet creates a new snippet or dynamic snippet on a unlocked version