func (s *ProjectsService) Create(opt *ProjectsCreateOption) (v *ProjectsCreateObject, resp *http.Response, err error) {
	err = s.ValidateCreateOpt(opt)
	if err != nil {
		return
	}
	req, err := s.client.NewRequest("POST", "projects/create", opt)
	if err != nil {
		return
	}
	v = new(ProjectsCreateObject)
	resp, err = s.client.Do(req, v)
	if err != nil {
		return nil, resp, err
	}
	return
}
Create Create a project.<br/>Requires 'Create Projects' permission
package sonargo
import "net/http"
type ProjectsService struct {
	client *Client
}
const (
	ProjectVisibilityPublic  = "public"
	ProjectVisibilityPrivate = "private"
)
type ProjectsBulkUpdateKeyObject struct {
	Keys []*Key `json:"keys,omitempty"`
}
type Key struct {
	Duplicate bool   `json:"duplicate,omitempty"`
	Key       string `json:"key,omitempty"`
	NewKey    string `json:"newKey,omitempty"`
}
type Project struct {
	CreationDate string `json:"creationDate,omitempty"`
	Key          string `json:"key,omitempty"`
	Name         string `json:"name,omitempty"`
	Qualifier    string `json:"qualifier,omitempty"`
	UUID         string `json:"uuid,omitempty"`
	Visibility   string `json:"visibility,omitempty"`
}
type ProjectsCreateObject struct {
	Project *Project `json:"project,omitempty"`
}
type ProjectsBulkDeleteOption struct {
	AnalyzedBefore    string `url:"analyzedBefore,omitempty"`     
	OnProvisionedOnly string `url:"onProvisionedOnly,omitempty"`  
	ProjectIds        string `url:"projectIds,omitempty"`         
	Projects          string `url:"projects,omitempty"`           
	Q                 string `url:"q,omitempty"`                  
	Qualifiers        string `url:"qualifiers,omitempty"`         
}
func (s *ProjectsService) BulkDelete(opt *ProjectsBulkDeleteOption) (resp *http.Response, err error) {
	err = s.ValidateBulkDeleteOpt(opt)
	if err != nil {
		return
	}
	req, err := s.client.NewRequest("POST", "projects/bulk_delete", opt)
	if err != nil {
		return
	}
	resp, err = s.client.Do(req, nil)
	if err != nil {
		return
	}
	return
}
type ProjectsBulkUpdateKeyOption struct {
	DryRun    string `url:"dryRun,omitempty"`     
	From      string `url:"from,omitempty"`       
	Project   string `url:"project,omitempty"`    
	ProjectId string `url:"projectId,omitempty"`  
	To        string `url:"to,omitempty"`         
}
func (s *ProjectsService) BulkUpdateKey(opt *ProjectsBulkUpdateKeyOption) (v *ProjectsBulkUpdateKeyObject, resp *http.Response, err error) {
	err = s.ValidateBulkUpdateKeyOpt(opt)
	if err != nil {
		return
	}
	req, err := s.client.NewRequest("POST", "projects/bulk_update_key", opt)
	if err != nil {
		return
	}
	v = new(ProjectsBulkUpdateKeyObject)
	resp, err = s.client.Do(req, v)
	if err != nil {
		return nil, resp, err
	}
	return
}
type ProjectsCreateOption struct {
	Branch     string `url:"branch,omitempty"`      
	Name       string `url:"name,omitempty"`        
	Project    string `url:"project,omitempty"`     
	Visibility string `url:"visibility,omitempty"`  
}