func (client *ClientImpl) GetItemsBatchZip(ctx context.Context, args GetItemsBatchZipArgs) (io.ReadCloser, error) {
	if args.ItemRequestData == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ItemRequestData"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	body, marshalErr := json.Marshal(*args.ItemRequestData)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("fe6f827b-5f64-480f-b8af-1eca3b80e833")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1", routeValues, nil, bytes.NewReader(body), "application/json", "application/zip", nil)
	if err != nil {
		return nil, err
	}
	return resp.Body, err
}
Post for retrieving a set of items given a list of paths or a long path. Allows for specifying the recursionLevel and version descriptors for each path.
package tfvc
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/git"
	"io"
	"net/http"
	"net/url"
	"strconv"
)
var ResourceAreaId, _ = uuid.Parse("8aa40520-446d-40e6-89f6-9c9f9ce44c48")
type Client interface {
	CreateChangeset(context.Context, CreateChangesetArgs) (*git.TfvcChangesetRef, error)
	GetBatchedChangesets(context.Context, GetBatchedChangesetsArgs) (*[]git.TfvcChangesetRef, error)
	GetBranch(context.Context, GetBranchArgs) (*git.TfvcBranch, error)
	GetBranches(context.Context, GetBranchesArgs) (*[]git.TfvcBranch, error)
	GetBranchRefs(context.Context, GetBranchRefsArgs) (*[]git.TfvcBranchRef, error)
	GetChangeset(context.Context, GetChangesetArgs) (*git.TfvcChangeset, error)
	GetChangesetChanges(context.Context, GetChangesetChangesArgs) (*GetChangesetChangesResponseValue, error)
	GetChangesets(context.Context, GetChangesetsArgs) (*[]git.TfvcChangesetRef, error)
	GetChangesetWorkItems(context.Context, GetChangesetWorkItemsArgs) (*[]git.AssociatedWorkItem, error)
	GetItem(context.Context, GetItemArgs) (*git.TfvcItem, error)
	GetItemContent(context.Context, GetItemContentArgs) (io.ReadCloser, error)
	GetItems(context.Context, GetItemsArgs) (*[]git.TfvcItem, error)
	GetItemsBatch(context.Context, GetItemsBatchArgs) (*[][]git.TfvcItem, error)
	GetItemsBatchZip(context.Context, GetItemsBatchZipArgs) (io.ReadCloser, error)
	GetItemText(context.Context, GetItemTextArgs) (io.ReadCloser, error)
	GetItemZip(context.Context, GetItemZipArgs) (io.ReadCloser, error)
	GetLabel(context.Context, GetLabelArgs) (*git.TfvcLabel, error)
	GetLabelItems(context.Context, GetLabelItemsArgs) (*[]git.TfvcItem, error)
	GetLabels(context.Context, GetLabelsArgs) (*[]git.TfvcLabelRef, error)
	GetShelveset(context.Context, GetShelvesetArgs) (*git.TfvcShelveset, error)
	GetShelvesetChanges(context.Context, GetShelvesetChangesArgs) (*[]git.TfvcChange, error)
	GetShelvesets(context.Context, GetShelvesetsArgs) (*[]git.TfvcShelvesetRef, error)
	GetShelvesetWorkItems(context.Context, GetShelvesetWorkItemsArgs) (*[]git.AssociatedWorkItem, 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) CreateChangeset(ctx context.Context, args CreateChangesetArgs) (*git.TfvcChangesetRef, error) {
	if args.Changeset == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Changeset"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	body, marshalErr := json.Marshal(*args.Changeset)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("0bc8f0a4-6bfb-42a9-ba84-139da7b99c49")
	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 git.TfvcChangesetRef
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateChangesetArgs struct {
	Changeset *git.TfvcChangeset
	Project *string
}
func (client *ClientImpl) GetBatchedChangesets(ctx context.Context, args GetBatchedChangesetsArgs) (*[]git.TfvcChangesetRef, error) {
	if args.ChangesetsRequestData == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ChangesetsRequestData"}
	}
	body, marshalErr := json.Marshal(*args.ChangesetsRequestData)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("b7e7c173-803c-4fea-9ec8-31ee35c5502a")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1", nil, nil, bytes.NewReader(body), "application/json", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue []git.TfvcChangesetRef
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetBatchedChangesetsArgs struct {
	ChangesetsRequestData *git.TfvcChangesetsRequestData
}
func (client *ClientImpl) GetBranch(ctx context.Context, args GetBranchArgs) (*git.TfvcBranch, error) {
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	queryParams := url.Values{}
	if args.Path == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "path"}
	}
	queryParams.Add("path", *args.Path)
	if args.IncludeParent != nil {
		queryParams.Add("includeParent", strconv.FormatBool(*args.IncludeParent))
	}
	if args.IncludeChildren != nil {
		queryParams.Add("includeChildren", strconv.FormatBool(*args.IncludeChildren))
	}
	locationId, _ := uuid.Parse("bc1f417e-239d-42e7-85e1-76e80cb2d6eb")
	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 git.TfvcBranch
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetBranchArgs struct {
	Path *string
	Project *string
	IncludeParent *bool
	IncludeChildren *bool
}
func (client *ClientImpl) GetBranches(ctx context.Context, args GetBranchesArgs) (*[]git.TfvcBranch, error) {
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	queryParams := url.Values{}
	if args.IncludeParent != nil {
		queryParams.Add("includeParent", strconv.FormatBool(*args.IncludeParent))
	}
	if args.IncludeChildren != nil {
		queryParams.Add("includeChildren", strconv.FormatBool(*args.IncludeChildren))
	}
	if args.IncludeDeleted != nil {
		queryParams.Add("includeDeleted", strconv.FormatBool(*args.IncludeDeleted))
	}
	if args.IncludeLinks != nil {
		queryParams.Add("includeLinks", strconv.FormatBool(*args.IncludeLinks))
	}
	locationId, _ := uuid.Parse("bc1f417e-239d-42e7-85e1-76e80cb2d6eb")
	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 []git.TfvcBranch
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetBranchesArgs struct {
	Project *string
	IncludeParent *bool
	IncludeChildren *bool
	IncludeDeleted *bool
	IncludeLinks *bool
}
func (client *ClientImpl) GetBranchRefs(ctx context.Context, args GetBranchRefsArgs) (*[]git.TfvcBranchRef, error) {
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	queryParams := url.Values{}
	if args.ScopePath == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "scopePath"}
	}
	queryParams.Add("scopePath", *args.ScopePath)
	if args.IncludeDeleted != nil {
		queryParams.Add("includeDeleted", strconv.FormatBool(*args.IncludeDeleted))
	}
	if args.IncludeLinks != nil {
		queryParams.Add("includeLinks", strconv.FormatBool(*args.IncludeLinks))
	}
	locationId, _ := uuid.Parse("bc1f417e-239d-42e7-85e1-76e80cb2d6eb")
	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 []git.TfvcBranchRef
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetBranchRefsArgs struct {
	ScopePath *string
	Project *string
	IncludeDeleted *bool
	IncludeLinks *bool
}
func (client *ClientImpl) GetChangeset(ctx context.Context, args GetChangesetArgs) (*git.TfvcChangeset, error) {
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	if args.Id == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Id"}
	}
	routeValues["id"] = strconv.Itoa(*args.Id)
	queryParams := url.Values{}
	if args.MaxChangeCount != nil {
		queryParams.Add("maxChangeCount", strconv.Itoa(*args.MaxChangeCount))
	}
	if args.IncludeDetails != nil {
		queryParams.Add("includeDetails", strconv.FormatBool(*args.IncludeDetails))
	}
	if args.IncludeWorkItems != nil {
		queryParams.Add("includeWorkItems", strconv.FormatBool(*args.IncludeWorkItems))
	}
	if args.MaxCommentLength != nil {
		queryParams.Add("maxCommentLength", strconv.Itoa(*args.MaxCommentLength))
	}
	if args.IncludeSourceRename != nil {
		queryParams.Add("includeSourceRename", strconv.FormatBool(*args.IncludeSourceRename))
	}
	if args.Skip != nil {
		queryParams.Add("$skip", strconv.Itoa(*args.Skip))
	}
	if args.Top != nil {
		queryParams.Add("$top", strconv.Itoa(*args.Top))
	}
	if args.Orderby != nil {
		queryParams.Add("$orderby", *args.Orderby)
	}
	if args.SearchCriteria != nil {
		if args.SearchCriteria.ItemPath != nil {
			queryParams.Add("searchCriteria.itemPath", *args.SearchCriteria.ItemPath)
		}
		if args.SearchCriteria.Author != nil {
			queryParams.Add("searchCriteria.author", *args.SearchCriteria.Author)
		}
		if args.SearchCriteria.FromDate != nil {
			queryParams.Add("searchCriteria.fromDate", *args.SearchCriteria.FromDate)
		}
		if args.SearchCriteria.ToDate != nil {
			queryParams.Add("searchCriteria.toDate", *args.SearchCriteria.ToDate)
		}
		if args.SearchCriteria.FromId != nil {
			queryParams.Add("searchCriteria.fromId", strconv.Itoa(*args.SearchCriteria.FromId))
		}
		if args.SearchCriteria.ToId != nil {
			queryParams.Add("searchCriteria.toId", strconv.Itoa(*args.SearchCriteria.ToId))
		}
		if args.SearchCriteria.FollowRenames != nil {
			queryParams.Add("searchCriteria.followRenames", strconv.FormatBool(*args.SearchCriteria.FollowRenames))
		}
		if args.SearchCriteria.IncludeLinks != nil {
			queryParams.Add("searchCriteria.includeLinks", strconv.FormatBool(*args.SearchCriteria.IncludeLinks))
		}
	}
	locationId, _ := uuid.Parse("0bc8f0a4-6bfb-42a9-ba84-139da7b99c49")
	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 git.TfvcChangeset
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetChangesetArgs struct {
	Id *int
	Project *string
	MaxChangeCount *int
	IncludeDetails *bool
	IncludeWorkItems *bool
	MaxCommentLength *int
	IncludeSourceRename *bool
	Skip *int
	Top *int
	Orderby *string
	SearchCriteria *git.TfvcChangesetSearchCriteria
}
func (client *ClientImpl) GetChangesetChanges(ctx context.Context, args GetChangesetChangesArgs) (*GetChangesetChangesResponseValue, error) {
	routeValues := make(map[string]string)
	if args.Id != nil {
		routeValues["id"] = strconv.Itoa(*args.Id)
	}
	queryParams := url.Values{}
	if args.Skip != nil {
		queryParams.Add("$skip", strconv.Itoa(*args.Skip))
	}
	if args.Top != nil {
		queryParams.Add("$top", strconv.Itoa(*args.Top))
	}
	if args.ContinuationToken != nil {
		queryParams.Add("continuationToken", *args.ContinuationToken)
	}
	locationId, _ := uuid.Parse("f32b86f2-15b9-4fe6-81b1-6f8938617ee5")
	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 GetChangesetChangesResponseValue
	responseValue.ContinuationToken = resp.Header.Get(azuredevops.HeaderKeyContinuationToken)
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue.Value)
	return &responseValue, err
}
type GetChangesetChangesArgs struct {
	Id *int
	Skip *int
	Top *int
	ContinuationToken *string
}
type GetChangesetChangesResponseValue struct {
	Value []git.TfvcChange
	ContinuationToken string
}
func (client *ClientImpl) GetChangesets(ctx context.Context, args GetChangesetsArgs) (*[]git.TfvcChangesetRef, error) {
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	queryParams := url.Values{}
	if args.MaxCommentLength != nil {
		queryParams.Add("maxCommentLength", strconv.Itoa(*args.MaxCommentLength))
	}
	if args.Skip != nil {
		queryParams.Add("$skip", strconv.Itoa(*args.Skip))
	}
	if args.Top != nil {
		queryParams.Add("$top", strconv.Itoa(*args.Top))
	}
	if args.Orderby != nil {
		queryParams.Add("$orderby", *args.Orderby)
	}
	if args.SearchCriteria != nil {
		if args.SearchCriteria.ItemPath != nil {
			queryParams.Add("searchCriteria.itemPath", *args.SearchCriteria.ItemPath)
		}
		if args.SearchCriteria.Author != nil {
			queryParams.Add("searchCriteria.author", *args.SearchCriteria.Author)
		}
		if args.SearchCriteria.FromDate != nil {
			queryParams.Add("searchCriteria.fromDate", *args.SearchCriteria.FromDate)
		}
		if args.SearchCriteria.ToDate != nil {
			queryParams.Add("searchCriteria.toDate", *args.SearchCriteria.ToDate)
		}
		if args.SearchCriteria.FromId != nil {
			queryParams.Add("searchCriteria.fromId", strconv.Itoa(*args.SearchCriteria.FromId))
		}
		if args.SearchCriteria.ToId != nil {
			queryParams.Add("searchCriteria.toId", strconv.Itoa(*args.SearchCriteria.ToId))
		}
		if args.SearchCriteria.FollowRenames != nil {
			queryParams.Add("searchCriteria.followRenames", strconv.FormatBool(*args.SearchCriteria.FollowRenames))
		}
		if args.SearchCriteria.IncludeLinks != nil {
			queryParams.Add("searchCriteria.includeLinks", strconv.FormatBool(*args.SearchCriteria.IncludeLinks))
		}
	}
	locationId, _ := uuid.Parse("0bc8f0a4-6bfb-42a9-ba84-139da7b99c49")
	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 []git.TfvcChangesetRef
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetChangesetsArgs struct {
	Project *string
	MaxCommentLength *int
	Skip *int
	Top *int
	Orderby *string
	SearchCriteria *git.TfvcChangesetSearchCriteria
}
func (client *ClientImpl) GetChangesetWorkItems(ctx context.Context, args GetChangesetWorkItemsArgs) (*[]git.AssociatedWorkItem, error) {
	routeValues := make(map[string]string)
	if args.Id != nil {
		routeValues["id"] = strconv.Itoa(*args.Id)
	}
	locationId, _ := uuid.Parse("64ae0bea-1d71-47c9-a9e5-fe73f5ea0ff4")
	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 []git.AssociatedWorkItem
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetChangesetWorkItemsArgs struct {
	Id *int
}
func (client *ClientImpl) GetItem(ctx context.Context, args GetItemArgs) (*git.TfvcItem, error) {
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	queryParams := url.Values{}
	if args.Path == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "path"}
	}
	queryParams.Add("path", *args.Path)
	if args.FileName != nil {
		queryParams.Add("fileName", *args.FileName)
	}
	if args.Download != nil {
		queryParams.Add("download", strconv.FormatBool(*args.Download))
	}
	if args.ScopePath != nil {
		queryParams.Add("scopePath", *args.ScopePath)
	}
	if args.RecursionLevel != nil {
		queryParams.Add("recursionLevel", string(*args.RecursionLevel))
	}
	if args.VersionDescriptor != nil {
		if args.VersionDescriptor.VersionOption != nil {
			queryParams.Add("versionDescriptor.versionOption", string(*args.VersionDescriptor.VersionOption))
		}
		if args.VersionDescriptor.VersionType != nil {
			queryParams.Add("versionDescriptor.versionType", string(*args.VersionDescriptor.VersionType))
		}
		if args.VersionDescriptor.Version != nil {
			queryParams.Add("versionDescriptor.version", *args.VersionDescriptor.Version)
		}
	}
	if args.IncludeContent != nil {
		queryParams.Add("includeContent", strconv.FormatBool(*args.IncludeContent))
	}
	locationId, _ := uuid.Parse("ba9fc436-9a38-4578-89d6-e4f3241f5040")
	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 git.TfvcItem
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetItemArgs struct {
	Path *string
	Project *string
	FileName *string
	Download *bool
	ScopePath *string
	RecursionLevel *git.VersionControlRecursionType
	VersionDescriptor *git.TfvcVersionDescriptor
	IncludeContent *bool
}
func (client *ClientImpl) GetItemContent(ctx context.Context, args GetItemContentArgs) (io.ReadCloser, error) {
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	queryParams := url.Values{}
	if args.Path == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "path"}
	}
	queryParams.Add("path", *args.Path)
	if args.FileName != nil {
		queryParams.Add("fileName", *args.FileName)
	}
	if args.Download != nil {
		queryParams.Add("download", strconv.FormatBool(*args.Download))
	}
	if args.ScopePath != nil {
		queryParams.Add("scopePath", *args.ScopePath)
	}
	if args.RecursionLevel != nil {
		queryParams.Add("recursionLevel", string(*args.RecursionLevel))
	}
	if args.VersionDescriptor != nil {
		if args.VersionDescriptor.VersionOption != nil {
			queryParams.Add("versionDescriptor.versionOption", string(*args.VersionDescriptor.VersionOption))
		}
		if args.VersionDescriptor.VersionType != nil {
			queryParams.Add("versionDescriptor.versionType", string(*args.VersionDescriptor.VersionType))
		}
		if args.VersionDescriptor.Version != nil {
			queryParams.Add("versionDescriptor.version", *args.VersionDescriptor.Version)
		}
	}
	if args.IncludeContent != nil {
		queryParams.Add("includeContent", strconv.FormatBool(*args.IncludeContent))
	}
	locationId, _ := uuid.Parse("ba9fc436-9a38-4578-89d6-e4f3241f5040")
	resp, err := client.Client.Send(ctx, http.MethodGet, locationId, "5.1", routeValues, queryParams, nil, "", "application/octet-stream", nil)
	if err != nil {
		return nil, err
	}
	return resp.Body, err
}
type GetItemContentArgs struct {
	Path *string
	Project *string
	FileName *string
	Download *bool
	ScopePath *string
	RecursionLevel *git.VersionControlRecursionType
	VersionDescriptor *git.TfvcVersionDescriptor
	IncludeContent *bool
}
func (client *ClientImpl) GetItems(ctx context.Context, args GetItemsArgs) (*[]git.TfvcItem, error) {
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	queryParams := url.Values{}
	if args.ScopePath != nil {
		queryParams.Add("scopePath", *args.ScopePath)
	}
	if args.RecursionLevel != nil {
		queryParams.Add("recursionLevel", string(*args.RecursionLevel))
	}
	if args.IncludeLinks != nil {
		queryParams.Add("includeLinks", strconv.FormatBool(*args.IncludeLinks))
	}
	if args.VersionDescriptor != nil {
		if args.VersionDescriptor.VersionOption != nil {
			queryParams.Add("versionDescriptor.versionOption", string(*args.VersionDescriptor.VersionOption))
		}
		if args.VersionDescriptor.VersionType != nil {
			queryParams.Add("versionDescriptor.versionType", string(*args.VersionDescriptor.VersionType))
		}
		if args.VersionDescriptor.Version != nil {
			queryParams.Add("versionDescriptor.version", *args.VersionDescriptor.Version)
		}
	}
	locationId, _ := uuid.Parse("ba9fc436-9a38-4578-89d6-e4f3241f5040")
	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 []git.TfvcItem
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetItemsArgs struct {
	Project *string
	ScopePath *string
	RecursionLevel *git.VersionControlRecursionType
	IncludeLinks *bool
	VersionDescriptor *git.TfvcVersionDescriptor
}
func (client *ClientImpl) GetItemsBatch(ctx context.Context, args GetItemsBatchArgs) (*[][]git.TfvcItem, error) {
	if args.ItemRequestData == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.ItemRequestData"}
	}
	routeValues := make(map[string]string)
	if args.Project != nil && *args.Project != "" {
		routeValues["project"] = *args.Project
	}
	body, marshalErr := json.Marshal(*args.ItemRequestData)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("fe6f827b-5f64-480f-b8af-1eca3b80e833")
	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 [][]git.TfvcItem
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetItemsBatchArgs struct {
	ItemRequestData *git.TfvcItemRequestData
	Project *string
}