client/pool.go (53 lines of code) (raw):

package client import ( "bytes" "encoding/json" "errors" "fmt" "terraform-provider-teamcity/models" ) func (c *Client) NewPool(p models.PoolJson) (*models.PoolJson, error) { var actual models.PoolJson rb, err := json.Marshal(p) if err != nil { return nil, err } err = c.PostRequest("/agentPools", bytes.NewReader(rb), &actual) if err != nil { return nil, err } return &actual, nil } func (c *Client) GetPool(name string) (*models.PoolJson, error) { var pool models.PoolJson endpoint := fmt.Sprintf("/agentPools/name:%s", name) err := c.GetRequest(endpoint, "", &pool) if errors.Is(err, ErrNotFound) { return nil, nil } if err != nil { return nil, err } return &pool, nil } func (c *Client) DeletePool(id string) error { endpoint := fmt.Sprintf("/agentPools/id:%s", id) err := c.DeleteRequest(endpoint) if err != nil { return err } return nil } func (c *Client) SetPoolProjects(name string, p *models.ProjectsJson) (*models.ProjectsJson, error) { var actual models.ProjectsJson rb, err := json.Marshal(p) if err != nil { return nil, err } endpoint := fmt.Sprintf("/agentPools/name:%s/projects", name) err = c.PutRequest(endpoint, bytes.NewReader(rb), &actual) if err != nil { return nil, err } return &actual, nil }