@rbaileysr/zephyr-managed-api 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +109 -18
  2. package/dist/README.md +109 -18
  3. package/dist/groups/All.d.ts.map +1 -1
  4. package/dist/groups/Automation.d.ts +4 -4
  5. package/dist/groups/Automation.js +4 -4
  6. package/dist/groups/Environment.d.ts +4 -4
  7. package/dist/groups/Environment.js +4 -4
  8. package/dist/groups/Folder.d.ts +3 -3
  9. package/dist/groups/Folder.js +3 -3
  10. package/dist/groups/IssueLink.d.ts +4 -4
  11. package/dist/groups/IssueLink.js +4 -4
  12. package/dist/groups/Link.d.ts +1 -1
  13. package/dist/groups/Link.js +1 -1
  14. package/dist/groups/Priority.d.ts +4 -4
  15. package/dist/groups/Priority.js +4 -4
  16. package/dist/groups/Private/PrivateConfig.d.ts +35 -0
  17. package/dist/groups/Private/PrivateConfig.d.ts.map +1 -0
  18. package/dist/groups/Private/PrivateConfig.js +17 -0
  19. package/dist/groups/Private/PrivateDataSets.d.ts +67 -0
  20. package/dist/groups/Private/PrivateDataSets.d.ts.map +1 -0
  21. package/dist/groups/Private/PrivateDataSets.js +192 -0
  22. package/dist/groups/Private/PrivateIterations.d.ts +46 -0
  23. package/dist/groups/Private/PrivateIterations.d.ts.map +1 -0
  24. package/dist/groups/Private/PrivateIterations.js +127 -0
  25. package/dist/groups/Private/PrivateLabels.d.ts +46 -0
  26. package/dist/groups/Private/PrivateLabels.d.ts.map +1 -0
  27. package/dist/groups/Private/PrivateLabels.js +127 -0
  28. package/dist/groups/Private.d.ts +3 -3
  29. package/dist/groups/Private.d.ts.map +1 -1
  30. package/dist/groups/Private.js +2 -2
  31. package/dist/groups/Project.d.ts +2 -2
  32. package/dist/groups/Project.js +2 -2
  33. package/dist/groups/Status.d.ts +4 -4
  34. package/dist/groups/Status.js +4 -4
  35. package/dist/groups/TestCase.d.ts +14 -14
  36. package/dist/groups/TestCase.js +14 -14
  37. package/dist/groups/TestCycle.d.ts +7 -7
  38. package/dist/groups/TestCycle.js +7 -7
  39. package/dist/groups/TestExecution.d.ts +10 -10
  40. package/dist/groups/TestExecution.js +10 -10
  41. package/dist/groups/TestPlan.d.ts +6 -6
  42. package/dist/groups/TestPlan.js +6 -6
  43. package/dist/package.json +1 -1
  44. package/dist/types.d.ts +136 -0
  45. package/dist/types.d.ts.map +1 -1
  46. package/package.json +1 -1
@@ -0,0 +1,127 @@
1
+ /*!
2
+ * Copyright Adaptavist 2025 (c) All rights reserved
3
+ */
4
+ import { PrivateBase } from './PrivateBase';
5
+ import { BadRequestError, UnauthorizedError, ForbiddenError, NotFoundError, ServerError, UnexpectedError, } from '../../utils';
6
+ export class PrivateLabels extends PrivateBase {
7
+ constructor(apiConnection) {
8
+ super(apiConnection);
9
+ }
10
+ /**
11
+ * Get all labels for a project using private API
12
+ *
13
+ * ⚠️ WARNING: This uses a private Zephyr API endpoint that is not officially supported.
14
+ * The endpoint may change or be removed at any time without notice.
15
+ *
16
+ * @param credentials - Private API credentials
17
+ * @param request - Get labels request
18
+ * @returns Array of labels
19
+ * @throws {BadRequestError} If the request is invalid
20
+ * @throws {UnauthorizedError} If authentication fails
21
+ * @throws {ForbiddenError} If the user doesn't have permission
22
+ * @throws {ServerError} If the server returns an error
23
+ */
24
+ async getLabels(credentials, request) {
25
+ // Get Context JWT
26
+ const contextJwt = await this.getContextJwt(credentials);
27
+ const url = `${this.privateApiBaseUrl}/label?projectId=${request.projectId}`;
28
+ const headers = {
29
+ accept: 'application/json',
30
+ authorization: `JWT ${contextJwt}`,
31
+ 'jira-project-id': String(request.projectId),
32
+ };
33
+ try {
34
+ const response = await fetch(url, {
35
+ method: 'GET',
36
+ headers,
37
+ });
38
+ if (!response.ok) {
39
+ if (response.status === 400) {
40
+ const errorText = await response.text().catch(() => 'Bad Request');
41
+ throw new BadRequestError(`Failed to get labels: ${errorText}`, response.statusText);
42
+ }
43
+ if (response.status === 401) {
44
+ throw new UnauthorizedError('Authentication failed. Please check your credentials.');
45
+ }
46
+ if (response.status === 403) {
47
+ throw new ForbiddenError('You do not have permission to get labels in this project.');
48
+ }
49
+ if (response.status === 404) {
50
+ throw new NotFoundError('Project not found.');
51
+ }
52
+ throw new ServerError(`Failed to get labels. Status: ${response.status}`, response.status, response.statusText);
53
+ }
54
+ const labels = await response.json();
55
+ return labels;
56
+ }
57
+ catch (error) {
58
+ if (error instanceof BadRequestError ||
59
+ error instanceof UnauthorizedError ||
60
+ error instanceof ForbiddenError ||
61
+ error instanceof NotFoundError ||
62
+ error instanceof ServerError) {
63
+ throw error;
64
+ }
65
+ throw new UnexpectedError('Failed to get labels due to an unexpected error', error);
66
+ }
67
+ }
68
+ /**
69
+ * Create a label using private API
70
+ *
71
+ * ⚠️ WARNING: This uses a private Zephyr API endpoint that is not officially supported.
72
+ * The endpoint may change or be removed at any time without notice.
73
+ *
74
+ * @param credentials - Private API credentials
75
+ * @param request - Create label request
76
+ * @returns Empty response (no content)
77
+ * @throws {BadRequestError} If the request is invalid
78
+ * @throws {UnauthorizedError} If authentication fails
79
+ * @throws {ForbiddenError} If the user doesn't have permission
80
+ * @throws {ServerError} If the server returns an error
81
+ */
82
+ async createLabel(credentials, request) {
83
+ // Get Context JWT
84
+ const contextJwt = await this.getContextJwt(credentials);
85
+ const url = `${this.privateApiBaseUrl}/label`;
86
+ const headers = {
87
+ 'Content-Type': 'application/json',
88
+ authorization: `JWT ${contextJwt}`,
89
+ 'jira-project-id': String(request.projectId),
90
+ };
91
+ try {
92
+ const response = await fetch(url, {
93
+ method: 'POST',
94
+ headers,
95
+ body: JSON.stringify(request),
96
+ });
97
+ if (!response.ok) {
98
+ if (response.status === 400) {
99
+ const errorText = await response.text().catch(() => 'Bad Request');
100
+ throw new BadRequestError(`Failed to create label: ${errorText}`, response.statusText);
101
+ }
102
+ if (response.status === 401) {
103
+ throw new UnauthorizedError('Authentication failed. Please check your credentials.');
104
+ }
105
+ if (response.status === 403) {
106
+ throw new ForbiddenError('You do not have permission to create labels in this project.');
107
+ }
108
+ if (response.status === 404) {
109
+ throw new NotFoundError('Project not found.');
110
+ }
111
+ throw new ServerError(`Failed to create label. Status: ${response.status}`, response.status, response.statusText);
112
+ }
113
+ // Response has no content
114
+ return;
115
+ }
116
+ catch (error) {
117
+ if (error instanceof BadRequestError ||
118
+ error instanceof UnauthorizedError ||
119
+ error instanceof ForbiddenError ||
120
+ error instanceof NotFoundError ||
121
+ error instanceof ServerError) {
122
+ throw error;
123
+ }
124
+ throw new UnexpectedError('Failed to create label due to an unexpected error', error);
125
+ }
126
+ }
127
+ }
@@ -4,7 +4,7 @@
4
4
  import type { ZephyrApiConnection } from '../index';
5
5
  import { PrivateBase } from './Private/PrivateBase';
6
6
  import { PrivateComments } from './Private/PrivateComments';
7
- import { PrivateCustomFields } from './Private/PrivateCustomFields';
7
+ import { PrivateConfig } from './Private/PrivateConfig';
8
8
  import { PrivateVersions } from './Private/PrivateVersions';
9
9
  import { PrivateAttachments } from './Private/PrivateAttachments';
10
10
  import { PrivateAuthentication } from './Private/PrivateAuthentication';
@@ -24,9 +24,9 @@ export declare class PrivateGroup extends PrivateBase {
24
24
  */
25
25
  readonly Comments: PrivateComments;
26
26
  /**
27
- * CustomFields sub-group - Create and get custom fields
27
+ * Config sub-group - Configuration operations (Custom Fields, Labels, Iterations, DataSets)
28
28
  */
29
- readonly CustomFields: PrivateCustomFields;
29
+ readonly Config: PrivateConfig;
30
30
  /**
31
31
  * Versions sub-group - Create test case versions
32
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Private.d.ts","sourceRoot":"","sources":["../../groups/Private.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6DH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AASxE;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC5C;;OAEG;IACH,SAAgB,cAAc,EAAE,qBAAqB,CAAC;IAEtD;;OAEG;IACH,SAAgB,QAAQ,EAAE,eAAe,CAAC;IAE1C;;OAEG;IACH,SAAgB,YAAY,EAAE,mBAAmB,CAAC;IAElD;;OAEG;IACH,SAAgB,QAAQ,EAAE,eAAe,CAAC;IAE1C;;OAEG;IACH,SAAgB,WAAW,EAAE,kBAAkB,CAAC;gBAEpC,aAAa,CAAC,EAAE,mBAAmB;CAS/C"}
1
+ {"version":3,"file":"Private.d.ts","sourceRoot":"","sources":["../../groups/Private.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyDH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AASxE;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC5C;;OAEG;IACH,SAAgB,cAAc,EAAE,qBAAqB,CAAC;IAEtD;;OAEG;IACH,SAAgB,QAAQ,EAAE,eAAe,CAAC;IAE1C;;OAEG;IACH,SAAgB,MAAM,EAAE,aAAa,CAAC;IAEtC;;OAEG;IACH,SAAgB,QAAQ,EAAE,eAAe,CAAC;IAE1C;;OAEG;IACH,SAAgB,WAAW,EAAE,kBAAkB,CAAC;gBAEpC,aAAa,CAAC,EAAE,mBAAmB;CAS/C"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { PrivateBase } from './Private/PrivateBase';
5
5
  import { PrivateComments } from './Private/PrivateComments';
6
- import { PrivateCustomFields } from './Private/PrivateCustomFields';
6
+ import { PrivateConfig } from './Private/PrivateConfig';
7
7
  import { PrivateVersions } from './Private/PrivateVersions';
8
8
  import { PrivateAttachments } from './Private/PrivateAttachments';
9
9
  import { PrivateAuthentication } from './Private/PrivateAuthentication';
@@ -18,7 +18,7 @@ export class PrivateGroup extends PrivateBase {
18
18
  super(apiConnection);
19
19
  this.Authentication = new PrivateAuthentication(apiConnection);
20
20
  this.Comments = new PrivateComments(apiConnection);
21
- this.CustomFields = new PrivateCustomFields(apiConnection);
21
+ this.Config = new PrivateConfig(apiConnection);
22
22
  this.Versions = new PrivateVersions(apiConnection);
23
23
  this.Attachments = new PrivateAttachments(apiConnection);
24
24
  }
@@ -20,7 +20,7 @@ export declare class ProjectGroup {
20
20
  * @param options.startAt - Zero-indexed starting position (must be multiple of maxResults)
21
21
  * @returns Paginated list of projects with metadata (total, isLast, etc.)
22
22
  *
23
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/listProjects Official API Documentation}
23
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Projects/operation/listProjects Official API Documentation}
24
24
  */
25
25
  listProjects(options?: ListProjectsOptions): Promise<ProjectList>;
26
26
  /**
@@ -32,7 +32,7 @@ export declare class ProjectGroup {
32
32
  * @param options.projectIdOrKey - The project ID or key
33
33
  * @returns Project object with all fields
34
34
  *
35
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getProject Official API Documentation}
35
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Projects/operation/getProject Official API Documentation}
36
36
  */
37
37
  getProject(options: GetProjectOptions): Promise<Project>;
38
38
  }
@@ -16,7 +16,7 @@ export class ProjectGroup {
16
16
  * @param options.startAt - Zero-indexed starting position (must be multiple of maxResults)
17
17
  * @returns Paginated list of projects with metadata (total, isLast, etc.)
18
18
  *
19
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/listProjects Official API Documentation}
19
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Projects/operation/listProjects Official API Documentation}
20
20
  */
21
21
  async listProjects(options) {
22
22
  const queryString = buildQueryString(options);
@@ -32,7 +32,7 @@ export class ProjectGroup {
32
32
  * @param options.projectIdOrKey - The project ID or key
33
33
  * @returns Project object with all fields
34
34
  *
35
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getProject Official API Documentation}
35
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Projects/operation/getProject Official API Documentation}
36
36
  */
37
37
  async getProject(options) {
38
38
  const response = await this.api.fetch(`/projects/${options.projectIdOrKey}`);
@@ -22,7 +22,7 @@ export declare class StatusGroup {
22
22
  * @param options.startAt - Zero-indexed starting position (must be multiple of maxResults)
23
23
  * @returns Paginated list of statuses with metadata (total, isLast, etc.)
24
24
  *
25
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/listStatuses Official API Documentation}
25
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Statuses/operation/listStatuses Official API Documentation}
26
26
  */
27
27
  listStatuses(options: ListStatusesOptions): Promise<StatusList>;
28
28
  /**
@@ -34,7 +34,7 @@ export declare class StatusGroup {
34
34
  * @param options.statusId - The status ID
35
35
  * @returns Status object with all fields
36
36
  *
37
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getStatus Official API Documentation}
37
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Statuses/operation/getStatus Official API Documentation}
38
38
  */
39
39
  getStatus(options: GetStatusOptions): Promise<Status>;
40
40
  /**
@@ -55,7 +55,7 @@ export declare class StatusGroup {
55
55
  * @param request.body.color - Status color (optional)
56
56
  * @returns Created status object
57
57
  *
58
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createStatus Official API Documentation}
58
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Statuses/operation/createStatus Official API Documentation}
59
59
  */
60
60
  createStatus(request: CreateStatusRequest): Promise<Status>;
61
61
  /**
@@ -78,7 +78,7 @@ export declare class StatusGroup {
78
78
  * @param request.body.color - Status color (optional)
79
79
  * @returns Updated status object
80
80
  *
81
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/updateStatus Official API Documentation}
81
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Statuses/operation/updateStatus Official API Documentation}
82
82
  */
83
83
  updateStatus(request: UpdateStatusRequest): Promise<Status>;
84
84
  }
@@ -18,7 +18,7 @@ export class StatusGroup {
18
18
  * @param options.startAt - Zero-indexed starting position (must be multiple of maxResults)
19
19
  * @returns Paginated list of statuses with metadata (total, isLast, etc.)
20
20
  *
21
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/listStatuses Official API Documentation}
21
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Statuses/operation/listStatuses Official API Documentation}
22
22
  */
23
23
  async listStatuses(options) {
24
24
  const queryString = buildQueryString(options);
@@ -34,7 +34,7 @@ export class StatusGroup {
34
34
  * @param options.statusId - The status ID
35
35
  * @returns Status object with all fields
36
36
  *
37
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getStatus Official API Documentation}
37
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Statuses/operation/getStatus Official API Documentation}
38
38
  */
39
39
  async getStatus(options) {
40
40
  const response = await this.api.fetch(`/statuses/${options.statusId}`);
@@ -58,7 +58,7 @@ export class StatusGroup {
58
58
  * @param request.body.color - Status color (optional)
59
59
  * @returns Created status object
60
60
  *
61
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createStatus Official API Documentation}
61
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Statuses/operation/createStatus Official API Documentation}
62
62
  */
63
63
  async createStatus(request) {
64
64
  const response = await this.api.fetch('/statuses', {
@@ -88,7 +88,7 @@ export class StatusGroup {
88
88
  * @param request.body.color - Status color (optional)
89
89
  * @returns Updated status object
90
90
  *
91
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/updateStatus Official API Documentation}
91
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Statuses/operation/updateStatus Official API Documentation}
92
92
  */
93
93
  async updateStatus(request) {
94
94
  const response = await this.api.fetch(`/statuses/${request.statusId}`, {
@@ -24,7 +24,7 @@ export declare class TestCaseGroup {
24
24
  * @param options.startAt - Zero-indexed starting position (must be multiple of maxResults)
25
25
  * @returns Paginated list of test cases with metadata (total, isLast, etc.)
26
26
  *
27
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/listTestCases Official API Documentation}
27
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/listTestCases Official API Documentation}
28
28
  */
29
29
  listTestCases(options?: ListTestCasesOptions): Promise<TestCaseList>;
30
30
  /**
@@ -41,7 +41,7 @@ export declare class TestCaseGroup {
41
41
  * @param options.startAtId - Starting ID for cursor-based pagination (use null for first page)
42
42
  * @returns Cursor-paginated list of test cases with nextStartAtId for pagination
43
43
  *
44
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/listTestCasesNextgen Official API Documentation}
44
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/listTestCasesNextgen Official API Documentation}
45
45
  */
46
46
  listTestCasesCursorPaginated(options?: ListTestCasesOptions): Promise<CursorPagedTestCaseList>;
47
47
  /**
@@ -66,7 +66,7 @@ export declare class TestCaseGroup {
66
66
  * );
67
67
  * ```
68
68
  *
69
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCase Official API Documentation}
69
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/getTestCase Official API Documentation}
70
70
  */
71
71
  getTestCase(options: GetTestCaseOptions, errorStrategy?: ErrorStrategyHandlers<TestCase | null>): Promise<TestCase | null>;
72
72
  /**
@@ -91,7 +91,7 @@ export declare class TestCaseGroup {
91
91
  * @param request.body.customFields - Custom field values (optional)
92
92
  * @returns Created test case with key, id, and self link
93
93
  *
94
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCase Official API Documentation}
94
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/createTestCase Official API Documentation}
95
95
  */
96
96
  createTestCase(request: CreateTestCaseRequest): Promise<KeyedCreatedResource>;
97
97
  /**
@@ -116,7 +116,7 @@ export declare class TestCaseGroup {
116
116
  * @param request.body.customFields - Custom field values (optional, but all custom fields must be present if any are included)
117
117
  * @returns Promise that resolves when update is complete
118
118
  *
119
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/updateTestCase Official API Documentation}
119
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/updateTestCase Official API Documentation}
120
120
  */
121
121
  updateTestCase(request: UpdateTestCaseRequest): Promise<void>;
122
122
  /**
@@ -127,7 +127,7 @@ export declare class TestCaseGroup {
127
127
  * @param testCaseKey - The test case key (e.g., 'PROJ-T1')
128
128
  * @returns List of links including issues and webLinks arrays
129
129
  *
130
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCaseLinks Official API Documentation}
130
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/getTestCaseLinks Official API Documentation}
131
131
  */
132
132
  getTestCaseLinks(testCaseKey: string): Promise<TestCaseLinkList>;
133
133
  /**
@@ -142,7 +142,7 @@ export declare class TestCaseGroup {
142
142
  * @param request.body.type - Link type: 'COVERAGE', 'BLOCKS', or 'RELATED' (optional, defaults to 'COVERAGE')
143
143
  * @returns Created link resource with id and self link
144
144
  *
145
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCaseIssueLink Official API Documentation}
145
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/createTestCaseIssueLink Official API Documentation}
146
146
  */
147
147
  createTestCaseIssueLink(request: CreateTestCaseIssueLinkRequest): Promise<CreatedResource>;
148
148
  /**
@@ -158,7 +158,7 @@ export declare class TestCaseGroup {
158
158
  * @param request.body.type - Link type: 'COVERAGE', 'BLOCKS', or 'RELATED' (optional, defaults to 'COVERAGE')
159
159
  * @returns Created link resource with id and self link
160
160
  *
161
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCaseWebLink Official API Documentation}
161
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/createTestCaseWebLink Official API Documentation}
162
162
  */
163
163
  createTestCaseWebLink(request: CreateTestCaseWebLinkRequest): Promise<CreatedResource>;
164
164
  /**
@@ -173,7 +173,7 @@ export declare class TestCaseGroup {
173
173
  * @param options.startAt - Zero-indexed starting position (must be multiple of maxResults)
174
174
  * @returns Paginated list of test case version links
175
175
  *
176
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/listTestCaseVersions Official API Documentation}
176
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/listTestCaseVersions Official API Documentation}
177
177
  */
178
178
  listTestCaseVersions(options: ListTestCaseVersionsOptions): Promise<TestCaseVersionLinkList>;
179
179
  /**
@@ -186,7 +186,7 @@ export declare class TestCaseGroup {
186
186
  * @param options.version - The version number (1-based, where 1 is the current version)
187
187
  * @returns Test case object for the specified version
188
188
  *
189
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCaseVersion Official API Documentation}
189
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/getTestCaseVersion Official API Documentation}
190
190
  */
191
191
  getTestCaseVersion(options: GetTestCaseVersionOptions): Promise<TestCase>;
192
192
  /**
@@ -197,7 +197,7 @@ export declare class TestCaseGroup {
197
197
  * @param testCaseKey - The test case key (e.g., 'PROJ-T1')
198
198
  * @returns Test script object with type and text/content
199
199
  *
200
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCaseTestScript Official API Documentation}
200
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/getTestCaseTestScript Official API Documentation}
201
201
  */
202
202
  getTestCaseTestScript(testCaseKey: string): Promise<TestScript>;
203
203
  /**
@@ -214,7 +214,7 @@ export declare class TestCaseGroup {
214
214
  * @param request.body.content - Script content for BDD type (required for BDD type)
215
215
  * @returns Created resource with id and self link
216
216
  *
217
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCaseTestScript Official API Documentation}
217
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/createTestCaseTestScript Official API Documentation}
218
218
  */
219
219
  createTestCaseTestScript(request: CreateTestCaseTestScriptRequest): Promise<CreatedResource>;
220
220
  /**
@@ -229,7 +229,7 @@ export declare class TestCaseGroup {
229
229
  * @param options.startAt - Zero-indexed starting position (must be multiple of maxResults)
230
230
  * @returns Paginated list of test steps
231
231
  *
232
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCaseTestSteps Official API Documentation}
232
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/getTestCaseTestSteps Official API Documentation}
233
233
  */
234
234
  getTestCaseTestSteps(testCaseKey: string, options?: {
235
235
  maxResults?: number;
@@ -250,7 +250,7 @@ export declare class TestCaseGroup {
250
250
  * @param request.body.items[].inline - Inline test step with description, testData, and expectedResult
251
251
  * @returns Created resource with id and self link
252
252
  *
253
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCaseTestSteps Official API Documentation}
253
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/createTestCaseTestSteps Official API Documentation}
254
254
  */
255
255
  createTestCaseTestSteps(request: CreateTestCaseTestStepsRequest): Promise<CreatedResource>;
256
256
  }
@@ -19,7 +19,7 @@ export class TestCaseGroup {
19
19
  * @param options.startAt - Zero-indexed starting position (must be multiple of maxResults)
20
20
  * @returns Paginated list of test cases with metadata (total, isLast, etc.)
21
21
  *
22
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/listTestCases Official API Documentation}
22
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/listTestCases Official API Documentation}
23
23
  */
24
24
  async listTestCases(options) {
25
25
  const queryString = buildQueryString(options);
@@ -39,7 +39,7 @@ export class TestCaseGroup {
39
39
  * @param options.startAtId - Starting ID for cursor-based pagination (use null for first page)
40
40
  * @returns Cursor-paginated list of test cases with nextStartAtId for pagination
41
41
  *
42
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/listTestCasesNextgen Official API Documentation}
42
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/listTestCasesNextgen Official API Documentation}
43
43
  */
44
44
  async listTestCasesCursorPaginated(options) {
45
45
  const queryString = buildQueryString(options);
@@ -67,7 +67,7 @@ export class TestCaseGroup {
67
67
  * );
68
68
  * ```
69
69
  *
70
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCase Official API Documentation}
70
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/getTestCase Official API Documentation}
71
71
  */
72
72
  async getTestCase(options, errorStrategy) {
73
73
  return executeWithRetry(() => this.api.fetch(`/testcases/${options.testCaseKey}`), {}, errorStrategy);
@@ -94,7 +94,7 @@ export class TestCaseGroup {
94
94
  * @param request.body.customFields - Custom field values (optional)
95
95
  * @returns Created test case with key, id, and self link
96
96
  *
97
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCase Official API Documentation}
97
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/createTestCase Official API Documentation}
98
98
  */
99
99
  async createTestCase(request) {
100
100
  return executeWithRetry(() => this.api.fetch('/testcases', {
@@ -125,7 +125,7 @@ export class TestCaseGroup {
125
125
  * @param request.body.customFields - Custom field values (optional, but all custom fields must be present if any are included)
126
126
  * @returns Promise that resolves when update is complete
127
127
  *
128
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/updateTestCase Official API Documentation}
128
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/updateTestCase Official API Documentation}
129
129
  */
130
130
  async updateTestCase(request) {
131
131
  await executeWithRetry(async () => {
@@ -155,7 +155,7 @@ export class TestCaseGroup {
155
155
  * @param testCaseKey - The test case key (e.g., 'PROJ-T1')
156
156
  * @returns List of links including issues and webLinks arrays
157
157
  *
158
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCaseLinks Official API Documentation}
158
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/getTestCaseLinks Official API Documentation}
159
159
  */
160
160
  async getTestCaseLinks(testCaseKey) {
161
161
  const response = await this.api.fetch(`/testcases/${testCaseKey}/links`);
@@ -173,7 +173,7 @@ export class TestCaseGroup {
173
173
  * @param request.body.type - Link type: 'COVERAGE', 'BLOCKS', or 'RELATED' (optional, defaults to 'COVERAGE')
174
174
  * @returns Created link resource with id and self link
175
175
  *
176
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCaseIssueLink Official API Documentation}
176
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/createTestCaseIssueLink Official API Documentation}
177
177
  */
178
178
  async createTestCaseIssueLink(request) {
179
179
  const response = await this.api.fetch(`/testcases/${request.testCaseKey}/links/issues`, {
@@ -196,7 +196,7 @@ export class TestCaseGroup {
196
196
  * @param request.body.type - Link type: 'COVERAGE', 'BLOCKS', or 'RELATED' (optional, defaults to 'COVERAGE')
197
197
  * @returns Created link resource with id and self link
198
198
  *
199
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCaseWebLink Official API Documentation}
199
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/createTestCaseWebLink Official API Documentation}
200
200
  */
201
201
  async createTestCaseWebLink(request) {
202
202
  const response = await this.api.fetch(`/testcases/${request.testCaseKey}/links/weblinks`, {
@@ -218,7 +218,7 @@ export class TestCaseGroup {
218
218
  * @param options.startAt - Zero-indexed starting position (must be multiple of maxResults)
219
219
  * @returns Paginated list of test case version links
220
220
  *
221
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/listTestCaseVersions Official API Documentation}
221
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/listTestCaseVersions Official API Documentation}
222
222
  */
223
223
  async listTestCaseVersions(options) {
224
224
  const queryString = buildQueryString(options);
@@ -235,7 +235,7 @@ export class TestCaseGroup {
235
235
  * @param options.version - The version number (1-based, where 1 is the current version)
236
236
  * @returns Test case object for the specified version
237
237
  *
238
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCaseVersion Official API Documentation}
238
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/getTestCaseVersion Official API Documentation}
239
239
  */
240
240
  async getTestCaseVersion(options) {
241
241
  const response = await this.api.fetch(`/testcases/${options.testCaseKey}/versions/${options.version}`);
@@ -249,7 +249,7 @@ export class TestCaseGroup {
249
249
  * @param testCaseKey - The test case key (e.g., 'PROJ-T1')
250
250
  * @returns Test script object with type and text/content
251
251
  *
252
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCaseTestScript Official API Documentation}
252
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/getTestCaseTestScript Official API Documentation}
253
253
  */
254
254
  async getTestCaseTestScript(testCaseKey) {
255
255
  const response = await this.api.fetch(`/testcases/${testCaseKey}/testscript`);
@@ -269,7 +269,7 @@ export class TestCaseGroup {
269
269
  * @param request.body.content - Script content for BDD type (required for BDD type)
270
270
  * @returns Created resource with id and self link
271
271
  *
272
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCaseTestScript Official API Documentation}
272
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/createTestCaseTestScript Official API Documentation}
273
273
  */
274
274
  async createTestCaseTestScript(request) {
275
275
  const response = await this.api.fetch(`/testcases/${request.testCaseKey}/testscript`, {
@@ -291,7 +291,7 @@ export class TestCaseGroup {
291
291
  * @param options.startAt - Zero-indexed starting position (must be multiple of maxResults)
292
292
  * @returns Paginated list of test steps
293
293
  *
294
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCaseTestSteps Official API Documentation}
294
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/getTestCaseTestSteps Official API Documentation}
295
295
  */
296
296
  async getTestCaseTestSteps(testCaseKey, options) {
297
297
  const queryString = buildQueryString(options);
@@ -313,7 +313,7 @@ export class TestCaseGroup {
313
313
  * @param request.body.items[].inline - Inline test step with description, testData, and expectedResult
314
314
  * @returns Created resource with id and self link
315
315
  *
316
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCaseTestSteps Official API Documentation}
316
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cases/operation/createTestCaseTestSteps Official API Documentation}
317
317
  */
318
318
  async createTestCaseTestSteps(request) {
319
319
  const response = await this.api.fetch(`/testcases/${request.testCaseKey}/teststeps`, {
@@ -23,7 +23,7 @@ export declare class TestCycleGroup {
23
23
  * @param options.startAt - Zero-indexed starting position (must be multiple of maxResults)
24
24
  * @returns Paginated list of test cycles with metadata (total, isLast, etc.)
25
25
  *
26
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/listTestCycles Official API Documentation}
26
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cycles/operation/listTestCycles Official API Documentation}
27
27
  */
28
28
  listTestCycles(options?: ListTestCyclesOptions): Promise<TestCycleList>;
29
29
  /**
@@ -35,7 +35,7 @@ export declare class TestCycleGroup {
35
35
  * @param options.testCycleIdOrKey - The test cycle ID or key (e.g., 'PROJ-R1')
36
36
  * @returns Test cycle object with all fields
37
37
  *
38
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCycle Official API Documentation}
38
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cycles/operation/getTestCycle Official API Documentation}
39
39
  */
40
40
  getTestCycle(options: GetTestCycleOptions): Promise<TestCycle>;
41
41
  /**
@@ -58,7 +58,7 @@ export declare class TestCycleGroup {
58
58
  * @param request.body.customFields - Custom field values (optional)
59
59
  * @returns Created test cycle with key, id, and self link
60
60
  *
61
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCycle Official API Documentation}
61
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cycles/operation/createTestCycle Official API Documentation}
62
62
  */
63
63
  createTestCycle(request: CreateTestCycleRequest): Promise<KeyedCreatedResource>;
64
64
  /**
@@ -81,7 +81,7 @@ export declare class TestCycleGroup {
81
81
  * @param request.body.customFields - Custom field values (optional, but all custom fields must be present if any are included)
82
82
  * @returns Promise that resolves when update is complete
83
83
  *
84
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/updateTestCycle Official API Documentation}
84
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cycles/operation/updateTestCycle Official API Documentation}
85
85
  */
86
86
  updateTestCycle(request: UpdateTestCycleRequest): Promise<void>;
87
87
  /**
@@ -92,7 +92,7 @@ export declare class TestCycleGroup {
92
92
  * @param testCycleIdOrKey - The test cycle ID or key (e.g., 'PROJ-R1')
93
93
  * @returns List of links including issues, webLinks, and testPlans arrays
94
94
  *
95
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/getTestCycleLinks Official API Documentation}
95
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cycles/operation/getTestCycleLinks Official API Documentation}
96
96
  */
97
97
  getTestCycleLinks(testCycleIdOrKey: string | number): Promise<TestCycleLinkList>;
98
98
  /**
@@ -107,7 +107,7 @@ export declare class TestCycleGroup {
107
107
  * @param request.body.type - Link type: 'COVERAGE', 'BLOCKS', or 'RELATED' (optional, defaults to 'COVERAGE')
108
108
  * @returns Created link resource with id and self link
109
109
  *
110
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCycleIssueLink Official API Documentation}
110
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cycles/operation/createTestCycleIssueLink Official API Documentation}
111
111
  */
112
112
  createTestCycleIssueLink(request: CreateTestCycleIssueLinkRequest): Promise<CreatedResource>;
113
113
  /**
@@ -123,7 +123,7 @@ export declare class TestCycleGroup {
123
123
  * @param request.body.type - Link type: 'COVERAGE', 'BLOCKS', or 'RELATED' (optional, defaults to 'COVERAGE')
124
124
  * @returns Created link resource with id and self link
125
125
  *
126
- * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/v2/#operation/createTestCycleWebLink Official API Documentation}
126
+ * @see {@link https://support.smartbear.com/zephyr-scale-cloud/api-docs/#tag/Test-Cycles/operation/createTestCycleWebLink Official API Documentation}
127
127
  */
128
128
  createTestCycleWebLink(request: CreateTestCycleWebLinkRequest): Promise<CreatedResource>;
129
129
  }