func (client *ClientImpl) GetProjectCollections(ctx context.Context, args GetProjectCollectionsArgs) (*[]TeamProjectCollectionReference, error) {
	queryParams := url.Values{}
	if args.Top != nil {
		queryParams.Add("$top", strconv.Itoa(*args.Top))
	}
	if args.Skip != nil {
		queryParams.Add("$skip", strconv.Itoa(*args.Skip))
	}
	locationId, _ := uuid.Parse("8031090f-ef1d-4af6-85fc-698cd75d42bf")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, queryParams, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue []TeamProjectCollectionReference
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
Get project collection references for this application.
package core
import (
	"bytes"
	"context"
	"encoding/json"
	"github.com/google/uuid"
	"github.com/microsoft/azure-devops-go-api/azuredevops"
	"github.com/microsoft/azure-devops-go-api/azuredevops/operations"
	"github.com/microsoft/azure-devops-go-api/azuredevops/webapi"
	"net/http"
	"net/url"
	"strconv"
	"strings"
)
var ResourceAreaId, _ = uuid.Parse("79134c72-4a58-4b42-976c-04e7115f32bf")
type Client interface {
	CreateConnectedService(context.Context, CreateConnectedServiceArgs) (*WebApiConnectedService, error)
	CreateOrUpdateProxy(context.Context, CreateOrUpdateProxyArgs) (*Proxy, error)
	CreateTeam(context.Context, CreateTeamArgs) (*WebApiTeam, error)
	DeleteProxy(context.Context, DeleteProxyArgs) error
	DeleteTeam(context.Context, DeleteTeamArgs) error
	GetAllTeams(context.Context, GetAllTeamsArgs) (*[]WebApiTeam, error)
	GetConnectedServiceDetails(context.Context, GetConnectedServiceDetailsArgs) (*WebApiConnectedServiceDetails, error)
	GetConnectedServices(context.Context, GetConnectedServicesArgs) (*[]WebApiConnectedService, error)
	GetProcessById(context.Context, GetProcessByIdArgs) (*Process, error)
	GetProcesses(context.Context, GetProcessesArgs) (*[]Process, error)
	GetProject(context.Context, GetProjectArgs) (*TeamProject, error)
	GetProjectCollection(context.Context, GetProjectCollectionArgs) (*TeamProjectCollection, error)
	GetProjectCollections(context.Context, GetProjectCollectionsArgs) (*[]TeamProjectCollectionReference, error)
	GetProjectProperties(context.Context, GetProjectPropertiesArgs) (*[]ProjectProperty, error)
	GetProjects(context.Context, GetProjectsArgs) (*GetProjectsResponseValue, error)
	GetProxies(context.Context, GetProxiesArgs) (*[]Proxy, error)
	GetTeam(context.Context, GetTeamArgs) (*WebApiTeam, error)
	GetTeamMembersWithExtendedProperties(context.Context, GetTeamMembersWithExtendedPropertiesArgs) (*[]webapi.TeamMember, error)
	GetTeams(context.Context, GetTeamsArgs) (*[]WebApiTeam, error)
	QueueCreateProject(context.Context, QueueCreateProjectArgs) (*operations.OperationReference, error)
	QueueDeleteProject(context.Context, QueueDeleteProjectArgs) (*operations.OperationReference, error)
	RemoveProjectAvatar(context.Context, RemoveProjectAvatarArgs) error
	SetProjectAvatar(context.Context, SetProjectAvatarArgs) error
	SetProjectProperties(context.Context, SetProjectPropertiesArgs) error
	UpdateProject(context.Context, UpdateProjectArgs) (*operations.OperationReference, error)
	UpdateTeam(context.Context, UpdateTeamArgs) (*WebApiTeam, error)
}
type ClientImpl struct {
	Client azuredevops.Client
}
func NewClient(ctx context.Context, connection *azuredevops.Connection) (Client, error) {
	client, err := connection.GetClientByResourceAreaId(ctx, ResourceAreaId)
	if err != nil {
		return nil, err
	}
	return &ClientImpl{
		Client: *client,
	}, nil
}
func (client *ClientImpl) CreateConnectedService(ctx context.Context, args CreateConnectedServiceArgs) (*WebApiConnectedService, error) {
	if args.ConnectedServiceCreationData == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ConnectedServiceCreationData"}
	}
	routeValues := make(map[string]string)
	if args.ProjectId == nil || *args.ProjectId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
	}
	routeValues["projectId"] = *args.ProjectId
	body, marshalErr := json.Marshal(*args.ConnectedServiceCreationData)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("b4f70219-e18b-42c5-abe3-98b07d35525e")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1-preview.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue WebApiConnectedService
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateConnectedServiceArgs struct {
	ConnectedServiceCreationData *WebApiConnectedServiceDetails
	ProjectId *string
}
func (client *ClientImpl) CreateOrUpdateProxy(ctx context.Context, args CreateOrUpdateProxyArgs) (*Proxy, error) {
	if args.Proxy == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Proxy"}
	}
	body, marshalErr := json.Marshal(*args.Proxy)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("ec1f4311-f2b4-4c15-b2b8-8990b80d2908")
	resp, err := client.Client.Send(ctx, http.MethodPut, locationId, "5.1-preview.2", nil, nil, bytes.NewReader(body), "application/json", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue Proxy
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateOrUpdateProxyArgs struct {
	Proxy *Proxy
}
func (client *ClientImpl) CreateTeam(ctx context.Context, args CreateTeamArgs) (*WebApiTeam, error) {
	if args.Team == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Team"}
	}
	routeValues := make(map[string]string)
	if args.ProjectId == nil || *args.ProjectId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
	}
	routeValues["projectId"] = *args.ProjectId
	body, marshalErr := json.Marshal(*args.Team)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("d30a3dd1-f8ba-442a-b86a-bd0c0c383e59")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue WebApiTeam
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateTeamArgs struct {
	Team *WebApiTeam
	ProjectId *string
}
func (client *ClientImpl) DeleteProxy(ctx context.Context, args DeleteProxyArgs) error {
	queryParams := url.Values{}
	if args.ProxyUrl == nil {
		return &azuredevops.ArgumentNilError{ArgumentName: "proxyUrl"}
	}
	queryParams.Add("proxyUrl", *args.ProxyUrl)
	if args.Site != nil {
		queryParams.Add("site", *args.Site)
	}
	locationId, _ := uuid.Parse("ec1f4311-f2b4-4c15-b2b8-8990b80d2908")
	_, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1-preview.2", nil, queryParams, nil, "", "application/json", nil)
	if err != nil {
		return err
	}
	return nil
}
type DeleteProxyArgs struct {
	ProxyUrl *string
	Site *string
}
func (client *ClientImpl) DeleteTeam(ctx context.Context, args DeleteTeamArgs) error {
	routeValues := make(map[string]string)
	if args.ProjectId == nil || *args.ProjectId == "" {
		return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
	}
	routeValues["projectId"] = *args.ProjectId
	if args.TeamId == nil || *args.TeamId == "" {
		return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.TeamId"}
	}
	routeValues["teamId"] = *args.TeamId
	locationId, _ := uuid.Parse("d30a3dd1-f8ba-442a-b86a-bd0c0c383e59")
	_, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return err
	}
	return nil
}
type DeleteTeamArgs struct {
	ProjectId *string
	TeamId *string
}
func (client *ClientImpl) GetAllTeams(ctx context.Context, args GetAllTeamsArgs) (*[]WebApiTeam, error) {
	queryParams := url.Values{}
	if args.Mine != nil {
		queryParams.Add("$mine", strconv.FormatBool(*args.Mine))
	}
	if args.Top != nil {
		queryParams.Add("$top", strconv.Itoa(*args.Top))
	}
	if args.Skip != nil {
		queryParams.Add("$skip", strconv.Itoa(*args.Skip))
	}
	if args.ExpandIdentity != nil {
		queryParams.Add("$expandIdentity", strconv.FormatBool(*args.ExpandIdentity))
	}
	locationId, _ := uuid.Parse("7a4d9ee9-3433-4347-b47a-7a80f1cf307e")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.3", nil, queryParams, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue []WebApiTeam
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetAllTeamsArgs struct {
	Mine *bool
	Top *int
	Skip *int
	ExpandIdentity *bool
}
func (client *ClientImpl) GetConnectedServiceDetails(ctx context.Context, args GetConnectedServiceDetailsArgs) (*WebApiConnectedServiceDetails, error) {
	routeValues := make(map[string]string)
	if args.ProjectId == nil || *args.ProjectId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
	}
	routeValues["projectId"] = *args.ProjectId
	if args.Name == nil || *args.Name == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Name"}
	}
	routeValues["name"] = *args.Name
	locationId, _ := uuid.Parse("b4f70219-e18b-42c5-abe3-98b07d35525e")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue WebApiConnectedServiceDetails
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetConnectedServiceDetailsArgs struct {
	ProjectId *string
	Name *string
}
func (client *ClientImpl) GetConnectedServices(ctx context.Context, args GetConnectedServicesArgs) (*[]WebApiConnectedService, error) {
	routeValues := make(map[string]string)
	if args.ProjectId == nil || *args.ProjectId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
	}
	routeValues["projectId"] = *args.ProjectId
	queryParams := url.Values{}
	if args.Kind != nil {
		queryParams.Add("kind", string(*args.Kind))
	}
	locationId, _ := uuid.Parse("b4f70219-e18b-42c5-abe3-98b07d35525e")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1-preview.1", routeValues, queryParams, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue []WebApiConnectedService
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetConnectedServicesArgs struct {
	ProjectId *string
	Kind *ConnectedServiceKind
}
func (client *ClientImpl) GetProcessById(ctx context.Context, args GetProcessByIdArgs) (*Process, error) {
	routeValues := make(map[string]string)
	if args.ProcessId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ProcessId"}
	}
	routeValues["processId"] = (*args.ProcessId).String()
	locationId, _ := uuid.Parse("93878975-88c5-4e6a-8abb-7ddd77a8a7d8")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue Process
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetProcessByIdArgs struct {
	ProcessId *uuid.UUID
}
func (client *ClientImpl) GetProcesses(ctx context.Context, args GetProcessesArgs) (*[]Process, error) {
	locationId, _ := uuid.Parse("93878975-88c5-4e6a-8abb-7ddd77a8a7d8")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", nil, nil, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue []Process
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetProcessesArgs struct {
}
func (client *ClientImpl) GetProject(ctx context.Context, args GetProjectArgs) (*TeamProject, error) {
	routeValues := make(map[string]string)
	if args.ProjectId == nil || *args.ProjectId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ProjectId"}
	}
	routeValues["projectId"] = *args.ProjectId
	queryParams := url.Values{}
	if args.IncludeCapabilities != nil {
		queryParams.Add("includeCapabilities", strconv.FormatBool(*args.IncludeCapabilities))
	}
	if args.IncludeHistory != nil {
		queryParams.Add("includeHistory", strconv.FormatBool(*args.IncludeHistory))
	}
	locationId, _ := uuid.Parse("603fe2ac-9723-48b9-88ad-09305aa6c6e1")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue TeamProject
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetProjectArgs struct {
	ProjectId *string
	IncludeCapabilities *bool
	IncludeHistory *bool
}
func (client *ClientImpl) GetProjectCollection(ctx context.Context, args GetProjectCollectionArgs) (*TeamProjectCollection, error) {
	routeValues := make(map[string]string)
	if args.CollectionId == nil || *args.CollectionId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.CollectionId"}
	}
	routeValues["collectionId"] = *args.CollectionId
	locationId, _ := uuid.Parse("8031090f-ef1d-4af6-85fc-698cd75d42bf")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue TeamProjectCollection
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetProjectCollectionArgs struct {
	CollectionId *string
}