///
import { ReadStream } from "fs";
import { CoreOptions, RequestResponse } from "request";
declare class JiraApi {
private protocol: string;
private host: string;
private port: string | null;
private apiVersion: string;
private base: string;
private intermediatePath?: string | undefined;
private strictSSL: boolean;
private webhookVersion: string;
private greenhopperVersion: string;
constructor(options: JiraApi.JiraApiOptions);
/**
* Find an issue in jira
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id290709)
* @param issueNumber - The issue number to search for including the project key
* @param expand - The resource expansion to return additional fields in the response
* @param fields - Comma separated list of field ids or keys to retrieve
* @param properties - Comma separated list of properties to retrieve
* @param fieldsByKeys - False by default, used to retrieve fields by key instead of id
*/
findIssue(
issueNumber: string,
expand?: string,
fields?: string,
properties?: string,
fieldsByKeys?: boolean,
): Promise;
/**
* Download an attachment
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id288524)
* @param attachment - the attachment
*/
downloadAttachment(attachment: object): Promise;
/**
* Get the unresolved issue count
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id288524)
* @param version - the version of your product you want to find the unresolved
* issues of.
*/
getUnresolvedIssueCount(version: string): Promise;
/**
* Get the Project by project key
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id289232)
* @param project - key for the project
*/
getProject(project: string): Promise;
/**
* Create a new Project
* [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#api/2/project-createProject)
* @param project - with specs
*/
createProject(project: JiraApi.ProjectObject): Promise;
/**
* Find the Rapid View for a specified project
* @param projectName - name for the project
*/
findRapidView(projectName: string): Promise;
/**
* Get the most recent sprint for a given rapidViewId
* @param rapidViewId - the id for the rapid view
*/
getLastSprintForRapidView(rapidViewId: string): Promise;
/**
* Get the issues for a rapidView / sprint
* @param rapidViewId - the id for the rapid view
* @param sprintId - the id for the sprint
*/
getSprintIssues(rapidViewId: string, sprintId: string): Promise;
/**
* Get a list of Sprints belonging to a Rapid View
* @param rapidViewId - the id for the rapid view
*/
listSprints(rapidViewId: string): Promise;
/**
* Get details about a Sprint
* @param sprintId - the id for the sprint view
*/
getSprint(sprintId: string): Promise;
/**
* Add an issue to the project's current sprint
* @param issueId - the id of the existing issue
* @param sprintId - the id of the sprint to add it to
*/
addIssueToSprint(issueId: string, sprintId: string): Promise;
/**
* Create an issue link between two issues
* @param link - a link object formatted how the Jira API specifies
*/
issueLink(link: JiraApi.LinkObject): Promise;
/**
* List all issue link types jira knows about
* [Jira Doc](https://docs.atlassian.com/software/jira/docs/api/REST/8.5.0/#api/2/issueLinkType-getIssueLinkTypes)
*/
listIssueLinkTypes(): Promise;
/**
* Retrieves the remote links associated with the given issue.
* @param issueNumber - the issue number to find remote links for.
*/
getRemoteLinks(issueNumber: string): Promise;
/**
* Creates a remote link associated with the given issue.
* @param issueNumber - The issue number to create the remotelink under
* @param remoteLink - the remotelink object as specified by the Jira API
*/
createRemoteLink(issueNumber: string, remoteLink: JiraApi.LinkObject): Promise;
/**
* Get Versions for a project
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id289653)
* @param project - A project key to get versions for
*/
getVersions(project: string): Promise;
/**
* Get details of single Version in project
* [Jira Doc](https://docs.atlassian.com/jira/REST/cloud/#api/2/version-getVersion)
* @param version - The id of this version
*/
getVersion(version: string): Promise;
/**
* Create a version
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id288232)
* @param version - an object of the new version
*/
createVersion(version: JiraApi.VersionObject): Promise;
/**
* Update a version
* [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#d2e510)
* @param version - an new object of the version to update
*/
updateVersion(version: JiraApi.VersionObject): Promise;
/**
* Delete a version
* [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#api/2/version-delete)
* @param versionId - the ID of the version to delete
* @param moveFixIssuesToId - when provided, existing fixVersions will be moved
* to this ID. Otherwise, the deleted version will be removed from all
* issue fixVersions.
* @param moveAffectedIssuesToId - when provided, existing affectedVersions will
* be moved to this ID. Otherwise, the deleted version will be removed
* from all issue affectedVersions.
*/
deleteVersion(
versionId: string,
moveFixIssuesToId: string,
moveAffectedIssuesToId: string,
): Promise;
/**
* Move version
* [Jira Doc](https://docs.atlassian.com/jira/REST/cloud/#api/2/version-moveVersion)
* @param versionId - the ID of the version to delete
* @param position - an object of the new position
*/
moveVersion(versionId: string, position: string): Promise;
/**
* Pass a search query to Jira
* [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#d2e4424)
* @param searchString - jira query string in JQL
* @param optional - object containing any of the following properties
*/
searchJira(searchString: string, optional?: JiraApi.SearchQuery): Promise;
/**
* Create a Jira user
* [Jira Doc](https://docs.atlassian.com/jira/REST/cloud/#api/2/user-createUser)
* @param user - Properly Formatted User object
*/
createUser(user: JiraApi.UserObject): Promise;
/**
* Search user on Jira
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#d2e3756)
* @param options
*/
searchUsers(options: JiraApi.SearchUserOptions): Promise;
/**
* Get all users in group on Jira
* @param groupname - A query string used to search users in group
* @param [startAt=0] - The index of the first user to return (0-based)
* @param [maxResults=50] - The maximum number of users to return (defaults to 50).
*/
getUsersInGroup(groupname: string, startAt?: number, maxResults?: number): Promise;
/**
* Get issues related to a user
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id296043)
* @param username - username of user to search for
* @param open - determines if only open issues should be returned
*/
getUsersIssues(username: string, open: boolean): Promise;
/**
* Returns a user.
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-user-get)
* @param accountId - The accountId of user to search for
* @param expand - The expand for additional info (groups,applicationRoles)
*/
getUser(accountId: string, expand: string): Promise;
/**
* Returns a list of all (active and inactive) users.
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-users-search-get)
* @param [startAt=0] - The index of the first user to return (0-based)
* @param [maxResults=50] - The maximum number of users to return (defaults to 50).
*/
getUsers(startAt?: number, maxResults?: number): Promise;
/**
* Add issue to Jira
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id290028)
* @param issue - Properly Formatted Issue object
*/
addNewIssue(issue: JiraApi.IssueObject): Promise;
/**
* Add a user as a watcher on an issue
* @param issueKey - the key of the existing issue
* @param username - the jira username to add as a watcher to the issue
*/
addWatcher(issueKey: string, username: string): Promise;
/**
* Change an assignee on an issue
* [Jira Doc](https://docs.atlassian.com/jira/REST/cloud/#api/2/issue-assign)
* @param issueKey - the key of the existing issue
* @param assigneeName - the jira username to add as a new assignee to the issue
*/
updateAssignee(issueKey: string, assigneeName: string): Promise;
/**
* Change an assignee on an issue
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-rest-api-2-issue-issueIdOrKey-assignee-put)
* @param issueKey - the key of the existing issue
* @param userId - the jira username to add as a new assignee to the issue
*/
updateAssigneeWithId(issueKey: string, userId: string): Promise;
/**
* Delete issue from Jira
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id290791)
* @param issueId - the Id of the issue to delete
*/
deleteIssue(issueId: string): Promise;
/**
* Update issue in Jira
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id290878)
* @param issueId - the Id of the issue to update
* @param issueUpdate - update Object as specified by the rest api
* @param query - adds parameters to the query string
*/
updateIssue(
issueId: string,
issueUpdate: JiraApi.IssueObject,
query?: JiraApi.Query,
): Promise;
/**
* List Components
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id290489)
* @param project - key for the project
*/
listComponents(project: string): Promise;
/**
* Add component to Jira
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id290028)
* @param component - Properly Formatted Component
*/
addNewComponent(component: JiraApi.ComponentObject): Promise;
/**
* Update Jira component
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#api/2/component-updateComponent)
* @param componentId - the Id of the component to update
* @param component - Properly Formatted Component
*/
updateComponent(componentId: string, component: JiraApi.ComponentObject): Promise;
/**
* Delete component from Jira
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-component-id-delete)
* @param id - The ID of the component.
* @param moveIssuesTo - The ID of the component to replace the deleted component.
* If this value is null no replacement is made.
*/
deleteComponent(componentId: string): Promise;
/**
* Get count of issues assigned to the component.
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-rest-api-2-component-id-relatedIssueCounts-get)
* @param id - Component Id.
*/
relatedIssueCounts(id: string): Promise;
/**
* Create custom Jira field
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#api/2/field-createCustomField)
* @param field - Properly formatted Field object
*/
createCustomField(field: JiraApi.FieldObject): Promise;
/**
* List all fields custom and not that jira knows about.
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id290489)
*/
listFields(): Promise;
/**
* Add an option for a select list issue field.
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#api/2/field/{fieldKey}/option-createOption)
* @param fieldKey - the key of the select list field
* @param option - properly formatted Option object
*/
createFieldOption(fieldKey: string, option: JiraApi.FieldOptionObject): Promise;
/**
* Returns all options defined for a select list issue field.
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#api/2/field/{fieldKey}/option-getAllOptions)
* @param fieldKey - the key of the select list field
*/
listFieldOptions(fieldKey: string): Promise;
/**
* Creates or updates an option for a select list issue field.
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#api/2/field/{fieldKey}/option-putOption)
* @param fieldKey - the key of the select list field
* @param optionId - the id of the modified option
* @param option - properly formatted Option object
*/
upsertFieldOption(
fieldKey: string,
optionId: string,
option: JiraApi.FieldOptionObject,
): Promise;
/**
* Returns an option for a select list issue field.
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#api/2/field/{fieldKey}/option-getOption)
* @param fieldKey - the key of the select list field
* @param optionId - the id of the option
*/
getFieldOption(fieldKey: string, optionId: string): Promise;
/**
* Deletes an option from a select list issue field.
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#api/2/field/{fieldKey}/option-delete)
* @param fieldKey - the key of the select list field
* @param optionId - the id of the deleted option
*/
deleteFieldOption(fieldKey: string, optionId: string): Promise;
/**
* Get Property of Issue by Issue and Property Id
* [Jira Doc](https://docs.atlassian.com/jira/REST/cloud/#api/2/issue/{issueIdOrKey}/properties-getProperty)
* @param issueNumber - The issue number to search for including the project key
* @param property - The property key to search for
*/
getIssueProperty(issueNumber: string, property: string): Promise;
/**
* List all changes for an issue, sorted by date, starting from the latest
* [Jira Doc](https://docs.atlassian.com/jira/REST/cloud/#api/2/issue/{issueIdOrKey}/changelog)
* @param issueNumber - The issue number to search for including the project key
* @param [startAt=0] - optional starting index number
* @param [maxResults=50] - optional ending index number
*/
getIssueChangelog(issueNumber: string, startAt?: number, maxResults?: number): Promise;
/**
* List all watchers for an issue
* [Jira Doc](http://docs.atlassian.com/jira/REST/cloud/#api/2/issue-getIssueWatchers)
* @param issueNumber - The issue number to search for including the project key
*/
getIssueWatchers(issueId: string): Promise;
/**
* List all priorities jira knows about
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id290489)
*/
listPriorities(): Promise;
/**
* List Transitions for a specific issue that are available to the current user
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id290489)
* @param issueId - get transitions available for the issue
*/
listTransitions(issueId: string): Promise;
/**
* Transition issue in Jira
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id290489)
* @param issueId - the Id of the issue to delete
* @param issueTransition - transition object from the jira rest API
*/
transitionIssue(issueId: string, issueTransition: JiraApi.TransitionObject): Promise;
/**
* List all Viewable Projects
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id289193)
*/
listProjects(): Promise;
/**
* Add a comment to an issue
* [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#id108798)
* @param issueId - Issue to add a comment to
* @param comment - string containing comment
*/
addComment(issueId: string, comment: string): Promise;
/**
* Add a comment to an issue, supports full comment object
* [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#id108798)
* @param issueId - Issue to add a comment to
* @param comment - The object containing your comment data
*/
addCommentAdvanced(issueId: string, comment: JiraApi.CommentAdvancedObject): Promise;
/**
* Update comment for an issue
* [Jira Doc](https://docs.atlassian.com/jira/REST/cloud/#api/2/issue-updateComment)
* @param issueId - Issue with the comment
* @param commentId - Comment that is updated
* @param comment - string containing new comment
* @param [options={}] - extra options
*/
updateComment(
issueId: string,
commentId: string,
comment: string,
options?: JiraApi.CommentOptions,
): Promise;
/**
* Get Comments by IssueId.
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-comment-list-post)
* @param issueId - this issue this comment is on
*/
getComments(issueId: string): Promise;
/**
* Get Comment by Id.
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-comment-list-post)
* @param issueId - this issue this comment is on
* @param commentId - the id of the comment
*/
getComment(issueId: string, commentId: number): Promise;
/**
* Delete Comments by Id.
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-comment-list-post)
* @param issueId - this issue this comment is on
* @param commentId - the id of the comment
*/
deleteComment(issueId: string, commentId: number): Promise;
/**
* Add a worklog to a project
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id291617)
* @param issueId - Issue to add a worklog to
* @param worklog - worklog object from the rest API
* @param [optional] newEstimate - the new value for the remaining estimate field
* @param [options={}] - extra options
*/
addWorklog(
issueId: string,
worklog: JiraApi.WorklogObject,
newEstimate?: JiraApi.EstimateObject,
options?: JiraApi.WorklogOptions,
): Promise;
/**
* Get ids of worklogs modified since
* [Jira Doc](https://docs.atlassian.com/jira/REST/cloud/#api/2/worklog-getWorklogsForIds)
* @param since - a date time in unix timestamp format since when updated worklogs
* will be returned.
* @param expand - ptional comma separated list of parameters to expand: properties
* (provides worklog properties).
*/
updatedWorklogs(since: number, expand: string): Promise;
/**
* Delete worklog from issue
* [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#d2e1673)
* @param issueId - the Id of the issue to delete
* @param worklogId - the Id of the worklog in issue to delete
*/
deleteWorklog(issueId: string, worklogId: string): Promise;
/**
* Deletes an issue link.
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-issueLink-linkId-delete)
* @param linkId - the Id of the issue link to delete
*/
deleteIssueLink(linkId: string): Promise;
/**
* Returns worklog details for a list of worklog IDs.
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-worklog-list-post)
* @param worklogsIDs - a list of worklog IDs.
* @param expand - expand to include additional information about worklogs
*/
getWorklogs(worklogsIDs: string[], expand: string): Promise;
/**
* Get worklogs list from a given issue
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-api-3-issue-issueIdOrKey-worklog-get)
* @param issueId - the Id of the issue to find worklogs for
* @param [startAt=0] - optional starting index number
* @param [maxResults=1000] - optional ending index number
*/
getIssueWorklogs(issueId: string, startAt?: number, maxResults?: number): Promise;
/**
* List all Issue Types jira knows about
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id295946)
*/
listIssueTypes(): Promise;
/**
* Register a webhook
* [Jira Doc](https://developer.atlassian.com/display/JIRADEV/JIRA+Webhooks+Overview)
* @param webhook - properly formatted webhook
*/
registerWebhook(webhook: JiraApi.WebhookObject): Promise;
/**
* List all registered webhooks
* [Jira Doc](https://developer.atlassian.com/display/JIRADEV/JIRA+Webhooks+Overview)
*/
listWebhooks(): Promise;
/**
* Get a webhook by its ID
* [Jira Doc](https://developer.atlassian.com/display/JIRADEV/JIRA+Webhooks+Overview)
* @param webhookID - id of webhook to get
*/
getWebhook(webhookID: string): Promise;
/**
* Delete a registered webhook
* [Jira Doc](https://developer.atlassian.com/display/JIRADEV/JIRA+Webhooks+Overview)
* @param webhookID - id of the webhook to delete
*/
deleteWebhook(webhookID: string): Promise;
/**
* Describe the currently authenticated user
* [Jira Doc](http://docs.atlassian.com/jira/REST/latest/#id2e865)
*/
getCurrentUser(): Promise;
/**
* Retrieve the backlog of a certain Rapid View
* @param rapidViewId - rapid view id
*/
getBacklogForRapidView(rapidViewId: string): Promise;
/**
* Add attachment to a Issue
* [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#api/2/issue/{issueIdOrKey}/attachments-addAttachment)
* @param issueId - issue id
* @param readStream - readStream object from fs
*/
addAttachmentOnIssue(issueId: string, readStream: ReadStream): Promise;
/**
* Notify people related to issue
* [Jira Doc](https://docs.atlassian.com/jira/REST/cloud/#api/2/issue-notify)
* @param issueId - issue id
* @param notificationBody - properly formatted body
*/
issueNotify(issueId: string, notificationBody: JiraApi.NotificationObject): Promise;
/**
* Get list of possible statuses
* [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#api/2/status-getStatuses)
*/
listStatus(): Promise;
/**
* Get a Dev-Status summary by issue ID
* @param issueId - id of issue to get
*/
getDevStatusSummary(issueId: string): Promise;
/**
* Get a Dev-Status detail by issue ID
* @param issueId - id of issue to get
* @param applicationType - type of application (stash, bitbucket)
* @param dataType - info to return (repository, pullrequest)
*/
getDevStatusDetail(issueId: string, applicationType: string, dataType: string): Promise;
/**
* Get issue
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/issue-getIssue)
* @param issueIdOrKey - Id of issue
* @param [fields] - [optional] The list of fields to return for each issue.
* @param [expand] - [optional] A comma-separated list of the parameters to expand.
*/
getIssue(issueIdOrKey: string, fields?: string | string[], expand?: string): Promise;
/**
* Move issues to backlog
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/backlog-moveIssuesToBacklog)
* @param issues - id or key of issues to get
*/
moveToBacklog(issues: string[]): Promise;
/**
* Get all boards
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board-getAllBoards)
* @param [startAt=0] - The starting index of the returned boards.
* @param [maxResults=50] - The maximum number of boards to return per page.
* @param [type] - Filters results to boards of the specified type.
* @param [name] - Filters results to boards that match the specified name.
* @param [projectKeyOrId] - Filters results to boards that are relevant to a project.
*/
getAllBoards(
startAt?: number,
maxResults?: number,
type?: string,
name?: string,
projectKeyOrId?: string,
): Promise;
/**
* Create Board
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board-createBoard)
* @param boardBody - Board name, type and filter Id is required.
*/
createBoard(boardBody: JiraApi.BoardObject): Promise;
/**
* Get Board
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board-getBoard)
* @param boardId - Id of board to retrieve
*/
getBoard(boardId: string): Promise;
/**
* Delete Board
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board-deleteBoard)
* @param boardId - Id of board to retrieve
*/
deleteBoard(boardId: string): Promise;
/**
* Get issues for backlog
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board-getIssuesForBacklog)
* @param boardId - Id of board to retrieve
* @param [startAt=0] - The starting index of the returned issues. Base index: 0.
* @param [maxResults=50] - The maximum number of issues to return per page. Default: 50.
* @param [jql] - Filters results using a JQL query.
* @param [validateQuery] - Specifies whether to validate the JQL query or not.
* Default: true.
* @param [fields] - The list of fields to return for each issue.
*/
getIssuesForBacklog(
boardId: string,
startAt?: number,
maxResults?: number,
jql?: string,
validateQuery?: boolean,
fields?: string,
): Promise;
/**
* Get Configuration
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board-getConfiguration)
* @param boardId - Id of board to retrieve
*/
getConfiguration(boardId: string): Promise;
/**
* Get issues for board
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board-getIssuesForBoard)
* @param boardId - Id of board to retrieve
* @param [startAt=0] - The starting index of the returned issues. Base index: 0.
* @param [maxResults=50] - The maximum number of issues to return per page. Default: 50.
* @param [jql] - Filters results using a JQL query.
* @param [validateQuery] - Specifies whether to validate the JQL query or not.
* Default: true.
* @param [fields] - The list of fields to return for each issue.
*/
getIssuesForBoard(
boardId: string,
startAt?: number,
maxResults?: number,
jql?: string,
validateQuery?: boolean,
fields?: string,
): Promise;
/**
* Get Epics
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/epic-getEpics)
* @param boardId - Id of board to retrieve
* @param [startAt=0] - The starting index of the returned epics. Base index: 0.
* @param [maxResults=50] - The maximum number of epics to return per page. Default: 50.
* @param [done] - Filters results to epics that are either done or not done.
* Valid values: true, false.
*/
getEpics(
boardId: string,
startAt?: number,
maxResults?: number,
done?: "true" | "false",
): Promise;
/**
* Get board issues for epic
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/epic-getIssuesForEpic)
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/epic-getIssuesWithoutEpic)
* @param boardId - Id of board to retrieve
* @param epicId - Id of epic to retrieve, specify 'none' to get issues without an epic.
* @param [startAt=0] - The starting index of the returned issues. Base index: 0.
* @param [maxResults=50] - The maximum number of issues to return per page. Default: 50.
* @param [jql] - Filters results using a JQL query.
* @param [validateQuery] - Specifies whether to validate the JQL query or not.
* Default: true.
* @param [fields] - The list of fields to return for each issue.
*/
getBoardIssuesForEpic(
boardId: string,
epicId: string,
startAt?: number,
maxResults?: number,
jql?: string,
validateQuery?: boolean,
fields?: string,
): Promise;
/**
* Estimate issue for board
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/issue-estimateIssueForBoard)
* @param issueIdOrKey - Id of issue
* @param boardId - The id of the board required to determine which field
* is used for estimation.
* @param body - value to set
*/
estimateIssueForBoard(issueIdOrKey: string, boardId: number, body: string): Promise;
/**
* Rank Issues
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/issue-rankIssues)
* @param body - value to set
*/
rankIssues(body: string): Promise;
/**
* Get Projects
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/project-getProjects)
* @param boardId - Id of board to retrieve
* @param [startAt=0] - The starting index of the returned projects. Base index: 0.
* @param [maxResults=50] - The maximum number of projects to return per page.
* Default: 50.
*/
getProjects(boardId: string, startAt?: number, maxResults?: number): Promise;
/**
* Get Projects Full
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/project-getProjectsFull)
* @param boardId - Id of board to retrieve
*/
getProjectsFull(boardId: string): Promise;
/**
* Get Board Properties Keys
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/properties-getPropertiesKeys)
* @param boardId - Id of board to retrieve
*/
getBoardPropertiesKeys(boardId: string): Promise;
/**
* Delete Board Property
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/properties-deleteProperty)
* @param boardId - Id of board to retrieve
* @param propertyKey - Id of property to delete
*/
deleteBoardProperty(boardId: string, propertyKey: string): Promise;
/**
* Set Board Property
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/properties-setProperty)
* @param boardId - Id of board to retrieve
* @param propertyKey - Id of property to delete
* @param body - value to set, for objects make sure to stringify first
*/
setBoardProperty(boardId: string, propertyKey: string, body: string): Promise;
/**
* Get Board Property
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/properties-getProperty)
* @param boardId - Id of board to retrieve
* @param propertyKey - Id of property to retrieve
*/
getBoardProperty(boardId: string, propertyKey: string): Promise;
/**
* Get All Sprints
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/sprint-getAllSprints)
* @param boardId - Id of board to retrieve
* @param [startAt=0] - The starting index of the returned sprints. Base index: 0.
* @param [maxResults=50] - The maximum number of sprints to return per page.
* Default: 50.
* @param [state] - Filters results to sprints in specified states.
* Valid values: future, active, closed.
*/
getAllSprints(
boardId: string,
startAt?: number,
maxResults?: number,
state?: "future" | "active" | "closed",
): Promise;
/**
* Get Board issues for sprint
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/sprint-getIssuesForSprint)
* @param boardId - Id of board to retrieve
* @param sprintId - Id of sprint to retrieve
* @param [startAt=0] - The starting index of the returned issues. Base index: 0.
* @param [maxResults=50] - The maximum number of issues to return per page. Default: 50.
* @param [jql] - Filters results using a JQL query.
* @param [validateQuery] - Specifies whether to validate the JQL query or not.
* Default: true.
* @param [fields] - The list of fields to return for each issue.
* @param [expand] - A comma-separated list of the parameters to expand.
*/
getBoardIssuesForSprint(
boardId: string,
sprintId: string,
startAt?: number,
maxResults?: number,
jql?: string,
validateQuery?: boolean,
fields?: string,
expand?: string,
): Promise;
/**
* Get All Versions
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/{boardId}/version-getAllVersions)
* @param boardId - Id of board to retrieve
* @param [startAt=0] - The starting index of the returned versions. Base index: 0.
* @param [maxResults=50] - The maximum number of versions to return per page.
* Default: 50.
* @param [released] - Filters results to versions that are either released or
* unreleased.Valid values: true, false.
*/
getAllVersions(
boardId: string,
startAt?: number,
maxResults?: number,
released?: "true" | "false",
): Promise;
/**
* Get Filter
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/filter)
* @param filterId - Id of filter to retrieve
*/
getFilter(filterId: string): Promise;
/**
* Get Epic
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/epic-getEpic)
* @param epicIdOrKey - Id of epic to retrieve
*/
getEpic(epicIdOrKey: string): Promise;
/**
* Partially update epic
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/epic-partiallyUpdateEpic)
* @param epicIdOrKey - Id of epic to retrieve
* @param body - value to set, for objects make sure to stringify first
*/
partiallyUpdateEpic(epicIdOrKey: string, body: string): Promise;
/**
* Get issues for epic
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/epic-getIssuesForEpic)
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/epic-getIssuesWithoutEpic)
* @param epicId - Id of epic to retrieve, specify 'none' to get issues without an epic.
* @param [startAt=0] - The starting index of the returned issues. Base index: 0.
* @param [maxResults=50] - The maximum number of issues to return per page. Default: 50.
* @param [jql] - Filters results using a JQL query.
* @param [validateQuery] - Specifies whether to validate the JQL query or not.
* Default: true.
* @param [fields] - The list of fields to return for each issue.
*/
getIssuesForEpic(
epicId: string,
startAt?: number,
maxResults?: number,
jql?: string,
validateQuery?: boolean,
fields?: string,
): Promise;
/**
* Move Issues to Epic
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/epic-moveIssuesToEpic)
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/epic-removeIssuesFromEpic)
* @param epicIdOrKey - Id of epic to move issue to, or 'none' to remove from epic
* @param issues - array of issues to move
*/
moveIssuesToEpic(epicIdOrKey: string, issues: string[]): Promise;
/**
* Rank Epics
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/epic-rankEpics)
* @param epicIdOrKey - Id of epic
* @param body - value to set (stringify first)
*/
rankEpics(epicIdOrKey: string, body: string): Promise;
/**
* Get server info
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-api-2-serverInfo-get)
*/
getServerInfo(): Promise;
/**
* @param optional - object containing any of the following properties
* Get metadata for creating an issue.
* [Jira Doc](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-createmeta-get)
*/
getIssueCreateMetadata(optional?: JiraApi.CreateIssueMetadataObject): Promise;
/**
* Generic Get Request
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/2/)
* @param endpoint - Rest API endpoint
*/
genericGet(endpoint: string): Promise;
/**
* Generic Get Request to the Agile API
* [Jira Doc](https://docs.atlassian.com/jira-software/REST/cloud/2/)
* @param endpoint - Rest API endpoint
*/
genericAgileGet(endpoint: string): Promise;
private makeRequestHeader(uri: string, options?: JiraApi.UriOptions);
private makeUri(options: JiraApi.UriOptions): string;
private makeWebhookUri(options: JiraApi.UriOptions): string;
private makeSprintQueryUri(options: JiraApi.UriOptions): string;
private makeDevStatusUri(options: JiraApi.UriOptions): string;
private makeAgileUri(options: JiraApi.UriOptions): string;
private doRequest(requestOptions: CoreOptions): Promise;
}
declare namespace JiraApi {
interface JiraApiOptions {
protocol?: string | undefined;
host: string;
port?: string | undefined;
username?: string | undefined;
password?: string | undefined;
apiVersion?: string | undefined;
base?: string | undefined;
intermediatePath?: string | undefined;
strictSSL?: boolean | undefined;
request?: any;
timeout?: number | undefined;
webhookVersion?: string | undefined;
greenhopperVersion?: string | undefined;
bearer?: string | undefined;
oauth?: OAuth | undefined;
ca?: string | undefined;
}
interface OAuth {
consumer_key: string;
consumer_secret: string;
access_token: string;
access_token_secret: string;
signature_method?: string | undefined;
}
interface LinkObject {
[name: string]: any;
}
interface Query {
[name: string]: any;
}
interface JsonResponse {
[name: string]: any;
}
interface UserObject {
[name: string]: any;
}
interface IssueObject {
[name: string]: any;
}
interface ComponentObject {
[name: string]: any;
}
interface FieldObject {
[name: string]: any;
}
interface FieldOptionObject {
[name: string]: any;
}
interface TransitionObject {
[name: string]: any;
}
interface WorklogObject {
[name: string]: any;
}
interface EstimateObject {
[name: string]: any;
}
interface WebhookObject {
[name: string]: any;
}
interface NotificationObject {
[name: string]: any;
}
interface BoardObject {
/** Valid values: scrum, kanban */
type: "scrum" | "kanban";
/** Must be less than 255 characters. */
name: string;
/** Id of a filter that the user has permissions to view. */
filterId: string;
}
interface AttachmentObject {
[name: string]: any;
}
interface ProjectObject {
[name: string]: any;
}
interface VersionObject {
[name: string]: any;
}
interface CommentAdvancedObject {
[name: string]: any;
}
interface CommentOptions {
[name: string]: any;
}
interface WorklogOptions {
[name: string]: any;
}
interface CreateIssueMetadataObject {
/** [optional] Array of project ids to return metadata for */
projectIds?: string[] | undefined;
/** [optional] Array of project keys to return metadata for */
projectKeys?: string[] | undefined;
/** [optional] Array of issuetype ids to return metadata for */
issuetypeIds?: string[] | undefined;
/** [optional] Array of issuetype names to return metadata for */
issuetypeNames?: string[] | undefined;
/** [optional] Include additional information about issue metadata. Valid value is 'projects.issuetypes.fields' */
expand?: string | undefined;
}
interface SearchUserOptions {
/** (DEPRECATED) A query string used to search username, name or e-mail address */
username?: string | undefined;
/**
* A query string that is matched against user attributes
* (displayName, and emailAddress) to find relevant users. The string can match the prefix of
* the attribute's value. For example, query=john matches a user with a displayName of John
* Smith and a user with an emailAddress of johnson@example.com. Required, unless accountId
* or property is specified.
*/
query: string;
/** [optional - default = 0] The index of the first user to return (0-based) */
startAt?: number | undefined;
/** [optional - default = 50] The maximum number of users to return */
maxResults?: number | undefined;
/** [optional - default = true] If true, then active users are included in the results */
includeActive?: boolean | undefined;
/** [optional - default = true] If true, then inactive users are included in the results */
includeInactive?: boolean | undefined;
}
interface SearchQuery {
/** [optional - default = 0] starting index number */
startAt?: number | undefined;
/**
* [optional - default = 50] The maximum number of items to
* return per page. To manage page size, Jira may return fewer items per
* page where a large number of fields are requested.
*/
maxResults?: number | undefined;
/** [optional] array of string names of desired fields */
fields?: string[] | undefined;
/** [optional] array of string names of desired expand nodes */
expand?: string[] | undefined;
}
interface UriOptions {
pathname: string;
query?: Query | undefined;
intermediatePath?: string | undefined;
}
}
export = JiraApi;