func (client *ClientImpl) GetTestCaseById(ctx context.Context, args GetTestCaseByIdArgs) (*SuiteTestCase, error) {
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.PlanId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PlanId"}
	}
	routeValues["planId"] = strconv.Itoa(*args.PlanId)
	if args.SuiteId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.SuiteId"}
	}
	routeValues["suiteId"] = strconv.Itoa(*args.SuiteId)
	if args.TestCaseIds == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.TestCaseIds"}
	}
	routeValues["testCaseIds"] = strconv.Itoa(*args.TestCaseIds)
	routeValues["action"] = "TestCases"
	locationId, _ := uuid.Parse("a4a1ec1c-b03f-41ca-8857-704594ecf58e")
	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 SuiteTestCase
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
Get a specific test case in a test suite with test case id.
package test
import (
	"bytes"
	"context"
	"encoding/json"
	"github.com/google/uuid"
	"github.com/microsoft/azure-devops-go-api/azuredevops"
	"io"
	"net/http"
	"net/url"
	"strconv"
	"strings"
)
var ResourceAreaId, _ = uuid.Parse("c2aa639c-3ccc-4740-b3b6-ce2a1e1d984e")
type Client interface {
	AddTestCasesToSuite(context.Context, AddTestCasesToSuiteArgs) (*[]SuiteTestCase, error)
	AddTestResultsToTestRun(context.Context, AddTestResultsToTestRunArgs) (*[]TestCaseResult, error)
	CreateTestResultAttachment(context.Context, CreateTestResultAttachmentArgs) (*TestAttachmentReference, error)
	CreateTestRun(context.Context, CreateTestRunArgs) (*TestRun, error)
	CreateTestRunAttachment(context.Context, CreateTestRunAttachmentArgs) (*TestAttachmentReference, error)
	CreateTestSession(context.Context, CreateTestSessionArgs) (*TestSession, error)
	CreateTestSubResultAttachment(context.Context, CreateTestSubResultAttachmentArgs) (*TestAttachmentReference, error)
	DeleteTestCase(context.Context, DeleteTestCaseArgs) error
	DeleteTestRun(context.Context, DeleteTestRunArgs) error
	GetActionResults(context.Context, GetActionResultsArgs) (*[]TestActionResultModel, error)
	GetBuildCodeCoverage(context.Context, GetBuildCodeCoverageArgs) (*[]BuildCoverage, error)
	GetPoint(context.Context, GetPointArgs) (*TestPoint, error)
	GetPoints(context.Context, GetPointsArgs) (*[]TestPoint, error)
	GetPointsByQuery(context.Context, GetPointsByQueryArgs) (*TestPointsQuery, error)
	GetResultParameters(context.Context, GetResultParametersArgs) (*[]TestResultParameterModel, error)
	GetResultRetentionSettings(context.Context, GetResultRetentionSettingsArgs) (*ResultRetentionSettings, error)
	GetTestCaseById(context.Context, GetTestCaseByIdArgs) (*SuiteTestCase, error)
	GetTestCases(context.Context, GetTestCasesArgs) (*[]SuiteTestCase, error)
	GetTestIteration(context.Context, GetTestIterationArgs) (*TestIterationDetailsModel, error)
	GetTestIterations(context.Context, GetTestIterationsArgs) (*[]TestIterationDetailsModel, error)
	GetTestResultAttachmentContent(context.Context, GetTestResultAttachmentContentArgs) (io.ReadCloser, error)
	GetTestResultAttachments(context.Context, GetTestResultAttachmentsArgs) (*[]TestAttachment, error)
	GetTestResultAttachmentZip(context.Context, GetTestResultAttachmentZipArgs) (io.ReadCloser, error)
	GetTestResultById(context.Context, GetTestResultByIdArgs) (*TestCaseResult, error)
	GetTestResults(context.Context, GetTestResultsArgs) (*[]TestCaseResult, error)
	GetTestRunAttachmentContent(context.Context, GetTestRunAttachmentContentArgs) (io.ReadCloser, error)
	GetTestRunAttachments(context.Context, GetTestRunAttachmentsArgs) (*[]TestAttachment, error)
	GetTestRunAttachmentZip(context.Context, GetTestRunAttachmentZipArgs) (io.ReadCloser, error)
	GetTestRunById(context.Context, GetTestRunByIdArgs) (*TestRun, error)
	GetTestRunCodeCoverage(context.Context, GetTestRunCodeCoverageArgs) (*[]TestRunCoverage, error)
	GetTestRuns(context.Context, GetTestRunsArgs) (*[]TestRun, error)
	GetTestRunStatistics(context.Context, GetTestRunStatisticsArgs) (*TestRunStatistic, error)
	GetTestSessions(context.Context, GetTestSessionsArgs) (*[]TestSession, error)
	GetTestSubResultAttachmentContent(context.Context, GetTestSubResultAttachmentContentArgs) (io.ReadCloser, error)
	GetTestSubResultAttachments(context.Context, GetTestSubResultAttachmentsArgs) (*[]TestAttachment, error)
	GetTestSubResultAttachmentZip(context.Context, GetTestSubResultAttachmentZipArgs) (io.ReadCloser, error)
	QueryTestHistory(context.Context, QueryTestHistoryArgs) (*TestHistoryQuery, error)
	QueryTestRuns(context.Context, QueryTestRunsArgs) (*QueryTestRunsResponseValue, error)
	RemoveTestCasesFromSuiteUrl(context.Context, RemoveTestCasesFromSuiteUrlArgs) error
	UpdateResultRetentionSettings(context.Context, UpdateResultRetentionSettingsArgs) (*ResultRetentionSettings, error)
	UpdateSuiteTestCases(context.Context, UpdateSuiteTestCasesArgs) (*[]SuiteTestCase, error)
	UpdateTestPoints(context.Context, UpdateTestPointsArgs) (*[]TestPoint, error)
	UpdateTestResults(context.Context, UpdateTestResultsArgs) (*[]TestCaseResult, error)
	UpdateTestRun(context.Context, UpdateTestRunArgs) (*TestRun, error)
	UpdateTestSession(context.Context, UpdateTestSessionArgs) (*TestSession, 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) AddTestCasesToSuite(ctx context.Context, args AddTestCasesToSuiteArgs) (*[]SuiteTestCase, error) {
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.PlanId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PlanId"}
	}
	routeValues["planId"] = strconv.Itoa(*args.PlanId)
	if args.SuiteId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.SuiteId"}
	}
	routeValues["suiteId"] = strconv.Itoa(*args.SuiteId)
	if args.TestCaseIds == nil || *args.TestCaseIds == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.TestCaseIds"}
	}
	routeValues["testCaseIds"] = *args.TestCaseIds
	routeValues["action"] = "TestCases"
	locationId, _ := uuid.Parse("a4a1ec1c-b03f-41ca-8857-704594ecf58e")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue []SuiteTestCase
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type AddTestCasesToSuiteArgs struct {
	Project *string
	PlanId *int
	SuiteId *int
	TestCaseIds *string
}
func (client *ClientImpl) AddTestResultsToTestRun(ctx context.Context, args AddTestResultsToTestRunArgs) (*[]TestCaseResult, error) {
	if args.Results == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Results"}
	}
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.RunId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.RunId"}
	}
	routeValues["runId"] = strconv.Itoa(*args.RunId)
	body, marshalErr := json.Marshal(*args.Results)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("4637d869-3a76-4468-8057-0bb02aa385cf")
	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 []TestCaseResult
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type AddTestResultsToTestRunArgs struct {
	Results *[]TestCaseResult
	Project *string
	RunId *int
}
func (client *ClientImpl) CreateTestResultAttachment(ctx context.Context, args CreateTestResultAttachmentArgs) (*TestAttachmentReference, error) {
	if args.AttachmentRequestModel == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.AttachmentRequestModel"}
	}
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.RunId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.RunId"}
	}
	routeValues["runId"] = strconv.Itoa(*args.RunId)
	if args.TestCaseResultId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.TestCaseResultId"}
	}
	routeValues["testCaseResultId"] = strconv.Itoa(*args.TestCaseResultId)
	body, marshalErr := json.Marshal(*args.AttachmentRequestModel)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("2bffebe9-2f0f-4639-9af8-56129e9fed2d")
	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 TestAttachmentReference
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateTestResultAttachmentArgs struct {
	AttachmentRequestModel *TestAttachmentRequestModel
	Project *string
	RunId *int
	TestCaseResultId *int
}
func (client *ClientImpl) CreateTestRun(ctx context.Context, args CreateTestRunArgs) (*TestRun, error) {
	if args.TestRun == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.TestRun"}
	}
	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.TestRun)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("cadb3810-d47d-4a3c-a234-fe5f3be50138")
	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 TestRun
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateTestRunArgs struct {
	TestRun *RunCreateModel
	Project *string
}
func (client *ClientImpl) CreateTestRunAttachment(ctx context.Context, args CreateTestRunAttachmentArgs) (*TestAttachmentReference, error) {
	if args.AttachmentRequestModel == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.AttachmentRequestModel"}
	}
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.RunId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.RunId"}
	}
	routeValues["runId"] = strconv.Itoa(*args.RunId)
	body, marshalErr := json.Marshal(*args.AttachmentRequestModel)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("4f004af4-a507-489c-9b13-cb62060beb11")
	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 TestAttachmentReference
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateTestRunAttachmentArgs struct {
	AttachmentRequestModel *TestAttachmentRequestModel
	Project *string
	RunId *int
}
func (client *ClientImpl) CreateTestSession(ctx context.Context, args CreateTestSessionArgs) (*TestSession, error) {
	if args.TestSession == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.TestSession"}
	}
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.Team != nil && *args.Team != "" {
		routeValues["team"] = *args.Team
	}
	body, marshalErr := json.Marshal(*args.TestSession)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac")
	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 TestSession
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateTestSessionArgs struct {
	TestSession *TestSession
	Project *string
	Team *string
}
func (client *ClientImpl) CreateTestSubResultAttachment(ctx context.Context, args CreateTestSubResultAttachmentArgs) (*TestAttachmentReference, error) {
	if args.AttachmentRequestModel == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.AttachmentRequestModel"}
	}
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.RunId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.RunId"}
	}
	routeValues["runId"] = strconv.Itoa(*args.RunId)
	if args.TestCaseResultId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.TestCaseResultId"}
	}
	routeValues["testCaseResultId"] = strconv.Itoa(*args.TestCaseResultId)
	queryParams := url.Values{}
	if args.TestSubResultId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "testSubResultId"}
	}
	queryParams.Add("testSubResultId", strconv.Itoa(*args.TestSubResultId))
	body, marshalErr := json.Marshal(*args.AttachmentRequestModel)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("2bffebe9-2f0f-4639-9af8-56129e9fed2d")
	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 TestAttachmentReference
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type CreateTestSubResultAttachmentArgs struct {
	AttachmentRequestModel *TestAttachmentRequestModel
	Project *string
	RunId *int
	TestCaseResultId *int
	TestSubResultId *int
}
func (client *ClientImpl) DeleteTestCase(ctx context.Context, args DeleteTestCaseArgs) error {
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.TestCaseId == nil {
		return &azuredevops.ArgumentNilError{ArgumentName: "args.TestCaseId"}
	}
	routeValues["testCaseId"] = strconv.Itoa(*args.TestCaseId)
	locationId, _ := uuid.Parse("4d472e0f-e32c-4ef8-adf4-a4078772889c")
	_, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1-preview.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return err
	}
	return nil
}
type DeleteTestCaseArgs struct {
	Project *string
	TestCaseId *int
}
func (client *ClientImpl) DeleteTestRun(ctx context.Context, args DeleteTestRunArgs) error {
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.RunId == nil {
		return &azuredevops.ArgumentNilError{ArgumentName: "args.RunId"}
	}
	routeValues["runId"] = strconv.Itoa(*args.RunId)
	locationId, _ := uuid.Parse("cadb3810-d47d-4a3c-a234-fe5f3be50138")
	_, err := client.Client.Send(ctx, http.MethodDelete, locationId, "5.1", routeValues, nil, nil, "", "application/json", nil)
	if err != nil {
		return err
	}
	return nil
}
type DeleteTestRunArgs struct {
	Project *string
	RunId *int
}
func (client *ClientImpl) GetActionResults(ctx context.Context, args GetActionResultsArgs) (*[]TestActionResultModel, error) {
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.RunId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.RunId"}
	}
	routeValues["runId"] = strconv.Itoa(*args.RunId)
	if args.TestCaseResultId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.TestCaseResultId"}
	}
	routeValues["testCaseResultId"] = strconv.Itoa(*args.TestCaseResultId)
	if args.IterationId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.IterationId"}
	}
	routeValues["iterationId"] = strconv.Itoa(*args.IterationId)
	if args.ActionPath != nil && *args.ActionPath != "" {
		routeValues["actionPath"] = *args.ActionPath
	}
	locationId, _ := uuid.Parse("eaf40c31-ff84-4062-aafd-d5664be11a37")
	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 []TestActionResultModel
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetActionResultsArgs struct {
	Project *string
	RunId *int
	TestCaseResultId *int
	IterationId *int
	ActionPath *string
}
func (client *ClientImpl) GetBuildCodeCoverage(ctx context.Context, args GetBuildCodeCoverageArgs) (*[]BuildCoverage, error) {
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	queryParams := url.Values{}
	if args.BuildId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "buildId"}
	}
	queryParams.Add("buildId", strconv.Itoa(*args.BuildId))
	if args.Flags == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "flags"}
	}
	queryParams.Add("flags", strconv.Itoa(*args.Flags))
	locationId, _ := uuid.Parse("77560e8a-4e8c-4d59-894e-a5f264c24444")
	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 []BuildCoverage
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetBuildCodeCoverageArgs struct {
	Project *string
	BuildId *int
	Flags *int
}
func (client *ClientImpl) GetPoint(ctx context.Context, args GetPointArgs) (*TestPoint, error) {
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.PlanId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PlanId"}
	}
	routeValues["planId"] = strconv.Itoa(*args.PlanId)
	if args.SuiteId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.SuiteId"}
	}
	routeValues["suiteId"] = strconv.Itoa(*args.SuiteId)
	if args.PointIds == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PointIds"}
	}
	routeValues["pointIds"] = strconv.Itoa(*args.PointIds)
	queryParams := url.Values{}
	if args.WitFields != nil {
		queryParams.Add("witFields", *args.WitFields)
	}
	locationId, _ := uuid.Parse("3bcfd5c8-be62-488e-b1da-b8289ce9299c")
	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 TestPoint
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetPointArgs struct {
	Project *string
	PlanId *int
	SuiteId *int
	PointIds *int
	WitFields *string
}
func (client *ClientImpl) GetPoints(ctx context.Context, args GetPointsArgs) (*[]TestPoint, error) {
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.PlanId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.PlanId"}
	}
	routeValues["planId"] = strconv.Itoa(*args.PlanId)
	if args.SuiteId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.SuiteId"}
	}
	routeValues["suiteId"] = strconv.Itoa(*args.SuiteId)
	queryParams := url.Values{}
	if args.WitFields != nil {
		queryParams.Add("witFields", *args.WitFields)
	}
	if args.ConfigurationId != nil {
		queryParams.Add("configurationId", *args.ConfigurationId)
	}
	if args.TestCaseId != nil {
		queryParams.Add("testCaseId", *args.TestCaseId)
	}
	if args.TestPointIds != nil {
		queryParams.Add("testPointIds", *args.TestPointIds)
	}
	if args.IncludePointDetails != nil {
		queryParams.Add("includePointDetails", strconv.FormatBool(*args.IncludePointDetails))
	}
	if args.Skip != nil {
		queryParams.Add("$skip", strconv.Itoa(*args.Skip))
	}
	if args.Top != nil {
		queryParams.Add("$top", strconv.Itoa(*args.Top))
	}
	locationId, _ := uuid.Parse("3bcfd5c8-be62-488e-b1da-b8289ce9299c")
	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 []TestPoint
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetPointsArgs struct {
	Project *string
	PlanId *int
	SuiteId *int
	WitFields *string
	ConfigurationId *string
	TestCaseId *string
	TestPointIds *string
	IncludePointDetails *bool
	Skip *int
	Top *int
}
func (client *ClientImpl) GetPointsByQuery(ctx context.Context, args GetPointsByQueryArgs) (*TestPointsQuery, error) {
	if args.Query == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.Query"}
	}
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	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))
	}
	body, marshalErr := json.Marshal(*args.Query)
	if marshalErr != nil {
		return nil, marshalErr
	}
	locationId, _ := uuid.Parse("b4264fd0-a5d1-43e2-82a5-b9c46b7da9ce")
	resp, err := client.Client.Send(ctx, http.MethodPost, locationId, "5.1-preview.2", routeValues, queryParams, bytes.NewReader(body), "application/json", "application/json", nil)
	if err != nil {
		return nil, err
	}
	var responseValue TestPointsQuery
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetPointsByQueryArgs struct {
	Query *TestPointsQuery
	Project *string
	Skip *int
	Top *int
}
func (client *ClientImpl) GetResultParameters(ctx context.Context, args GetResultParametersArgs) (*[]TestResultParameterModel, error) {
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	if args.RunId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.RunId"}
	}
	routeValues["runId"] = strconv.Itoa(*args.RunId)
	if args.TestCaseResultId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.TestCaseResultId"}
	}
	routeValues["testCaseResultId"] = strconv.Itoa(*args.TestCaseResultId)
	if args.IterationId == nil {
		return nil, &azuredevops.ArgumentNilError{ArgumentName: "args.IterationId"}
	}
	routeValues["iterationId"] = strconv.Itoa(*args.IterationId)
	queryParams := url.Values{}
	if args.ParamName != nil {
		queryParams.Add("paramName", *args.ParamName)
	}
	locationId, _ := uuid.Parse("7c69810d-3354-4af3-844a-180bd25db08a")
	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 []TestResultParameterModel
	err = client.Client.UnmarshalCollectionBody(resp, &responseValue)
	return &responseValue, err
}
type GetResultParametersArgs struct {
	Project *string
	RunId *int
	TestCaseResultId *int
	IterationId *int
	ParamName *string
}
func (client *ClientImpl) GetResultRetentionSettings(ctx context.Context, args GetResultRetentionSettingsArgs) (*ResultRetentionSettings, error) {
	routeValues := make(map[string]string)
	if args.Project == nil || *args.Project == "" {
		return nil, &azuredevops.ArgumentNilOrEmptyError{ArgumentName: "args.Project"}
	}
	routeValues["project"] = *args.Project
	locationId, _ := uuid.Parse("a3206d9e-fa8d-42d3-88cb-f75c51e69cde")
	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 ResultRetentionSettings
	err = client.Client.UnmarshalBody(resp, &responseValue)
	return &responseValue, err
}
type GetResultRetentionSettingsArgs struct {
	Project *string
}