Skip to content

Commit

Permalink
Few incremental improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
MrRefactoring committed Feb 2, 2025
1 parent beb6812 commit 028e0e7
Show file tree
Hide file tree
Showing 37 changed files with 1,237 additions and 12 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,11 @@
- `updateWorkflowSchemeMappings`: Update workflow scheme mappings.
- **Improvement:** Added the `releasedProjectKeys` property to the `Projects.updateProject` method.
- **New Method:** Added the `getNotificationSchemeForProject` method to the `Projects` class.
- **New Method:** Added the `getBulkScreenTabs` method to the `ScreenTabs` class.
- **Improvement:** Added the `avatarId` parameter to the `IssuePriorities.createPriority` method. This parameter will replace `iconUrl` starting **March 16, 2025**. The `iconUrl` parameter is now marked as deprecated.
- **Improvement:** Added the `priorityName` and `expand` properties to the `IssuePriorities.searchPriorities` method.
- **Improvement:** Added the `avatarId` parameter to the `IssuePriorities.updatePriority` method. This parameter will replace `iconUrl` starting **March 16, 2025**. The `iconUrl` parameter is now marked as deprecated.
- **New Method:** Added the `deletePriority` method to the `IssuePriorities` class.

---

Expand Down
43 changes: 43 additions & 0 deletions src/version3/classificationLevels.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import * as Models from './models';
import * as Parameters from './parameters';
import { Client } from '../clients';
import { Callback } from '../callback';
import { RequestConfig } from '../requestConfig';

export class ClassificationLevels {
constructor(private client: Client) {}

/**
* Returns all classification levels.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** None.
*/
async getAllUserDataClassificationLevels<T = Models.DataClassificationLevels>(
parameters: Parameters.GetAllUserDataClassificationLevels | undefined,
callback: Callback<T>,
): Promise<void>;
/**
* Returns all classification levels.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** None.
*/
async getAllUserDataClassificationLevels<T = Models.DataClassificationLevels>(
parameters?: Parameters.GetAllUserDataClassificationLevels,
callback?: never,
): Promise<T>;
async getAllUserDataClassificationLevels<T = Models.DataClassificationLevels>(
parameters?: Parameters.GetAllUserDataClassificationLevels,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/3/classification-levels',
method: 'GET',
params: {
status: parameters?.status,
orderBy: parameters?.orderBy,
},
};

return this.client.sendRequest(config, callback);
}
}
520 changes: 520 additions & 0 deletions src/version3/issueBulkOperations.ts

Large diffs are not rendered by default.

55 changes: 54 additions & 1 deletion src/version3/issuePriorities.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as Models from './models';
import * as Parameters from './parameters';
import { Callback } from '../callback';
import { Client } from '../clients';
import { Callback } from '../callback';
import { paramSerializer } from '../paramSerializer';
import { RequestConfig } from '../requestConfig';

Expand Down Expand Up @@ -34,6 +34,9 @@ export class IssuePriorities {
/**
* Creates an issue priority.
*
* Deprecation applies to iconUrl param in request body which will be sunset on 16th Mar 2025. For more details refer
* to [changelog](https://developer.atlassian.com/changelog/#CHANGE-1525).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
Expand All @@ -44,6 +47,9 @@ export class IssuePriorities {
/**
* Creates an issue priority.
*
* Deprecation applies to iconUrl param in request body which will be sunset on 16th Mar 2025. For more details refer
* to [changelog](https://developer.atlassian.com/changelog/#CHANGE-1525).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
Expand All @@ -56,6 +62,7 @@ export class IssuePriorities {
url: '/rest/api/3/priority',
method: 'POST',
data: {
avatarId: parameters.avatarId,
description: parameters.description,
iconUrl: parameters.iconUrl,
name: parameters.name,
Expand Down Expand Up @@ -172,7 +179,9 @@ export class IssuePriorities {
maxResults: parameters?.maxResults,
id: parameters?.id,
projectId: paramSerializer('projectId', parameters?.projectId),
priorityName: parameters?.priorityName,
onlyDefault: parameters?.onlyDefault,
expand: parameters?.expand,
},
};

Expand Down Expand Up @@ -208,13 +217,23 @@ export class IssuePriorities {
/**
* Updates an issue priority.
*
* At least one request body parameter must be defined.
*
* Deprecation applies to iconUrl param in request body which will be sunset on 16th Mar 2025. For more details refer
* to [changelog](https://developer.atlassian.com/changelog/#CHANGE-1525).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async updatePriority<T = void>(parameters: Parameters.UpdatePriority, callback: Callback<T>): Promise<void>;
/**
* Updates an issue priority.
*
* At least one request body parameter must be defined.
*
* Deprecation applies to iconUrl param in request body which will be sunset on 16th Mar 2025. For more details refer
* to [changelog](https://developer.atlassian.com/changelog/#CHANGE-1525).
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
Expand All @@ -224,6 +243,7 @@ export class IssuePriorities {
url: `/rest/api/3/priority/${parameters.id}`,
method: 'PUT',
data: {
avatarId: parameters.avatarId,
description: parameters.description,
iconUrl: parameters.iconUrl,
name: parameters.name,
Expand All @@ -233,4 +253,37 @@ export class IssuePriorities {

return this.client.sendRequest(config, callback);
}

/**
* Deletes an issue priority.
*
* This operation is
* [asynchronous](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#async-operations). Follow the
* `location` link in the response to determine the status of the task and use [Get
* task](#api-rest-api-3-task-taskId-get) to obtain subsequent updates.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async deletePriority<T = unknown>(parameters: Parameters.DeletePriority, callback: Callback<T>): Promise<void>;
/**
* Deletes an issue priority.
*
* This operation is
* [asynchronous](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#async-operations). Follow the
* `location` link in the response to determine the status of the task and use [Get
* task](#api-rest-api-3-task-taskId-get) to obtain subsequent updates.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
*/
async deletePriority<T = unknown>(parameters: Parameters.DeletePriority, callback?: never): Promise<T>;
async deletePriority<T = unknown>(parameters: Parameters.DeletePriority, callback?: Callback<T>): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/3/priority/${parameters.id}`,
method: 'DELETE',
};

return this.client.sendRequest(config, callback);
}
}
55 changes: 53 additions & 2 deletions src/version3/issueResolutions.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,34 @@
import * as Models from './models';
import * as Parameters from './parameters';
import { Callback } from '../callback';
import { Client } from '../clients';
import { Callback } from '../callback';
import { RequestConfig } from '../requestConfig';

export class IssueResolutions {
constructor(private client: Client) {}

/**
* Returns a list of all issue resolution values.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* Permission to access Jira.
*/
async getResolutions<T = Models.Resolution[]>(callback: Callback<T>): Promise<void>;
/**
* Returns a list of all issue resolution values.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* Permission to access Jira.
*/
async getResolutions<T = Models.Resolution[]>(callback?: never): Promise<T>;
async getResolutions<T = Models.Resolution[]>(callback?: Callback<T>): Promise<void | T> {
const config: RequestConfig = {
url: '/rest/api/3/resolution',
method: 'GET',
};

return this.client.sendRequest(config, callback);
}
/**
* Creates an issue resolution.
*
Expand Down Expand Up @@ -91,8 +113,8 @@ export class IssueResolutions {
url: '/rest/api/3/resolution/move',
method: 'PUT',
data: {
ids: parameters.ids,
after: parameters.after,
ids: parameters.ids,
position: parameters.position,
},
};
Expand Down Expand Up @@ -148,6 +170,35 @@ export class IssueResolutions {
return this.client.sendRequest(config, callback);
}

/**
* Returns an issue resolution value.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* Permission to access Jira.
*/
async getResolution<T = Models.Resolution>(
parameters: Parameters.GetResolution,
callback: Callback<T>,
): Promise<void>;
/**
* Returns an issue resolution value.
*
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:**
* Permission to access Jira.
*/
async getResolution<T = Models.Resolution>(parameters: Parameters.GetResolution, callback?: never): Promise<T>;
async getResolution<T = Models.Resolution>(
parameters: Parameters.GetResolution,
callback?: Callback<T>,
): Promise<void | T> {
const config: RequestConfig = {
url: `/rest/api/3/resolution/${parameters.id}`,
method: 'GET',
};

return this.client.sendRequest(config, callback);
}

/**
* Updates an issue resolution.
*
Expand Down
11 changes: 11 additions & 0 deletions src/version3/models/bulkEditGetFields.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { IssueBulkEditField } from './issueBulkEditField';

/** Bulk Edit Get Fields Response. */
export interface BulkEditGetFields {
/** The end cursor for use in pagination. */
endingBefore?: string;
/** List of all the fields */
fields?: IssueBulkEditField[];
/** The start cursor for use in pagination. */
startingAfter?: string;
}
32 changes: 32 additions & 0 deletions src/version3/models/bulkOperationProgress.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { User } from './user';

export interface BulkOperationProgress {
/** A timestamp of when the task was submitted. */
created?: string;
/**
* Map of issue IDs for which the operation failed and that the user has permission to view, to their one or more
* reasons for failure. These reasons are open-ended text descriptions of the error and are not selected from a
* predefined list of standard reasons.
*/
failedAccessibleIssues?: {};
/**
* The number of issues that are either invalid or issues that the user doesn't have permission to view, regardless
* of the success or failure of the operation.
*/
invalidOrInaccessibleIssueCount?: number;
/** List of issue IDs for which the operation was successful and that the user has permission to view. */
processedAccessibleIssues?: number[];
/** Progress of the task as a percentage. */
progressPercent?: number;
/** A timestamp of when the task was started. */
started?: string;
/** The status of the task. */
status?: 'ENQUEUED' | 'RUNNING' | 'COMPLETE' | 'FAILED' | 'CANCEL_REQUESTED' | 'CANCELLED' | 'DEAD' | string;
submittedBy?: User;
/** The ID of the task. */
taskId: string;
/** The number of issues that the bulk operation was attempted on. */
totalIssueCount?: number;
/** A timestamp of when the task progress was last updated. */
updated?: string;
}
11 changes: 11 additions & 0 deletions src/version3/models/bulkTransitionGetAvailableTransitions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { IssueBulkTransitionForWorkflow } from './issueBulkTransitionForWorkflow';

/** Bulk Transition Get Available Transitions Response. */
export interface BulkTransitionGetAvailableTransitions {
/** List of available transitions for bulk transition operation for requested issues grouped by workflow */
availableTransitions?: IssueBulkTransitionForWorkflow[];
/** The end cursor for use in pagination. */
endingBefore?: string;
/** The start cursor for use in pagination. */
startingAfter?: string;
}
39 changes: 35 additions & 4 deletions src/version3/models/createPriorityDetails.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,42 @@
/** Details of an issue priority. */
export interface CreatePriorityDetails {
/** The name of the priority. Must be unique. */
name: string;
/**
* The ID for the avatar for the priority. Either the iconUrl or avatarId must be defined, but not both. This
* parameter is nullable and will become mandatory once the iconUrl parameter is deprecated.
*/
avatarId?: number;
/** The description of the priority. */
description?: string;
/** The URL of an icon for the priority. Accepted protocols are HTTP and HTTPS. Built in icons can also be used. */
iconUrl?: string;
/**
* The URL of an icon for the priority. Accepted protocols are HTTP and HTTPS. Built in icons can also be used. Either
* the iconUrl or avatarId must be defined, but not both.
*
* @deprecated This property is deprecated and will be removed in a future version. Use `avatarId` instead.
*/
iconUrl?:
| '/images/icons/priorities/blocker.png'
| '/images/icons/priorities/critical.png'
| '/images/icons/priorities/high.png'
| '/images/icons/priorities/highest.png'
| '/images/icons/priorities/low.png'
| '/images/icons/priorities/lowest.png'
| '/images/icons/priorities/major.png'
| '/images/icons/priorities/medium.png'
| '/images/icons/priorities/minor.png'
| '/images/icons/priorities/trivial.png'
| '/images/icons/priorities/blocker_new.png'
| '/images/icons/priorities/critical_new.png'
| '/images/icons/priorities/high_new.png'
| '/images/icons/priorities/highest_new.png'
| '/images/icons/priorities/low_new.png'
| '/images/icons/priorities/lowest_new.png'
| '/images/icons/priorities/major_new.png'
| '/images/icons/priorities/medium_new.png'
| '/images/icons/priorities/minor_new.png'
| '/images/icons/priorities/trivial_new.png'
| string;
/** The name of the priority. Must be unique. */
name: string;
/** The status color of the priority in 3-digit or 6-digit hexadecimal format. */
statusColor: string;
}
7 changes: 7 additions & 0 deletions src/version3/models/dataClassificationLevels.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { DataClassificationTag } from './dataClassificationTag';

/** The data classification. */
export interface DataClassificationLevels {
/** The data classifications. */
classifications?: DataClassificationTag[];
}
17 changes: 17 additions & 0 deletions src/version3/models/dataClassificationTag.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/** The data classification. */
export interface DataClassificationTag {
/** The color of the data classification object. */
color?: string;
/** The description of the data classification object. */
description?: string;
/** The guideline of the data classification object. */
guideline?: string;
/** The ID of the data classification object. */
id: string;
/** The name of the data classification object. */
name?: string;
/** The rank of the data classification object. */
rank?: number;
/** The status of the data classification object. */
status: string;
}
9 changes: 9 additions & 0 deletions src/version3/models/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
export * from './bulkOperationProgress';
export * from './issueBulkTransitionPayload';
export * from './bulkTransitionGetAvailableTransitions';
export * from './issueBulkMovePayload';
export * from './issueBulkEditPayload';
export * from './bulkEditGetFields';
export * from './issueBulkDeletePayload';
export * from './submittedBulkOperation';
export * from './dataClassificationLevels';
export * from './workflowSchemeUpdateRequiredMappingsResponse';
export * from './workflowSchemeUpdateRequest';
export * from './workflowSchemeReadRequest';
Expand Down
Loading

0 comments on commit 028e0e7

Please sign in to comment.