func (client *ClientImpl) CreatePullRequestStatus(ctx context.Context, args CreatePullRequestStatusArgs) (*GitPullRequestStatus, error) {
	if args.Status == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Status"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	if args.PullRequestId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PullRequestId"}
	}
	routeValues["pullRequestId"] = strconv.Itoa(*args.PullRequestId)
	body, marshalErr := json.Marshal(*args.Status)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35")
	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 GitPullRequestStatus
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
[Preview API] Create a pull request status.
package git
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/core"
	"github.com/microsoft/azure-devops-go-api/azuredevops/policy"
	"github.com/microsoft/azure-devops-go-api/azuredevops/webapi"
	"io"
	"net/http"
	"net/url"
	"strconv"
)
var ResourceAreaId, _ = uuid.Parse("4e080c62-fa21-4fbc-8fef-2a10a2b38049")
type Client interface {
	CreateAnnotatedTag(context.Context, CreateAnnotatedTagArgs) (*GitAnnotatedTag, error)
	CreateAttachment(context.Context, CreateAttachmentArgs) (*Attachment, error)
	CreateCherryPick(context.Context, CreateCherryPickArgs) (*GitCherryPick, error)
	CreateComment(context.Context, CreateCommentArgs) (*Comment, error)
	CreateCommitStatus(context.Context, CreateCommitStatusArgs) (*GitStatus, error)
	CreateFavorite(context.Context, CreateFavoriteArgs) (*GitRefFavorite, error)
	CreateForkSyncRequest(context.Context, CreateForkSyncRequestArgs) (*GitForkSyncRequest, error)
	CreateImportRequest(context.Context, CreateImportRequestArgs) (*GitImportRequest, error)
	CreateLike(context.Context, CreateLikeArgs) error
	CreateMergeRequest(context.Context, CreateMergeRequestArgs) (*GitMerge, error)
	CreatePullRequest(context.Context, CreatePullRequestArgs) (*GitPullRequest, error)
	CreatePullRequestIterationStatus(context.Context, CreatePullRequestIterationStatusArgs) (*GitPullRequestStatus, error)
	CreatePullRequestLabel(context.Context, CreatePullRequestLabelArgs) (*core.WebApiTagDefinition, error)
	CreatePullRequestReviewer(context.Context, CreatePullRequestReviewerArgs) (*IdentityRefWithVote, error)
	CreatePullRequestReviewers(context.Context, CreatePullRequestReviewersArgs) (*[]IdentityRefWithVote, error)
	CreatePullRequestStatus(context.Context, CreatePullRequestStatusArgs) (*GitPullRequestStatus, error)
	CreatePush(context.Context, CreatePushArgs) (*GitPush, error)
	CreateRepository(context.Context, CreateRepositoryArgs) (*GitRepository, error)
	CreateRevert(context.Context, CreateRevertArgs) (*GitRevert, error)
	CreateThread(context.Context, CreateThreadArgs) (*GitPullRequestCommentThread, error)
	DeleteAttachment(context.Context, DeleteAttachmentArgs) error
	DeleteComment(context.Context, DeleteCommentArgs) error
	DeleteLike(context.Context, DeleteLikeArgs) error
	DeletePullRequestIterationStatus(context.Context, DeletePullRequestIterationStatusArgs) error
	DeletePullRequestLabels(context.Context, DeletePullRequestLabelsArgs) error
	DeletePullRequestReviewer(context.Context, DeletePullRequestReviewerArgs) error
	DeletePullRequestStatus(context.Context, DeletePullRequestStatusArgs) error
	DeleteRefFavorite(context.Context, DeleteRefFavoriteArgs) error
	DeleteRepository(context.Context, DeleteRepositoryArgs) error
	DeleteRepositoryFromRecycleBin(context.Context, DeleteRepositoryFromRecycleBinArgs) error
	GetAnnotatedTag(context.Context, GetAnnotatedTagArgs) (*GitAnnotatedTag, error)
	GetAttachmentContent(context.Context, GetAttachmentContentArgs) (io.ReadCloser, error)
	GetAttachments(context.Context, GetAttachmentsArgs) (*[]Attachment, error)
	GetAttachmentZip(context.Context, GetAttachmentZipArgs) (io.ReadCloser, error)
	GetBlob(context.Context, GetBlobArgs) (*GitBlobRef, error)
	GetBlobContent(context.Context, GetBlobContentArgs) (io.ReadCloser, error)
	GetBlobsZip(context.Context, GetBlobsZipArgs) (io.ReadCloser, error)
	GetBlobZip(context.Context, GetBlobZipArgs) (io.ReadCloser, error)
	GetBranch(context.Context, GetBranchArgs) (*GitBranchStats, error)
	GetBranches(context.Context, GetBranchesArgs) (*[]GitBranchStats, error)
	GetChanges(context.Context, GetChangesArgs) (*GitCommitChanges, error)
	GetCherryPick(context.Context, GetCherryPickArgs) (*GitCherryPick, error)
	GetCherryPickForRefName(context.Context, GetCherryPickForRefNameArgs) (*GitCherryPick, error)
	GetComment(context.Context, GetCommentArgs) (*Comment, error)
	GetComments(context.Context, GetCommentsArgs) (*[]Comment, error)
	GetCommit(context.Context, GetCommitArgs) (*GitCommit, error)
	GetCommitDiffs(context.Context, GetCommitDiffsArgs) (*GitCommitDiffs, error)
	GetCommits(context.Context, GetCommitsArgs) (*[]GitCommitRef, error)
	GetCommitsBatch(context.Context, GetCommitsBatchArgs) (*[]GitCommitRef, error)
	GetDeletedRepositories(context.Context, GetDeletedRepositoriesArgs) (*[]GitDeletedRepository, error)
	GetForks(context.Context, GetForksArgs) (*[]GitRepositoryRef, error)
	GetForkSyncRequest(context.Context, GetForkSyncRequestArgs) (*GitForkSyncRequest, error)
	GetForkSyncRequests(context.Context, GetForkSyncRequestsArgs) (*[]GitForkSyncRequest, error)
	GetImportRequest(context.Context, GetImportRequestArgs) (*GitImportRequest, error)
	GetItem(context.Context, GetItemArgs) (*GitItem, error)
	GetItemContent(context.Context, GetItemContentArgs) (io.ReadCloser, error)
	GetItems(context.Context, GetItemsArgs) (*[]GitItem, error)
	GetItemsBatch(context.Context, GetItemsBatchArgs) (*[][]GitItem, error)
	GetItemText(context.Context, GetItemTextArgs) (io.ReadCloser, error)
	GetItemZip(context.Context, GetItemZipArgs) (io.ReadCloser, error)
	GetLikes(context.Context, GetLikesArgs) (*[]webapi.IdentityRef, error)
	GetMergeBases(context.Context, GetMergeBasesArgs) (*[]GitCommitRef, error)
	GetMergeRequest(context.Context, GetMergeRequestArgs) (*GitMerge, error)
	GetPolicyConfigurations(context.Context, GetPolicyConfigurationsArgs) (*GitPolicyConfigurationResponse, error)
	GetPullRequest(context.Context, GetPullRequestArgs) (*GitPullRequest, error)
	GetPullRequestById(context.Context, GetPullRequestByIdArgs) (*GitPullRequest, error)
	GetPullRequestCommits(context.Context, GetPullRequestCommitsArgs) (*GetPullRequestCommitsResponseValue, error)
	GetPullRequestIteration(context.Context, GetPullRequestIterationArgs) (*GitPullRequestIteration, error)
	GetPullRequestIterationChanges(context.Context, GetPullRequestIterationChangesArgs) (*GitPullRequestIterationChanges, error)
	GetPullRequestIterationCommits(context.Context, GetPullRequestIterationCommitsArgs) (*[]GitCommitRef, error)
	GetPullRequestIterations(context.Context, GetPullRequestIterationsArgs) (*[]GitPullRequestIteration, error)
	GetPullRequestIterationStatus(context.Context, GetPullRequestIterationStatusArgs) (*GitPullRequestStatus, error)
	GetPullRequestIterationStatuses(context.Context, GetPullRequestIterationStatusesArgs) (*[]GitPullRequestStatus, error)
	GetPullRequestLabel(context.Context, GetPullRequestLabelArgs) (*core.WebApiTagDefinition, error)
	GetPullRequestLabels(context.Context, GetPullRequestLabelsArgs) (*[]core.WebApiTagDefinition, error)
	GetPullRequestProperties(context.Context, GetPullRequestPropertiesArgs) (interface{}, error)
	GetPullRequestQuery(context.Context, GetPullRequestQueryArgs) (*GitPullRequestQuery, error)
	GetPullRequestReviewer(context.Context, GetPullRequestReviewerArgs) (*IdentityRefWithVote, error)
	GetPullRequestReviewers(context.Context, GetPullRequestReviewersArgs) (*[]IdentityRefWithVote, error)
	GetPullRequests(context.Context, GetPullRequestsArgs) (*[]GitPullRequest, error)
	GetPullRequestsByProject(context.Context, GetPullRequestsByProjectArgs) (*[]GitPullRequest, error)
	GetPullRequestStatus(context.Context, GetPullRequestStatusArgs) (*GitPullRequestStatus, error)
	GetPullRequestStatuses(context.Context, GetPullRequestStatusesArgs) (*[]GitPullRequestStatus, error)
	GetPullRequestThread(context.Context, GetPullRequestThreadArgs) (*GitPullRequestCommentThread, error)
	GetPullRequestWorkItemRefs(context.Context, GetPullRequestWorkItemRefsArgs) (*[]webapi.ResourceRef, error)
	GetPush(context.Context, GetPushArgs) (*GitPush, error)
	GetPushCommits(context.Context, GetPushCommitsArgs) (*[]GitCommitRef, error)
	GetPushes(context.Context, GetPushesArgs) (*[]GitPush, error)
	GetRecycleBinRepositories(context.Context, GetRecycleBinRepositoriesArgs) (*[]GitDeletedRepository, error)
	GetRefFavorite(context.Context, GetRefFavoriteArgs) (*GitRefFavorite, error)
	GetRefFavorites(context.Context, GetRefFavoritesArgs) (*[]GitRefFavorite, error)
	GetRefs(context.Context, GetRefsArgs) (*GetRefsResponseValue, error)
	GetRepositories(context.Context, GetRepositoriesArgs) (*[]GitRepository, error)
	GetRepository(context.Context, GetRepositoryArgs) (*GitRepository, error)
	GetRepositoryWithParent(context.Context, GetRepositoryWithParentArgs) (*GitRepository, error)
	GetRevert(context.Context, GetRevertArgs) (*GitRevert, error)
	GetRevertForRefName(context.Context, GetRevertForRefNameArgs) (*GitRevert, error)
	GetStatuses(context.Context, GetStatusesArgs) (*[]GitStatus, error)
	GetSuggestions(context.Context, GetSuggestionsArgs) (*[]GitSuggestion, error)
	GetThreads(context.Context, GetThreadsArgs) (*[]GitPullRequestCommentThread, error)
	GetTree(context.Context, GetTreeArgs) (*GitTreeRef, error)
	GetTreeZip(context.Context, GetTreeZipArgs) (io.ReadCloser, error)
	QueryImportRequests(context.Context, QueryImportRequestsArgs) (*[]GitImportRequest, error)
	RestoreRepositoryFromRecycleBin(context.Context, RestoreRepositoryFromRecycleBinArgs) (*GitRepository, error)
	SharePullRequest(context.Context, SharePullRequestArgs) error
	UpdateComment(context.Context, UpdateCommentArgs) (*Comment, error)
	UpdateImportRequest(context.Context, UpdateImportRequestArgs) (*GitImportRequest, error)
	UpdatePullRequest(context.Context, UpdatePullRequestArgs) (*GitPullRequest, error)
	UpdatePullRequestIterationStatuses(context.Context, UpdatePullRequestIterationStatusesArgs) error
	UpdatePullRequestProperties(context.Context, UpdatePullRequestPropertiesArgs) (interface{}, error)
	UpdatePullRequestReviewers(context.Context, UpdatePullRequestReviewersArgs) error
	UpdatePullRequestStatuses(context.Context, UpdatePullRequestStatusesArgs) error
	UpdateRef(context.Context, UpdateRefArgs) (*GitRef, error)
	UpdateRefs(context.Context, UpdateRefsArgs) (*[]GitRefUpdateResult, error)
	UpdateRepository(context.Context, UpdateRepositoryArgs) (*GitRepository, error)
	UpdateThread(context.Context, UpdateThreadArgs) (*GitPullRequestCommentThread, 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) CreateAnnotatedTag(ctx context.Context, args CreateAnnotatedTagArgs) (*GitAnnotatedTag, error) {
	if args.TagObject == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.TagObject"}
	}
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	body, marshalErr := json.Marshal(*args.TagObject)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("5e8a8081-3851-4626-b677-9891cc04102e")
	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 GitAnnotatedTag
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateAnnotatedTagArgs struct {
	TagObject *GitAnnotatedTag
	Project *string
	RepositoryId *string
}
func (client *ClientImpl) CreateAttachment(ctx context.Context, args CreateAttachmentArgs) (*Attachment, error) {
	if args.UploadStream == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.UploadStream"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.FileName == nil || *args.FileName == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.FileName"}
	}
	routeValues["fileName"] = *args.FileName
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	if args.PullRequestId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PullRequestId"}
	}
	routeValues["pullRequestId"] = strconv.Itoa(*args.PullRequestId)
	locationId, _ := uuid.Parse("965d9361-878b-413b-a494-45d5b5fd8ab7")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1-preview.1", routeValues, nil, args.UploadStream, "application/octet-stream", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue Attachment
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateAttachmentArgs struct {
	UploadStream io.Reader
	FileName *string
	RepositoryId *string
	PullRequestId *int
	Project *string
}
func (client *ClientImpl) CreateCherryPick(ctx context.Context, args CreateCherryPickArgs) (*GitCherryPick, error) {
	if args.CherryPickToCreate == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.CherryPickToCreate"}
	}
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	body, marshalErr := json.Marshal(*args.CherryPickToCreate)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("033bad68-9a14-43d1-90e0-59cb8856fef6")
	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 GitCherryPick
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateCherryPickArgs struct {
	CherryPickToCreate *GitAsyncRefOperationParameters
	Project *string
	RepositoryId *string
}
func (client *ClientImpl) CreateComment(ctx context.Context, args CreateCommentArgs) (*Comment, error) {
	if args.Comment == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Comment"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	if args.PullRequestId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PullRequestId"}
	}
	routeValues["pullRequestId"] = strconv.Itoa(*args.PullRequestId)
	if args.ThreadId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ThreadId"}
	}
	routeValues["threadId"] = strconv.Itoa(*args.ThreadId)
	body, marshalErr := json.Marshal(*args.Comment)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b")
	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 Comment
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateCommentArgs struct {
	Comment *Comment
	RepositoryId *string
	PullRequestId *int
	ThreadId *int
	Project *string
}
func (client *ClientImpl) CreateCommitStatus(ctx context.Context, args CreateCommitStatusArgs) (*GitStatus, error) {
	if args.GitCommitStatusToCreate == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.GitCommitStatusToCreate"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.CommitId == nil || *args.CommitId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.CommitId"}
	}
	routeValues["commitId"] = *args.CommitId
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	body, marshalErr := json.Marshal(*args.GitCommitStatusToCreate)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("428dd4fb-fda5-4722-af02-9313b80305da")
	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 GitStatus
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateCommitStatusArgs struct {
	GitCommitStatusToCreate *GitStatus
	CommitId *string
	RepositoryId *string
	Project *string
}
func (client *ClientImpl) CreateFavorite(ctx context.Context, args CreateFavoriteArgs) (*GitRefFavorite, error) {
	if args.Favorite == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Favorite"}
	}
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	body, marshalErr := json.Marshal(*args.Favorite)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("876f70af-5792-485a-a1c7-d0a7b2f42bbb")
	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 GitRefFavorite
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateFavoriteArgs struct {
	Favorite *GitRefFavorite
	Project *string
}
func (client *ClientImpl) CreateForkSyncRequest(ctx context.Context, args CreateForkSyncRequestArgs) (*GitForkSyncRequest, error) {
	if args.SyncParams == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.SyncParams"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.RepositoryNameOrId == nil || *args.RepositoryNameOrId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryNameOrId"}
	}
	routeValues["repositoryNameOrId"] = *args.RepositoryNameOrId
	queryParams := url.Values{}
	if args.IncludeLinks != nil {
		queryParams.Add("includeLinks", strconv.FormatBool(*args.IncludeLinks))
	}
	body, marshalErr := json.Marshal(*args.SyncParams)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("1703f858-b9d1-46af-ab62-483e9e1055b5")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1-preview.1", routeValues, queryParams, bytes.NewReader(body), "application/json", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue GitForkSyncRequest
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateForkSyncRequestArgs struct {
	SyncParams *GitForkSyncRequestParameters
	RepositoryNameOrId *string
	Project *string
	IncludeLinks *bool
}
func (client *ClientImpl) CreateImportRequest(ctx context.Context, args CreateImportRequestArgs) (*GitImportRequest, error) {
	if args.ImportRequest == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ImportRequest"}
	}
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	body, marshalErr := json.Marshal(*args.ImportRequest)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("01828ddc-3600-4a41-8633-99b3a73a0eb3")
	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 GitImportRequest
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateImportRequestArgs struct {
	ImportRequest *GitImportRequest
	Project *string
	RepositoryId *string
}
func (client *ClientImpl) CreateLike(ctx context.Context, args CreateLikeArgs) error {
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	if args.PullRequestId == nil {
		return &azuredevops.ArgumentNilError{ArgumentName: "args.PullRequestId"}
	}
	routeValues["pullRequestId"] = strconv.Itoa(*args.PullRequestId)
	if args.ThreadId == nil {
		return &azuredevops.ArgumentNilError{ArgumentName: "args.ThreadId"}
	}
	routeValues["threadId"] = strconv.Itoa(*args.ThreadId)
	if args.CommentId == nil {
		return &azuredevops.ArgumentNilError{ArgumentName: "args.CommentId"}
	}
	routeValues["commentId"] = strconv.Itoa(*args.CommentId)
	locationId, _ := uuid.Parse("5f2e2851-1389-425b-a00b-fb2adb3ef31b")
	_, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1-preview.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return err
	}
	return nil
}
type CreateLikeArgs struct {
	RepositoryId *string
	PullRequestId *int
	ThreadId *int
	CommentId *int
	Project *string
}
func (client *ClientImpl) CreateMergeRequest(ctx context.Context, args CreateMergeRequestArgs) (*GitMerge, error) {
	if args.MergeParameters == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.MergeParameters"}
	}
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.RepositoryNameOrId == nil || *args.RepositoryNameOrId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryNameOrId"}
	}
	routeValues["repositoryNameOrId"] = *args.RepositoryNameOrId
	queryParams := url.Values{}
	if args.IncludeLinks != nil {
		queryParams.Add("includeLinks", strconv.FormatBool(*args.IncludeLinks))
	}
	body, marshalErr := json.Marshal(*args.MergeParameters)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("985f7ae9-844f-4906-9897-7ef41516c0e2")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1-preview.1", routeValues, queryParams, bytes.NewReader(body), "application/json", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue GitMerge
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateMergeRequestArgs struct {
	MergeParameters *GitMergeParameters
	Project *string
	RepositoryNameOrId *string
	IncludeLinks *bool
}
func (client *ClientImpl) CreatePullRequest(ctx context.Context, args CreatePullRequestArgs) (*GitPullRequest, error) {
	if args.GitPullRequestToCreate == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.GitPullRequestToCreate"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	queryParams := url.Values{}
	if args.SupportsIterations != nil {
		queryParams.Add("supportsIterations", strconv.FormatBool(*args.SupportsIterations))
	}
	body, marshalErr := json.Marshal(*args.GitPullRequestToCreate)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("9946fd70-0d40-406e-b686-b4744cbbcc37")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1", routeValues, queryParams, bytes.NewReader(body), "application/json", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue GitPullRequest
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreatePullRequestArgs struct {
	GitPullRequestToCreate *GitPullRequest
	RepositoryId *string
	Project *string
	SupportsIterations *bool
}
func (client *ClientImpl) CreatePullRequestIterationStatus(ctx context.Context, args CreatePullRequestIterationStatusArgs) (*GitPullRequestStatus, error) {
	if args.Status == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Status"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	if args.PullRequestId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PullRequestId"}
	}
	routeValues["pullRequestId"] = strconv.Itoa(*args.PullRequestId)
	if args.IterationId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.IterationId"}
	}
	routeValues["iterationId"] = strconv.Itoa(*args.IterationId)
	body, marshalErr := json.Marshal(*args.Status)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("75cf11c5-979f-4038-a76e-058a06adf2bf")
	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 GitPullRequestStatus
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreatePullRequestIterationStatusArgs struct {
	Status *GitPullRequestStatus
	RepositoryId *string
	PullRequestId *int
	IterationId *int
	Project *string
}
func (client *ClientImpl) CreatePullRequestLabel(ctx context.Context, args CreatePullRequestLabelArgs) (*core.WebApiTagDefinition, error) {
	if args.Label == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Label"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	if args.PullRequestId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PullRequestId"}
	}
	routeValues["pullRequestId"] = strconv.Itoa(*args.PullRequestId)
	queryParams := url.Values{}
	if args.ProjectId != nil {
		queryParams.Add("projectId", *args.ProjectId)
	}
	body, marshalErr := json.Marshal(*args.Label)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("f22387e3-984e-4c52-9c6d-fbb8f14c812d")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1-preview.1", routeValues, queryParams, bytes.NewReader(body), "application/json", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue core.WebApiTagDefinition
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreatePullRequestLabelArgs struct {
	Label *core.WebApiCreateTagRequestData
	RepositoryId *string
	PullRequestId *int
	Project *string
	ProjectId *string
}
func (client *ClientImpl) CreatePullRequestReviewer(ctx context.Context, args CreatePullRequestReviewerArgs) (*IdentityRefWithVote, error) {
	if args.Reviewer == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Reviewer"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	if args.PullRequestId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PullRequestId"}
	}
	routeValues["pullRequestId"] = strconv.Itoa(*args.PullRequestId)
	if args.ReviewerId == nil || *args.ReviewerId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.ReviewerId"}
	}
	routeValues["reviewerId"] = *args.ReviewerId
	body, marshalErr := json.Marshal(*args.Reviewer)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("4b6702c7-aa35-4b89-9c96-b9abf6d3e540")
	resp, err := client.Client.Send(ctx, http.MethodPut, locationId, "5.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue IdentityRefWithVote
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreatePullRequestReviewerArgs struct {
	Reviewer *IdentityRefWithVote
	RepositoryId *string
	PullRequestId *int
	ReviewerId *string
	Project *string
}
func (client *ClientImpl) CreatePullRequestReviewers(ctx context.Context, args CreatePullRequestReviewersArgs) (*[]IdentityRefWithVote, error) {
	if args.Reviewers == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Reviewers"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.RepositoryId == nil || *args.RepositoryId == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.RepositoryId"}
	}
	routeValues["repositoryId"] = *args.RepositoryId
	if args.PullRequestId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PullRequestId"}
	}
	routeValues["pullRequestId"] = strconv.Itoa(*args.PullRequestId)
	body, marshalErr := json.Marshal(*args.Reviewers)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("4b6702c7-aa35-4b89-9c96-b9abf6d3e540")
	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 []IdentityRefWithVote
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type CreatePullRequestReviewersArgs struct {
	Reviewers *[]webapi.IdentityRef
	RepositoryId *string
	PullRequestId *int
	Project *string
}