/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ /** OneOf type helpers */ type Without = { [P in Exclude]?: never; }; type XOR = (T | U) extends object ? (Without & U) | (Without & T) : T | U; type OneOf = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? OneOf<[XOR, ...Rest]> : never; export interface paths { "/rest/agile/1.0/backlog/issue": { /** * Move issues to backlog * @description Move issues to the backlog. * This operation is equivalent to remove future and active sprints from a given set of issues. At most 50 issues may be moved at once. */ post: operations["moveIssuesToBacklog"]; }; "/rest/agile/1.0/backlog/{boardId}/issue": { /** * Move issues to backlog for board * @description Move issues to the backlog of a particular board (if they are already on that board). * This operation is equivalent to remove future and active sprints from a given set of issues if the board has sprints If the board does not have sprints this will put the issues back into the backlog from the board. At most 50 issues may be moved at once. */ post: operations["moveIssuesToBacklogForBoard"]; }; "/rest/agile/1.0/board": { /** * Get all boards * @description Returns all boards. This only includes boards that the user has permission to view. * * **Deprecation notice:** The required OAuth 2.0 scopes will be updated on February 15, 2024. * * * `read:board-scope:jira-software`, `read:project:jira` */ get: operations["getAllBoards"]; /** * Create board * @description Creates a new board. Board name, type and filter ID is required. * * * `name` \- Must be less than 255 characters. * * `type` \- Valid values: scrum, kanban * * `filterId` \- ID of a filter that the user has permissions to view. Note, if the user does not have the 'Create shared objects' permission and tries to create a shared board, a private board will be created instead (remember that board sharing depends on the filter sharing). * * `location` \- The container that the board will be located in. `location` must include the `type` property (Valid values: project, user). If choosing 'project', then a project must be specified by a `projectKeyOrId` property in `location`. If choosing 'user', the current user is chosen by default. The `projectKeyOrId` property should not be provided. * * Note: * * * If you want to create a new project with an associated board, use the [Jira platform REST API](https://docs.atlassian.com/jira/REST/latest). For more information, see the [Create project](#api-rest-api-3-project-post) method. The `projectTypeKey` for software boards must be 'software' and the `projectTemplateKey` must be either `com.pyxis.greenhopper.jira:gh-kanban-template` or `com.pyxis.greenhopper.jira:gh-scrum-template`. * * You can create a filter using the [Jira REST API](https://docs.atlassian.com/jira/REST/latest). For more information, see the [Create filter](#api-rest-api-3-filter-post) method. * * If you do not ORDER BY the Rank field for the filter of your board, you will not be able to reorder issues on the board. */ post: operations["createBoard"]; }; "/rest/agile/1.0/board/filter/{filterId}": { /** * Get board by filter id * @description Returns any boards which use the provided filter id. This method can be executed by users without a valid software license in order to find which boards are using a particular filter. */ get: operations["getBoardByFilterId"]; }; "/rest/agile/1.0/board/{boardId}": { /** * Get board * @description Returns the board for the given board ID. This board will only be returned if the user has permission to view it. Admins without the view permission will see the board as a private one, so will see only a subset of the board's data (board location for instance). */ get: operations["getBoard"]; /** * Delete board * @description Deletes the board. Admin without the view permission can still remove the board. */ delete: operations["deleteBoard"]; }; "/rest/agile/1.0/board/{boardId}/backlog": { /** * Get issues for backlog * @description Returns all issues from the board's backlog, for the given board ID. This only includes issues that the user has permission to view. The backlog contains incomplete issues that are not assigned to any future or active sprint. Note, if the user does not have permission to view the board, no issues will be returned at all. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. */ get: operations["getIssuesForBacklog"]; }; "/rest/agile/1.0/board/{boardId}/configuration": { /** * Get configuration * @description Get the board configuration. The response contains the following fields: * * * `id` \- ID of the board. * * `name` \- Name of the board. * * `filter` \- Reference to the filter used by the given board. * * `location` \- Reference to the container that the board is located in. Includes the container type (Valid values: project, user). * * `subQuery` (Kanban only) - JQL subquery used by the given board. * * `columnConfig` \- The column configuration lists the columns for the board, in the order defined in the column configuration. For each column, it shows the issue status mapping as well as the constraint type (Valid values: none, issueCount, issueCountExclSubs) for the min/max number of issues. Note, the last column with statuses mapped to it is treated as the "Done" column, which means that issues in that column will be marked as already completed. * * `estimation` (Scrum only) - Contains information about type of estimation used for the board. Valid values: none, issueCount, field. If the estimation type is "field", the ID and display name of the field used for estimation is also returned. Note, estimates for an issue can be updated by a PUT /rest/api/3/issue/\{issueIdOrKey\} request, however the fields must be on the screen. "timeoriginalestimate" field will never be on the screen, so in order to update it "originalEstimate" in "timetracking" field should be updated. * * `ranking` \- Contains information about custom field used for ranking in the given board. */ get: operations["getConfiguration"]; }; "/rest/agile/1.0/board/{boardId}/epic": { /** * Get epics * @description Returns all epics from the board, for the given board ID. This only includes epics that the user has permission to view. Note, if the user does not have permission to view the board, no epics will be returned at all. */ get: operations["getEpics"]; }; "/rest/agile/1.0/board/{boardId}/epic/none/issue": { /** * Get issues without epic for board * @description Returns all issues that do not belong to any epic on a board, for a given board ID. This only includes issues that the user has permission to view. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. */ get: operations["getIssuesWithoutEpicForBoard"]; }; "/rest/agile/1.0/board/{boardId}/epic/{epicId}/issue": { /** * Get board issues for epic * @description Returns all issues that belong to an epic on the board, for the given epic ID and the board ID. This only includes issues that the user has permission to view. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. */ get: operations["getBoardIssuesForEpic"]; }; "/rest/agile/1.0/board/{boardId}/features": { /** Get features for board */ get: operations["getFeaturesForBoard"]; /** Toggle features */ put: operations["toggleFeatures"]; }; "/rest/agile/1.0/board/{boardId}/issue": { /** * Get issues for board * @description Returns all issues from a board, for a given board ID. This only includes issues that the user has permission to view. An issue belongs to the board if its status is mapped to the board's column. Epic issues do not belongs to the scrum boards. Note, if the user does not have permission to view the board, no issues will be returned at all. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. */ get: operations["getIssuesForBoard"]; /** * Move issues to board * @description Move issues from the backog to the board (if they are already in the backlog of that board). * This operation either moves an issue(s) onto a board from the backlog (by adding it to the issueList for the board) Or transitions the issue(s) to the first column for a kanban board with backlog. At most 50 issues may be moved at once. */ post: operations["moveIssuesToBoard"]; }; "/rest/agile/1.0/board/{boardId}/project": { /** * Get projects * @description Returns all projects that are associated with the board, for the given board ID. If the user does not have permission to view the board, no projects will be returned at all. Returned projects are ordered by the name. * * A project is associated with a board if the board filter contains reference the project or there is an issue from the project that belongs to the board. * * The board filter contains reference the project only if JQL query guarantees that returned issues will be returned from the project set defined in JQL. For instance the query `project in (ABC, BCD) AND reporter = admin` have reference to ABC and BCD projects but query `project in (ABC, BCD) OR reporter = admin` doesn't have reference to any project. * * An issue belongs to the board if its status is mapped to the board's column. Epic issues do not belongs to the scrum boards. */ get: operations["getProjects"]; }; "/rest/agile/1.0/board/{boardId}/project/full": { /** * Get projects full * @description Returns all projects that are statically associated with the board, for the given board ID. Returned projects are ordered by the name. * * A project is associated with a board if the board filter contains reference the project. * * The board filter contains reference the project only if JQL query guarantees that returned issues will be returned from the project set defined in JQL. For instance the query `project in (ABC, BCD) AND reporter = admin` have reference to ABC and BCD projects but query `project in (ABC, BCD) OR reporter = admin` doesn't have reference to any project. */ get: operations["getProjectsFull"]; }; "/rest/agile/1.0/board/{boardId}/properties": { /** * Get board property keys * @description Returns the keys of all properties for the board identified by the id. The user who retrieves the property keys is required to have permissions to view the board. */ get: operations["getBoardPropertyKeys"]; }; "/rest/agile/1.0/board/{boardId}/properties/{propertyKey}": { /** * Get board property * @description Returns the value of the property with a given key from the board identified by the provided id. The user who retrieves the property is required to have permissions to view the board. */ get: operations["getBoardProperty"]; /** * Set board property * @description Sets the value of the specified board's property. * * You can use this resource to store a custom data against the board identified by the id. The user who stores the data is required to have permissions to modify the board. */ put: operations["setBoardProperty"]; /** * Delete board property * @description Removes the property from the board identified by the id. Ths user removing the property is required to have permissions to modify the board. */ delete: operations["deleteBoardProperty"]; }; "/rest/agile/1.0/board/{boardId}/quickfilter": { /** * Get all quick filters * @description Returns all quick filters from a board, for a given board ID. */ get: operations["getAllQuickFilters"]; }; "/rest/agile/1.0/board/{boardId}/quickfilter/{quickFilterId}": { /** * Get quick filter * @description Returns the quick filter for a given quick filter ID. The quick filter will only be returned if the user can view the board that the quick filter belongs to. */ get: operations["getQuickFilter"]; }; "/rest/agile/1.0/board/{boardId}/reports": { /** Get reports for board */ get: operations["getReportsForBoard"]; }; "/rest/agile/1.0/board/{boardId}/sprint": { /** * Get all sprints * @description Returns all sprints from a board, for a given board ID. This only includes sprints that the user has permission to view. */ get: operations["getAllSprints"]; }; "/rest/agile/1.0/board/{boardId}/sprint/{sprintId}/issue": { /** * Get board issues for sprint * @description Get all issues you have access to that belong to the sprint from the board. Issue returned from this resource contains additional fields like: sprint, closedSprints, flagged and epic. Issues are returned ordered by rank. JQL order has higher priority than default rank. */ get: operations["getBoardIssuesForSprint"]; }; "/rest/agile/1.0/board/{boardId}/version": { /** * Get all versions * @description Returns all versions from a board, for a given board ID. This only includes versions that the user has permission to view. Note, if the user does not have permission to view the board, no versions will be returned at all. Returned versions are ordered by the name of the project from which they belong and then by sequence defined by user. */ get: operations["getAllVersions"]; }; "/rest/agile/1.0/epic/none/issue": { /** * Get issues without epic * @description Returns all issues that do not belong to any epic. This only includes issues that the user has permission to view. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. **Note:** If you are querying a next-gen project, do not use this operation. Instead, search for issues that don't belong to an epic by using the [Search for issues using JQL](https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-rest-api-2-search-get) operation in the Jira platform REST API. Build your JQL query using the `parent is empty` clause. For more information on the `parent` JQL field, see [Advanced searching](https://confluence.atlassian.com/x/dAiiLQ#Advancedsearching-fieldsreference-Parent). */ get: operations["getIssuesWithoutEpic"]; /** * Remove issues from epic * @description Removes issues from epics. The user needs to have the edit issue permission for all issue they want to remove from epics. The maximum number of issues that can be moved in one operation is 50. **Note:** This operation does not work for epics in next-gen projects. Instead, update the issue using `\{ fields: \{ parent: \{\} \} \}` */ post: operations["removeIssuesFromEpic"]; }; "/rest/agile/1.0/epic/{epicIdOrKey}": { /** * Get epic * @description Returns the epic for a given epic ID. This epic will only be returned if the user has permission to view it. **Note:** This operation does not work for epics in next-gen projects. */ get: operations["getEpic"]; /** * Partially update epic * @description Performs a partial update of the epic. A partial update means that fields not present in the request JSON will not be updated. Valid values for color are `color_1` to `color_9`. **Note:** This operation does not work for epics in next-gen projects. */ post: operations["partiallyUpdateEpic"]; }; "/rest/agile/1.0/epic/{epicIdOrKey}/issue": { /** * Get issues for epic * @description Returns all issues that belong to the epic, for the given epic ID. This only includes issues that the user has permission to view. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. **Note:** If you are querying a next-gen project, do not use this operation. Instead, search for issues that belong to an epic by using the [Search for issues using JQL](https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-rest-api-2-search-get) operation in the Jira platform REST API. Build your JQL query using the `parent` clause. For more information on the `parent` JQL field, see [Advanced searching](https://confluence.atlassian.com/x/dAiiLQ#Advancedsearching-fieldsreference-Parent). */ get: operations["getIssuesForEpic"]; /** * Move issues to epic * @description Moves issues to an epic, for a given epic id. Issues can be only in a single epic at the same time. That means that already assigned issues to an epic, will not be assigned to the previous epic anymore. The user needs to have the edit issue permission for all issue they want to move and to the epic. The maximum number of issues that can be moved in one operation is 50. **Note:** This operation does not work for epics in next-gen projects. */ post: operations["moveIssuesToEpic"]; }; "/rest/agile/1.0/epic/{epicIdOrKey}/rank": { /** * Rank epics * @description Moves (ranks) an epic before or after a given epic. * * If rankCustomFieldId is not defined, the default rank field will be used. * * **Note:** This operation does not work for epics in next-gen projects. */ put: operations["rankEpics"]; }; "/rest/agile/1.0/issue/rank": { /** * Rank issues * @description Moves (ranks) issues before or after a given issue. At most 50 issues may be ranked at once. * * This operation may fail for some issues, although this will be rare. In that case the 207 status code is returned for the whole response and detailed information regarding each issue is available in the response body. * * If rankCustomFieldId is not defined, the default rank field will be used. */ put: operations["rankIssues"]; }; "/rest/agile/1.0/issue/{issueIdOrKey}": { /** * Get issue * @description Returns a single issue, for a given issue ID or issue key. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. */ get: operations["getIssue"]; }; "/rest/agile/1.0/issue/{issueIdOrKey}/estimation": { /** * Get issue estimation for board * @description Returns the estimation of the issue and a fieldId of the field that is used for it. `boardId` param is required. This param determines which field will be updated on a issue. * * Original time internally stores and returns the estimation as a number of seconds. * * The field used for estimation on the given board can be obtained from [board configuration resource](#agile/1.0/board-getConfiguration). More information about the field are returned by [edit meta resource](#api-rest-api-3-issue-getEditIssueMeta) or [field resource](#api-rest-api-3-field-get). */ get: operations["getIssueEstimationForBoard"]; /** * Estimate issue for board * @description Updates the estimation of the issue. boardId param is required. This param determines which field will be updated on a issue. * * Note that this resource changes the estimation field of the issue regardless of appearance the field on the screen. * * Original time tracking estimation field accepts estimation in formats like "1w", "2d", "3h", "20m" or number which represent number of minutes. However, internally the field stores and returns the estimation as a number of seconds. * * The field used for estimation on the given board can be obtained from [board configuration resource](#agile/1.0/board-getConfiguration). More information about the field are returned by [edit meta resource](#api-rest-api-3-issue-issueIdOrKey-editmeta-get) or [field resource](#api-rest-api-3-field-get). */ put: operations["estimateIssueForBoard"]; }; "/rest/agile/1.0/sprint": { /** * Create sprint * @description Creates a future sprint. Sprint name and origin board id are required. Start date, end date, and goal are optional. * * Note that the sprint name is trimmed. Also, when starting sprints from the UI, the "endDate" set through this call is ignored and instead the last sprint's duration is used to fill the form. */ post: operations["createSprint"]; }; "/rest/agile/1.0/sprint/{sprintId}": { /** * Get sprint * @description Returns the sprint for a given sprint ID. The sprint will only be returned if the user can view the board that the sprint was created on, or view at least one of the issues in the sprint. */ get: operations["getSprint"]; /** * Update sprint * @description Performs a full update of a sprint. A full update means that the result will be exactly the same as the request body. Any fields not present in the request JSON will be set to null. * * Notes: * * * For closed sprints, only the name and goal can be updated; changes to other fields will be ignored. * * A sprint can be started by updating the state to 'active'. This requires the sprint to be in the 'future' state and have a startDate and endDate set. * * A sprint can be completed by updating the state to 'closed'. This action requires the sprint to be in the 'active' state. This sets the completeDate to the time of the request. * * Other changes to state are not allowed. * * The completeDate field cannot be updated manually. */ put: operations["updateSprint"]; /** * Partially update sprint * @description Performs a partial update of a sprint. A partial update means that fields not present in the request JSON will not be updated. * * Notes: * * * For closed sprints, only the name and goal can be updated; changes to other fields will be ignored. * * A sprint can be started by updating the state to 'active'. This requires the sprint to be in the 'future' state and have a startDate and endDate set. * * A sprint can be completed by updating the state to 'closed'. This action requires the sprint to be in the 'active' state. This sets the completeDate to the time of the request. * * Other changes to state are not allowed. * * The completeDate field cannot be updated manually. */ post: operations["partiallyUpdateSprint"]; /** * Delete sprint * @description Deletes a sprint. Once a sprint is deleted, all open issues in the sprint will be moved to the backlog. */ delete: operations["deleteSprint"]; }; "/rest/agile/1.0/sprint/{sprintId}/issue": { /** * Get issues for sprint * @description Returns all issues in a sprint, for a given sprint ID. This only includes issues that the user has permission to view. By default, the returned issues are ordered by rank. */ get: operations["getIssuesForSprint"]; /** * Move issues to sprint and rank * @description Moves issues to a sprint, for a given sprint ID. Issues can only be moved to open or active sprints. The maximum number of issues that can be moved in one operation is 50. */ post: operations["moveIssuesToSprintAndRank"]; }; "/rest/agile/1.0/sprint/{sprintId}/properties": { /** * Get properties keys * @description Returns the keys of all properties for the sprint identified by the id. The user who retrieves the property keys is required to have permissions to view the sprint. */ get: operations["getPropertiesKeys"]; }; "/rest/agile/1.0/sprint/{sprintId}/properties/{propertyKey}": { /** * Get property * @description Returns the value of the property with a given key from the sprint identified by the provided id. The user who retrieves the property is required to have permissions to view the sprint. */ get: operations["getProperty"]; /** * Set property * @description Sets the value of the specified sprint's property. * * You can use this resource to store a custom data against the sprint identified by the id. The user who stores the data is required to have permissions to modify the sprint. */ put: operations["setProperty"]; /** * Delete property * @description Removes the property from the sprint identified by the id. Ths user removing the property is required to have permissions to modify the sprint. */ delete: operations["deleteProperty"]; }; "/rest/agile/1.0/sprint/{sprintId}/swap": { /** * Swap sprint * @description Swap the position of the sprint with the second sprint. */ post: operations["swapSprint"]; }; "/rest/devinfo/0.10/bulk": { /** * Store development information * @description Stores development information provided in the request to make it available when viewing issues in Jira. Existing repository and entity data for the same ID will be replaced if the updateSequenceId of existing data is less than the incoming data. Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. */ post: operations["storeDevelopmentInformation"]; }; "/rest/devinfo/0.10/repository/{repositoryId}": { /** * Get repository * @description For the specified repository ID, retrieves the repository and the most recent 400 development information entities. The result will be what is currently stored, ignoring any pending updates or deletes. */ get: operations["getRepository"]; /** * Delete repository * @description Deletes the repository data stored by the given ID and all related development information entities. Deletion is performed asynchronously. */ delete: operations["deleteRepository"]; }; "/rest/devinfo/0.10/bulkByProperties": { /** * Delete development information by properties * @description Deletes development information entities which have all the provided properties. Repositories which have properties that match ALL of the properties (i.e. treated as an AND), and all their related development information (such as commits, branches and pull requests), will be deleted. For example if request is `DELETE bulk?accountId=123&projectId=ABC` entities which have properties `accountId=123` and `projectId=ABC` will be deleted. Optional param `_updateSequenceId` is no longer supported. Deletion is performed asynchronously: specified entities will eventually be removed from Jira. */ delete: operations["deleteByProperties"]; }; "/rest/devinfo/0.10/existsByProperties": { /** * Check if data exists for the supplied properties * @description Checks if repositories which have all the provided properties exists. For example, if request is `GET existsByProperties?accountId=123&projectId=ABC` then result will be positive only if there is at least one repository with both properties `accountId=123` and `projectId=ABC`. Special property `_updateSequenceId` can be used to filter all entities with updateSequenceId less or equal than the value specified. In addition to the optional `_updateSequenceId`, one or more query params must be supplied to specify properties to search by. */ get: operations["existsByProperties"]; }; "/rest/devinfo/0.10/repository/{repositoryId}/{entityType}/{entityId}": { /** * Delete development information entity * @description Deletes particular development information entity. Deletion is performed asynchronously. */ delete: operations["deleteEntity"]; }; "/rest/featureflags/0.1/bulk": { /** * Submit Feature Flag data * @description Update / insert Feature Flag data. * * Feature Flags are identified by their ID, and existing Feature Flag data for the same ID will be replaced if it exists and the updateSequenceId of existing data is less than the incoming data. * * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getFeatureFlagById operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple Feature Flags being submitted in one request, each is validated individually prior to submission. Details of which Feature Flags failed submission (if any) are available in the response object. * * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ post: operations["submitFeatureFlags"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; "/rest/featureflags/0.1/bulkByProperties": { /** * Delete Feature Flags by Property * @description Bulk delete all Feature Flags that match the given request. * * One or more query params must be supplied to specify Properties to delete by. Optional param `_updateSequenceId` is no longer supported. * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). * See the documentation for the submitFeatureFlags operation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * * Deletion is performed asynchronously. The getFeatureFlagById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteFeatureFlagsByProperty"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; "/rest/featureflags/0.1/flag/{featureFlagId}": { /** * Get a Feature Flag by ID * @description Retrieve the currently stored Feature Flag data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ get: operations["getFeatureFlagById"]; /** * Delete a Feature Flag by ID * @description Delete the Feature Flag data currently stored for the given ID. * * Deletion is performed asynchronously. The getFeatureFlagById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteFeatureFlagById"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; "/rest/deployments/0.1/bulk": { /** * Submit deployment data * @description Update / insert deployment data. * * Deployments are identified by the combination of `pipelineId`, `environmentId` and `deploymentSequenceNumber`, and existing deployment data for the same deployment will be replaced if it exists and the `updateSequenceNumber` of existing data is less than the incoming data. * * Submissions are processed asynchronously. Submitted data will eventually be available in Jira. Most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The `getDeploymentByKey` operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple deployments being submitted in one request, each is validated individually prior to submission. Details of which deployments failed submission (if any) are available in the response object. * * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ post: operations["submitDeployments"]; parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; }; "/rest/deployments/0.1/bulkByProperties": { /** * Delete deployments by Property * @description Bulk delete all deployments that match the given request. * * One or more query params must be supplied to specify the Properties to delete by. Optional param `_updateSequenceNumber` is no longer supported. * If more than one Property is provided, data will be deleted that matches ALL of the Properties (i.e. treated as AND). * See the documentation for the `submitDeployments` operation for more details. * * Example operation: DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * * Deletion is performed asynchronously. The `getDeploymentByKey` operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteDeploymentsByProperty"]; parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; }; "/rest/deployments/0.1/pipelines/{pipelineId}/environments/{environmentId}/deployments/{deploymentSequenceNumber}": { /** * Get a deployment by key * @description Retrieve the currently stored deployment data for the given `pipelineId`, `environmentId` and `deploymentSequenceNumber` combination. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'READ' scope for Connect apps. */ get: operations["getDeploymentByKey"]; /** * Delete a deployment by key * @description Delete the currently stored deployment data for the given `pipelineId`, `environmentId` and `deploymentSequenceNumber` combination. * * Deletion is performed asynchronously. The `getDeploymentByKey` operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteDeploymentByKey"]; parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; }; "/rest/deployments/0.1/pipelines/{pipelineId}/environments/{environmentId}/deployments/{deploymentSequenceNumber}/gating-status": { /** * Get deployment gating status by key * @description Retrieve the Deployment gating status for the given `pipelineId + environmentId + deploymentSequenceNumber` combination. * Only apps that define the `jiraDeploymentInfoProvider` module can access this resource. This resource requires the 'READ' scope. */ get: operations["getDeploymentGatingStatusByKey"]; }; "/rest/builds/0.1/bulk": { /** * Submit build data * @description Update / insert builds data. * * Builds are identified by the combination of `pipelineId` and `buildNumber`, and existing build data for the same * build will be replaced if it exists and the `updateSequenceNumber` of the existing data is less than the * incoming data. * * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are * available within a short period of time, but may take some time during peak load and/or maintenance times. * The `getBuildByKey` operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple builds being submitted in one request, each is validated individually prior to * submission. Details of which build failed submission (if any) are available in the response object. * * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ post: operations["submitBuilds"]; parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; }; "/rest/builds/0.1/bulkByProperties": { /** * Delete builds by Property * @description Bulk delete all builds data that match the given request. * * One or more query params must be supplied to specify Properties to delete by. * Optional param `_updateSequenceNumber` is no longer supported. * If more than one Property is provided, data will be deleted that matches ALL of the * Properties (e.g. treated as an AND). * * See the documentation for the `submitBuilds` operation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&repoId=repo-345 * * Deletion is performed asynchronously. The `getBuildByKey` operation can be used to confirm that data has been * deleted successfully (if needed). * * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteBuildsByProperty"]; parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; }; "/rest/builds/0.1/pipelines/{pipelineId}/builds/{buildNumber}": { /** * Get a build by key * @description Retrieve the currently stored build data for the given `pipelineId` and `buildNumber` combination. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'READ' scope for Connect apps. */ get: operations["getBuildByKey"]; /** * Delete a build by key * @description Delete the build data currently stored for the given `pipelineId` and `buildNumber` combination. * * Deletion is performed asynchronously. The `getBuildByKey` operation can be used to confirm that data has been * deleted successfully (if needed). * * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteBuildByKey"]; parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; }; "/rest/remotelinks/1.0/bulk": { /** * Submit Remote Link data * @description Update / insert Remote Link data. * * Remote Links are identified by their ID, existing Remote Link data for the same ID will be replaced if it * exists and the updateSequenceId of existing data is less than the incoming data. * * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are * available within a short period of time, but may take some time during peak load and/or maintenance times. * The `getRemoteLinkById` operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple Remote Links being submitted in one request, each is validated individually prior to * submission. Details of which Remote LInk failed submission (if any) are available in the response object. * * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module can access this resource. This resource * requires the 'WRITE' scope for Connect apps. */ post: operations["submitRemoteLinks"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; }; "/rest/remotelinks/1.0/bulkByProperties": { /** * Delete Remote Links by Property * @description Bulk delete all Remote Links data that match the given request. * * One or more query params must be supplied to specify Properties to delete by. * Optional param `_updateSequenceNumber` is no longer supported. If more than one Property is provided, * data will be deleted that matches ALL of the Properties (e.g. treated as an AND). * * See the documentation for the `submitRemoteLinks` operation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&repoId=repo-345 * * Deletion is performed asynchronously. The `getRemoteLinkById` operation can be used to confirm that data has been * deleted successfully (if needed). * * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteRemoteLinksByProperty"]; parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that * corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; }; "/rest/remotelinks/1.0/remotelink/{remoteLinkId}": { /** * Get a Remote Link by ID * @description Retrieve the currently stored Remote Link data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'READ' scope for Connect apps. */ get: operations["getRemoteLinkById"]; /** * Delete a Remote Link by ID * @description Delete the Remote Link data currently stored for the given ID. * * Deletion is performed asynchronously. The `getRemoteLinkById` operation can be used to confirm that data has been * deleted successfully (if needed). * * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteRemoteLinkById"]; parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that * corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; }; "/rest/security/1.0/linkedWorkspaces/bulk": { /** * Submit Security Workspaces to link * @description Insert Security Workspace IDs to establish a relationship between them and the Jira site the app is installed on. If a relationship between the workspace ID and Jira already exists then the workspace ID will be ignored and Jira will process the rest of the entries. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ post: operations["submitWorkspaces"]; /** * Delete linked Security Workspaces * @description Bulk delete all linked Security Workspaces that match the given request. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. * * e.g. DELETE /bulk?workspaceIds=111-222-333,444-555-666 */ delete: operations["deleteLinkedWorkspaces"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * * Read [understanding jwt](https://developer.atlassian.com/blog/2015/01/understanding-jwt/) for more details. */ Authorization: string; }; }; }; "/rest/security/1.0/linkedWorkspaces": { /** * Get linked Security Workspaces * @description Retrieve all Security Workspaces linked with the Jira site. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ get: operations["getLinkedWorkspaces"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; }; }; "/rest/security/1.0/linkedWorkspaces/{workspaceId}": { /** * Get a linked Security Workspace by ID * @description Retrieve a specific Security Workspace linked to the Jira site for the given workspace ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ get: operations["getLinkedWorkspaceById"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; }; }; "/rest/security/1.0/bulk": { /** * Submit Vulnerability data * @description Update / Insert Vulnerability data. * * Vulnerabilities are identified by their ID, any existing Vulnerability data with the same ID will be replaced if it exists and the updateSequenceNumber of the existing data is less than the incoming data. * * Submissions are performed asynchronously. Most updates are available within a short period of time but may take some time during peak load and/or maintenance times. The GET vulnerability endpoint can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple Vulnerabilities being submitted in one request, each is validated individually prior to submission. Details of Vulnerabilities that failed submission (if any) are available in the response object. * * A maximum of 1000 vulnerabilities can be submitted in one request. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ post: operations["submitVulnerabilities"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; }; }; "/rest/security/1.0/bulkByProperties": { /** * Delete Vulnerabilities by Property * @description Bulk delete all Vulnerabilities that match the given request. * * One or more query params must be supplied to specify Properties to delete by. * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). * Read the POST bulk endpoint documentation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * * Deletion is performed asynchronously. The GET vulnerability endpoint can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteVulnerabilitiesByProperty"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Security Information module it will be rejected with a 403. * * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; }; }; "/rest/security/1.0/vulnerability/{vulnerabilityId}": { /** * Get a Vulnerability by ID * @description Retrieve the currently stored Vulnerability data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ get: operations["getVulnerabilityById"]; /** * Delete a Vulnerability by ID * @description Delete the Vulnerability data currently stored for the given ID. * * Deletion is performed asynchronously. The GET vulnerability endpoint can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteVulnerabilityById"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Security Information module it will be rejected with a 403. * * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; }; }; "/rest/operations/1.0/linkedWorkspaces/bulk": { /** * Submit Operations Workspace Ids * @description Insert Operations Workspace IDs to establish a relationship between them and the Jira site the app is installed in. If a relationship between the Workspace ID and Jira already exists then the workspace ID will be ignored and Jira will process the rest of the entries. * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ post: operations["submitOperationsWorkspaces"]; /** * Delete Operations Workpaces by Id * @description Bulk delete all Operations Workspaces that match the given request. * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. * * e.g. DELETE /bulk?workspaceIds=111-222-333,444-555-666 */ delete: operations["deleteWorkspaces"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Operations module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; "/rest/operations/1.0/linkedWorkspaces": { /** * Get all Operations Workspace IDs or a specific Operations Workspace by ID * @description Retrieve the either all Operations Workspace IDs associated with the Jira site or a specific Operations Workspace ID for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * e.g. GET /workspace?workspaceId=111-222-333 * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ get: operations["getWorkspaces"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; "/rest/operations/1.0/bulk": { /** * Submit Incident or Review data * @description Update / insert Incident or Review data. * * Incidents and reviews are identified by their ID, and existing Incident and Review data for the same ID will be replaced if it exists and the updateSequenceNumber of existing data is less than the incoming data. * * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getIncidentById or getReviewById operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple Incidents and Reviews being submitted in one request, each is validated individually prior to submission. Details of which entities failed submission (if any) are available in the response object. * * A maximum of 1000 incidents can be submitted in one request. * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ post: operations["submitEntity"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; "/rest/operations/1.0/bulkByProperties": { /** * Delete Incidents or Review by Property * @description Bulk delete all Entties that match the given request. * * One or more query params must be supplied to specify Properties to delete by. * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). * See the documentation for the submitEntity operation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * * Deletion is performed asynchronously. The getIncidentById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteEntityByProperty"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; "/rest/operations/1.0/incidents/{incidentId}": { /** * Get a Incident by ID * @description Retrieve the currently stored Incident data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ get: operations["getIncidentById"]; /** * Delete a Incident by ID * @description Delete the Incident data currently stored for the given ID. * * Deletion is performed asynchronously. The getIncidentById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteIncidentById"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; "/rest/operations/1.0/post-incident-reviews/{reviewId}": { /** * Get a Review by ID * @description Retrieve the currently stored Review data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ get: operations["getReviewById"]; /** * Delete a Review by ID * @description Delete the Review data currently stored for the given ID. * * Deletion is performed asynchronously. The getReviewById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteReviewById"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; "/rest/devopscomponents/1.0/bulk": { /** * Submit DevOps Components * @description Update / insert DevOps Component data. * * Components are identified by their ID, and existing Component data for the same ID will be replaced if it exists and the updateSequenceNumber of existing data is less than the incoming data. * * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getComponentById operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple Components being submitted in one request, each is validated individually prior to submission. Details of which Components failed submission (if any) are available in the response object. * * A maximum of 1000 components can be submitted in one request. * * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ post: operations["submitComponents"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the DevOps Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; "/rest/devopscomponents/1.0/bulkByProperties": { /** * Delete DevOps Components by Property * @description Bulk delete all Components that match the given request. * * One or more query params must be supplied to specify Properties to delete by. * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). * See the documentation for the submitComponents operation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * * Deletion is performed asynchronously. The getComponentById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteComponentsByProperty"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; "/rest/devopscomponents/1.0/{componentId}": { /** * Get a Component by ID * @description Retrieve the currently stored Component data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ get: operations["getComponentById"]; /** * Delete a Component by ID * @description Delete the Component data currently stored for the given ID. * * Deletion is performed asynchronously. The getComponentById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ delete: operations["deleteComponentById"]; parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; }; } export type webhooks = Record; export interface components { schemas: { AvatarUrlsBean: { /** * Format: uri * @description The URL of the item's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the item's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the item's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the item's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description Details about a board. */ Board: { admins?: { groups?: { name?: string; /** Format: uri */ self?: string; }[]; users?: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; /** @description Whether the user is active. */ active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** * Format: uri * @description The URL of the user's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the user's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the user's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the user's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ displayName?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The key of the user. */ key?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The username of the user. */ name?: string; /** * Format: uri * @description The URL of the user. */ self?: string; }[]; }; /** @description Whether the board can be edited. */ canEdit?: boolean; /** @description Whether the board is selected as a favorite. */ favourite?: boolean; /** * Format: int64 * @description The ID of the board. */ id?: number; /** @description Whether the board is private. */ isPrivate?: boolean; /** @description The container that the board is located in. */ location?: { /** Format: uri */ avatarURI?: string; displayName?: string; name?: string; /** Format: int64 */ projectId?: number; projectKey?: string; projectName?: string; projectTypeKey?: string; userAccountId?: string; /** Format: int64 */ userId?: number; }; /** @description The name of the board. */ name?: string; /** * Format: uri * @description The URL of the board. */ self?: string; /** @description The type the board. */ type?: string; }; /** @description The users and groups who own the board. */ BoardAdminsBean: { groups?: { name?: string; /** Format: uri */ self?: string; }[]; users?: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; /** @description Whether the user is active. */ active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** * Format: uri * @description The URL of the user's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the user's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the user's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the user's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ displayName?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The key of the user. */ key?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The username of the user. */ name?: string; /** * Format: uri * @description The URL of the user. */ self?: string; }[]; }; BoardConfigBean: { columnConfig?: { columns?: { /** Format: int32 */ max?: number; /** Format: int32 */ min?: number; name?: string; statuses?: { id?: string; /** Format: uri */ self?: string; }[]; }[]; constraintType?: string; }; estimation?: { field?: { displayName?: string; fieldId?: string; }; type?: string; }; filter?: { id?: string; /** Format: uri */ self?: string; }; /** Format: int64 */ id?: number; location?: { projectKeyOrId?: string; /** @enum {string} */ type?: "project" | "user"; }; name?: string; ranking?: { /** Format: int64 */ rankCustomFieldId?: number; }; /** Format: uri */ self?: string; subQuery?: { query?: string; }; type?: string; }; BoardCreateBean: { /** Format: int64 */ filterId?: number; location?: { projectKeyOrId?: string; /** @enum {string} */ type?: "project" | "user"; }; name?: string; /** @enum {string} */ type?: "kanban" | "scrum" | "agility"; }; BoardFilterBean: { /** Format: int64 */ id?: number; name?: string; /** Format: uri */ self?: string; }; /** @description The container that the board is located in. */ BoardLocationBean: { /** Format: uri */ avatarURI?: string; displayName?: string; name?: string; /** Format: int64 */ projectId?: number; projectKey?: string; projectName?: string; projectTypeKey?: string; userAccountId?: string; /** Format: int64 */ userId?: number; }; /** @description A change item. */ ChangeDetails: { /** @description The name of the field changed. */ field?: string; /** @description The ID of the field changed. */ fieldId?: string; /** @description The type of the field changed. */ fieldtype?: string; /** @description The details of the original value. */ from?: string; /** @description The details of the original value as a string. */ fromString?: string; /** @description The details of the new value. */ to?: string; /** @description The details of the new value as a string. */ toString?: string; }; /** @description A log of changes made to issue fields. Changelogs related to workflow associations are currently being deprecated. */ Changelog: { /** @description The user who made the change. */ author?: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ accountType?: string; /** @description Whether the user is active. */ active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** * Format: uri * @description The URL of the item's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the item's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the item's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the item's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The display name of the user. Depending on the user’s privacy settings, this may return an alternative value. */ displayName?: string; /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ emailAddress?: string; /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ key?: string; /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ name?: string; /** @description The URL of the user. */ self?: string; /** @description The time zone specified in the user's profile. Depending on the user’s privacy settings, this may be returned as null. */ timeZone?: string; }; /** * Format: date-time * @description The date on which the change took place. */ created?: string; /** @description The history metadata associated with the changed. */ historyMetadata?: { /** @description The activity described in the history record. */ activityDescription?: string; /** @description The key of the activity described in the history record. */ activityDescriptionKey?: string; /** @description Details of the user whose action created the history record. */ actor?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description Details of the cause that triggered the creation the history record. */ cause?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description The description of the history record. */ description?: string; /** @description The description key of the history record. */ descriptionKey?: string; /** @description The description of the email address associated the history record. */ emailDescription?: string; /** @description The description key of the email address associated the history record. */ emailDescriptionKey?: string; /** @description Additional arbitrary information about the history record. */ extraData?: { [key: string]: string; }; /** @description Details of the system that generated the history record. */ generator?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description The type of the history record. */ type?: string; [key: string]: unknown; }; /** @description The ID of the changelog. */ id?: string; /** @description The list of items changed. */ items?: readonly { /** @description The name of the field changed. */ field?: string; /** @description The ID of the field changed. */ fieldId?: string; /** @description The type of the field changed. */ fieldtype?: string; /** @description The details of the original value. */ from?: string; /** @description The details of the original value as a string. */ fromString?: string; /** @description The details of the new value. */ to?: string; /** @description The details of the new value as a string. */ toString?: string; }[]; }; ColorBean: { /** @enum {string} */ key?: "color_1" | "color_2" | "color_3" | "color_4" | "color_5" | "color_6" | "color_7" | "color_8" | "color_9" | "color_10" | "color_11" | "color_12" | "color_13" | "color_14"; }; ColumnBean: { /** Format: int32 */ max?: number; /** Format: int32 */ min?: number; name?: string; statuses?: { id?: string; /** Format: uri */ self?: string; }[]; }; ColumnConfigBean: { columns?: { /** Format: int32 */ max?: number; /** Format: int32 */ min?: number; name?: string; statuses?: { id?: string; /** Format: uri */ self?: string; }[]; }[]; constraintType?: string; }; Entry: { errors?: string[]; /** Format: int64 */ issueId?: number; issueKey?: string; /** Format: int32 */ status?: number; }; EpicRankRequestBean: { rankAfterEpic?: string; rankBeforeEpic?: string; /** Format: int64 */ rankCustomFieldId?: number; }; EpicUpdateBean: { color?: { /** @enum {string} */ key?: "color_1" | "color_2" | "color_3" | "color_4" | "color_5" | "color_6" | "color_7" | "color_8" | "color_9" | "color_10" | "color_11" | "color_12" | "color_13" | "color_14"; }; done?: boolean; name?: string; summary?: string; }; EstimationConfigBean: { field?: { displayName?: string; fieldId?: string; }; type?: string; }; EstimationConfigurationBean: { localisedDescription?: string; localisedName?: string; /** @enum {string} */ value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; }; EstimationFieldBean: { displayName?: string; fieldId?: string; }; FeatureBean: { /** @enum {string} */ boardFeature?: "SIMPLE_ROADMAP" | "BACKLOG" | "SPRINTS" | "CALENDAR" | "DEVTOOLS" | "REPORTS" | "ESTIMATION" | "PAGES" | "CODE" | "SECURITY" | "REQUESTS" | "INCIDENTS" | "RELEASES" | "DEPLOYMENTS" | "ISSUE_NAVIGATOR" | "ON_CALL_SCHEDULE" | "BOARD" | "GOALS" | "LIST_VIEW"; /** Format: int64 */ boardId?: number; featureId?: string; /** @enum {string} */ featureType?: "BASIC" | "ESTIMATION"; imageUri?: string; learnMoreArticleId?: string; learnMoreLink?: string; localisedDescription?: string; localisedGroup?: string; localisedName?: string; permissibleEstimationTypes?: ({ localisedDescription?: string; localisedName?: string; /** @enum {string} */ value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; })[]; /** @enum {string} */ state?: "ENABLED" | "DISABLED" | "COMING_SOON"; toggleLocked?: boolean; }; FeatureResponseBean: { features?: ({ /** @enum {string} */ boardFeature?: "SIMPLE_ROADMAP" | "BACKLOG" | "SPRINTS" | "CALENDAR" | "DEVTOOLS" | "REPORTS" | "ESTIMATION" | "PAGES" | "CODE" | "SECURITY" | "REQUESTS" | "INCIDENTS" | "RELEASES" | "DEPLOYMENTS" | "ISSUE_NAVIGATOR" | "ON_CALL_SCHEDULE" | "BOARD" | "GOALS" | "LIST_VIEW"; /** Format: int64 */ boardId?: number; featureId?: string; /** @enum {string} */ featureType?: "BASIC" | "ESTIMATION"; imageUri?: string; learnMoreArticleId?: string; learnMoreLink?: string; localisedDescription?: string; localisedGroup?: string; localisedName?: string; permissibleEstimationTypes?: ({ localisedDescription?: string; localisedName?: string; /** @enum {string} */ value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; })[]; /** @enum {string} */ state?: "ENABLED" | "DISABLED" | "COMING_SOON"; toggleLocked?: boolean; })[]; }; FeatureToggleRequestBean: { /** Format: int64 */ boardId?: number; enabling?: boolean; feature?: string; }; FieldEditBean: { value?: string; }; /** @description The metadata describing an issue field. */ FieldMetadata: { /** @description The list of values allowed in the field. */ allowedValues?: readonly unknown[]; /** @description The URL that can be used to automatically complete the field. */ autoCompleteUrl?: string; /** @description The configuration properties. */ configuration?: { [key: string]: unknown; }; /** @description The default value of the field. */ defaultValue?: unknown; /** @description Whether the field has a default value. */ hasDefaultValue?: boolean; /** @description The key of the field. */ key: string; /** @description The name of the field. */ name: string; /** @description The list of operations that can be performed on the field. */ operations: readonly string[]; /** @description Whether the field is required. */ required: boolean; /** @description The data type of the field. */ schema: { /** @description If the field is a custom field, the configuration of the field. */ configuration?: { [key: string]: unknown; }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** * Format: int64 * @description If the field is a custom field, the custom ID of the field. */ customId?: number; /** @description When the data type is an array, the name of the field items within the array. */ items?: string; /** @description If the field is a system field, the name of the field. */ system?: string; /** @description The data type of the field. */ type: string; }; }; GroupBean: { name?: string; /** Format: uri */ self?: string; }; /** @description Details of issue history metadata. */ HistoryMetadata: { /** @description The activity described in the history record. */ activityDescription?: string; /** @description The key of the activity described in the history record. */ activityDescriptionKey?: string; /** @description Details of the user whose action created the history record. */ actor?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description Details of the cause that triggered the creation the history record. */ cause?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description The description of the history record. */ description?: string; /** @description The description key of the history record. */ descriptionKey?: string; /** @description The description of the email address associated the history record. */ emailDescription?: string; /** @description The description key of the email address associated the history record. */ emailDescriptionKey?: string; /** @description Additional arbitrary information about the history record. */ extraData?: { [key: string]: string; }; /** @description Details of the system that generated the history record. */ generator?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description The type of the history record. */ type?: string; [key: string]: unknown; }; /** @description Details of user or system associated with a issue history metadata item. */ HistoryMetadataParticipant: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; IncludedFields: { actuallyIncluded?: string[]; excluded?: string[]; included?: string[]; }; IssueAssignRequestBean: { issues?: string[]; }; /** @description Details about an issue. */ IssueBean: { /** @description Details of changelogs associated with the issue. */ changelog?: { /** @description The list of changelogs. */ histories?: readonly { /** @description The user who made the change. */ author?: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ accountType?: string; /** @description Whether the user is active. */ active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** * Format: uri * @description The URL of the item's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the item's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the item's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the item's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The display name of the user. Depending on the user’s privacy settings, this may return an alternative value. */ displayName?: string; /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ emailAddress?: string; /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ key?: string; /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ name?: string; /** @description The URL of the user. */ self?: string; /** @description The time zone specified in the user's profile. Depending on the user’s privacy settings, this may be returned as null. */ timeZone?: string; }; /** * Format: date-time * @description The date on which the change took place. */ created?: string; /** @description The history metadata associated with the changed. */ historyMetadata?: { /** @description The activity described in the history record. */ activityDescription?: string; /** @description The key of the activity described in the history record. */ activityDescriptionKey?: string; /** @description Details of the user whose action created the history record. */ actor?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description Details of the cause that triggered the creation the history record. */ cause?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description The description of the history record. */ description?: string; /** @description The description key of the history record. */ descriptionKey?: string; /** @description The description of the email address associated the history record. */ emailDescription?: string; /** @description The description key of the email address associated the history record. */ emailDescriptionKey?: string; /** @description Additional arbitrary information about the history record. */ extraData?: { [key: string]: string; }; /** @description Details of the system that generated the history record. */ generator?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description The type of the history record. */ type?: string; [key: string]: unknown; }; /** @description The ID of the changelog. */ id?: string; /** @description The list of items changed. */ items?: readonly { /** @description The name of the field changed. */ field?: string; /** @description The ID of the field changed. */ fieldId?: string; /** @description The type of the field changed. */ fieldtype?: string; /** @description The details of the original value. */ from?: string; /** @description The details of the original value as a string. */ fromString?: string; /** @description The details of the new value. */ to?: string; /** @description The details of the new value as a string. */ toString?: string; }[]; }[]; /** * Format: int32 * @description The maximum number of results that could be on the page. */ maxResults?: number; /** * Format: int32 * @description The index of the first item returned on the page. */ startAt?: number; /** * Format: int32 * @description The number of results on the page. */ total?: number; }; /** @description The metadata for the fields on the issue that can be amended. */ editmeta?: { fields?: { [key: string]: { /** @description The list of values allowed in the field. */ allowedValues?: readonly unknown[]; /** @description The URL that can be used to automatically complete the field. */ autoCompleteUrl?: string; /** @description The configuration properties. */ configuration?: { [key: string]: unknown; }; /** @description The default value of the field. */ defaultValue?: unknown; /** @description Whether the field has a default value. */ hasDefaultValue?: boolean; /** @description The key of the field. */ key: string; /** @description The name of the field. */ name: string; /** @description The list of operations that can be performed on the field. */ operations: readonly string[]; /** @description Whether the field is required. */ required: boolean; /** @description The data type of the field. */ schema: { /** @description If the field is a custom field, the configuration of the field. */ configuration?: { [key: string]: unknown; }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** * Format: int64 * @description If the field is a custom field, the custom ID of the field. */ customId?: number; /** @description When the data type is an array, the name of the field items within the array. */ items?: string; /** @description If the field is a system field, the name of the field. */ system?: string; /** @description The data type of the field. */ type: string; }; }; }; }; /** @description Expand options that include additional issue details in the response. */ expand?: string; fields?: { [key: string]: unknown; }; fieldsToInclude?: { actuallyIncluded?: string[]; excluded?: string[]; included?: string[]; }; /** @description The ID of the issue. */ id?: string; /** @description The key of the issue. */ key?: string; /** @description The ID and name of each field present on the issue. */ names?: { [key: string]: string; }; /** @description The operations that can be performed on the issue. */ operations?: components["schemas"]["Operations"]; /** @description Details of the issue properties identified in the request. */ properties?: { [key: string]: unknown; }; /** @description The rendered value of each field present on the issue. */ renderedFields?: { [key: string]: unknown; }; /** @description The schema describing each field present on the issue. */ schema?: { [key: string]: { /** @description If the field is a custom field, the configuration of the field. */ configuration?: { [key: string]: unknown; }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** * Format: int64 * @description If the field is a custom field, the custom ID of the field. */ customId?: number; /** @description When the data type is an array, the name of the field items within the array. */ items?: string; /** @description If the field is a system field, the name of the field. */ system?: string; /** @description The data type of the field. */ type: string; }; }; /** * Format: uri * @description The URL of the issue details. */ self?: string; /** @description The transitions that can be performed on the issue. */ transitions?: readonly ({ /** @description Expand options that include additional transition details in the response. */ expand?: string; /** @description Details of the fields associated with the issue transition screen. Use this information to populate `fields` and `update` in a transition request. */ fields?: { [key: string]: { /** @description The list of values allowed in the field. */ allowedValues?: readonly unknown[]; /** @description The URL that can be used to automatically complete the field. */ autoCompleteUrl?: string; /** @description The configuration properties. */ configuration?: { [key: string]: unknown; }; /** @description The default value of the field. */ defaultValue?: unknown; /** @description Whether the field has a default value. */ hasDefaultValue?: boolean; /** @description The key of the field. */ key: string; /** @description The name of the field. */ name: string; /** @description The list of operations that can be performed on the field. */ operations: readonly string[]; /** @description Whether the field is required. */ required: boolean; /** @description The data type of the field. */ schema: { /** @description If the field is a custom field, the configuration of the field. */ configuration?: { [key: string]: unknown; }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** * Format: int64 * @description If the field is a custom field, the custom ID of the field. */ customId?: number; /** @description When the data type is an array, the name of the field items within the array. */ items?: string; /** @description If the field is a system field, the name of the field. */ system?: string; /** @description The data type of the field. */ type: string; }; }; }; /** @description Whether there is a screen associated with the issue transition. */ hasScreen?: boolean; /** @description The ID of the issue transition. Required when specifying a transition to undertake. */ id?: string; /** @description Whether the transition is available to be performed. */ isAvailable?: boolean; /** @description Whether the issue has to meet criteria before the issue transition is applied. */ isConditional?: boolean; /** @description Whether the issue transition is global, that is, the transition is applied to issues regardless of their status. */ isGlobal?: boolean; /** @description Whether this is the initial issue transition for the workflow. */ isInitial?: boolean; looped?: boolean; /** @description The name of the issue transition. */ name?: string; /** @description Details of the issue status after the transition. */ to?: { /** @description The description of the status. */ description?: string; /** @description The URL of the icon used to represent the status. */ iconUrl?: string; /** @description The ID of the status. */ id?: string; /** @description The name of the status. */ name?: string; /** @description The scope of the field. */ scope?: { /** @description The project the item has scope in. */ project?: { /** @description The URLs of the project's avatars. */ avatarUrls?: { /** * Format: uri * @description The URL of the item's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the item's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the item's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the item's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The ID of the project. */ id?: string; /** @description The key of the project. */ key?: string; /** @description The name of the project. */ name?: string; /** @description The category the project belongs to. */ projectCategory?: { /** @description The name of the project category. */ description?: string; /** @description The ID of the project category. */ id?: string; /** @description The description of the project category. */ name?: string; /** @description The URL of the project category. */ self?: string; }; /** * @description The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes) of the project. * @enum {string} */ projectTypeKey?: "software" | "service_desk" | "business"; /** @description The URL of the project details. */ self?: string; /** @description Whether or not the project is simplified. */ simplified?: boolean; }; /** * @description The type of scope. * @enum {string} */ type?: "PROJECT" | "TEMPLATE"; [key: string]: unknown; }; /** @description The URL of the status. */ self?: string; /** @description The category assigned to the status. */ statusCategory?: { /** @description The name of the color used to represent the status category. */ colorName?: string; /** * Format: int64 * @description The ID of the status category. */ id?: number; /** @description The key of the status category. */ key?: string; /** @description The name of the status category. */ name?: string; /** @description The URL of the status category. */ self?: string; [key: string]: unknown; }; [key: string]: unknown; }; [key: string]: unknown; })[]; /** @description The versions of each field on the issue. */ versionedRepresentations?: { [key: string]: { [key: string]: unknown; }; }; }; IssueRankRequestBean: { issues?: string[]; rankAfterIssue?: string; rankBeforeIssue?: string; /** Format: int64 */ rankCustomFieldId?: number; }; /** @description Details of an issue transition. */ IssueTransition: { /** @description Expand options that include additional transition details in the response. */ expand?: string; /** @description Details of the fields associated with the issue transition screen. Use this information to populate `fields` and `update` in a transition request. */ fields?: { [key: string]: { /** @description The list of values allowed in the field. */ allowedValues?: readonly unknown[]; /** @description The URL that can be used to automatically complete the field. */ autoCompleteUrl?: string; /** @description The configuration properties. */ configuration?: { [key: string]: unknown; }; /** @description The default value of the field. */ defaultValue?: unknown; /** @description Whether the field has a default value. */ hasDefaultValue?: boolean; /** @description The key of the field. */ key: string; /** @description The name of the field. */ name: string; /** @description The list of operations that can be performed on the field. */ operations: readonly string[]; /** @description Whether the field is required. */ required: boolean; /** @description The data type of the field. */ schema: { /** @description If the field is a custom field, the configuration of the field. */ configuration?: { [key: string]: unknown; }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** * Format: int64 * @description If the field is a custom field, the custom ID of the field. */ customId?: number; /** @description When the data type is an array, the name of the field items within the array. */ items?: string; /** @description If the field is a system field, the name of the field. */ system?: string; /** @description The data type of the field. */ type: string; }; }; }; /** @description Whether there is a screen associated with the issue transition. */ hasScreen?: boolean; /** @description The ID of the issue transition. Required when specifying a transition to undertake. */ id?: string; /** @description Whether the transition is available to be performed. */ isAvailable?: boolean; /** @description Whether the issue has to meet criteria before the issue transition is applied. */ isConditional?: boolean; /** @description Whether the issue transition is global, that is, the transition is applied to issues regardless of their status. */ isGlobal?: boolean; /** @description Whether this is the initial issue transition for the workflow. */ isInitial?: boolean; looped?: boolean; /** @description The name of the issue transition. */ name?: string; /** @description Details of the issue status after the transition. */ to?: { /** @description The description of the status. */ description?: string; /** @description The URL of the icon used to represent the status. */ iconUrl?: string; /** @description The ID of the status. */ id?: string; /** @description The name of the status. */ name?: string; /** @description The scope of the field. */ scope?: { /** @description The project the item has scope in. */ project?: { /** @description The URLs of the project's avatars. */ avatarUrls?: { /** * Format: uri * @description The URL of the item's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the item's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the item's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the item's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The ID of the project. */ id?: string; /** @description The key of the project. */ key?: string; /** @description The name of the project. */ name?: string; /** @description The category the project belongs to. */ projectCategory?: { /** @description The name of the project category. */ description?: string; /** @description The ID of the project category. */ id?: string; /** @description The description of the project category. */ name?: string; /** @description The URL of the project category. */ self?: string; }; /** * @description The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes) of the project. * @enum {string} */ projectTypeKey?: "software" | "service_desk" | "business"; /** @description The URL of the project details. */ self?: string; /** @description Whether or not the project is simplified. */ simplified?: boolean; }; /** * @description The type of scope. * @enum {string} */ type?: "PROJECT" | "TEMPLATE"; [key: string]: unknown; }; /** @description The URL of the status. */ self?: string; /** @description The category assigned to the status. */ statusCategory?: { /** @description The name of the color used to represent the status category. */ colorName?: string; /** * Format: int64 * @description The ID of the status category. */ id?: number; /** @description The key of the status category. */ key?: string; /** @description The name of the status category. */ name?: string; /** @description The URL of the status category. */ self?: string; [key: string]: unknown; }; [key: string]: unknown; }; [key: string]: unknown; }; /** @description A list of editable field details. */ IssueUpdateMetadata: { fields?: { [key: string]: { /** @description The list of values allowed in the field. */ allowedValues?: readonly unknown[]; /** @description The URL that can be used to automatically complete the field. */ autoCompleteUrl?: string; /** @description The configuration properties. */ configuration?: { [key: string]: unknown; }; /** @description The default value of the field. */ defaultValue?: unknown; /** @description Whether the field has a default value. */ hasDefaultValue?: boolean; /** @description The key of the field. */ key: string; /** @description The name of the field. */ name: string; /** @description The list of operations that can be performed on the field. */ operations: readonly string[]; /** @description Whether the field is required. */ required: boolean; /** @description The data type of the field. */ schema: { /** @description If the field is a custom field, the configuration of the field. */ configuration?: { [key: string]: unknown; }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** * Format: int64 * @description If the field is a custom field, the custom ID of the field. */ customId?: number; /** @description When the data type is an array, the name of the field items within the array. */ items?: string; /** @description If the field is a system field, the name of the field. */ system?: string; /** @description The data type of the field. */ type: string; }; }; }; }; /** @description The schema of a field. */ JsonTypeBean: { /** @description If the field is a custom field, the configuration of the field. */ configuration?: { [key: string]: unknown; }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** * Format: int64 * @description If the field is a custom field, the custom ID of the field. */ customId?: number; /** @description When the data type is an array, the name of the field items within the array. */ items?: string; /** @description If the field is a system field, the name of the field. */ system?: string; /** @description The data type of the field. */ type: string; }; /** @description Details a link group, which defines issue operations. */ LinkGroup: { groups?: components["schemas"]["LinkGroup"][]; /** @description Details about the operations available in this version. */ header?: { href?: string; iconClass?: string; id?: string; label?: string; styleClass?: string; title?: string; /** Format: int32 */ weight?: number; }; id?: string; links?: { href?: string; iconClass?: string; id?: string; label?: string; styleClass?: string; title?: string; /** Format: int32 */ weight?: number; }[]; styleClass?: string; /** Format: int32 */ weight?: number; }; LocationBean: { projectKeyOrId?: string; /** @enum {string} */ type?: "project" | "user"; }; /** @description Details of the operations that can be performed on the issue. */ Operations: { /** @description Details of the link groups defining issue operations. */ linkGroups?: readonly components["schemas"]["LinkGroup"][]; [key: string]: unknown; }; PageBeanBoard: { isLast?: boolean; /** Format: int32 */ maxResults?: number; /** Format: int64 */ startAt?: number; /** Format: int64 */ total?: number; values?: { admins?: { groups?: { name?: string; /** Format: uri */ self?: string; }[]; users?: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; /** @description Whether the user is active. */ active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** * Format: uri * @description The URL of the user's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the user's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the user's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the user's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ displayName?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The key of the user. */ key?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The username of the user. */ name?: string; /** * Format: uri * @description The URL of the user. */ self?: string; }[]; }; /** @description Whether the board can be edited. */ canEdit?: boolean; /** @description Whether the board is selected as a favorite. */ favourite?: boolean; /** * Format: int64 * @description The ID of the board. */ id?: number; /** @description Whether the board is private. */ isPrivate?: boolean; /** @description The container that the board is located in. */ location?: { /** Format: uri */ avatarURI?: string; displayName?: string; name?: string; /** Format: int64 */ projectId?: number; projectKey?: string; projectName?: string; projectTypeKey?: string; userAccountId?: string; /** Format: int64 */ userId?: number; }; /** @description The name of the board. */ name?: string; /** * Format: uri * @description The URL of the board. */ self?: string; /** @description The type the board. */ type?: string; }[]; }; PageBeanBoardFilterBean: { isLast?: boolean; /** Format: int32 */ maxResults?: number; /** Format: int64 */ startAt?: number; /** Format: int64 */ total?: number; values?: { /** Format: int64 */ id?: number; name?: string; /** Format: uri */ self?: string; }[]; }; PageBeanQuickFilterBean: { isLast?: boolean; /** Format: int32 */ maxResults?: number; /** Format: int64 */ startAt?: number; /** Format: int64 */ total?: number; values?: { /** Format: int64 */ boardId?: number; description?: string; /** Format: int64 */ id?: number; jql?: string; name?: string; /** Format: int32 */ position?: number; }[]; }; /** @description A page of changelogs. */ PageOfChangelogs: { /** @description The list of changelogs. */ histories?: readonly { /** @description The user who made the change. */ author?: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ accountType?: string; /** @description Whether the user is active. */ active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** * Format: uri * @description The URL of the item's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the item's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the item's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the item's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The display name of the user. Depending on the user’s privacy settings, this may return an alternative value. */ displayName?: string; /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ emailAddress?: string; /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ key?: string; /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ name?: string; /** @description The URL of the user. */ self?: string; /** @description The time zone specified in the user's profile. Depending on the user’s privacy settings, this may be returned as null. */ timeZone?: string; }; /** * Format: date-time * @description The date on which the change took place. */ created?: string; /** @description The history metadata associated with the changed. */ historyMetadata?: { /** @description The activity described in the history record. */ activityDescription?: string; /** @description The key of the activity described in the history record. */ activityDescriptionKey?: string; /** @description Details of the user whose action created the history record. */ actor?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description Details of the cause that triggered the creation the history record. */ cause?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description The description of the history record. */ description?: string; /** @description The description key of the history record. */ descriptionKey?: string; /** @description The description of the email address associated the history record. */ emailDescription?: string; /** @description The description key of the email address associated the history record. */ emailDescriptionKey?: string; /** @description Additional arbitrary information about the history record. */ extraData?: { [key: string]: string; }; /** @description Details of the system that generated the history record. */ generator?: { /** @description The URL to an avatar for the user or system associated with a history record. */ avatarUrl?: string; /** @description The display name of the user or system associated with a history record. */ displayName?: string; /** @description The key of the display name of the user or system associated with a history record. */ displayNameKey?: string; /** @description The ID of the user or system associated with a history record. */ id?: string; /** @description The type of the user or system associated with a history record. */ type?: string; /** @description The URL of the user or system associated with a history record. */ url?: string; [key: string]: unknown; }; /** @description The type of the history record. */ type?: string; [key: string]: unknown; }; /** @description The ID of the changelog. */ id?: string; /** @description The list of items changed. */ items?: readonly { /** @description The name of the field changed. */ field?: string; /** @description The ID of the field changed. */ fieldId?: string; /** @description The type of the field changed. */ fieldtype?: string; /** @description The details of the original value. */ from?: string; /** @description The details of the original value as a string. */ fromString?: string; /** @description The details of the new value. */ to?: string; /** @description The details of the new value as a string. */ toString?: string; }[]; }[]; /** * Format: int32 * @description The maximum number of results that could be on the page. */ maxResults?: number; /** * Format: int32 * @description The index of the first item returned on the page. */ startAt?: number; /** * Format: int32 * @description The number of results on the page. */ total?: number; }; PartialSuccessBean: { entries?: { errors?: string[]; /** Format: int64 */ issueId?: number; issueKey?: string; /** Format: int32 */ status?: number; }[]; }; /** @description Details about a project. */ ProjectDetails: { /** @description The URLs of the project's avatars. */ avatarUrls?: { /** * Format: uri * @description The URL of the item's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the item's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the item's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the item's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The ID of the project. */ id?: string; /** @description The key of the project. */ key?: string; /** @description The name of the project. */ name?: string; /** @description The category the project belongs to. */ projectCategory?: { /** @description The name of the project category. */ description?: string; /** @description The ID of the project category. */ id?: string; /** @description The description of the project category. */ name?: string; /** @description The URL of the project category. */ self?: string; }; /** * @description The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes) of the project. * @enum {string} */ projectTypeKey?: "software" | "service_desk" | "business"; /** @description The URL of the project details. */ self?: string; /** @description Whether or not the project is simplified. */ simplified?: boolean; }; QuickFilterBean: { /** Format: int64 */ boardId?: number; description?: string; /** Format: int64 */ id?: number; jql?: string; name?: string; /** Format: int32 */ position?: number; }; RankingConfigBean: { /** Format: int64 */ rankCustomFieldId?: number; }; RelationBean: { id?: string; /** Format: uri */ self?: string; }; ReportBean: Record; ReportsResponseBean: { reports?: Record[]; }; /** @description The projects the item is associated with. Indicated for items associated with [next-gen projects](https://confluence.atlassian.com/x/loMyO). */ Scope: { /** @description The project the item has scope in. */ project?: { /** @description The URLs of the project's avatars. */ avatarUrls?: { /** * Format: uri * @description The URL of the item's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the item's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the item's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the item's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The ID of the project. */ id?: string; /** @description The key of the project. */ key?: string; /** @description The name of the project. */ name?: string; /** @description The category the project belongs to. */ projectCategory?: { /** @description The name of the project category. */ description?: string; /** @description The ID of the project category. */ id?: string; /** @description The description of the project category. */ name?: string; /** @description The URL of the project category. */ self?: string; }; /** * @description The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes) of the project. * @enum {string} */ projectTypeKey?: "software" | "service_desk" | "business"; /** @description The URL of the project details. */ self?: string; /** @description Whether or not the project is simplified. */ simplified?: boolean; }; /** * @description The type of scope. * @enum {string} */ type?: "PROJECT" | "TEMPLATE"; [key: string]: unknown; }; /** @description The result of a JQL search. */ SearchResults: { /** @description Expand options that include additional search result details in the response. */ expand?: string; /** @description The list of issues found by the search. */ issues?: readonly components["schemas"]["IssueBean"][]; /** * Format: int32 * @description The maximum number of results that could be on the page. */ maxResults?: number; /** @description The ID and name of each field in the search results. */ names?: { [key: string]: string; }; /** @description The schema describing the field types in the search results. */ schema?: { [key: string]: { /** @description If the field is a custom field, the configuration of the field. */ configuration?: { [key: string]: unknown; }; /** @description If the field is a custom field, the URI of the field. */ custom?: string; /** * Format: int64 * @description If the field is a custom field, the custom ID of the field. */ customId?: number; /** @description When the data type is an array, the name of the field items within the array. */ items?: string; /** @description If the field is a system field, the name of the field. */ system?: string; /** @description The data type of the field. */ type: string; }; }; /** * Format: int32 * @description The index of the first item returned on the page. */ startAt?: number; /** * Format: int32 * @description The number of results on the page. */ total?: number; /** @description Any warnings related to the JQL query. */ warningMessages?: readonly string[]; }; /** @description Details about the operations available in this version. */ SimpleLink: { href?: string; iconClass?: string; id?: string; label?: string; styleClass?: string; title?: string; /** Format: int32 */ weight?: number; }; SprintBean: { completeDate?: string; createdDate?: string; endDate?: string; goal?: string; /** Format: int64 */ id?: number; name?: string; /** Format: int64 */ originBoardId?: number; /** Format: uri */ self?: string; startDate?: string; state?: string; }; SprintCreateBean: { endDate?: string; goal?: string; name?: string; /** Format: int64 */ originBoardId?: number; startDate?: string; }; SprintSwapBean: { /** Format: int64 */ sprintToSwapWith?: number; }; /** @description A status category. */ StatusCategory: { /** @description The name of the color used to represent the status category. */ colorName?: string; /** * Format: int64 * @description The ID of the status category. */ id?: number; /** @description The key of the status category. */ key?: string; /** @description The name of the status category. */ name?: string; /** @description The URL of the status category. */ self?: string; [key: string]: unknown; }; /** @description A status. */ StatusDetails: { /** @description The description of the status. */ description?: string; /** @description The URL of the icon used to represent the status. */ iconUrl?: string; /** @description The ID of the status. */ id?: string; /** @description The name of the status. */ name?: string; /** @description The scope of the field. */ scope?: { /** @description The project the item has scope in. */ project?: { /** @description The URLs of the project's avatars. */ avatarUrls?: { /** * Format: uri * @description The URL of the item's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the item's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the item's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the item's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The ID of the project. */ id?: string; /** @description The key of the project. */ key?: string; /** @description The name of the project. */ name?: string; /** @description The category the project belongs to. */ projectCategory?: { /** @description The name of the project category. */ description?: string; /** @description The ID of the project category. */ id?: string; /** @description The description of the project category. */ name?: string; /** @description The URL of the project category. */ self?: string; }; /** * @description The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes) of the project. * @enum {string} */ projectTypeKey?: "software" | "service_desk" | "business"; /** @description The URL of the project details. */ self?: string; /** @description Whether or not the project is simplified. */ simplified?: boolean; }; /** * @description The type of scope. * @enum {string} */ type?: "PROJECT" | "TEMPLATE"; [key: string]: unknown; }; /** @description The URL of the status. */ self?: string; /** @description The category assigned to the status. */ statusCategory?: { /** @description The name of the color used to represent the status category. */ colorName?: string; /** * Format: int64 * @description The ID of the status category. */ id?: number; /** @description The key of the status category. */ key?: string; /** @description The name of the status category. */ name?: string; /** @description The URL of the status category. */ self?: string; [key: string]: unknown; }; [key: string]: unknown; }; StringList: Record; SubqueryBean: { query?: string; }; /** @description A project category. */ UpdatedProjectCategory: { /** @description The name of the project category. */ description?: string; /** @description The ID of the project category. */ id?: string; /** @description The description of the project category. */ name?: string; /** @description The URL of the project category. */ self?: string; }; UserBean: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; /** @description Whether the user is active. */ active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** * Format: uri * @description The URL of the user's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the user's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the user's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the user's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ displayName?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The key of the user. */ key?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The username of the user. */ name?: string; /** * Format: uri * @description The URL of the user. */ self?: string; }; UserBeanAvatarUrls: { /** * Format: uri * @description The URL of the user's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the user's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the user's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the user's 48x48 pixel avatar. */ "48x48"?: string; }; /** * @description User details permitted by the user's Atlassian Account privacy settings. However, be aware of these exceptions: * * * User record deleted from Atlassian: This occurs as the result of a right to be forgotten request. In this case, `displayName` provides an indication and other parameters have default values or are blank (for example, email is blank). * * User record corrupted: This occurs as a results of events such as a server import and can only happen to deleted users. In this case, `accountId` returns *unknown* and all other parameters have fallback values. * * User record unavailable: This usually occurs due to an internal service outage. In this case, all parameters have fallback values. */ UserDetails: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; /** @description The type of account represented by this user. This will be one of 'atlassian' (normal users), 'app' (application user) or 'customer' (Jira Service Desk customer user) */ accountType?: string; /** @description Whether the user is active. */ active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** * Format: uri * @description The URL of the item's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the item's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the item's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the item's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The display name of the user. Depending on the user’s privacy settings, this may return an alternative value. */ displayName?: string; /** @description The email address of the user. Depending on the user’s privacy settings, this may be returned as null. */ emailAddress?: string; /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ key?: string; /** @description This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. */ name?: string; /** @description The URL of the user. */ self?: string; /** @description The time zone specified in the user's profile. Depending on the user’s privacy settings, this may be returned as null. */ timeZone?: string; }; }; responses: never; parameters: never; requestBodies: never; headers: never; pathItems: never; } export type $defs = Record; export type external = Record; export interface operations { /** * Move issues to backlog * @description Move issues to the backlog. * This operation is equivalent to remove future and active sprints from a given set of issues. At most 50 issues may be moved at once. */ moveIssuesToBacklog: { requestBody: { content: { /** * @example { * "issues": [ * "10001", * "PR-1", * "PR-3" * ] * } */ "application/json": { issues?: string[]; }; }; }; responses: { /** @description Empty response is returned if operation was successful. */ 204: { content: never; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if user does not a have valid license or does not have permission to assign issues. */ 403: { content: never; }; /** @description Returned if sprint does not exist or the user cannot view it. */ 404: { content: never; }; }; }; /** * Move issues to backlog for board * @description Move issues to the backlog of a particular board (if they are already on that board). * This operation is equivalent to remove future and active sprints from a given set of issues if the board has sprints If the board does not have sprints this will put the issues back into the backlog from the board. At most 50 issues may be moved at once. */ moveIssuesToBacklogForBoard: { parameters: { path: { boardId: number; }; }; requestBody: { content: { /** * @example { * "issues": [ * "PR-1", * "10001", * "PR-3" * ], * "rankBeforeIssue": "PR-4", * "rankCustomFieldId": 10521 * } */ "application/json": { issues?: string[]; rankAfterIssue?: string; rankBeforeIssue?: string; /** Format: int64 */ rankCustomFieldId?: number; }; }; }; responses: { /** @description Empty response is returned if operation was successful. */ 204: { content: never; }; /** @description Returns the list of issue with status of rank operation. */ 207: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if user does not a have valid license or does not have permission to assign issues. */ 403: { content: never; }; /** @description Returned if sprint does not exist or the user cannot view it. */ 404: { content: never; }; }; }; /** * Get all boards * @description Returns all boards. This only includes boards that the user has permission to view. * * **Deprecation notice:** The required OAuth 2.0 scopes will be updated on February 15, 2024. * * * `read:board-scope:jira-software`, `read:project:jira` */ getAllBoards: { parameters: { query?: { /** @description The starting index of the returned boards. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of boards to return per page. See the 'Pagination' section at the top of this page for more details. */ maxResults?: number; /** @description Filters results to boards of the specified types. Valid values: scrum, kanban, simple. */ type?: Record; /** @description Filters results to boards that match or partially match the specified name. */ name?: string; /** @description Filters results to boards that are relevant to a project. Relevance means that the jql filter defined in board contains a reference to a project. */ projectKeyOrId?: string; accountIdLocation?: string; projectLocation?: string; /** @description Appends private boards to the end of the list. The name and type fields are excluded for security reasons. */ includePrivate?: boolean; /** @description If set to true, negate filters used for querying by location. By default false. */ negateLocationFiltering?: boolean; /** @description Ordering of the results by a given field. If not provided, values will not be sorted. Valid values: name. */ orderBy?: "name" | "-name" | "+name"; /** @description List of fields to expand for each board. Valid values: admins, permissions. */ expand?: string; /** @description Filters results to boards that are relevant to a project types. Support Jira Software, Jira Service Management. Valid values: software, service\_desk. By default software. */ projectTypeLocation?: string[]; /** @description Filters results to boards that are relevant to a filter. Not supported for next-gen boards. */ filterId?: number; }; }; responses: { /** @description Returns the requested boards, at the specified page of the results. */ 200: { content: { "application/json": { isLast?: boolean; /** Format: int32 */ maxResults?: number; /** Format: int64 */ startAt?: number; /** Format: int64 */ total?: number; values?: { admins?: { groups?: { name?: string; /** Format: uri */ self?: string; }[]; users?: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; /** @description Whether the user is active. */ active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** * Format: uri * @description The URL of the user's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the user's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the user's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the user's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ displayName?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The key of the user. */ key?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The username of the user. */ name?: string; /** * Format: uri * @description The URL of the user. */ self?: string; }[]; }; /** @description Whether the board can be edited. */ canEdit?: boolean; /** @description Whether the board is selected as a favorite. */ favourite?: boolean; /** * Format: int64 * @description The ID of the board. */ id?: number; /** @description Whether the board is private. */ isPrivate?: boolean; /** @description The container that the board is located in. */ location?: { /** Format: uri */ avatarURI?: string; displayName?: string; name?: string; /** Format: int64 */ projectId?: number; projectKey?: string; projectName?: string; projectTypeKey?: string; userAccountId?: string; /** Format: int64 */ userId?: number; }; /** @description The name of the board. */ name?: string; /** * Format: uri * @description The URL of the board. */ self?: string; /** @description The type the board. */ type?: string; }[]; }; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not have valid license. */ 403: { content: never; }; }; }; /** * Create board * @description Creates a new board. Board name, type and filter ID is required. * * * `name` \- Must be less than 255 characters. * * `type` \- Valid values: scrum, kanban * * `filterId` \- ID of a filter that the user has permissions to view. Note, if the user does not have the 'Create shared objects' permission and tries to create a shared board, a private board will be created instead (remember that board sharing depends on the filter sharing). * * `location` \- The container that the board will be located in. `location` must include the `type` property (Valid values: project, user). If choosing 'project', then a project must be specified by a `projectKeyOrId` property in `location`. If choosing 'user', the current user is chosen by default. The `projectKeyOrId` property should not be provided. * * Note: * * * If you want to create a new project with an associated board, use the [Jira platform REST API](https://docs.atlassian.com/jira/REST/latest). For more information, see the [Create project](#api-rest-api-3-project-post) method. The `projectTypeKey` for software boards must be 'software' and the `projectTemplateKey` must be either `com.pyxis.greenhopper.jira:gh-kanban-template` or `com.pyxis.greenhopper.jira:gh-scrum-template`. * * You can create a filter using the [Jira REST API](https://docs.atlassian.com/jira/REST/latest). For more information, see the [Create filter](#api-rest-api-3-filter-post) method. * * If you do not ORDER BY the Rank field for the filter of your board, you will not be able to reorder issues on the board. */ createBoard: { requestBody: { content: { /** * @example { * "filterId": 10040, * "location": { * "projectKeyOrId": "10000", * "type": "project" * }, * "name": "scrum board", * "type": "scrum" * } */ "application/json": { /** Format: int64 */ filterId?: number; location?: { projectKeyOrId?: string; /** @enum {string} */ type?: "project" | "user"; }; name?: string; /** @enum {string} */ type?: "kanban" | "scrum" | "agility"; }; }; }; responses: { /** @description Returns the created board. */ 201: { content: { "application/json": { admins?: { groups?: { name?: string; /** Format: uri */ self?: string; }[]; users?: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; /** @description Whether the user is active. */ active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** * Format: uri * @description The URL of the user's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the user's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the user's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the user's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ displayName?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The key of the user. */ key?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The username of the user. */ name?: string; /** * Format: uri * @description The URL of the user. */ self?: string; }[]; }; /** @description Whether the board can be edited. */ canEdit?: boolean; /** @description Whether the board is selected as a favorite. */ favourite?: boolean; /** * Format: int64 * @description The ID of the board. */ id?: number; /** @description Whether the board is private. */ isPrivate?: boolean; /** @description The container that the board is located in. */ location?: { /** Format: uri */ avatarURI?: string; displayName?: string; name?: string; /** Format: int64 */ projectId?: number; projectKey?: string; projectName?: string; projectTypeKey?: string; userAccountId?: string; /** Format: int64 */ userId?: number; }; /** @description The name of the board. */ name?: string; /** * Format: uri * @description The URL of the board. */ self?: string; /** @description The type the board. */ type?: string; }; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; }; }; /** * Get board by filter id * @description Returns any boards which use the provided filter id. This method can be executed by users without a valid software license in order to find which boards are using a particular filter. */ getBoardByFilterId: { parameters: { query?: { /** @description The starting index of the returned boards. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of boards to return per page. Default: 50. See the 'Pagination' section at the top of this page for more details. */ maxResults?: number; }; path: { /** @description Filters results to boards that are relevant to a filter. Not supported for next-gen boards. */ filterId: number; }; }; responses: { /** @description Returns the requested boards, at the specified page of the results. */ 200: { content: { "application/json": { isLast?: boolean; /** Format: int32 */ maxResults?: number; /** Format: int64 */ startAt?: number; /** Format: int64 */ total?: number; values?: { /** Format: int64 */ id?: number; name?: string; /** Format: uri */ self?: string; }[]; }; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; }; }; /** * Get board * @description Returns the board for the given board ID. This board will only be returned if the user has permission to view it. Admins without the view permission will see the board as a private one, so will see only a subset of the board's data (board location for instance). */ getBoard: { parameters: { path: { /** @description The ID of the requested board. */ boardId: number; }; }; responses: { /** @description Returns the requested board. */ 200: { content: { "application/json": { admins?: { groups?: { name?: string; /** Format: uri */ self?: string; }[]; users?: { /** @description The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. */ accountId?: string; /** @description Whether the user is active. */ active?: boolean; /** @description The avatars of the user. */ avatarUrls?: { /** * Format: uri * @description The URL of the user's 16x16 pixel avatar. */ "16x16"?: string; /** * Format: uri * @description The URL of the user's 24x24 pixel avatar. */ "24x24"?: string; /** * Format: uri * @description The URL of the user's 32x32 pixel avatar. */ "32x32"?: string; /** * Format: uri * @description The URL of the user's 48x48 pixel avatar. */ "48x48"?: string; }; /** @description The display name of the user. Depending on the user’s privacy setting, this may return an alternative value. */ displayName?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The key of the user. */ key?: string; /** * @description This property is deprecated in favor of `accountId` because of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. * The username of the user. */ name?: string; /** * Format: uri * @description The URL of the user. */ self?: string; }[]; }; /** @description Whether the board can be edited. */ canEdit?: boolean; /** @description Whether the board is selected as a favorite. */ favourite?: boolean; /** * Format: int64 * @description The ID of the board. */ id?: number; /** @description Whether the board is private. */ isPrivate?: boolean; /** @description The container that the board is located in. */ location?: { /** Format: uri */ avatarURI?: string; displayName?: string; name?: string; /** Format: int64 */ projectId?: number; projectKey?: string; projectName?: string; projectTypeKey?: string; userAccountId?: string; /** Format: int64 */ userId?: number; }; /** @description The name of the board. */ name?: string; /** * Format: uri * @description The URL of the board. */ self?: string; /** @description The type the board. */ type?: string; }; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the board does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Delete board * @description Deletes the board. Admin without the view permission can still remove the board. */ deleteBoard: { parameters: { path: { /** @description ID of the board to be deleted */ boardId: number; }; }; responses: { /** @description Returned if the board has been successfully removed. */ 204: { content: never; }; /** @description Returned if the user does not a have valid license, or when the user does not have the permission to delete the board, or when the user tried to delete a next-gen board. The user has to be a Jira Administrator or a board administrator to remove the board. Next-gen boards cannot be deleted, because next-gen software projects must have a board. */ 403: { content: never; }; /** @description Returned if a board with the given ID does not exist or the user does not have the permission to view the board. */ 404: { content: never; }; }; }; /** * Get issues for backlog * @description Returns all issues from the board's backlog, for the given board ID. This only includes issues that the user has permission to view. The backlog contains incomplete issues that are not assigned to any future or active sprint. Note, if the user does not have permission to view the board, no issues will be returned at all. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. */ getIssuesForBacklog: { parameters: { query?: { /** @description The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of issues to return per page. Default: 50. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated. */ maxResults?: number; /** * @description Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues. * Note that `username` and `userkey` can't be used as search terms for this parameter due to privacy reasons. Use `accountId` instead. */ jql?: string; /** @description Specifies whether to validate the JQL query or not. Default: true. */ validateQuery?: boolean; /** @description The list of fields to return for each issue. By default, all navigable and Agile fields are returned. */ fields?: Record[]; /** @description This parameter is currently not used. */ expand?: string; }; path: { /** @description The ID of the board that has the backlog containing the requested issues. */ boardId: number; }; }; responses: { /** @description Returns the requested issues, at the specified page of the results. */ 200: { content: { "application/json": components["schemas"]["SearchResults"]; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the board does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Get configuration * @description Get the board configuration. The response contains the following fields: * * * `id` \- ID of the board. * * `name` \- Name of the board. * * `filter` \- Reference to the filter used by the given board. * * `location` \- Reference to the container that the board is located in. Includes the container type (Valid values: project, user). * * `subQuery` (Kanban only) - JQL subquery used by the given board. * * `columnConfig` \- The column configuration lists the columns for the board, in the order defined in the column configuration. For each column, it shows the issue status mapping as well as the constraint type (Valid values: none, issueCount, issueCountExclSubs) for the min/max number of issues. Note, the last column with statuses mapped to it is treated as the "Done" column, which means that issues in that column will be marked as already completed. * * `estimation` (Scrum only) - Contains information about type of estimation used for the board. Valid values: none, issueCount, field. If the estimation type is "field", the ID and display name of the field used for estimation is also returned. Note, estimates for an issue can be updated by a PUT /rest/api/3/issue/\{issueIdOrKey\} request, however the fields must be on the screen. "timeoriginalestimate" field will never be on the screen, so in order to update it "originalEstimate" in "timetracking" field should be updated. * * `ranking` \- Contains information about custom field used for ranking in the given board. */ getConfiguration: { parameters: { path: { /** @description The ID of the board for which configuration is requested. */ boardId: number; }; }; responses: { /** @description Returns the configuration of the board for given boardId. */ 200: { content: { "application/json": { columnConfig?: { columns?: { /** Format: int32 */ max?: number; /** Format: int32 */ min?: number; name?: string; statuses?: { id?: string; /** Format: uri */ self?: string; }[]; }[]; constraintType?: string; }; estimation?: { field?: { displayName?: string; fieldId?: string; }; type?: string; }; filter?: { id?: string; /** Format: uri */ self?: string; }; /** Format: int64 */ id?: number; location?: { projectKeyOrId?: string; /** @enum {string} */ type?: "project" | "user"; }; name?: string; ranking?: { /** Format: int64 */ rankCustomFieldId?: number; }; /** Format: uri */ self?: string; subQuery?: { query?: string; }; type?: string; }; }; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if user does not a have valid license. */ 403: { content: never; }; /** @description Returned if board does not exist or the user cannot view it. */ 404: { content: never; }; }; }; /** * Get epics * @description Returns all epics from the board, for the given board ID. This only includes epics that the user has permission to view. Note, if the user does not have permission to view the board, no epics will be returned at all. */ getEpics: { parameters: { query?: { /** @description The starting index of the returned epics. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of epics to return per page. See the 'Pagination' section at the top of this page for more details. */ maxResults?: number; /** @description Filters results to epics that are either done or not done. Valid values: true, false. */ done?: string; }; path: { /** @description The ID of the board that contains the requested epics. */ boardId: number; }; }; responses: { /** @description Returns the requested epics, at the specified page of the results. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not have valid license. */ 403: { content: never; }; /** @description Returned if board does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Get issues without epic for board * @description Returns all issues that do not belong to any epic on a board, for a given board ID. This only includes issues that the user has permission to view. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. */ getIssuesWithoutEpicForBoard: { parameters: { query?: { /** @description The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of issues to return per page. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated. */ maxResults?: number; /** * @description Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues. * Note that `username` and `userkey` can't be used as search terms for this parameter due to privacy reasons. Use `accountId` instead. */ jql?: string; /** @description Specifies whether to validate the JQL query or not. Default: true. */ validateQuery?: boolean; /** @description The list of fields to return for each issue. By default, all navigable and Agile fields are returned. */ fields?: Record[]; /** @description A comma-separated list of the parameters to expand. */ expand?: string; }; path: { /** @description The ID of the board that contains the requested issues. */ boardId: number; }; }; responses: { /** @description Returns the requested issues, at the specified page of the results. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the board does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Get board issues for epic * @description Returns all issues that belong to an epic on the board, for the given epic ID and the board ID. This only includes issues that the user has permission to view. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. */ getBoardIssuesForEpic: { parameters: { query?: { /** @description The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of issues to return per page. Default: 50. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated. */ maxResults?: number; /** @description Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues. */ jql?: string; /** @description Specifies whether to validate the JQL query or not. Default: true. */ validateQuery?: boolean; /** @description The list of fields to return for each issue. By default, all navigable and Agile fields are returned. */ fields?: Record[]; /** @description A comma-separated list of the parameters to expand. */ expand?: string; }; path: { /** @description The ID of the board that contains the requested issues. */ boardId: number; /** @description The ID of the epic that contains the requested issues. */ epicId: number; }; }; responses: { /** @description Returns the requested issues, at the specified page of the results. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the board does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** Get features for board */ getFeaturesForBoard: { parameters: { path: { boardId: number; }; }; responses: { /** @description 200 response */ 200: { content: { "application/json": { features?: ({ /** @enum {string} */ boardFeature?: "SIMPLE_ROADMAP" | "BACKLOG" | "SPRINTS" | "CALENDAR" | "DEVTOOLS" | "REPORTS" | "ESTIMATION" | "PAGES" | "CODE" | "SECURITY" | "REQUESTS" | "INCIDENTS" | "RELEASES" | "DEPLOYMENTS" | "ISSUE_NAVIGATOR" | "ON_CALL_SCHEDULE" | "BOARD" | "GOALS" | "LIST_VIEW"; /** Format: int64 */ boardId?: number; featureId?: string; /** @enum {string} */ featureType?: "BASIC" | "ESTIMATION"; imageUri?: string; learnMoreArticleId?: string; learnMoreLink?: string; localisedDescription?: string; localisedGroup?: string; localisedName?: string; permissibleEstimationTypes?: ({ localisedDescription?: string; localisedName?: string; /** @enum {string} */ value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; })[]; /** @enum {string} */ state?: "ENABLED" | "DISABLED" | "COMING_SOON"; toggleLocked?: boolean; })[]; }; }; }; }; }; /** Toggle features */ toggleFeatures: { parameters: { path: { boardId: number; }; }; requestBody: { content: { "application/json": { /** Format: int64 */ boardId?: number; enabling?: boolean; feature?: string; }; }; }; responses: { /** @description 200 response */ 200: { content: { "application/json": { features?: ({ /** @enum {string} */ boardFeature?: "SIMPLE_ROADMAP" | "BACKLOG" | "SPRINTS" | "CALENDAR" | "DEVTOOLS" | "REPORTS" | "ESTIMATION" | "PAGES" | "CODE" | "SECURITY" | "REQUESTS" | "INCIDENTS" | "RELEASES" | "DEPLOYMENTS" | "ISSUE_NAVIGATOR" | "ON_CALL_SCHEDULE" | "BOARD" | "GOALS" | "LIST_VIEW"; /** Format: int64 */ boardId?: number; featureId?: string; /** @enum {string} */ featureType?: "BASIC" | "ESTIMATION"; imageUri?: string; learnMoreArticleId?: string; learnMoreLink?: string; localisedDescription?: string; localisedGroup?: string; localisedName?: string; permissibleEstimationTypes?: ({ localisedDescription?: string; localisedName?: string; /** @enum {string} */ value?: "STORY_POINTS" | "ORIGINAL_ESTIMATE"; })[]; /** @enum {string} */ state?: "ENABLED" | "DISABLED" | "COMING_SOON"; toggleLocked?: boolean; })[]; }; }; }; }; }; /** * Get issues for board * @description Returns all issues from a board, for a given board ID. This only includes issues that the user has permission to view. An issue belongs to the board if its status is mapped to the board's column. Epic issues do not belongs to the scrum boards. Note, if the user does not have permission to view the board, no issues will be returned at all. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. */ getIssuesForBoard: { parameters: { query?: { /** @description The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of issues to return per page. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated. */ maxResults?: number; /** * @description Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues. * Note that `username` and `userkey` can't be used as search terms for this parameter due to privacy reasons. Use `accountId` instead. */ jql?: string; /** @description Specifies whether to validate the JQL query or not. Default: true. */ validateQuery?: boolean; /** @description The list of fields to return for each issue. By default, all navigable and Agile fields are returned. */ fields?: Record[]; /** @description This parameter is currently not used. */ expand?: string; }; path: { /** @description The ID of the board that contains the requested issues. */ boardId: number; }; }; responses: { /** @description Returns the requested issues, at the specified page of the results. */ 200: { content: { "application/json": components["schemas"]["SearchResults"]; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the board does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Move issues to board * @description Move issues from the backog to the board (if they are already in the backlog of that board). * This operation either moves an issue(s) onto a board from the backlog (by adding it to the issueList for the board) Or transitions the issue(s) to the first column for a kanban board with backlog. At most 50 issues may be moved at once. */ moveIssuesToBoard: { parameters: { path: { boardId: number; }; }; requestBody: { content: { /** * @example { * "issues": [ * "PR-1", * "10001", * "PR-3" * ], * "rankBeforeIssue": "PR-4", * "rankCustomFieldId": 10521 * } */ "application/json": { issues?: string[]; rankAfterIssue?: string; rankBeforeIssue?: string; /** Format: int64 */ rankCustomFieldId?: number; }; }; }; responses: { /** @description Empty response is returned if operation was successful. */ 204: { content: never; }; /** @description Returns the list of issue with status of rank operation. */ 207: { content: { "application/json": { entries?: { errors?: string[]; /** Format: int64 */ issueId?: number; issueKey?: string; /** Format: int32 */ status?: number; }[]; }; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if user does not a have valid license or does not have permission to assign issues. */ 403: { content: never; }; }; }; /** * Get projects * @description Returns all projects that are associated with the board, for the given board ID. If the user does not have permission to view the board, no projects will be returned at all. Returned projects are ordered by the name. * * A project is associated with a board if the board filter contains reference the project or there is an issue from the project that belongs to the board. * * The board filter contains reference the project only if JQL query guarantees that returned issues will be returned from the project set defined in JQL. For instance the query `project in (ABC, BCD) AND reporter = admin` have reference to ABC and BCD projects but query `project in (ABC, BCD) OR reporter = admin` doesn't have reference to any project. * * An issue belongs to the board if its status is mapped to the board's column. Epic issues do not belongs to the scrum boards. */ getProjects: { parameters: { query?: { /** @description The starting index of the returned projects. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of projects to return per page. See the 'Pagination' section at the top of this page for more details. */ maxResults?: number; }; path: { /** @description The ID of the board that contains returned projects. */ boardId: number; }; }; responses: { /** @description Returns the board's projects, at the specified page of the results. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if board does not exist or the user does not have permission to access it. */ 404: { content: never; }; }; }; /** * Get projects full * @description Returns all projects that are statically associated with the board, for the given board ID. Returned projects are ordered by the name. * * A project is associated with a board if the board filter contains reference the project. * * The board filter contains reference the project only if JQL query guarantees that returned issues will be returned from the project set defined in JQL. For instance the query `project in (ABC, BCD) AND reporter = admin` have reference to ABC and BCD projects but query `project in (ABC, BCD) OR reporter = admin` doesn't have reference to any project. */ getProjectsFull: { parameters: { path: { /** @description The ID of the board that contains returned projects. */ boardId: number; }; }; responses: { /** @description Returns the board's projects, at the specified page of the results. */ 200: { content: never; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if board does not exist or the user does not have permission to access it. */ 404: { content: never; }; }; }; /** * Get board property keys * @description Returns the keys of all properties for the board identified by the id. The user who retrieves the property keys is required to have permissions to view the board. */ getBoardPropertyKeys: { parameters: { path: { /** @description the ID of the board from which property keys will be returned. */ boardId: string; }; }; responses: { /** @description Returned if the board with given id exists. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the boardId is invalid (negative or not a number). */ 400: { content: never; }; /** @description Returned if the calling user is not authenticated. */ 401: { content: never; }; /** @description Returned if the board with given id does not exist, or if the property with given key is not found, or the user doesn't have permissions to see it. */ 404: { content: never; }; }; }; /** * Get board property * @description Returns the value of the property with a given key from the board identified by the provided id. The user who retrieves the property is required to have permissions to view the board. */ getBoardProperty: { parameters: { path: { /** @description the ID of the board from which the property will be returned. */ boardId: string; /** @description the key of the property to return. */ propertyKey: string; }; }; responses: { /** @description Returned if the board exists and the property was found. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the boardId is invalid (negative or not a number). */ 400: { content: never; }; /** @description Returned if the calling user is not authenticated. */ 401: { content: never; }; /** @description Returned if the board with given id does not exist, or if the property with given key is not found, or the user doesn't have permissions to see it. */ 404: { content: never; }; }; }; /** * Set board property * @description Sets the value of the specified board's property. * * You can use this resource to store a custom data against the board identified by the id. The user who stores the data is required to have permissions to modify the board. */ setBoardProperty: { parameters: { path: { /** @description the ID of the board on which the property will be set. */ boardId: string; /** @description the key of the board's property. The maximum length of the key is 255 bytes. */ propertyKey: string; }; }; /** @description The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. */ requestBody: { content: { "application/json": unknown; }; }; responses: { /** @description Returned if the board property is successfully updated. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the board property is successfully created. */ 201: { content: { "application/json": unknown; }; }; /** @description Returned if the boardId is invalid (negative or not a number). */ 400: { content: never; }; /** @description Returned if the calling user is not authenticated. */ 401: { content: never; }; /** @description Returned if the board with given id does not exist or the user doesn't have permissions to see it. */ 404: { content: never; }; }; }; /** * Delete board property * @description Removes the property from the board identified by the id. Ths user removing the property is required to have permissions to modify the board. */ deleteBoardProperty: { parameters: { path: { /** @description the id of the board from which the property will be removed. */ boardId: string; /** @description the key of the property to remove. */ propertyKey: string; }; }; responses: { /** @description Returned if the board property was removed successfully. */ 204: { content: never; }; /** @description Returned if the boardId is invalid (negative or not a number). */ 400: { content: never; }; /** @description Returned if the calling user is not authenticated. */ 401: { content: never; }; /** @description Returned if the board with given id does not exist, or if the property with given key is not found, or the user doesn't have permissions to see it. */ 404: { content: never; }; }; }; /** * Get all quick filters * @description Returns all quick filters from a board, for a given board ID. */ getAllQuickFilters: { parameters: { query?: { /** @description The starting index of the returned quick filters. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of sprints to return per page. See the 'Pagination' section at the top of this page for more details. */ maxResults?: number; }; path: { /** @description The ID of the board that contains the requested quick filters. */ boardId: number; }; }; responses: { /** @description Returns the requested quick filters, at the specified page of the results. Quick filters will be ordered first by position. */ 200: { content: { "application/json": { isLast?: boolean; /** Format: int32 */ maxResults?: number; /** Format: int64 */ startAt?: number; /** Format: int64 */ total?: number; values?: { /** Format: int64 */ boardId?: number; description?: string; /** Format: int64 */ id?: number; jql?: string; name?: string; /** Format: int32 */ position?: number; }[]; }; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if board does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Get quick filter * @description Returns the quick filter for a given quick filter ID. The quick filter will only be returned if the user can view the board that the quick filter belongs to. */ getQuickFilter: { parameters: { path: { boardId: number; /** @description The ID of the requested quick filter. */ quickFilterId: number; }; }; responses: { /** @description Returns the requested quick filter. */ 200: { content: { "application/json": { /** Format: int64 */ boardId?: number; description?: string; /** Format: int64 */ id?: number; jql?: string; name?: string; /** Format: int32 */ position?: number; }; }; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the board with given id does not exist or if the quick filter with given id is not found or the user doesn't have permissions to see it. */ 404: { content: never; }; }; }; /** Get reports for board */ getReportsForBoard: { parameters: { path: { boardId: number; }; }; responses: { /** @description 200 response */ 200: { content: { "application/json": { reports?: Record[]; }; }; }; }; }; /** * Get all sprints * @description Returns all sprints from a board, for a given board ID. This only includes sprints that the user has permission to view. */ getAllSprints: { parameters: { query?: { /** @description The starting index of the returned sprints. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of sprints to return per page. See the 'Pagination' section at the top of this page for more details. */ maxResults?: number; /** @description Filters results to sprints in specified states. Valid values: future, active, closed. You can define multiple states separated by commas, e.g. state=active,closed */ state?: Record; }; path: { /** @description The ID of the board that contains the requested sprints. */ boardId: number; }; }; responses: { /** @description Returns the requested sprints, at the specified page of the results. Sprints will be ordered first by state (i.e. closed, active, future) then by their position in the backlog. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if board does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Get board issues for sprint * @description Get all issues you have access to that belong to the sprint from the board. Issue returned from this resource contains additional fields like: sprint, closedSprints, flagged and epic. Issues are returned ordered by rank. JQL order has higher priority than default rank. */ getBoardIssuesForSprint: { parameters: { query?: { /** @description The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of issues to return per page. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated. */ maxResults?: number; /** * @description Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues. * Note that `username` and `userkey` can't be used as search terms for this parameter due to privacy reasons. Use `accountId` instead. */ jql?: string; /** @description Specifies whether to validate the JQL query or not. Default: true. */ validateQuery?: boolean; /** @description The list of fields to return for each issue. By default, all navigable and Agile fields are returned. */ fields?: Record[]; /** @description A comma-separated list of the parameters to expand. */ expand?: string; }; path: { /** @description The ID of the board that contains requested issues. */ boardId: number; /** @description The ID of the sprint that contains requested issues. */ sprintId: number; }; }; responses: { /** @description Returns the requested issues, at the specified page of the results. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the board does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Get all versions * @description Returns all versions from a board, for a given board ID. This only includes versions that the user has permission to view. Note, if the user does not have permission to view the board, no versions will be returned at all. Returned versions are ordered by the name of the project from which they belong and then by sequence defined by user. */ getAllVersions: { parameters: { query?: { /** @description The starting index of the returned versions. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of versions to return per page. See the 'Pagination' section at the top of this page for more details. */ maxResults?: number; /** @description Filters results to versions that are either released or unreleased. Valid values: true, false. */ released?: string; }; path: { /** @description The ID of the board that contains the requested versions. */ boardId: number; }; }; responses: { /** @description Returns the requested versions, at the specified page of the results. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if board does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Get issues without epic * @description Returns all issues that do not belong to any epic. This only includes issues that the user has permission to view. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. **Note:** If you are querying a next-gen project, do not use this operation. Instead, search for issues that don't belong to an epic by using the [Search for issues using JQL](https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-rest-api-2-search-get) operation in the Jira platform REST API. Build your JQL query using the `parent is empty` clause. For more information on the `parent` JQL field, see [Advanced searching](https://confluence.atlassian.com/x/dAiiLQ#Advancedsearching-fieldsreference-Parent). */ getIssuesWithoutEpic: { parameters: { query?: { /** @description The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of issues to return per page. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated. */ maxResults?: number; /** @description Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues. */ jql?: string; /** @description Specifies whether to validate the JQL query or not. Default: true. */ validateQuery?: boolean; /** @description The list of fields to return for each issue. By default, all navigable and Agile fields are returned. */ fields?: Record[]; /** @description A comma-separated list of the parameters to expand. */ expand?: string; }; }; responses: { /** @description Returns the requested issues, at the specified page of the results. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; }; }; /** * Remove issues from epic * @description Removes issues from epics. The user needs to have the edit issue permission for all issue they want to remove from epics. The maximum number of issues that can be moved in one operation is 50. **Note:** This operation does not work for epics in next-gen projects. Instead, update the issue using `\{ fields: \{ parent: \{\} \} \}` */ removeIssuesFromEpic: { requestBody: { content: { /** * @example { * "issues": [ * "10001", * "PR-1", * "PR-3" * ] * } */ "application/json": { issues?: string[]; }; }; }; responses: { /** @description Empty response is returned if operation was successful. */ 204: { content: never; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license or does not have permission to assign issues. */ 403: { content: never; }; /** @description Returned if the epic does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Get epic * @description Returns the epic for a given epic ID. This epic will only be returned if the user has permission to view it. **Note:** This operation does not work for epics in next-gen projects. */ getEpic: { parameters: { path: { /** @description The id or key of the requested epic. */ epicIdOrKey: string; }; }; responses: { /** @description Returns the requested epic. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the epic does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Partially update epic * @description Performs a partial update of the epic. A partial update means that fields not present in the request JSON will not be updated. Valid values for color are `color_1` to `color_9`. **Note:** This operation does not work for epics in next-gen projects. */ partiallyUpdateEpic: { parameters: { path: { /** @description The id or key of the epic to update. */ epicIdOrKey: string; }; }; requestBody: { content: { /** * @example { * "color": { * "key": "color_6" * }, * "done": true, * "name": "epic 2", * "summary": "epic 2 summary" * } */ "application/json": { color?: { /** @enum {string} */ key?: "color_1" | "color_2" | "color_3" | "color_4" | "color_5" | "color_6" | "color_7" | "color_8" | "color_9" | "color_10" | "color_11" | "color_12" | "color_13" | "color_14"; }; done?: boolean; name?: string; summary?: string; }; }; }; responses: { /** @description Updated epic */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license or edit issue permission. */ 403: { content: never; }; /** @description Returned if the epic does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Get issues for epic * @description Returns all issues that belong to the epic, for the given epic ID. This only includes issues that the user has permission to view. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. **Note:** If you are querying a next-gen project, do not use this operation. Instead, search for issues that belong to an epic by using the [Search for issues using JQL](https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-rest-api-2-search-get) operation in the Jira platform REST API. Build your JQL query using the `parent` clause. For more information on the `parent` JQL field, see [Advanced searching](https://confluence.atlassian.com/x/dAiiLQ#Advancedsearching-fieldsreference-Parent). */ getIssuesForEpic: { parameters: { query?: { /** @description The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of issues to return per page. Default: 50. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated. */ maxResults?: number; /** * @description Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues. * Note that `username` and `userkey` can't be used as search terms for this parameter due to privacy reasons. Use `accountId` instead. */ jql?: string; /** @description Specifies whether to validate the JQL query or not. Default: true. */ validateQuery?: boolean; /** @description The list of fields to return for each issue. By default, all navigable and Agile fields are returned. */ fields?: Record[]; /** @description A comma-separated list of the parameters to expand. */ expand?: string; }; path: { /** @description The id or key of the epic that contains the requested issues. */ epicIdOrKey: string; }; }; responses: { /** @description Returns the requested issues, at the specified page of the results. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the epic does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Move issues to epic * @description Moves issues to an epic, for a given epic id. Issues can be only in a single epic at the same time. That means that already assigned issues to an epic, will not be assigned to the previous epic anymore. The user needs to have the edit issue permission for all issue they want to move and to the epic. The maximum number of issues that can be moved in one operation is 50. **Note:** This operation does not work for epics in next-gen projects. */ moveIssuesToEpic: { parameters: { path: { /** @description The id or key of the epic that you want to assign issues to. */ epicIdOrKey: string; }; }; requestBody: { content: { /** * @example { * "issues": [ * "10001", * "PR-1", * "PR-3" * ] * } */ "application/json": { issues?: string[]; }; }; }; responses: { /** @description Empty response is returned if operation was successful. */ 204: { content: never; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license or does not have edit issue permission for all issues to assign or for the epic. */ 403: { content: never; }; /** @description Returned if the epic does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Rank epics * @description Moves (ranks) an epic before or after a given epic. * * If rankCustomFieldId is not defined, the default rank field will be used. * * **Note:** This operation does not work for epics in next-gen projects. */ rankEpics: { parameters: { path: { /** @description The id or key of the epic to rank. */ epicIdOrKey: string; }; }; /** @description bean which contains the information where the given epic should be ranked. */ requestBody: { content: { /** * @example { * "rankBeforeEpic": "10000", * "rankCustomFieldId": 10521 * } */ "application/json": { rankAfterEpic?: string; rankBeforeEpic?: string; /** Format: int64 */ rankCustomFieldId?: number; }; }; }; responses: { /** @description Empty response is returned if operation was successful. */ 204: { content: never; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if user does not a have valid license or does not have permission to rank. To rank issues user have to have schedule issue permission for epics that they want to rank. */ 403: { content: never; }; /** @description Returned when the given epics in the path parameter or the request body do not exist. */ 404: { content: never; }; }; }; /** * Rank issues * @description Moves (ranks) issues before or after a given issue. At most 50 issues may be ranked at once. * * This operation may fail for some issues, although this will be rare. In that case the 207 status code is returned for the whole response and detailed information regarding each issue is available in the response body. * * If rankCustomFieldId is not defined, the default rank field will be used. */ rankIssues: { /** @description bean which contains list of issues to rank and information where it should be ranked. */ requestBody: { content: { /** * @example { * "issues": [ * "PR-1", * "10001", * "PR-3" * ], * "rankBeforeIssue": "PR-4", * "rankCustomFieldId": 10521 * } */ "application/json": { issues?: string[]; rankAfterIssue?: string; rankBeforeIssue?: string; /** Format: int64 */ rankCustomFieldId?: number; }; }; }; responses: { /** @description Empty response is returned if operation was successful. */ 204: { content: never; }; /** @description Returns the list of issue with status of rank operation. */ 207: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if user does not a have valid license or does not have permission to rank. To rank issues user has to have schedule issue permission for issues that they want to rank. */ 403: { content: never; }; }; }; /** * Get issue * @description Returns a single issue, for a given issue ID or issue key. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. */ getIssue: { parameters: { query?: { /** @description The list of fields to return for each issue. By default, all navigable and Agile fields are returned. */ fields?: Record[]; /** @description A comma-separated list of the parameters to expand. */ expand?: string; /** @description A boolean indicating whether the issue retrieved by this method should be added to the current user's issue history */ updateHistory?: boolean; }; path: { /** @description The ID or key of the requested issue. */ issueIdOrKey: string; }; }; responses: { /** @description Returns the requested issue. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** * @description Returned in these cases: * * * the issue does not exist * * the user does not have permission to view issue */ 404: { content: never; }; }; }; /** * Get issue estimation for board * @description Returns the estimation of the issue and a fieldId of the field that is used for it. `boardId` param is required. This param determines which field will be updated on a issue. * * Original time internally stores and returns the estimation as a number of seconds. * * The field used for estimation on the given board can be obtained from [board configuration resource](#agile/1.0/board-getConfiguration). More information about the field are returned by [edit meta resource](#api-rest-api-3-issue-getEditIssueMeta) or [field resource](#api-rest-api-3-field-get). */ getIssueEstimationForBoard: { parameters: { query?: { /** @description The ID of the board required to determine which field is used for estimation. */ boardId?: number; }; path: { /** @description The ID or key of the requested issue. */ issueIdOrKey: string; }; }; responses: { /** @description Returns the estimation of the issue and a fieldId of the field that is used for it. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the boardId was not provided, field does not exists or value was in wrong format. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if user does not a have valid license or does not have permission to edit issue. */ 403: { content: never; }; /** * @description Returned in these cases: * * * the issue does not exist * * the user does not have permission to view issue * * the board does not exist * * the user does not have permission to view board * * the issue does not belong to the board */ 404: { content: never; }; }; }; /** * Estimate issue for board * @description Updates the estimation of the issue. boardId param is required. This param determines which field will be updated on a issue. * * Note that this resource changes the estimation field of the issue regardless of appearance the field on the screen. * * Original time tracking estimation field accepts estimation in formats like "1w", "2d", "3h", "20m" or number which represent number of minutes. However, internally the field stores and returns the estimation as a number of seconds. * * The field used for estimation on the given board can be obtained from [board configuration resource](#agile/1.0/board-getConfiguration). More information about the field are returned by [edit meta resource](#api-rest-api-3-issue-issueIdOrKey-editmeta-get) or [field resource](#api-rest-api-3-field-get). */ estimateIssueForBoard: { parameters: { query?: { /** @description The ID of the board required to determine which field is used for estimation. */ boardId?: number; }; path: { /** @description The ID or key of the requested issue. */ issueIdOrKey: string; }; }; /** @description bean that contains value of a new estimation. */ requestBody: { content: { /** * @example { * "value": "8.0" * } */ "application/json": { value?: string; }; }; }; responses: { /** @description Returns the estimation of the issue and a fieldId of the field that is used for it. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the boardId was not provided, field does not exists or value was in wrong format. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if user does not a have valid license or does not have permission to edit issue. */ 403: { content: never; }; /** * @description Returned in these cases: * * * the issue does not exist * * the user does not have permission to view issue * * the board does not exist * * the user does not have permission to view board * * the issue does not belong to the board */ 404: { content: never; }; }; }; /** * Create sprint * @description Creates a future sprint. Sprint name and origin board id are required. Start date, end date, and goal are optional. * * Note that the sprint name is trimmed. Also, when starting sprints from the UI, the "endDate" set through this call is ignored and instead the last sprint's duration is used to fill the form. */ createSprint: { requestBody: { content: { /** * @example { * "endDate": "2015-04-20T01:22:00.000+10:00", * "goal": "sprint 1 goal", * "name": "sprint 1", * "originBoardId": 5, * "startDate": "2015-04-11T15:22:00.000+10:00" * } */ "application/json": { endDate?: string; goal?: string; name?: string; /** Format: int64 */ originBoardId?: number; startDate?: string; }; }; }; responses: { /** @description Created sprint */ 201: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the board does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Get sprint * @description Returns the sprint for a given sprint ID. The sprint will only be returned if the user can view the board that the sprint was created on, or view at least one of the issues in the sprint. */ getSprint: { parameters: { path: { /** @description The ID of the requested sprint. */ sprintId: number; }; }; responses: { /** @description Returns the requested sprint. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the sprint does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Update sprint * @description Performs a full update of a sprint. A full update means that the result will be exactly the same as the request body. Any fields not present in the request JSON will be set to null. * * Notes: * * * For closed sprints, only the name and goal can be updated; changes to other fields will be ignored. * * A sprint can be started by updating the state to 'active'. This requires the sprint to be in the 'future' state and have a startDate and endDate set. * * A sprint can be completed by updating the state to 'closed'. This action requires the sprint to be in the 'active' state. This sets the completeDate to the time of the request. * * Other changes to state are not allowed. * * The completeDate field cannot be updated manually. */ updateSprint: { parameters: { path: { /** @description the ID of the sprint to update. */ sprintId: number; }; }; requestBody: { content: { /** * @example { * "completeDate": "2015-04-20T11:11:28.008+10:00", * "endDate": "2015-04-16T14:01:00.000+10:00", * "goal": "sprint 1 goal", * "name": "sprint 1", * "startDate": "2015-04-11T15:36:00.000+10:00", * "state": "closed" * } */ "application/json": { completeDate?: string; createdDate?: string; endDate?: string; goal?: string; /** Format: int64 */ id?: number; name?: string; /** Format: int64 */ originBoardId?: number; /** Format: uri */ self?: string; startDate?: string; state?: string; }; }; }; responses: { /** @description Updated sprint */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the sprint does not exist. */ 404: { content: never; }; }; }; /** * Partially update sprint * @description Performs a partial update of a sprint. A partial update means that fields not present in the request JSON will not be updated. * * Notes: * * * For closed sprints, only the name and goal can be updated; changes to other fields will be ignored. * * A sprint can be started by updating the state to 'active'. This requires the sprint to be in the 'future' state and have a startDate and endDate set. * * A sprint can be completed by updating the state to 'closed'. This action requires the sprint to be in the 'active' state. This sets the completeDate to the time of the request. * * Other changes to state are not allowed. * * The completeDate field cannot be updated manually. */ partiallyUpdateSprint: { parameters: { path: { /** @description The ID of the sprint to update. */ sprintId: number; }; }; requestBody: { content: { /** * @example { * "name": "new name" * } */ "application/json": { completeDate?: string; createdDate?: string; endDate?: string; goal?: string; /** Format: int64 */ id?: number; name?: string; /** Format: int64 */ originBoardId?: number; /** Format: uri */ self?: string; startDate?: string; state?: string; }; }; }; responses: { /** @description Updated sprint */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if the sprint does not exist. */ 404: { content: never; }; }; }; /** * Delete sprint * @description Deletes a sprint. Once a sprint is deleted, all open issues in the sprint will be moved to the backlog. */ deleteSprint: { parameters: { path: { /** @description The ID of the sprint to delete. */ sprintId: number; }; }; responses: { /** @description Returned if the sprint was deleted successfully */ 204: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license or does not have permission to delete sprints. */ 403: { content: never; }; /** @description Returned if the sprint does not exist. */ 404: { content: never; }; }; }; /** * Get issues for sprint * @description Returns all issues in a sprint, for a given sprint ID. This only includes issues that the user has permission to view. By default, the returned issues are ordered by rank. */ getIssuesForSprint: { parameters: { query?: { /** @description The starting index of the returned issues. Base index: 0. See the 'Pagination' section at the top of this page for more details. */ startAt?: number; /** @description The maximum number of issues to return per page. See the 'Pagination' section at the top of this page for more details. Note, the total number of issues returned is limited by the property 'jira.search.views.default.max' in your Jira instance. If you exceed this limit, your results will be truncated. */ maxResults?: number; /** * @description Filters results using a JQL query. If you define an order in your JQL query, it will override the default order of the returned issues. * Note that `username` and `userkey` can't be used as search terms for this parameter due to privacy reasons. Use `accountId` instead. */ jql?: string; /** @description Specifies whether to validate the JQL query or not. Default: true. */ validateQuery?: boolean; /** @description The list of fields to return for each issue. By default, all navigable and Agile fields are returned. */ fields?: Record[]; /** @description A comma-separated list of the parameters to expand. */ expand?: string; }; path: { /** @description The ID of the sprint that contains the requested issues. */ sprintId: number; }; }; responses: { /** @description Returns the requested issues, at the specified page of the results. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license. */ 403: { content: never; }; /** @description Returned if sprint does not exist or the user cannot view it. */ 404: { content: never; }; }; }; /** * Move issues to sprint and rank * @description Moves issues to a sprint, for a given sprint ID. Issues can only be moved to open or active sprints. The maximum number of issues that can be moved in one operation is 50. */ moveIssuesToSprintAndRank: { parameters: { path: { /** @description The ID of the sprint that you want to assign issues to. */ sprintId: number; }; }; requestBody: { content: { /** * @example { * "issues": [ * "PR-1", * "10001", * "PR-3" * ], * "rankBeforeIssue": "PR-4", * "rankCustomFieldId": 10521 * } */ "application/json": { issues?: string[]; rankAfterIssue?: string; rankBeforeIssue?: string; /** Format: int64 */ rankCustomFieldId?: number; }; }; }; responses: { /** @description Empty response is returned if operation was successful. */ 204: { content: never; }; /** @description Returned if the request is invalid. */ 400: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license or does not have permission to assign issues. */ 403: { content: never; }; /** @description Returned if the sprint does not exist or the user does not have permission to view it. */ 404: { content: never; }; }; }; /** * Get properties keys * @description Returns the keys of all properties for the sprint identified by the id. The user who retrieves the property keys is required to have permissions to view the sprint. */ getPropertiesKeys: { parameters: { path: { /** @description the ID of the sprint from which property keys will be returned. */ sprintId: string; }; }; responses: { /** @description Returned if the sprint with given id exists. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the sprintId is invalid (negative or not a number). */ 400: { content: never; }; /** @description Returned if the calling user is not authenticated. */ 401: { content: never; }; /** @description Returned if the calling user does not have permission to view the sprint. */ 403: { content: never; }; /** @description Returned if the sprint with given id does not exist. */ 404: { content: never; }; }; }; /** * Get property * @description Returns the value of the property with a given key from the sprint identified by the provided id. The user who retrieves the property is required to have permissions to view the sprint. */ getProperty: { parameters: { path: { /** @description the ID of the sprint from which the property will be returned. */ sprintId: string; /** @description the key of the property to return. */ propertyKey: string; }; }; responses: { /** @description Returned if the sprint exists and the property was found. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the sprintId is invalid (negative or not a number). */ 400: { content: never; }; /** @description Returned if the calling user is not authenticated. */ 401: { content: never; }; /** @description Returned if the calling user does not have permission to view the sprint. */ 403: { content: never; }; /** @description Returned if the sprint with a given id does not exist or if the property with given key is not found. */ 404: { content: never; }; }; }; /** * Set property * @description Sets the value of the specified sprint's property. * * You can use this resource to store a custom data against the sprint identified by the id. The user who stores the data is required to have permissions to modify the sprint. */ setProperty: { parameters: { path: { /** @description the ID of the sprint on which the property will be set. */ sprintId: string; /** @description the key of the sprint's property. The maximum length of the key is 255 bytes. */ propertyKey: string; }; }; /** @description The value of the property. The value has to be a valid, non-empty [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length of the property value is 32768 bytes. */ requestBody: { content: { "application/json": unknown; }; }; responses: { /** @description Returned if the sprint property is successfully updated. */ 200: { content: { "application/json": unknown; }; }; /** @description Returned if the sprint property is successfully created. */ 201: { content: { "application/json": unknown; }; }; /** @description Returned if the sprintId is invalid (negative or not a number). */ 400: { content: never; }; /** @description Returned if the calling user is not authenticated. */ 401: { content: never; }; /** @description Returned if the calling user does not have permission to edit the sprint */ 403: { content: never; }; /** @description Returned if the sprint with given id does not exist. */ 404: { content: never; }; }; }; /** * Delete property * @description Removes the property from the sprint identified by the id. Ths user removing the property is required to have permissions to modify the sprint. */ deleteProperty: { parameters: { path: { /** @description the ID of the sprint from which the property will be removed. */ sprintId: string; /** @description the key of the property to remove. */ propertyKey: string; }; }; responses: { /** @description Returned if the sprint property was removed successfully. */ 204: { content: never; }; /** @description Returned if the sprintId is invalid (negative or not a number). */ 400: { content: never; }; /** @description Returned if the calling user is not authenticated. */ 401: { content: never; }; /** @description Returned if the calling user does not have permission to modify the sprint. */ 403: { content: never; }; /** @description Returned if the sprint with given id does not exist or if the property with given key is not found. */ 404: { content: never; }; }; }; /** * Swap sprint * @description Swap the position of the sprint with the second sprint. */ swapSprint: { parameters: { path: { /** @description The ID of the sprint to swap. */ sprintId: number; }; }; requestBody: { content: { /** * @example { * "sprintToSwapWith": 3 * } */ "application/json": { /** Format: int64 */ sprintToSwapWith?: number; }; }; }; responses: { /** @description Returned if the sprint swap was performed successfully */ 204: { content: never; }; /** @description Returned if the user is not logged in. */ 401: { content: never; }; /** @description Returned if the user does not a have valid license or does not have permission to at least one sprint. */ 403: { content: never; }; /** @description Returned if at least one sprint does not exist or user does not have permission to view to at least one sprint. */ 404: { content: never; }; }; }; /** * Store development information * @description Stores development information provided in the request to make it available when viewing issues in Jira. Existing repository and entity data for the same ID will be replaced if the updateSequenceId of existing data is less than the incoming data. Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. */ storeDevelopmentInformation: { parameters: { header: { /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; /** @description Request object, which contains development information */ requestBody: { content: { "application/json": { /** @description List of repositories containing development information. Must not contain duplicates. Maximum number of entities across all repositories is 1000. */ repositories: ({ /** * @description The name of this repository. Max length is 255 characters. * @example atlassian-connect-jira-example */ name: string; /** * @description Description of this repository. Max length is 1024 characters. * @example The repository which stores code of the Atlassian Connect Add-on Devinfo application. */ description?: string; /** * @description The ID of the repository this repository was forked from, if it's a fork. Max length is 1024 characters. * @example 56c7c750-cee2-48e2-b920-d7706dfd11f7 */ forkOf?: string; /** * Format: url * @description The URL of this repository. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example */ url: string; /** @description List of commits to update in this repository. Must not contain duplicate entity IDs. Maximum number of commits is 400 */ commits?: ({ /** * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters * @example a7727ee6350c33cdf90826dc21abaa26a5704370 */ id: string; /** * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. * @example ["ISSUE-1","TEST-2"] */ issueKeys: string[]; /** * Format: int64 * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * @example 1523494301248 */ updateSequenceId: number; /** @description Deprecated. Use the id field instead. */ hash?: string; /** * @description The set of flags for this commit * @example [MERGE_COMMIT] */ flags?: "MERGE_COMMIT"[]; /** * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. * @example README.md edited online with Bitbucket */ message: string; /** * Author * @description Describes the author of a particular entity */ author: { /** * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. * @example Jane Doe */ name?: string; /** * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. * @example jane_doe@atlassian.com */ email?: string; /** * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. * @example jdoe */ username?: string; /** * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe */ url?: string; /** * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe/avatar/32 */ avatar?: string; }; /** * Format: int32 * @description The total number of files added, removed, or modified by this commit * @example 1 */ fileCount: number; /** * Format: url * @description The URL of this commit. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 */ url: string; /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ files?: ({ /** * @description The path of the file. Max length is 1024 characters. * @example /home/user/src/atlassian-connect-jira-example/README.md */ path: string; /** * Format: url * @description The URL of this file. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md */ url: string; /** * @description The operation performed on this file * @example MODIFIED * @enum {string} */ changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; /** * Format: int32 * @description Number of lines added to the file * @example 0 */ linesAdded: number; /** * Format: int32 * @description Number of lines removed from the file * @example 1 */ linesRemoved: number; })[]; /** * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. * @example 2016-10-31T23:27:25+00:00 */ authorTimestamp: string; /** * @description Shortened identifier for this commit, used for display. Max length is 255 characters. * @example a7727ee */ displayId: string; })[]; /** @description List of branches to update in this repository. Must not contain duplicate entity IDs. Maximum number of branches is 400. */ branches?: ({ /** * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 */ id: string; /** * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. * @example ["ISSUE-1","TEST-2"] */ issueKeys: string[]; /** * Format: int64 * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * @example 1523494301248 */ updateSequenceId: number; /** * @description The name of the branch. Max length is 512 characters. * @example master */ name: string; /** * Commit * @description Represents a commit in the version control system. */ lastCommit: { /** * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters * @example a7727ee6350c33cdf90826dc21abaa26a5704370 */ id: string; /** * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. * @example ["ISSUE-1","TEST-2"] */ issueKeys: string[]; /** * Format: int64 * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * @example 1523494301248 */ updateSequenceId: number; /** @description Deprecated. Use the id field instead. */ hash?: string; /** * @description The set of flags for this commit * @example [MERGE_COMMIT] */ flags?: "MERGE_COMMIT"[]; /** * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. * @example README.md edited online with Bitbucket */ message: string; /** * Author * @description Describes the author of a particular entity */ author: { /** * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. * @example Jane Doe */ name?: string; /** * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. * @example jane_doe@atlassian.com */ email?: string; /** * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. * @example jdoe */ username?: string; /** * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe */ url?: string; /** * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe/avatar/32 */ avatar?: string; }; /** * Format: int32 * @description The total number of files added, removed, or modified by this commit * @example 1 */ fileCount: number; /** * Format: url * @description The URL of this commit. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 */ url: string; /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ files?: ({ /** * @description The path of the file. Max length is 1024 characters. * @example /home/user/src/atlassian-connect-jira-example/README.md */ path: string; /** * Format: url * @description The URL of this file. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md */ url: string; /** * @description The operation performed on this file * @example MODIFIED * @enum {string} */ changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; /** * Format: int32 * @description Number of lines added to the file * @example 0 */ linesAdded: number; /** * Format: int32 * @description Number of lines removed from the file * @example 1 */ linesRemoved: number; })[]; /** * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. * @example 2016-10-31T23:27:25+00:00 */ authorTimestamp: string; /** * @description Shortened identifier for this commit, used for display. Max length is 255 characters. * @example a7727ee */ displayId: string; }; /** * @description The URL of the page for creating a pull request from this branch. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/new */ createPullRequestUrl?: string; /** * @description The URL of the branch. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/master */ url: string; })[]; /** @description List of pull requests to update in this repository. Must not contain duplicate entity IDs. Maximum number of pull requests is 400 */ pullRequests?: ({ /** * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 */ id: string; /** * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. * @example ["ISSUE-1","TEST-2"] */ issueKeys: string[]; /** * Format: int64 * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * @example 1523494301248 */ updateSequenceId: number; /** * @description The status of the pull request. In the case of concurrent updates, priority is given in the order OPEN, MERGED, DECLINED, UNKNOWN * @example OPEN * @enum {string} */ status: "OPEN" | "MERGED" | "DECLINED" | "UNKNOWN"; /** * @description Title of the pull request. Max length is 1024 characters. * @example Pull request 2, fixing all the issues caused by pull request #1 */ title: string; /** * Author * @description Describes the author of a particular entity */ author: { /** * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. * @example Jane Doe */ name?: string; /** * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. * @example jane_doe@atlassian.com */ email?: string; /** * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. * @example jdoe */ username?: string; /** * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe */ url?: string; /** * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe/avatar/32 */ avatar?: string; }; /** * Format: int32 * @description The number of comments on the pull request * @example 42 */ commentCount: number; /** * @description The name of the source branch of this PR. Max length is 255 characters. * @example ISSUE-1-feature-branch */ sourceBranch: string; /** * Format: url * @description The url of the source branch of this PR. This is used to match this PR against the branch. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/ISSUE-1-feature-branch */ sourceBranchUrl?: string; /** * @description The most recent update to this PR. Formatted as a UTC ISO 8601 date time format. * @example 2016-10-31T23:27:25+00:00 */ lastUpdate: string; /** * @description The name of destination branch of this PR. Max length is 255 characters. * @example master */ destinationBranch?: string; /** * Format: url * @description The url of the destination branch of this PR. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/master */ destinationBranchUrl?: string; /** @description The list of reviewers of this pull request */ reviewers?: ({ /** * @description Deprecated. The name of this reviewer. Max length is 255 characters. * @example Jane Doe */ name?: string; /** * @description The approval status of this reviewer, default is UNAPPROVED. * @example APPROVED * @enum {string} */ approvalStatus?: "APPROVED" | "UNAPPROVED"; /** * Format: url * @description Deprecated. The URL of the profile for this reviewer. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe */ url?: string; /** * Format: url * @description Deprecated. The URL of the avatar for this reviewer. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe/avatar/32 */ avatar?: string; /** * @description The email address of this reviewer. Max length is 254 characters. * @example jane_doe@example.com */ email?: string; /** * @description The Atlassian Account ID (AAID) of this reviewer. Max length is 128 characters. * @example 655363:e4ca5e2d-a901-40e3-877e-bf5d22c0f130 */ accountId?: string; })[]; /** * Format: url * @description The URL of this pull request. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/2 */ url: string; /** * @description Shortened identifier for this pull request, used for display. Max length is 255 characters. * @example Pull request 2 */ displayId: string; })[]; /** * Format: url * @description The URL of the avatar for this repository. Max length is 2000 characters. * @example http://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/avatar/32 */ avatar?: string; /** * @description Description of the avatar for this repository. Max length is 1024 characters. * @example Avatar description */ avatarDescription?: string; /** * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * @example 1523494301248 */ updateSequenceId: number; })[]; /** @description Flag to prevent automatic issue transitions and smart commits being fired, default is false. */ preventTransitions?: boolean; /** * @description Indicates the operation being performed by the provider system when sending this data. "NORMAL" - Data received during normal operation (e.g. a user pushing a branch). "BACKFILL" - Data received while backfilling existing data (e.g. indexing a newly connected account). Default is "NORMAL". Please note that "BACKFILL" operations have a much higher rate-limiting threshold but are also processed slower in comparison to "NORMAL" operations. * @example NORMAL * @enum {string} */ operationType?: "NORMAL" | "BACKFILL"; /** @description Arbitrary properties to tag the submitted repositories with. These properties can be used for delete operations to e.g. clean up all development information associated with an account in the event that the account is removed from the provider system. Note that these properties will never be returned with repository or entity data. They are not intended for use as metadata to associate with a repository. Maximum length of each key or value is 255 characters. Maximum allowed number of properties key/value pairs is 5. Properties keys cannot start with '_' character. Properties keys cannot contain ':' character. */ properties?: { [key: string]: string; }; /** * ProviderMetadata * @description Information about the provider. This is useful for auditing, logging, debugging, and other internal uses. It is not considered private information. Hence, it may not contain personally identifiable information. */ providerMetadata?: { /** * @description An optional name of the source of the development information data. * @example Bitbucket Server 6.7.2 */ product?: string; }; }; }; }; responses: { /** @description Submission accepted. Each submitted repository and entity that is of a valid format will be eventually available in Jira. */ 202: { content: { "application/json": { /** @description The IDs of devinfo entities that have been accepted for submission grouped by their repository IDs. Note that a devinfo entity that isn't updated due to it's updateSequenceId being out of order is not considered a failed submission. */ acceptedDevinfoEntities?: { [key: string]: { /** @description Commits IDs */ commits?: string[]; /** @description Branch IDs */ branches?: string[]; /** @description Pull request IDs */ pullRequests?: string[]; }; }; /** @description IDs of devinfo entities that have not been accepted for submission and caused error descriptions, usually due to a problem with the request data. The entities (if present) will be grouped by their repository id and type. Entity IDs are listed with errors associated with that devinfo entity that have prevented it being submitted. */ failedDevinfoEntities?: { [key: string]: { /** @description Repository errors */ errorMessages?: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; /** @description Commits errors */ commits?: { /** @description Entity id */ id: string; /** @description Error message */ errorMessages?: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }[]; /** @description Branches errors */ branches?: { /** @description Entity id */ id: string; /** @description Error message */ errorMessages?: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }[]; /** @description Pull requests errors */ pullRequests?: { /** @description Entity id */ id: string; /** @description Error message */ errorMessages?: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }[]; }; }; /** @description Issue keys that are not known on this Jira instance (if any). These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. If a devinfo entity has been associated with issue keys other than those in this array it will still be stored against those valid keys. */ unknownIssueKeys?: string[]; }; }; }; /** @description Request has incorrect format. It will fail in the following cases: If no repositories or development information entities were provided, or more than 5 properties were submitted, or there are one or more properties with leading underscore '_' symbol in their keys. */ 400: { content: { "application/json": { /** @description List of errors occurred. */ errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'WRITE' scope */ 403: { content: never; }; /** @description Data is too large. Submit fewer devinfo entities in each payload. */ 413: { content: { "application/json": { /** @description List of errors occurred. */ errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; /** @description API rate limit has been exceeded. */ 429: { headers: { /** @description The number of remaining possible requests in current rate limit window. */ "X-RateLimit-Remaining"?: number; /** @description The date in ISO 8601 format when the rate limit values will be next reset. */ "X-RateLimit-Reset"?: string; /** @description The maximum possible requests in a window of one minute. */ "X-RateLimit-Limit"?: number; /** @description The number of seconds to wait before making a follow-up request. */ "Retry-After"?: number; }; content: never; }; /** @description An unknown error has occurred. */ 500: { content: { "application/json": { /** @description List of errors occurred. */ errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; }; }; /** * Get repository * @description For the specified repository ID, retrieves the repository and the most recent 400 development information entities. The result will be what is currently stored, ignoring any pending updates or deletes. */ getRepository: { parameters: { header: { /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; path: { /** @description The ID of repository to fetch */ repositoryId: string; }; }; responses: { /** @description The repository data currently stored for the given ID. */ 200: { content: { "application/json": { /** * @description The name of this repository. Max length is 255 characters. * @example atlassian-connect-jira-example */ name: string; /** * @description Description of this repository. Max length is 1024 characters. * @example The repository which stores code of the Atlassian Connect Add-on Devinfo application. */ description?: string; /** * @description The ID of the repository this repository was forked from, if it's a fork. Max length is 1024 characters. * @example 56c7c750-cee2-48e2-b920-d7706dfd11f7 */ forkOf?: string; /** * Format: url * @description The URL of this repository. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example */ url: string; /** @description List of commits to update in this repository. Must not contain duplicate entity IDs. Maximum number of commits is 400 */ commits?: ({ /** * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters * @example a7727ee6350c33cdf90826dc21abaa26a5704370 */ id: string; /** * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. * @example ["ISSUE-1","TEST-2"] */ issueKeys: string[]; /** * Format: int64 * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * @example 1523494301248 */ updateSequenceId: number; /** @description Deprecated. Use the id field instead. */ hash?: string; /** * @description The set of flags for this commit * @example [MERGE_COMMIT] */ flags?: "MERGE_COMMIT"[]; /** * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. * @example README.md edited online with Bitbucket */ message: string; /** * Author * @description Describes the author of a particular entity */ author: { /** * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. * @example Jane Doe */ name?: string; /** * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. * @example jane_doe@atlassian.com */ email?: string; /** * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. * @example jdoe */ username?: string; /** * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe */ url?: string; /** * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe/avatar/32 */ avatar?: string; }; /** * Format: int32 * @description The total number of files added, removed, or modified by this commit * @example 1 */ fileCount: number; /** * Format: url * @description The URL of this commit. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 */ url: string; /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ files?: ({ /** * @description The path of the file. Max length is 1024 characters. * @example /home/user/src/atlassian-connect-jira-example/README.md */ path: string; /** * Format: url * @description The URL of this file. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md */ url: string; /** * @description The operation performed on this file * @example MODIFIED * @enum {string} */ changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; /** * Format: int32 * @description Number of lines added to the file * @example 0 */ linesAdded: number; /** * Format: int32 * @description Number of lines removed from the file * @example 1 */ linesRemoved: number; })[]; /** * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. * @example 2016-10-31T23:27:25+00:00 */ authorTimestamp: string; /** * @description Shortened identifier for this commit, used for display. Max length is 255 characters. * @example a7727ee */ displayId: string; })[]; /** @description List of branches to update in this repository. Must not contain duplicate entity IDs. Maximum number of branches is 400. */ branches?: ({ /** * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 */ id: string; /** * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. * @example ["ISSUE-1","TEST-2"] */ issueKeys: string[]; /** * Format: int64 * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * @example 1523494301248 */ updateSequenceId: number; /** * @description The name of the branch. Max length is 512 characters. * @example master */ name: string; /** * Commit * @description Represents a commit in the version control system. */ lastCommit: { /** * @description The identifier or hash of the commit. Will be used for cross entity linking. Must be unique for all commits within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters * @example a7727ee6350c33cdf90826dc21abaa26a5704370 */ id: string; /** * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. * @example ["ISSUE-1","TEST-2"] */ issueKeys: string[]; /** * Format: int64 * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * @example 1523494301248 */ updateSequenceId: number; /** @description Deprecated. Use the id field instead. */ hash?: string; /** * @description The set of flags for this commit * @example [MERGE_COMMIT] */ flags?: "MERGE_COMMIT"[]; /** * @description The commit message. Max length is 1024 characters. If anything longer is supplied, it will be truncated down to 1024 characters. * @example README.md edited online with Bitbucket */ message: string; /** * Author * @description Describes the author of a particular entity */ author: { /** * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. * @example Jane Doe */ name?: string; /** * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. * @example jane_doe@atlassian.com */ email?: string; /** * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. * @example jdoe */ username?: string; /** * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe */ url?: string; /** * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe/avatar/32 */ avatar?: string; }; /** * Format: int32 * @description The total number of files added, removed, or modified by this commit * @example 1 */ fileCount: number; /** * Format: url * @description The URL of this commit. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/commits/a7727ee6350c33cdf90826dc21abaa26a5704370 */ url: string; /** @description List of file changes. Max number of files is 10. Currently, only the first 5 files are shown (sorted by path) in the UI. This UI behavior may change without notice. */ files?: ({ /** * @description The path of the file. Max length is 1024 characters. * @example /home/user/src/atlassian-connect-jira-example/README.md */ path: string; /** * Format: url * @description The URL of this file. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/a7727ee6350c33cdf90826dc21abaa26a5704370/README.md */ url: string; /** * @description The operation performed on this file * @example MODIFIED * @enum {string} */ changeType: "ADDED" | "COPIED" | "DELETED" | "MODIFIED" | "MOVED" | "UNKNOWN"; /** * Format: int32 * @description Number of lines added to the file * @example 0 */ linesAdded: number; /** * Format: int32 * @description Number of lines removed from the file * @example 1 */ linesRemoved: number; })[]; /** * @description The author timestamp of this commit. Formatted as a UTC ISO 8601 date time format. * @example 2016-10-31T23:27:25+00:00 */ authorTimestamp: string; /** * @description Shortened identifier for this commit, used for display. Max length is 255 characters. * @example a7727ee */ displayId: string; }; /** * @description The URL of the page for creating a pull request from this branch. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/new */ createPullRequestUrl?: string; /** * @description The URL of the branch. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/master */ url: string; })[]; /** @description List of pull requests to update in this repository. Must not contain duplicate entity IDs. Maximum number of pull requests is 400 */ pullRequests?: ({ /** * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 */ id: string; /** * @description List of issues keys that this entity is associated with. They must be valid Jira issue keys. * @example ["ISSUE-1","TEST-2"] */ issueKeys: string[]; /** * Format: int64 * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * @example 1523494301248 */ updateSequenceId: number; /** * @description The status of the pull request. In the case of concurrent updates, priority is given in the order OPEN, MERGED, DECLINED, UNKNOWN * @example OPEN * @enum {string} */ status: "OPEN" | "MERGED" | "DECLINED" | "UNKNOWN"; /** * @description Title of the pull request. Max length is 1024 characters. * @example Pull request 2, fixing all the issues caused by pull request #1 */ title: string; /** * Author * @description Describes the author of a particular entity */ author: { /** * @description Deprecated. The name of this user in a format suitable for display. Max length is 255 characters. * @example Jane Doe */ name?: string; /** * @description The email address of the user. Used to associate the user with a Jira user. Max length is 255 characters. * @example jane_doe@atlassian.com */ email?: string; /** * @description Deprecated. The username of the user. Used to associate the user with a Jira user if there are multiple users for a given email. Max length is 255 characters. * @example jdoe */ username?: string; /** * @description Deprecated. The URL of the profile for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe */ url?: string; /** * @description Deprecated. The URL of the avatar for this user. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe/avatar/32 */ avatar?: string; }; /** * Format: int32 * @description The number of comments on the pull request * @example 42 */ commentCount: number; /** * @description The name of the source branch of this PR. Max length is 255 characters. * @example ISSUE-1-feature-branch */ sourceBranch: string; /** * Format: url * @description The url of the source branch of this PR. This is used to match this PR against the branch. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/branch/ISSUE-1-feature-branch */ sourceBranchUrl?: string; /** * @description The most recent update to this PR. Formatted as a UTC ISO 8601 date time format. * @example 2016-10-31T23:27:25+00:00 */ lastUpdate: string; /** * @description The name of destination branch of this PR. Max length is 255 characters. * @example master */ destinationBranch?: string; /** * Format: url * @description The url of the destination branch of this PR. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/src/master */ destinationBranchUrl?: string; /** @description The list of reviewers of this pull request */ reviewers?: ({ /** * @description Deprecated. The name of this reviewer. Max length is 255 characters. * @example Jane Doe */ name?: string; /** * @description The approval status of this reviewer, default is UNAPPROVED. * @example APPROVED * @enum {string} */ approvalStatus?: "APPROVED" | "UNAPPROVED"; /** * Format: url * @description Deprecated. The URL of the profile for this reviewer. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe */ url?: string; /** * Format: url * @description Deprecated. The URL of the avatar for this reviewer. Max length is 2000 characters. * @example https://atlassian.com/account/jane_doe/avatar/32 */ avatar?: string; /** * @description The email address of this reviewer. Max length is 254 characters. * @example jane_doe@example.com */ email?: string; /** * @description The Atlassian Account ID (AAID) of this reviewer. Max length is 128 characters. * @example 655363:e4ca5e2d-a901-40e3-877e-bf5d22c0f130 */ accountId?: string; })[]; /** * Format: url * @description The URL of this pull request. Max length is 2000 characters. * @example https://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/pull-requests/2 */ url: string; /** * @description Shortened identifier for this pull request, used for display. Max length is 255 characters. * @example Pull request 2 */ displayId: string; })[]; /** * Format: url * @description The URL of the avatar for this repository. Max length is 2000 characters. * @example http://bitbucket.org/atlassianlabs/atlassian-connect-jira-example/avatar/32 */ avatar?: string; /** * @description Description of the avatar for this repository. Max length is 1024 characters. * @example Avatar description */ avatarDescription?: string; /** * @description The ID of this entity. Will be used for cross entity linking. Must be unique by entity type within a repository, i.e., only one commit can have ID 'X' in repository 'Y'. But adding, e.g., a branch with ID 'X' to repository 'Y' is acceptable. Only alphanumeric characters, and '~.-_', are allowed. Max length is 1024 characters. * @example c6c7c750-cee2-48e2-b920-d7706dfd11f9 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this entity in the case of out-of-order receipt of update requests. This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the provider system, but other alternatives are valid (e.g. a provider could store a counter against each entity and increment that on each update to Jira). Updates for an entity that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * @example 1523494301248 */ updateSequenceId: number; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'READ' scope */ 403: { content: never; }; /** @description No data found for the given repository ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description An unknown error has occurred. */ 500: { content: { "application/json": { /** @description List of errors occurred. */ errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; }; }; /** * Delete repository * @description Deletes the repository data stored by the given ID and all related development information entities. Deletion is performed asynchronously. */ deleteRepository: { parameters: { query?: { /** @description An optional property to use to control deletion. Only stored data with an updateSequenceId less than or equal to that provided will be deleted. This can be used to help ensure submit/delete requests are applied correctly if they are issued close together. */ _updateSequenceId?: number; }; header: { /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; path: { /** @description The ID of repository to delete */ repositoryId: string; }; }; responses: { /** @description Delete request has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'DELETE' scope */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description An unknown error has occurred. */ 500: { content: { "application/json": { /** @description List of errors occurred. */ errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; }; }; /** * Delete development information by properties * @description Deletes development information entities which have all the provided properties. Repositories which have properties that match ALL of the properties (i.e. treated as an AND), and all their related development information (such as commits, branches and pull requests), will be deleted. For example if request is `DELETE bulk?accountId=123&projectId=ABC` entities which have properties `accountId=123` and `projectId=ABC` will be deleted. Optional param `_updateSequenceId` is no longer supported. Deletion is performed asynchronously: specified entities will eventually be removed from Jira. */ deleteByProperties: { parameters: { query?: { /** @description An optional property to use to control deletion. Only stored data with an updateSequenceId less than or equal to that provided will be deleted. This can be used to help ensure submit/delete requests are applied correctly if they are issued close together. */ _updateSequenceId?: number; }; header: { /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; responses: { /** @description Delete accepted. Data will eventually be removed from Jira. */ 202: { content: never; }; /** @description Request has incorrect format. It will fail in the following cases: If no query properties are specified. If `_updateSequenceId` is not a numeric value. If multiple values of the same property key are specified. Deleting data for many property values, for the same property key, requires multiple requests to this resource. */ 400: { content: { "application/json": { /** @description List of errors occurred. */ errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'DELETE' scope */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description An unknown error has occurred. */ 500: { content: { "application/json": { /** @description List of errors occurred. */ errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; }; }; /** * Check if data exists for the supplied properties * @description Checks if repositories which have all the provided properties exists. For example, if request is `GET existsByProperties?accountId=123&projectId=ABC` then result will be positive only if there is at least one repository with both properties `accountId=123` and `projectId=ABC`. Special property `_updateSequenceId` can be used to filter all entities with updateSequenceId less or equal than the value specified. In addition to the optional `_updateSequenceId`, one or more query params must be supplied to specify properties to search by. */ existsByProperties: { parameters: { query?: { /** @description An optional property. Filters out entities and repositories which have updateSequenceId greater than specified. */ _updateSequenceId?: number; }; header: { /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; responses: { /** @description Returns whether data exists for the specified properties. */ 200: { content: { "application/json": { /** @description Whether there is data matching the query */ hasDataMatchingProperties?: boolean; }; }; }; /** @description Request has incorrect format. It will fail in the following cases: If no query properties are specified. If `_updateSequenceId` is not a numeric value. If multiple values of the same property key are specified. */ 400: { content: { "application/json": { /** @description List of errors occurred. */ errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'READ' scope */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description An unknown error has occurred. */ 500: { content: { "application/json": { /** @description List of errors occurred. */ errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; }; }; /** * Delete development information entity * @description Deletes particular development information entity. Deletion is performed asynchronously. */ deleteEntity: { parameters: { query?: { /** @description An optional property to use to control deletion. Only stored data with an updateSequenceId less than or equal to that provided will be deleted. This can be used to help ensure submit/delete requests are applied correctly if they are issued close together. */ _updateSequenceId?: number; }; header: { /** @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. If the JWT token corresponds to a Connect app that does not define the jiraDevelopmentTool module it will be rejected with a 403. See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; path: { repositoryId: string; entityType: "commit" | "branch" | "pull_request"; entityId: string; }; }; responses: { /** @description Delete request has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; /** @description Wrong entity type specified */ 400: { content: { "application/json": { /** @description List of errors occurred. */ errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** @description The JWT token used does not correspond to an app that defines the jiraDevelopmentTool module, or the app does not define the 'DELETE' scope */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description An unknown error has occurred. */ 500: { content: { "application/json": { /** @description List of errors occurred. */ errorMessages: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; }; }; /** * Submit Feature Flag data * @description Update / insert Feature Flag data. * * Feature Flags are identified by their ID, and existing Feature Flag data for the same ID will be replaced if it exists and the updateSequenceId of existing data is less than the incoming data. * * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getFeatureFlagById operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple Feature Flags being submitted in one request, each is validated individually prior to submission. Details of which Feature Flags failed submission (if any) are available in the response object. * * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ submitFeatureFlags: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; /** @description Feature Flag data to submit. */ requestBody: { content: { "application/json": { /** * Properties * @description Properties assigned to Feature Flag data that can then be used for delete / query operations. * * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. * * Note that these properties will never be returned with Feature Flag data. They are not intended for use as metadata to associate with a Feature Flag. Internally they are stored as a hash so that personal information etc. is never stored within Jira. * * Properties are supplied as key/value pairs, a maximum of 5 properties can be supplied, and keys must not contain ':' or start with '_'. * * @example { * "accountId": "account-234", * "projectId": "project-123" * } */ properties?: { [key: string]: string; }; /** * @description A list of Feature Flags to submit to Jira. * * Each Feature Flag may be associated with 1 or more Jira issue keys, and will be associated with any properties included in this request. */ flags: ({ /** * @description The FeatureFlagData schema version used for this flag data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion?: "1.0"; /** * @description The identifier for the Feature Flag. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * @description The identifier that users would use to reference the Feature Flag in their source code etc. * * Will be made available via the UI for users to copy into their source code etc. * * @example my-awesome-feature */ key: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this Feature Flag in the case of out-of-order receipt of update requests. * * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Feature Flag and increment that on each update to Jira). * * Updates for a Feature Flag that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * * @example 1523494301448 */ updateSequenceId: number; /** * @description The human-readable name for the Feature Flag. Will be shown in the UI. * * If not provided, will use the ID for display. * * @example Enable awesome feature */ displayName?: string; /** @description The Jira issue keys to associate the Feature Flag information with. */ issueKeys: string[]; /** * FeatureFlagSummary * @description Summary information for a single Feature Flag. * * Providers may elect to provide information from a specific environment, or they may choose to 'roll up' information from across multiple environments - whatever makes most sense in the Provider system. * * This is the summary information that will be presented to the user on e.g. the Jira issue screen. */ summary: { /** * Format: uri * @description A URL users can use to link to a summary view of this flag, if appropriate. * * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific environment, it might make sense to link the user to the flag in that environment). * * @example https://example.com/project/feature-123/summary */ url?: string; /** * FeatureFlagStatus * @description Status information about a single Feature Flag. */ status: { /** * @description Whether the Feature Flag is enabled in the given environment (or in summary). * * Enabled may imply a partial rollout, which can be described using the 'rollout' field. */ enabled: boolean; /** * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. * * This value may be presented to the user in the UI. * * @example Disabled */ defaultValue?: string; /** * FeatureFlagRollout * @description Information about the rollout of a Feature Flag in an environment (or in summary). * * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. * * This information may be presented to the user in the UI. * * @example { * "percentage": 80 * } */ rollout?: { /** @description If the Feature Flag rollout is a simple percentage rollout */ percentage?: number; /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ text?: string; /** @description A count of the number of rules active for this Feature Flag in an environment. */ rules?: number; }; }; /** * Format: date-time * @description The last-updated timestamp to present to the user as a summary of the state of the Feature Flag. * * Providers may choose to supply the last-updated timestamp from a specific environment, or the 'most recent' last-updated timestamp across all environments - whatever makes sense in the Provider system. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; }; /** * @description Detail information for this Feature Flag. * * This may be information for each environment the Feature Flag is defined in or a selection of environments made by the user, as appropriate. */ details: ({ /** * Format: uri * @description A URL users can use to link to this Feature Flag, in this environment. * * @example https://example.com/project/feature-123/production */ url: string; /** * Format: date-time * @description The last-updated timestamp for this Feature Flag, in this environment. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * EnvironmentDetails * @description Details of a single environment. * * At the simplest this must be the name of the environment. * * Ideally there is also type information which may be used to group data from multiple Feature Flags and other entities for visualisation in the UI. * * @example { * "name": "prod-us-west", * "type": "production" * } */ environment: { /** @description The name of the environment. */ name: string; /** * @description The 'type' or 'category' of environment this environment belongs to. * @enum {string} */ type?: "development" | "testing" | "staging" | "production"; }; /** * FeatureFlagStatus * @description Status information about a single Feature Flag. */ status: { /** * @description Whether the Feature Flag is enabled in the given environment (or in summary). * * Enabled may imply a partial rollout, which can be described using the 'rollout' field. */ enabled: boolean; /** * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. * * This value may be presented to the user in the UI. * * @example Disabled */ defaultValue?: string; /** * FeatureFlagRollout * @description Information about the rollout of a Feature Flag in an environment (or in summary). * * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. * * This information may be presented to the user in the UI. * * @example { * "percentage": 80 * } */ rollout?: { /** @description If the Feature Flag rollout is a simple percentage rollout */ percentage?: number; /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ text?: string; /** @description A count of the number of rules active for this Feature Flag in an environment. */ rules?: number; }; }; })[]; })[]; /** * ProviderMetadata * @description Information about the provider. This is useful for auditing, logging, debugging, * and other internal uses. It is not considered private information. Hence, it may not contain personally * identifiable information. */ providerMetadata?: { /** * @description An optional name of the source of the feature flags. * @example Atlassian Release Platform 2.1.0 */ product?: string; }; }; }; }; responses: { /** * @description Submission accepted. Each submitted Feature Flag that is of a valid format will be eventually available in Jira. * * Details of which Feature Flags were submitted and which failed submission (due to data format problems etc.) are available in the response object. */ 202: { content: { "application/json": { /** * @description The IDs of Feature Flags that have been accepted for submission. * * A Feature Flag may be rejected if it was only associated with unknown issue keys. * * Note that a Feature Flag that isn't updated due to it's updateSequenceId being out of order is not considered a failed submission. * * @example [ * "111-222-333", * "444-555-666" * ] */ acceptedFeatureFlags?: string[]; /** * @description Details of Feature Flags that have not been accepted for submission, usually due to a problem with the request data. * * The object (if present) will be keyed by Feature Flag ID and include any errors associated with that Feature Flag that have prevented it being submitted. */ failedFeatureFlags?: { [key: string]: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; /** * @description Issue keys that are not known on this Jira instance (if any). * * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. * * If a Feature Flag has been associated with issue keys other than those in this array it will still be stored against those valid keys. * If a Feature Flag was only associated with issue keys deemed to be invalid it won't be persisted. */ unknownIssueKeys?: string[]; }; }; }; /** * @description Request has incorrect format. * * Note that in the case of an individual Feature Flag having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid Feature Flag will be contained in the response object. */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Feature Flags module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; /** @description Data is too large. Submit fewer Feature Flags in each payload. */ 413: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete Feature Flags by Property * @description Bulk delete all Feature Flags that match the given request. * * One or more query params must be supplied to specify Properties to delete by. Optional param `_updateSequenceId` is no longer supported. * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). * See the documentation for the submitFeatureFlags operation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * * Deletion is performed asynchronously. The getFeatureFlagById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteFeatureFlagsByProperty: { parameters: { query?: { /** * @deprecated * @description This parameter usage is no longer supported. * * An optional `_updateSequenceId` to use to control deletion. * * Only stored data with an `updateSequenceId` less than or equal to that provided will be deleted. * This can be used help ensure submit/delete requests are applied correctly if issued close together. * * If not provided, all stored data that matches the request will be deleted. */ _updateSequenceId?: number; }; header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; responses: { /** @description Delete accepted. Data will eventually be removed from Jira. */ 202: { content: never; }; /** @description Request has incorrect format (e.g. missing at least one Property param). */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Feature Flags module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get a Feature Flag by ID * @description Retrieve the currently stored Feature Flag data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ getFeatureFlagById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; path: { /** @description The ID of the Feature Flag to fetch. */ featureFlagId: string; }; }; responses: { /** @description The Feature Flag data currently stored for the given ID. */ 200: { content: { "application/json": { /** * @description The FeatureFlagData schema version used for this flag data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion?: "1.0"; /** * @description The identifier for the Feature Flag. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * @description The identifier that users would use to reference the Feature Flag in their source code etc. * * Will be made available via the UI for users to copy into their source code etc. * * @example my-awesome-feature */ key: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this Feature Flag in the case of out-of-order receipt of update requests. * * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Feature Flag and increment that on each update to Jira). * * Updates for a Feature Flag that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * * @example 1523494301448 */ updateSequenceId: number; /** * @description The human-readable name for the Feature Flag. Will be shown in the UI. * * If not provided, will use the ID for display. * * @example Enable awesome feature */ displayName?: string; /** @description The Jira issue keys to associate the Feature Flag information with. */ issueKeys: string[]; /** * FeatureFlagSummary * @description Summary information for a single Feature Flag. * * Providers may elect to provide information from a specific environment, or they may choose to 'roll up' information from across multiple environments - whatever makes most sense in the Provider system. * * This is the summary information that will be presented to the user on e.g. the Jira issue screen. */ summary: { /** * Format: uri * @description A URL users can use to link to a summary view of this flag, if appropriate. * * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific environment, it might make sense to link the user to the flag in that environment). * * @example https://example.com/project/feature-123/summary */ url?: string; /** * FeatureFlagStatus * @description Status information about a single Feature Flag. */ status: { /** * @description Whether the Feature Flag is enabled in the given environment (or in summary). * * Enabled may imply a partial rollout, which can be described using the 'rollout' field. */ enabled: boolean; /** * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. * * This value may be presented to the user in the UI. * * @example Disabled */ defaultValue?: string; /** * FeatureFlagRollout * @description Information about the rollout of a Feature Flag in an environment (or in summary). * * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. * * This information may be presented to the user in the UI. * * @example { * "percentage": 80 * } */ rollout?: { /** @description If the Feature Flag rollout is a simple percentage rollout */ percentage?: number; /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ text?: string; /** @description A count of the number of rules active for this Feature Flag in an environment. */ rules?: number; }; }; /** * Format: date-time * @description The last-updated timestamp to present to the user as a summary of the state of the Feature Flag. * * Providers may choose to supply the last-updated timestamp from a specific environment, or the 'most recent' last-updated timestamp across all environments - whatever makes sense in the Provider system. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; }; /** * @description Detail information for this Feature Flag. * * This may be information for each environment the Feature Flag is defined in or a selection of environments made by the user, as appropriate. */ details: ({ /** * Format: uri * @description A URL users can use to link to this Feature Flag, in this environment. * * @example https://example.com/project/feature-123/production */ url: string; /** * Format: date-time * @description The last-updated timestamp for this Feature Flag, in this environment. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * EnvironmentDetails * @description Details of a single environment. * * At the simplest this must be the name of the environment. * * Ideally there is also type information which may be used to group data from multiple Feature Flags and other entities for visualisation in the UI. * * @example { * "name": "prod-us-west", * "type": "production" * } */ environment: { /** @description The name of the environment. */ name: string; /** * @description The 'type' or 'category' of environment this environment belongs to. * @enum {string} */ type?: "development" | "testing" | "staging" | "production"; }; /** * FeatureFlagStatus * @description Status information about a single Feature Flag. */ status: { /** * @description Whether the Feature Flag is enabled in the given environment (or in summary). * * Enabled may imply a partial rollout, which can be described using the 'rollout' field. */ enabled: boolean; /** * @description The value served by this Feature Flag when it is disabled. This could be the actual value or an alias, as appropriate. * * This value may be presented to the user in the UI. * * @example Disabled */ defaultValue?: string; /** * FeatureFlagRollout * @description Information about the rollout of a Feature Flag in an environment (or in summary). * * Only one of 'percentage', 'text', or 'rules' should be provided. They will be used in that order if multiple are present. * * This information may be presented to the user in the UI. * * @example { * "percentage": 80 * } */ rollout?: { /** @description If the Feature Flag rollout is a simple percentage rollout */ percentage?: number; /** @description A text status to display that represents the rollout. This could be e.g. a named cohort. */ text?: string; /** @description A count of the number of rules active for this Feature Flag in an environment. */ rules?: number; }; }; })[]; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Feature Flags module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; /** @description No data found for the given Feature Flag ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete a Feature Flag by ID * @description Delete the Feature Flag data currently stored for the given ID. * * Deletion is performed asynchronously. The getFeatureFlagById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraFeatureFlagInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteFeatureFlagById: { parameters: { query?: { /** * @deprecated * @description This parameter usage is no longer supported. * * An optional `_updateSequenceId` to use to control deletion. * * Only stored data with an `updateSequenceId` less than or equal to that provided will be deleted. * This can be used help ensure submit/delete requests are applied correctly if issued close together. */ _updateSequenceId?: number; }; header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Feature Flags module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; path: { /** @description The ID of the Feature Flag to delete. */ featureFlagId: string; }; }; responses: { /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Feature Flags module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Submit deployment data * @description Update / insert deployment data. * * Deployments are identified by the combination of `pipelineId`, `environmentId` and `deploymentSequenceNumber`, and existing deployment data for the same deployment will be replaced if it exists and the `updateSequenceNumber` of existing data is less than the incoming data. * * Submissions are processed asynchronously. Submitted data will eventually be available in Jira. Most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The `getDeploymentByKey` operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple deployments being submitted in one request, each is validated individually prior to submission. Details of which deployments failed submission (if any) are available in the response object. * * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ submitDeployments: { parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; /** @description Deployment data to submit. */ requestBody: { content: { "application/json": { /** * Properties * @description Properties assigned to deployment data that can then be used for delete / query operations. * * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. * * Properties are supplied as key/value pairs, and a maximum of 5 properties can be supplied, keys cannot contain ':' or start with '_'. * * @example { * "accountId": "account-234", * "projectId": "project-123" * } */ properties?: { [key: string]: string; }; /** * @description A list of deployments to submit to Jira. * * Each deployment may be associated with one or more Jira issue keys, and will be associated with any properties included in this request. */ deployments: ({ /** * Format: int64 * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. * * @example 100 */ deploymentSequenceNumber: number; /** * Format: int64 * @description A number used to apply an order to the updates to the deployment, as identified by the deploymentSequenceNumber, in the case of out-of-order receipt of update requests. It must be a monotonically increasing number. For example, epoch time could be one way to generate the updateSequenceNumber. * * @example 1 */ updateSequenceNumber: number; /** * @deprecated * @description Deprecated. The Jira issue keys to associate the Deployment information with. * Should replace this field with the "associations" field to associate Deployment information with issueKeys or other types of associations. */ issueKeys?: string[]; /** * @description The entities to associate the Deployment information with. * It must contain at least one of IssueIdOrKeysAssociation or ServiceIdOrKeysAssociation. */ associations?: (OneOf<[ { /** * @description Defines the asssociation type. * * @example issueIdOrKeys * @enum {string} */ associationType: "issueKeys" | "issueIdOrKeys"; /** * @description The Jira issue keys to associate the Deployment information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; }, { /** * @description Defines the asssociation type. * * @example serviceIdOrKeys * @enum {string} */ associationType: "serviceIdOrKeys"; /** * @description The service id or keys to associate the Deployment information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; } ]>)[]; /** * @description The human-readable name for the deployment. Will be shown in the UI. * * @example Deployment number 16 of Data Depot */ displayName: string; /** * Format: uri * @description A URL users can use to link to this deployment, in this environment. * * @example http://mydeployer.com/project1/1111-222-333/prod-east */ url: string; /** * @description A short description of the deployment * * @example The bits are being transferred */ description: string; /** * Format: date-time * @description The last-updated timestamp to present to the user as a summary of the state of the deployment. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * @description An (optional) additional label that may be displayed with deployment information. Can be used to display version information etc. for the deployment. * * @example Release 2018-01-20_08-47-bc2421a */ label?: string; /** * Format: int64 * @description The duration of the deployment (in seconds). * * @example 47 */ duration?: number; /** * @description The state of the deployment * * @example in_progress * @enum {string} */ state: "unknown" | "pending" | "in_progress" | "cancelled" | "failed" | "rolled_back" | "successful"; /** * Pipeline * @description This object models the Continuous Delivery (CD) Pipeline concept, an automated process (usually comprised of multiple stages) * * for getting software from version control right through to the production environment. */ pipeline: { /** * @description The identifier of this pipeline, must be unique for the provider. * * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c */ id: string; /** * @description The name of the pipeline to present to the user. * * @example Data Depot Deployment */ displayName: string; /** * Format: uri * @description A URL users can use to link to this deployment pipeline. * * @example http://mydeployer.com/project1 */ url: string; }; /** * Environment * @description The environment that the deployment is present in. */ environment: { /** * @description The identifier of this environment, must be unique for the provider so that it can be shared across pipelines. * * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba */ id: string; /** * @description The name of the environment to present to the user. * * @example US East */ displayName: string; /** * @description The type of the environment. * * @example production * @enum {string} */ type: "unmapped" | "development" | "testing" | "staging" | "production"; }; /** * Commands * @description A list of commands to be actioned for this Deployment */ commands?: { /** * @description The command name. * * @example initiate_deployment_gating */ command?: string; }[]; /** * @description The DeploymentData schema version used for this deployment data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion?: "1.0"; })[]; /** * ProviderMetadata * @description Information about the provider. This is useful for auditing, logging, debugging, * and other internal uses. It is not considered private information. Hence, it may not contain personally * identifiable information. */ providerMetadata?: { /** * @description An optional name of the source of the deployments data. * @example Bamboo 6.10.2 */ product?: string; }; }; }; }; responses: { /** * @description Submission accepted. Each submitted deployment that is of a valid format will eventually be available in Jira. * * Details of which deployments were submitted and which failed submission (due to data format problems etc.) are available in the response object. */ 202: { content: { "application/json": { /** * @description The keys of deployments that have been accepted for submission. A deployment key is a composite key that consists of `pipelineId`, `environmentId` and `deploymentSequenceNumber`. * * A deployment may be rejected if it was only associated with unknown issue keys. * * Note that a deployment that isn't updated due to it's updateSequenceNumber being out of order is not considered a failed submission. */ acceptedDeployments?: { /** * @description The identifier of a pipeline, must be unique for the provider. * * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c */ pipelineId: string; /** * @description The identifier of an environment, must be unique for the provider so that it can be shared across pipelines. * * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba */ environmentId: string; /** * Format: int64 * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. * * @example 100 */ deploymentSequenceNumber: number; }[]; /** * @description Details of deployments that have not been accepted for submission, usually due to a problem with the request data. * * The object will contain the deployment key and any errors associated with that deployment that have prevented it being submitted. */ rejectedDeployments?: { /** * DeploymentKey * @description Fields that uniquely reference a deployment. */ key: { /** * @description The identifier of a pipeline, must be unique for the provider. * * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c */ pipelineId: string; /** * @description The identifier of an environment, must be unique for the provider so that it can be shared across pipelines. * * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba */ environmentId: string; /** * Format: int64 * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. * * @example 100 */ deploymentSequenceNumber: number; }; /** @description The error messages for the rejected deployment */ errors: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }[]; /** * @description Issue keys that are not known on this Jira instance (if any). * * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. * * If a deployment has been associated with issue keys other than those in this array it will still be stored against those valid keys. * If a deployment was only associated with issue keys deemed to be invalid it won't be persisted. */ unknownIssueKeys?: string[]; /** * @description Associations (e.g. Issue Keys or Service IDs) that are not known on this Jira instance (if any). * * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they may be for projects that no longer exist. * * If a deployment has been associated with any other association other than those in this array it will still be stored against those valid associations. * If a deployment was only associated with the associations in this array, it is deemed to be invalid and it won't be persisted. */ unknownAssociations?: (({ /** * @description Defines the asssociation type. * * @example issueIdOrKeys * @enum {string} */ associationType: "issueKeys" | "issueIdOrKeys"; /** * @description The Jira issue keys to associate the Deployment information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; }) | { /** * @description Defines the asssociation type. * * @example serviceIdOrKeys * @enum {string} */ associationType: "serviceIdOrKeys"; /** * @description The service id or keys to associate the Deployment information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; } | ({ /** * @description Defines the association type. Currently supported entities can be found in this field's value enums list. * * @enum {string} */ associationType: "commit" | "repository"; /** * @description The entity keys that represent the entities to be associated. * The number of values counted across all associationTypes (issueKeys, issueIdOrKeys, serviceIdOrKeys, supported ATIs and entity associations) must not exceed a limit of 500. */ values: ({ /** * @description The hash for the Commit. * * @example b00152456cf4 */ commitHash: string; /** * @description The ID of the Repository that the Commit belongs to. * * @example de7fbebffabe */ repositoryId: string; } | { /** @example de7fbebffaba */ repositoryId: string; })[]; }))[]; }; }; }; /** * @description Request has incorrect format. * * Note that in the case of an individual deployment having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid deployment will be contained in the response object. */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; /** @description Data is too large. Submit fewer deployments in each payload. */ 413: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete deployments by Property * @description Bulk delete all deployments that match the given request. * * One or more query params must be supplied to specify the Properties to delete by. Optional param `_updateSequenceNumber` is no longer supported. * If more than one Property is provided, data will be deleted that matches ALL of the Properties (i.e. treated as AND). * See the documentation for the `submitDeployments` operation for more details. * * Example operation: DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * * Deletion is performed asynchronously. The `getDeploymentByKey` operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteDeploymentsByProperty: { parameters: { query?: { /** * @deprecated * @description This parameter usage is no longer supported. * * An optional `updateSequenceNumber` to use to control deletion. * * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. * This can be used help ensure submit/delete requests are applied correctly if issued close together. * * If not provided, all stored data that matches the request will be deleted. */ _updateSequenceNumber?: number; }; header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; responses: { /** @description Delete accepted. Data will eventually be removed from Jira. */ 202: { content: never; }; /** @description Request has incorrect format (e.g. missing at least one Property param). */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, * or the app does not define the 'DELETE' scope for Connect apps. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get a deployment by key * @description Retrieve the currently stored deployment data for the given `pipelineId`, `environmentId` and `deploymentSequenceNumber` combination. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'READ' scope for Connect apps. */ getDeploymentByKey: { parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; path: { /** @description The ID of the deployment's pipeline. */ pipelineId: string; /** @description The ID of the deployment's environment. */ environmentId: string; /** @description The deployment's deploymentSequenceNumber. */ deploymentSequenceNumber: number; }; }; responses: { /** @description The deployment data currently stored for the given ID. */ 200: { content: { "application/json": { /** * Format: int64 * @description This is the identifier for the deployment. It must be unique for the specified pipeline and environment. It must be a monotonically increasing number, as this is used to sequence the deployments. * * @example 100 */ deploymentSequenceNumber: number; /** * Format: int64 * @description A number used to apply an order to the updates to the deployment, as identified by the deploymentSequenceNumber, in the case of out-of-order receipt of update requests. It must be a monotonically increasing number. For example, epoch time could be one way to generate the updateSequenceNumber. * * @example 1 */ updateSequenceNumber: number; /** * @deprecated * @description Deprecated. The Jira issue keys to associate the Deployment information with. * Should replace this field with the "associations" field to associate Deployment information with issueKeys or other types of associations. */ issueKeys?: string[]; /** * @description The entities to associate the Deployment information with. * It must contain at least one of IssueIdOrKeysAssociation or ServiceIdOrKeysAssociation. */ associations?: (OneOf<[ { /** * @description Defines the asssociation type. * * @example issueIdOrKeys * @enum {string} */ associationType: "issueKeys" | "issueIdOrKeys"; /** * @description The Jira issue keys to associate the Deployment information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; }, { /** * @description Defines the asssociation type. * * @example serviceIdOrKeys * @enum {string} */ associationType: "serviceIdOrKeys"; /** * @description The service id or keys to associate the Deployment information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; } ]>)[]; /** * @description The human-readable name for the deployment. Will be shown in the UI. * * @example Deployment number 16 of Data Depot */ displayName: string; /** * Format: uri * @description A URL users can use to link to this deployment, in this environment. * * @example http://mydeployer.com/project1/1111-222-333/prod-east */ url: string; /** * @description A short description of the deployment * * @example The bits are being transferred */ description: string; /** * Format: date-time * @description The last-updated timestamp to present to the user as a summary of the state of the deployment. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * @description An (optional) additional label that may be displayed with deployment information. Can be used to display version information etc. for the deployment. * * @example Release 2018-01-20_08-47-bc2421a */ label?: string; /** * Format: int64 * @description The duration of the deployment (in seconds). * * @example 47 */ duration?: number; /** * @description The state of the deployment * * @example in_progress * @enum {string} */ state: "unknown" | "pending" | "in_progress" | "cancelled" | "failed" | "rolled_back" | "successful"; /** * Pipeline * @description This object models the Continuous Delivery (CD) Pipeline concept, an automated process (usually comprised of multiple stages) * * for getting software from version control right through to the production environment. */ pipeline: { /** * @description The identifier of this pipeline, must be unique for the provider. * * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c */ id: string; /** * @description The name of the pipeline to present to the user. * * @example Data Depot Deployment */ displayName: string; /** * Format: uri * @description A URL users can use to link to this deployment pipeline. * * @example http://mydeployer.com/project1 */ url: string; }; /** * Environment * @description The environment that the deployment is present in. */ environment: { /** * @description The identifier of this environment, must be unique for the provider so that it can be shared across pipelines. * * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba */ id: string; /** * @description The name of the environment to present to the user. * * @example US East */ displayName: string; /** * @description The type of the environment. * * @example production * @enum {string} */ type: "unmapped" | "development" | "testing" | "staging" | "production"; }; /** * Commands * @description A list of commands to be actioned for this Deployment */ commands?: { /** * @description The command name. * * @example initiate_deployment_gating */ command?: string; }[]; /** * @description The DeploymentData schema version used for this deployment data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion?: "1.0"; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, * * or the app does not define the 'READ' scope. */ 403: { content: never; }; /** @description No data found for the given deployment ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete a deployment by key * @description Delete the currently stored deployment data for the given `pipelineId`, `environmentId` and `deploymentSequenceNumber` combination. * * Deletion is performed asynchronously. The `getDeploymentByKey` operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraDeploymentInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteDeploymentByKey: { parameters: { query?: { /** * @deprecated * @description This parameter usage is no longer supported. * * An optional `_updateSequenceNumber` to use to control deletion. * * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. * This can be used help ensure submit/delete requests are applied correctly if issued close together. */ _updateSequenceNumber?: number; }; header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraDeploymentInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; path: { /** @description The ID of the deployment's pipeline. */ pipelineId: string; /** @description The ID of the deployment's environment. */ environmentId: string; /** @description The deployment's deploymentSequenceNumber. */ deploymentSequenceNumber: number; }; }; responses: { /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get deployment gating status by key * @description Retrieve the Deployment gating status for the given `pipelineId + environmentId + deploymentSequenceNumber` combination. * Only apps that define the `jiraDeploymentInfoProvider` module can access this resource. This resource requires the 'READ' scope. */ getDeploymentGatingStatusByKey: { parameters: { path: { /** @description The ID of the Deployment's pipeline. */ pipelineId: string; /** @description The ID of the Deployment's environment. */ environmentId: string; /** @description The Deployment's deploymentSequenceNumber. */ deploymentSequenceNumber: number; }; }; responses: { /** @description The current gating status for the given Deployment */ 200: { content: { "application/json": { /** * Format: int64 * @description This is the identifier for the Deployment. * * @example 100 */ deploymentSequenceNumber?: number; /** * @description The ID of the Deployment's pipeline. * * @example e9c906a7-451f-4fa6-ae1a-c389e2e2d87c */ pipelineId?: string; /** * @description The ID of the Deployment's environment. * * @example 8ec94d72-a4fc-4ac0-b31d-c5a595f373ba */ environmentId?: string; /** * Format: date-time * @description Time the deployment gating status was updated. * * @example 2020-08-25T06:04:50.239Z */ updatedTimestamp?: string; /** * @description The gating status * * @example allowed * @enum {string} */ gatingStatus?: "allowed" | "prevented" | "awaiting" | "invalid"; details?: { /** * @description The type of the gating status details. * * @example issue * @enum {string} */ type: "issue"; /** * IssueKey * @description An issue key that references an issue in Jira. * * @example ABC-123 */ issueKey: string; /** * Format: uri * @description A full HTTPS link to the Jira issue for the change request gating this Deployment. This field is provided if the details type is issue. * * @example https://your-domain.atlassian.net/servicedesk/customer/portal/1/ZAINA-123 */ issueLink: string; }[]; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** @description The JWT token used does not correspond to an app that defines the `jiraDeploymentInfoProvider` module, */ 403: { content: never; }; /** @description No data found for the given deployment ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Submit build data * @description Update / insert builds data. * * Builds are identified by the combination of `pipelineId` and `buildNumber`, and existing build data for the same * build will be replaced if it exists and the `updateSequenceNumber` of the existing data is less than the * incoming data. * * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are * available within a short period of time, but may take some time during peak load and/or maintenance times. * The `getBuildByKey` operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple builds being submitted in one request, each is validated individually prior to * submission. Details of which build failed submission (if any) are available in the response object. * * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ submitBuilds: { parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; /** @description Builds data to submit. */ requestBody: { content: { "application/json": { /** * Properties * @description Properties assigned to build data that can then be used for delete / query operations. * * Examples might be an account or user ID that can then be used to clean up data if an account is removed from * the Provider system. * * Note that these properties will never be returned with build data. They are not intended for use as * metadata to associate with a build. Internally they are stored as a hash so that personal information etc. * is never stored within Jira. * * Properties are supplied as key/value pairs, a maximum of 5 properties can be supplied, and keys must not * contain ':' or start with '_'. * * @example { * "accountId": "account-234", * "projectId": "project-123" * } */ properties?: { [key: string]: string; }; /** * @description A list of builds to submit to Jira. * * Each build may be associated with one or more Jira issue keys, and will be associated with any properties * included in this request. */ builds: ({ /** * @description The schema version used for this data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion?: "1.0"; /** * @description An ID that relates a sequence of builds. Depending on your use case this might be a project ID, pipeline ID, * plan key etc. - whatever logical unit you use to group a sequence of builds. * * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. * * @example my-build-plan */ pipelineId: string; /** * Format: int64 * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. * * Used to identify the 'most recent' build in that sequence of builds. * * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. * * @example 16 */ buildNumber: number; /** * Format: int64 * @description A number used to apply an order to the updates to the build, as identified by `pipelineId` and `buildNumber`, * in the case of out-of-order receipt of update requests. * * It must be a monotonically increasing number. For example, epoch time could be one way to generate the * `updateSequenceNumber`. * * Updates for a build that is received with an `updateSqeuenceNumber` less than or equal to what is currently * stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The human-readable name for the build. * * Will be shown in the UI. * * @example My Project build #16 */ displayName: string; /** * @description An optional description to attach to this build. * * This may be anything that makes sense in your system. * * @example My Project build #16: Failed */ description?: string; /** @description A human-readable string that to provide information about the build. */ label?: string; /** * Format: URL * @description The URL to this build in your system. */ url: string; /** * BuildState * @description The state of a build. * * * `pending` - The build is queued, or some manual action is required. * * `in_progress` - The build is currently running. * * `successful` - The build completed successfully. * * `failed` - The build failed. * * `cancelled` - The build has been cancelled or stopped. * * `unknown` - The build is in an unknown state. * * @example failed * @enum {string} */ state: "pending" | "in_progress" | "successful" | "failed" | "cancelled" | "unknown"; /** * Format: date-time * @description The last-updated timestamp to present to the user as a summary of the state of the build. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * @description The Jira issue keys to associate the build information with. * * You are free to associate issue keys in any way you like. However, we recommend that you use the name * of the branch the build was executed on, and extract issue keys from that name using a simple regex. This has * the advantage that it provides an intuitive association of builds to issue keys. */ issueKeys: string[]; /** * TestInfo * @description Information about tests that were executed during a build. */ testInfo?: { /** * Format: int64 * @description The total number of tests considered during a build. * * @example 150 */ totalNumber: number; /** * Format: int64 * @description The number of tests that passed during a build. * * @example 145 */ numberPassed: number; /** * Format: int64 * @description The number of tests that failed during a build. * * @example 5 */ numberFailed: number; /** * Format: int64 * @description The number of tests that were skipped during a build. * * @default 0 * @example 0 */ numberSkipped?: number; }; /** @description Optional information that links a build to a commit, branch etc. */ references?: { /** * BuildCommitReference * @description Details about the commit the build was run against. */ commit?: { /** * @description The ID of the commit. E.g. for a Git repository this would be the SHA1 hash. * * @example 08cd9c26b2b8d7cf6e6af6b49da8895d065c259f */ id: string; /** * @description An identifier for the repository containing the commit. * * In most cases this should be the URL of the repository in the SCM provider. * * For cases where the build was executed against a local repository etc. this should be some identifier that is * unique to that repository. * * @example https://bitbucket.org/atlassian/biij-vendor-api */ repositoryUri: string; }; /** * BuildRefReference * @description Details about the ref the build was run on. */ ref?: { /** * @description The name of the ref the build ran on * * @example feature/ISSUE-123-some-work */ name: string; /** * @description An identifer for the ref. * * In most cases this should be the URL of the tag/branch etc. in the SCM provider. * * For cases where the build was executed against a local repository etc. this should be something that uniquely * identifies the ref. * * @example https://bitbucket.org/atlassian/biij-vendor-api/refs/feature/ISSUE-123-some-work */ uri: string; }; }[]; })[]; /** * ProviderMetadata * @description Information about the provider. This is useful for auditing, logging, debugging, * and other internal uses. It is not considered private information. Hence, it may not contain personally * identifiable information. */ providerMetadata?: { /** * @description An optional name of the source of the builds data. * @example Bamboo 6.10.2 */ product?: string; }; }; }; }; responses: { /** * @description Submission accepted. Each submitted build that is of a valid format will be eventually available in Jira. * * Details of which builds were submitted and which failed submission (due to data format problems etc.) * are available in the response object. */ 202: { content: { "application/json": { /** * @description The keys of builds that have been accepted for submission. A build key is a composite key that consists of * `pipelineId` and `buildNumber`. * * A build may be rejected if it was only associated with unknown issue keys, or if the submitted data for that * build does not match the required schema. * * Note that a build that isn't updated due to it's `updateSequenceNumber` being out of order is not * considered a failed submission. */ acceptedBuilds?: { /** * @description An ID that relates a sequence of builds. Depending on your system this might be a project ID, pipeline ID, * plan key etc. - whatever logical unit you use to group a sequence of builds. * * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. * * @example my-build-plan */ pipelineId: string; /** * Format: int64 * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. * * Used to identify the 'most recent' build in that sequence of builds. * * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. * * @example 16 */ buildNumber: number; }[]; /** * @description Details of builds that have not been accepted for submission. * * A build may be rejected if it was only associated with unknown issue keys, or if the submitted data for the * build does not match the required schema. */ rejectedBuilds?: { /** * BuildKey * @description Fields that uniquely reference a build. */ key: { /** * @description An ID that relates a sequence of builds. Depending on your system this might be a project ID, pipeline ID, * plan key etc. - whatever logical unit you use to group a sequence of builds. * * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. * * @example my-build-plan */ pipelineId: string; /** * Format: int64 * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. * * Used to identify the 'most recent' build in that sequence of builds. * * The combination of `pipelineId` and `buildNumber` must uniquely identify the build. * * @example 16 */ buildNumber: number; }; /** @description The error messages for the rejected build */ errors: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }[]; /** * @description Issue keys that are not known on this Jira instance (if any). * * These may be invalid keys (e.g. `UTF-8` is sometimes incorrectly identified as a Jira issue key), or they * may be for projects that no longer exist. * * If a build has been associated with issue keys other than those in this array it will still be stored against * those valid keys. If a build was only associated with issue keys deemed to be invalid it won't be persisted. */ unknownIssueKeys?: string[]; }; }; }; /** * @description Request has incorrect format. * * Note that in the case of an individual build having an invalid format (rather than the request as a whole) * the response for the request will be a 202 and details of the invalid build will be contained in the * response object. */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; /** @description Data is too large. Submit fewer builds in each payload. */ 413: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete builds by Property * @description Bulk delete all builds data that match the given request. * * One or more query params must be supplied to specify Properties to delete by. * Optional param `_updateSequenceNumber` is no longer supported. * If more than one Property is provided, data will be deleted that matches ALL of the * Properties (e.g. treated as an AND). * * See the documentation for the `submitBuilds` operation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&repoId=repo-345 * * Deletion is performed asynchronously. The `getBuildByKey` operation can be used to confirm that data has been * deleted successfully (if needed). * * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteBuildsByProperty: { parameters: { query?: { /** * @deprecated * @description This parameter usage is no longer supported. * * An optional `_updateSequenceNumber` to use to control deletion. * * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. * This can be used help ensure submit/delete requests are applied correctly if issued close together. * * If not provided, all stored data that matches the request will be deleted. */ _updateSequenceNumber?: number; }; header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; responses: { /** @description Delete accepted. Data will eventually be removed from Jira. */ 202: { content: never; }; /** @description Request has incorrect format (e.g. missing at least one Property param). */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get a build by key * @description Retrieve the currently stored build data for the given `pipelineId` and `buildNumber` combination. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'READ' scope for Connect apps. */ getBuildByKey: { parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; path: { /** @description The `pipelineId` of the build. */ pipelineId: string; /** @description The `buildNumber` of the build. */ buildNumber: number; }; }; responses: { /** @description The build data currently stored for the given key. */ 200: { content: { "application/json": { /** * @description The schema version used for this data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion?: "1.0"; /** * @description An ID that relates a sequence of builds. Depending on your use case this might be a project ID, pipeline ID, * plan key etc. - whatever logical unit you use to group a sequence of builds. * * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. * * @example my-build-plan */ pipelineId: string; /** * Format: int64 * @description Identifies a build within the sequence of builds identified by the build `pipelineId`. * * Used to identify the 'most recent' build in that sequence of builds. * * The combination of `pipelineId` and `buildNumber` must uniquely identify a build you have provided. * * @example 16 */ buildNumber: number; /** * Format: int64 * @description A number used to apply an order to the updates to the build, as identified by `pipelineId` and `buildNumber`, * in the case of out-of-order receipt of update requests. * * It must be a monotonically increasing number. For example, epoch time could be one way to generate the * `updateSequenceNumber`. * * Updates for a build that is received with an `updateSqeuenceNumber` less than or equal to what is currently * stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The human-readable name for the build. * * Will be shown in the UI. * * @example My Project build #16 */ displayName: string; /** * @description An optional description to attach to this build. * * This may be anything that makes sense in your system. * * @example My Project build #16: Failed */ description?: string; /** @description A human-readable string that to provide information about the build. */ label?: string; /** * Format: URL * @description The URL to this build in your system. */ url: string; /** * BuildState * @description The state of a build. * * * `pending` - The build is queued, or some manual action is required. * * `in_progress` - The build is currently running. * * `successful` - The build completed successfully. * * `failed` - The build failed. * * `cancelled` - The build has been cancelled or stopped. * * `unknown` - The build is in an unknown state. * * @example failed * @enum {string} */ state: "pending" | "in_progress" | "successful" | "failed" | "cancelled" | "unknown"; /** * Format: date-time * @description The last-updated timestamp to present to the user as a summary of the state of the build. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * @description The Jira issue keys to associate the build information with. * * You are free to associate issue keys in any way you like. However, we recommend that you use the name * of the branch the build was executed on, and extract issue keys from that name using a simple regex. This has * the advantage that it provides an intuitive association of builds to issue keys. */ issueKeys: string[]; /** * TestInfo * @description Information about tests that were executed during a build. */ testInfo?: { /** * Format: int64 * @description The total number of tests considered during a build. * * @example 150 */ totalNumber: number; /** * Format: int64 * @description The number of tests that passed during a build. * * @example 145 */ numberPassed: number; /** * Format: int64 * @description The number of tests that failed during a build. * * @example 5 */ numberFailed: number; /** * Format: int64 * @description The number of tests that were skipped during a build. * * @default 0 * @example 0 */ numberSkipped?: number; }; /** @description Optional information that links a build to a commit, branch etc. */ references?: { /** * BuildCommitReference * @description Details about the commit the build was run against. */ commit?: { /** * @description The ID of the commit. E.g. for a Git repository this would be the SHA1 hash. * * @example 08cd9c26b2b8d7cf6e6af6b49da8895d065c259f */ id: string; /** * @description An identifier for the repository containing the commit. * * In most cases this should be the URL of the repository in the SCM provider. * * For cases where the build was executed against a local repository etc. this should be some identifier that is * unique to that repository. * * @example https://bitbucket.org/atlassian/biij-vendor-api */ repositoryUri: string; }; /** * BuildRefReference * @description Details about the ref the build was run on. */ ref?: { /** * @description The name of the ref the build ran on * * @example feature/ISSUE-123-some-work */ name: string; /** * @description An identifer for the ref. * * In most cases this should be the URL of the tag/branch etc. in the SCM provider. * * For cases where the build was executed against a local repository etc. this should be something that uniquely * identifies the ref. * * @example https://bitbucket.org/atlassian/biij-vendor-api/refs/feature/ISSUE-123-some-work */ uri: string; }; }[]; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; /** @description No build data found for the given key. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete a build by key * @description Delete the build data currently stored for the given `pipelineId` and `buildNumber` combination. * * Deletion is performed asynchronously. The `getBuildByKey` operation can be used to confirm that data has been * deleted successfully (if needed). * * Only Connect apps that define the `jiraBuildInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteBuildByKey: { parameters: { query?: { /** * @deprecated * @description This parameter usage is no longer supported. * * An optional `_updateSequenceNumber` to use to control deletion. * * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. * This can be used help ensure submit/delete requests are applied correctly if issued close together. */ _updateSequenceNumber?: number; }; header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraBuildInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; path: { /** @description The `pipelineId` of the build to delete. */ pipelineId: string; /** @description The `buildNumber` of the build to delete. */ buildNumber: number; }; }; responses: { /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraBuildInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Submit Remote Link data * @description Update / insert Remote Link data. * * Remote Links are identified by their ID, existing Remote Link data for the same ID will be replaced if it * exists and the updateSequenceId of existing data is less than the incoming data. * * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are * available within a short period of time, but may take some time during peak load and/or maintenance times. * The `getRemoteLinkById` operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple Remote Links being submitted in one request, each is validated individually prior to * submission. Details of which Remote LInk failed submission (if any) are available in the response object. * * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module can access this resource. This resource * requires the 'WRITE' scope for Connect apps. */ submitRemoteLinks: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; /** @description Remote Links data to submit. */ requestBody: { content: { "application/json": { /** * Properties * @description Properties assigned to Remote Link data that can then be used for delete / query operations. * * Examples might be an account or user ID that can then be used to clean up data if an account is removed from * the Provider system. * * Properties are supplied as key/value pairs, a maximum of 5 properties can be supplied, and keys must not * contain ':' or start with '_'. * * @example { * "accountId": "account-234", * "projectId": "project-123" * } */ properties?: { [key: string]: string; }; /** * @description A list of Remote Links to submit to Jira. * * Each Remote Link may be associated with one or more Jira issue keys, and will be associated with any properties * included in this request. */ remoteLinks: ({ /** * @description The schema version used for this data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion?: "1.0"; /** * @description The identifier for the Remote Link. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this Remote Link in the case of out-of-order receipt of * update requests. * * It must be a monotonically increasing number. For example, epoch time could be one way to generate the * `updateSequenceNumber`. * * Updates for a Remote Link that is received with an `updateSqeuenceNumber` less than or equal to what is currently * stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The human-readable name for the Remote Link. * * Will be shown in the UI. * * @example Remote Link #42 */ displayName: string; /** * Format: uri * @description The URL to this Remote Link in your system. */ url: string; /** * @description The type of the Remote Link. The current supported types are 'document', 'alert', 'test', * 'security', 'logFile', 'prototype', 'coverage', 'bugReport' and 'other' * * @example security * @enum {string} */ type: "document" | "alert" | "test" | "security" | "logFile" | "prototype" | "coverage" | "bugReport" | "other"; /** * @description An optional description to attach to this Remote Link. * * This may be anything that makes sense in your system. * * @example Remote Link #42 with more information in this description */ description?: string; /** * Format: date-time * @description The last-updated timestamp to present to the user as a summary of when Remote Link was last updated. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** @description The entities to associate the Remote Link information with. */ associations?: ({ /** * @description Defines the asssociation type. * * @example issueKeys * @enum {string} */ associationType: "issueKeys"; /** * @description The Jira issue keys to associate the Remote Link information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; } | { /** * @description Defines the asssociation type. * * @example serviceIdOrKeys * @enum {string} */ associationType: "serviceIdOrKeys"; /** * @description The service id or keys to associate the Remote Link information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; })[]; /** * RemoteLinkStatus * @description The status of a Remote Link. */ status?: { /** * @description Appearance is a fixed set of appearance types affecting the colour * of the status lozenge in the UI. The colours they correspond to are * equivalent to atlaskit's [Lozenge](https://atlaskit.atlassian.com/packages/core/lozenge) component. * * @example inprogress * @enum {string} */ appearance: "default" | "inprogress" | "moved" | "new" | "removed" | "prototype" | "success"; /** * @description The human-readable description for the Remote Link status. * * Will be shown in the UI. * * @example ANOMALOUS */ label: string; }; /** * @description Optional list of actionIds. They are associated with the actions the provider is able to provide when they * registered. Indicates which actions this Remote Link has. * * If any actions have a templateUrl that requires string substitution, then `attributeMap` must be passed in. * * @example [ * "action-111-222-333", * "action-444-555-666" * ] */ actionIds?: string[]; /** * @description Map of key/values (string to string mapping). This is used to build the urls for actions from the * templateUrl the provider registered their available actions with. */ attributeMap?: { [key: string]: string; }; })[]; /** * ProviderMetadata * @description Information about the provider. This is useful for auditing, logging, debugging, and other internal uses. It is * not considered private information. Hence, it may not contain personally identifiable information. */ providerMetadata?: { /** * @description An optional name of the source of the Remote Links data. * @example Opsgenie 6.10.2 */ product?: string; }; }; }; }; responses: { /** * @description Submission accepted. Each submitted Remote Link that is of a valid format will be eventually available in * Jira. * * Details of which Remote Links were submitted and which failed submission (due to data format problems etc.) * are available in the response object. */ 202: { content: { "application/json": { /** * @description The IDs of Remote Links that have been accepted for submission. * * A Remote Link may be rejected if it was only associated with unknown issue keys, unknown service IDs, or if * the submitted data for that Remote Link does not match the required schema. * * Note that a Remote Link that isn't updated due to it's `updateSequenceNumber` being out of order is not * considered a failed submission. * * @example [ * "111-222-333", * "444-555-666" * ] */ acceptedRemoteLinks?: string[]; /** * @description Details of Remote Links that have not been accepted for submission, usually due to a problem with the request data. * * A Remote Link may be rejected if it was only associated with unknown issue keys, unknown service IDs, or * if the submitted data for the Remote Link does not match the required schema. * * The object (if present) will be keyed by Remote Link ID and include any errors associated with that * Remote Link that have prevented it being submitted. */ rejectedRemoteLinks?: { [key: string]: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; /** @description Issue keys or services IDs or keys that are not known on this Jira instance (if any). */ unknownAssociations?: ({ /** * @description Defines the asssociation type. * * @example issueKeys * @enum {string} */ associationType: "issueKeys"; /** * @description The Jira issue keys to associate the Remote Link information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; } | { /** * @description Defines the asssociation type. * * @example serviceIdOrKeys * @enum {string} */ associationType: "serviceIdOrKeys"; /** * @description The service id or keys to associate the Remote Link information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; })[]; }; }; }; /** * @description Request has incorrect format. * * Note that in the case of an individual Remote Link having an invalid format (rather than the request as a * whole) the response for the request will be a 202 and details of the invalid Remote Link will be contained * in the response object. */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; /** @description Data is too large. Submit fewer Remote Links in each payload. */ 413: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete Remote Links by Property * @description Bulk delete all Remote Links data that match the given request. * * One or more query params must be supplied to specify Properties to delete by. * Optional param `_updateSequenceNumber` is no longer supported. If more than one Property is provided, * data will be deleted that matches ALL of the Properties (e.g. treated as an AND). * * See the documentation for the `submitRemoteLinks` operation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&repoId=repo-345 * * Deletion is performed asynchronously. The `getRemoteLinkById` operation can be used to confirm that data has been * deleted successfully (if needed). * * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteRemoteLinksByProperty: { parameters: { query?: { /** * @deprecated * @description This parameter usage is no longer supported. * * An optional `_updateSequenceNumber` to use to control deletion. * * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. * This can be used help ensure submit/delete requests are applied correctly if issued close together. * * If not provided, all stored data that matches the request will be deleted. */ _updateSequenceNumber?: number; /** * @description Free-form query parameters to specify which properties to delete by. Properties refer to the arbitrary * information the provider tagged Remote Links with previously. * * For example, if the provider previously tagged a remote link with accountId: * "properties": { * "accountId": "account-123" * } * * And now they want to delete Remote Links in bulk by that specific accountId as follows: * e.g. DELETE /bulkByProperties?accountId=account-123 */ params?: Record; }; header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that * corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; }; responses: { /** @description Delete accepted. Data will eventually be removed from Jira. */ 202: { content: never; }; /** @description Request has incorrect format (e.g. missing at least one Property param). */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get a Remote Link by ID * @description Retrieve the currently stored Remote Link data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'READ' scope for Connect apps. */ getRemoteLinkById: { parameters: { header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that * corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; path: { /** @description The ID of the Remote Link to fetch. */ remoteLinkId: string; }; }; responses: { /** @description The Remote Link data currently stored for the given ID. */ 200: { content: { "application/json": { /** * @description The schema version used for this data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion?: "1.0"; /** * @description The identifier for the Remote Link. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this Remote Link in the case of out-of-order receipt of * update requests. * * It must be a monotonically increasing number. For example, epoch time could be one way to generate the * `updateSequenceNumber`. * * Updates for a Remote Link that is received with an `updateSqeuenceNumber` less than or equal to what is currently * stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The human-readable name for the Remote Link. * * Will be shown in the UI. * * @example Remote Link #42 */ displayName: string; /** * Format: uri * @description The URL to this Remote Link in your system. */ url: string; /** * @description The type of the Remote Link. The current supported types are 'document', 'alert', 'test', * 'security', 'logFile', 'prototype', 'coverage', 'bugReport' and 'other' * * @example security * @enum {string} */ type: "document" | "alert" | "test" | "security" | "logFile" | "prototype" | "coverage" | "bugReport" | "other"; /** * @description An optional description to attach to this Remote Link. * * This may be anything that makes sense in your system. * * @example Remote Link #42 with more information in this description */ description?: string; /** * Format: date-time * @description The last-updated timestamp to present to the user as a summary of when Remote Link was last updated. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** @description The entities to associate the Remote Link information with. */ associations?: ({ /** * @description Defines the asssociation type. * * @example issueKeys * @enum {string} */ associationType: "issueKeys"; /** * @description The Jira issue keys to associate the Remote Link information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; } | { /** * @description Defines the asssociation type. * * @example serviceIdOrKeys * @enum {string} */ associationType: "serviceIdOrKeys"; /** * @description The service id or keys to associate the Remote Link information with. * * The number of values counted across all associationTypes (issueKeys, * issueIdOrKeys and serviceIdOrKeys) must not exceed a limit of 500. */ values: string[]; })[]; /** * RemoteLinkStatus * @description The status of a Remote Link. */ status?: { /** * @description Appearance is a fixed set of appearance types affecting the colour * of the status lozenge in the UI. The colours they correspond to are * equivalent to atlaskit's [Lozenge](https://atlaskit.atlassian.com/packages/core/lozenge) component. * * @example inprogress * @enum {string} */ appearance: "default" | "inprogress" | "moved" | "new" | "removed" | "prototype" | "success"; /** * @description The human-readable description for the Remote Link status. * * Will be shown in the UI. * * @example ANOMALOUS */ label: string; }; /** * @description Optional list of actionIds. They are associated with the actions the provider is able to provide when they * registered. Indicates which actions this Remote Link has. * * If any actions have a templateUrl that requires string substitution, then `attributeMap` must be passed in. * * @example [ * "action-111-222-333", * "action-444-555-666" * ] */ actionIds?: string[]; /** * @description Map of key/values (string to string mapping). This is used to build the urls for actions from the * templateUrl the provider registered their available actions with. */ attributeMap?: { [key: string]: string; }; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; /** @description No Remote Link data found for the given ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete a Remote Link by ID * @description Delete the Remote Link data currently stored for the given ID. * * Deletion is performed asynchronously. The `getRemoteLinkById` operation can be used to confirm that data has been * deleted successfully (if needed). * * Only Connect apps that define the `jiraRemoteLinkInfoProvider` module, and on-premise integrations, can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteRemoteLinkById: { parameters: { query?: { /** * @deprecated * @description This parameter usage is no longer supported. * * An optional `_updateSequenceNumber` to use to control deletion. * * Only stored data with an `updateSequenceNumber` less than or equal to that provided will be deleted. * This can be used help ensure submit/delete requests are applied correctly if issued close together. */ _updateSequenceNumber?: number; }; header: { /** * @description All requests must be signed with either a Connect JWT token or OAuth token for an on-premise integration that * corresponds to an app installed in Jira. * * If the Connect JWT token corresponds to an app that does not define `jiraRemoteLinkInfoProvider` module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details about Connect JWT tokens. * See https://developer.atlassian.com/cloud/jira/software/integrate-jsw-cloud-with-onpremises-tools/ for details about on-premise integrations. */ Authorization: string; }; path: { /** @description The ID of the Remote Link to fetch. */ remoteLinkId: string; }; }; responses: { /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraRemoteLinkInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Submit Security Workspaces to link * @description Insert Security Workspace IDs to establish a relationship between them and the Jira site the app is installed on. If a relationship between the workspace ID and Jira already exists then the workspace ID will be ignored and Jira will process the rest of the entries. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ submitWorkspaces: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * * Read [understanding jwt](https://developer.atlassian.com/blog/2015/01/understanding-jwt/) for more details. */ Authorization: string; }; }; /** @description Security Workspace IDs to submit. */ requestBody: { content: { "application/json": { /** * Security Workspace IDs * @description The IDs of Security Workspaces to link to this Jira site. These must follow this regex pattern: `[a-zA-Z0-9\\-_.~@:{}=]+(\/[a-zA-Z0-9\\-_.~@:{}=]+)*` * * @example [ * "111-222-333", * "444-555-666" * ] */ workspaceIds: string[]; }; }; }; responses: { /** @description Submission accepted. Each submitted Security Workspace ID will be linked to Jira. */ 202: { content: never; }; /** @description Request has incorrect format. */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; /** @description Set of Ids is too large. Submit fewer Ids in each payload. */ 413: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete linked Security Workspaces * @description Bulk delete all linked Security Workspaces that match the given request. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. * * e.g. DELETE /bulk?workspaceIds=111-222-333,444-555-666 */ deleteLinkedWorkspaces: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * * Read [understanding jwt](https://developer.atlassian.com/blog/2015/01/understanding-jwt/) for more details. */ Authorization: string; }; }; responses: { /** @description Delete accepted. Workspaces and related data will eventually be removed from Jira. */ 202: { content: never; }; /** @description Request has incorrect format. */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get linked Security Workspaces * @description Retrieve all Security Workspaces linked with the Jira site. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ getLinkedWorkspaces: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; }; responses: { /** @description A list of all stored workspace IDs. */ 200: { content: { "application/json": { /** * Security Workspace IDs * @description The IDs of Security Workspaces that are linked to this Jira site. * * @example [ * "111-222-333", * "444-555-666" * ] */ workspaceIds: string[]; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; /** @description No data found for the given workspace ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get a linked Security Workspace by ID * @description Retrieve a specific Security Workspace linked to the Jira site for the given workspace ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ getLinkedWorkspaceById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; path: { /** @description The ID of the workspace to fetch. */ workspaceId: string; }; }; responses: { /** @description The Security Workspace information stored for the given ID. */ 200: { content: { "application/json": { /** * @description The Security Workspace ID * * @example 111-222-333 */ workspaceId: string; /** * Format: date-time * @description Latest date and time that the Security Workspace was updated in Jira. * * @example 2020-01-17T09:30:00.000Z */ updatedAt: string; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; /** @description No data found for the given workspace ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Submit Vulnerability data * @description Update / Insert Vulnerability data. * * Vulnerabilities are identified by their ID, any existing Vulnerability data with the same ID will be replaced if it exists and the updateSequenceNumber of the existing data is less than the incoming data. * * Submissions are performed asynchronously. Most updates are available within a short period of time but may take some time during peak load and/or maintenance times. The GET vulnerability endpoint can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple Vulnerabilities being submitted in one request, each is validated individually prior to submission. Details of Vulnerabilities that failed submission (if any) are available in the response object. * * A maximum of 1000 vulnerabilities can be submitted in one request. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ submitVulnerabilities: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Security Information module it will be rejected with a 403. * * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; }; /** @description Vulnerability data to submit. */ requestBody: { content: { "application/json": { /** * @description Indicates the operation being performed by the provider system when sending this data. "NORMAL" - Data received during real-time, user-triggered actions (e.g. user closed or updated a vulnerability). "SCAN" - Data sent through some automated process (e.g. some periodically scheduled repository scan). "BACKFILL" - Data received while backfilling existing data (e.g. pushing historical vulnerabilities when re-connect a workspace). Default is "NORMAL". "NORMAL" traffic has higher priority but tighter rate limits, "SCAN" traffic has medium priority and looser limits, "BACKFILL" has lower priority and much looser limits * * @example SCAN * @enum {string} */ operationType?: "NORMAL" | "SCAN" | "BACKFILL"; /** * Properties * @description Properties assigned to vulnerability data that can then be used for delete / query operations. * * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. * * Properties are supplied as key/value pairs, and a maximum of 5 properties can be supplied, keys cannot contain ':' or start with '_'. * * @example { * "accountId": "account-234", * "projectId": "project-123" * } */ properties?: { [key: string]: string; }; vulnerabilities: ({ /** * @description The VulnerabilityData schema version used for this vulnerability data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion: "1.0"; /** * @description The identifier for the Vulnerability. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this Vulnerability in the case of out-of-order receipt of update requests. * * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Vulnerability and increment that on each update to Jira). * * Updates for a Vulnerability that are received with an updateSequenceId lower than what is currently stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The identifier of the Container where this Vulnerability was found. Must be unique for a given Provider. This must follow this regex pattern: `[a-zA-Z0-9\\-_.~@:{}=]+(/[a-zA-Z0-9\\-_.~@:{}=]+)*` * * @example 111-222-333 */ containerId: string; /** * @description The human-readable name for the Vulnerability. Will be shown in the UI. * * If not provided, will use the ID for display. * * @example curl/libcurl3 - Buffer Override */ displayName: string; /** * @description A description of the issue in markdown format that will be shown in the UI and used when creating Jira Issues. HTML tags are not supported in the markdown format. For creating a new line `\n` can be used. Read more about the accepted markdown transformations [here](https://atlaskit.atlassian.com/packages/editor/editor-markdown-transformer). * * @example ## Overview * * * Affected versions of this package are vulnerable to MeltLeak */ description: string; /** * Format: uri * @description A URL users can use to link to a summary view of this vulnerability, if appropriate. * * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the vulnerability in that project). * * @example https://example.com/project/CWE-123/summary */ url: string; /** * @description The type of Vulnerability detected. * @example sca * @enum {string} */ type: "sca" | "sast" | "dast" | "unknown"; /** * Format: date-time * @description The timestamp to present to the user that shows when the Vulnerability was introduced. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ introducedDate: string; /** * Format: date-time * @description The last-updated timestamp to present to the user the last time the Vulnerability was updated. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * VulnerabilitySeverity * @description Severity information for a single Vulnerability. * * This is the severity information that will be presented to the user on e.g. the Jira Security screen. */ severity: { /** * @description The severity level of the Vulnerability. * @example critical * @enum {string} */ level: "critical" | "high" | "medium" | "low" | "unknown"; }; /** @description The identifying information for the Vulnerability. */ identifiers?: { /** * @description The display name of the Vulnerability identified. * * @example CWE-123 */ displayName: string; /** * Format: uri * @description A URL users can use to link to the definition of the Vulnerability identified. * * @example https://cwe.mitre.org/data/definitions/123.html */ url: string; }[]; /** * VulnerabilityStatus * @description The current status of the Vulnerability. * * @example open * @enum {string} */ status: "open" | "closed" | "ignored" | "unknown"; /** * VulnerabilityAdditionalInfo * @description Extra information (optional). This data will be shown in the security feature under the vulnerability displayName. */ additionalInfo?: { /** * @description The content of the additionalInfo. * * @example More information on the vulnerability, as a string */ content: string; /** * Format: uri * @description Optional URL linking to the information * * @example https://example.com/project/CWE-123/additionalInfo */ url?: string; }; /** @description The associations (e.g. Jira issue) to add in addition to the currently stored associations of the Security Vulnerability. */ addAssociations?: { /** * @description Defines the association type. * * @example issueIdOrKeys * @enum {string} */ associationType: "issueIdOrKeys"; /** * @description The Jira issue id or keys to associate the Security information with. * * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. */ values: string[]; }[]; /** @description The associations (e.g. Jira issue) to remove from currently stored associations of the Security Vulnerability. */ removeAssociations?: { /** * @description Defines the association type. * * @example issueIdOrKeys * @enum {string} */ associationType: "issueIdOrKeys"; /** * @description The Jira issue id or keys to associate the Security information with. * * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. */ values: string[]; }[]; /** * Format: date-time * @description An ISO-8601 Date-time string representing the last time the provider updated associations on this entity. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ associationsLastUpdated?: string; /** * Format: int64 * @description A sequence number to compare when writing entity associations to the database. * * This can be any monotonically increasing number. A highly recommended implementation is to use epoch millis. * * This is an optional field. If it is not provided it will default to being equal to the corresponding entity's `updateSequenceNumber`. * * Associations are written following a LastWriteWins strategy, association that are received with an associationsUpdateSequenceNumber lower than what is currently stored will be ignored. * * @example 1523494301448 */ associationsUpdateSequenceNumber?: number; })[]; /** * ProviderMetadata * @description Information about the provider. This is useful for auditing, logging, debugging, * and other internal uses. Information in this property is not considered private, so it should not contain personally identifiable information */ providerMetadata?: { /** * @description An optional name of the source of the vulnerabilities. * @example Atlassian Security Platform 2.1.0 */ product?: string; }; }; }; }; responses: { /** * @description Submission accepted. Each Vulnerability submitted in a valid format will eventually be available in Jira. * * Details of any Vulnerabilities that were submitted but failed submission (due to data format problems, etc.) are available in the response object. */ 202: { content: { "application/json": { /** * @description The IDs of Vulnerabilities that have been accepted for submission. * * A Vulnerability may be rejected if it was only associated with unknown project keys. * * Note that a Vulnerability that isn't updated due to it's updateSequenceNumber being out of order is not considered a failed submission. * * @example [ * "111-222-333", * "444-555-666" * ] */ acceptedVulnerabilities?: string[]; /** * @description Details of Vulnerabilities that have not been accepted for submission, usually due to a problem with the request data. * * The object (if present) will be keyed by Vulnerability ID and include any errors associated with that Vulnerability that have prevented it being submitted. */ failedVulnerabilities?: { [key: string]: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; /** * @description Associations (e.g. Service IDs) that are not known on this Jira instance (if any). * * If a Vulnerability has been associated with any other association other than those in this array it will still be stored against those valid associations. * If a Vulnerability was only associated with the associations in this array, it is deemed to be invalid and it won't be persisted. */ unknownAssociations?: { /** * @description Defines the association type. * * @example issueIdOrKeys * @enum {string} */ associationType: "issueIdOrKeys"; /** * @description The Jira issue id or keys to associate the Security information with. * * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. */ values: string[]; }[]; }; }; }; /** * @description Request has incorrect format. * * Note that in the case of an individual Vulnerability having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid Vulnerability will be contained in the response object. */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; /** @description Data is too large. Submit fewer Vulnerabilities in each payload. */ 413: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description API rate limit has been exceeded. */ 429: { headers: { /** @description The number of remaining possible requests in current rate limit window. */ "X-RateLimit-Remaining"?: number; /** @description The date in ISO 8601 format when the rate limit values will be next reset. */ "X-RateLimit-Reset"?: string; /** @description The maximum possible requests in a window of one minute. */ "X-RateLimit-Limit"?: number; /** @description The number of seconds to wait before making a follow-up request. */ "Retry-After"?: number; }; content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete Vulnerabilities by Property * @description Bulk delete all Vulnerabilities that match the given request. * * One or more query params must be supplied to specify Properties to delete by. * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). * Read the POST bulk endpoint documentation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * * Deletion is performed asynchronously. The GET vulnerability endpoint can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteVulnerabilitiesByProperty: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Security Information module it will be rejected with a 403. * * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; }; responses: { /** @description Delete accepted. Data will eventually be removed from Jira. */ 202: { content: never; }; /** @description Request has incorrect format (e.g. missing at least one Property param). */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get a Vulnerability by ID * @description Retrieve the currently stored Vulnerability data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ getVulnerabilityById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Security Information module it will be rejected with a 403. * * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; path: { /** @description The ID of the Vulnerability to fetch. */ vulnerabilityId: string; }; }; responses: { /** @description The Vulnerability data currently stored for the given ID. */ 200: { content: { "application/json": { /** * @description The VulnerabilityData schema version used for this vulnerability data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion: "1.0"; /** * @description The identifier for the Vulnerability. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this Vulnerability in the case of out-of-order receipt of update requests. * * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Vulnerability and increment that on each update to Jira). * * Updates for a Vulnerability that are received with an updateSequenceId lower than what is currently stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The identifier of the Container where this Vulnerability was found. Must be unique for a given Provider. This must follow this regex pattern: `[a-zA-Z0-9\\-_.~@:{}=]+(/[a-zA-Z0-9\\-_.~@:{}=]+)*` * * @example 111-222-333 */ containerId: string; /** * @description The human-readable name for the Vulnerability. Will be shown in the UI. * * If not provided, will use the ID for display. * * @example curl/libcurl3 - Buffer Override */ displayName: string; /** * @description A description of the issue in markdown format that will be shown in the UI and used when creating Jira Issues. HTML tags are not supported in the markdown format. For creating a new line `\n` can be used. Read more about the accepted markdown transformations [here](https://atlaskit.atlassian.com/packages/editor/editor-markdown-transformer). * * @example ## Overview * * * Affected versions of this package are vulnerable to MeltLeak */ description: string; /** * Format: uri * @description A URL users can use to link to a summary view of this vulnerability, if appropriate. * * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the vulnerability in that project). * * @example https://example.com/project/CWE-123/summary */ url: string; /** * @description The type of Vulnerability detected. * @example sca * @enum {string} */ type: "sca" | "sast" | "dast" | "unknown"; /** * Format: date-time * @description The timestamp to present to the user that shows when the Vulnerability was introduced. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ introducedDate: string; /** * Format: date-time * @description The last-updated timestamp to present to the user the last time the Vulnerability was updated. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * VulnerabilitySeverity * @description Severity information for a single Vulnerability. * * This is the severity information that will be presented to the user on e.g. the Jira Security screen. */ severity: { /** * @description The severity level of the Vulnerability. * @example critical * @enum {string} */ level: "critical" | "high" | "medium" | "low" | "unknown"; }; /** @description The identifying information for the Vulnerability. */ identifiers?: { /** * @description The display name of the Vulnerability identified. * * @example CWE-123 */ displayName: string; /** * Format: uri * @description A URL users can use to link to the definition of the Vulnerability identified. * * @example https://cwe.mitre.org/data/definitions/123.html */ url: string; }[]; /** * VulnerabilityStatus * @description The current status of the Vulnerability. * * @example open * @enum {string} */ status: "open" | "closed" | "ignored" | "unknown"; /** * VulnerabilityAdditionalInfo * @description Extra information (optional). This data will be shown in the security feature under the vulnerability displayName. */ additionalInfo?: { /** * @description The content of the additionalInfo. * * @example More information on the vulnerability, as a string */ content: string; /** * Format: uri * @description Optional URL linking to the information * * @example https://example.com/project/CWE-123/additionalInfo */ url?: string; }; /** @description The associations (e.g. Jira issue) to add in addition to the currently stored associations of the Security Vulnerability. */ addAssociations?: { /** * @description Defines the association type. * * @example issueIdOrKeys * @enum {string} */ associationType: "issueIdOrKeys"; /** * @description The Jira issue id or keys to associate the Security information with. * * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. */ values: string[]; }[]; /** @description The associations (e.g. Jira issue) to remove from currently stored associations of the Security Vulnerability. */ removeAssociations?: { /** * @description Defines the association type. * * @example issueIdOrKeys * @enum {string} */ associationType: "issueIdOrKeys"; /** * @description The Jira issue id or keys to associate the Security information with. * * The number of values counted across all associationTypes (issueIdOrKeys) must not exceed a limit of 500. */ values: string[]; }[]; /** * Format: date-time * @description An ISO-8601 Date-time string representing the last time the provider updated associations on this entity. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ associationsLastUpdated?: string; /** * Format: int64 * @description A sequence number to compare when writing entity associations to the database. * * This can be any monotonically increasing number. A highly recommended implementation is to use epoch millis. * * This is an optional field. If it is not provided it will default to being equal to the corresponding entity's `updateSequenceNumber`. * * Associations are written following a LastWriteWins strategy, association that are received with an associationsUpdateSequenceNumber lower than what is currently stored will be ignored. * * @example 1523494301448 */ associationsUpdateSequenceNumber?: number; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; /** @description No data found for the given Vulnerability ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete a Vulnerability by ID * @description Delete the Vulnerability data currently stored for the given ID. * * Deletion is performed asynchronously. The GET vulnerability endpoint can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraSecurityInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteVulnerabilityById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Security Information module it will be rejected with a 403. * * Read more about JWT [here](https://developer.atlassian.com/blog/2015/01/understanding-jwt/). */ Authorization: string; }; path: { /** @description The ID of the Vulnerability to delete. */ vulnerabilityId: string; }; }; responses: { /** @description Delete has been accepted. If the data exists, it will eventually be removed from Jira. */ 202: { content: never; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the `jiraSecurityInfoProvider` module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Submit Operations Workspace Ids * @description Insert Operations Workspace IDs to establish a relationship between them and the Jira site the app is installed in. If a relationship between the Workspace ID and Jira already exists then the workspace ID will be ignored and Jira will process the rest of the entries. * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ submitOperationsWorkspaces: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Operations module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; /** @description Operations Workspace ids to submit. */ requestBody: { content: { "application/json": { /** * Operations Workspace Ids * @description The IDs of Operations Workspaces that are available to this Jira site. * * @example [ * "111-222-333", * "444-555-666" * ] */ workspaceIds: string[]; }; }; }; responses: { /** @description Submission accepted. Each submitted Operations Workspace ID will be linked to Jira. */ 202: { content: { "application/json": { /** * @description The IDs of Operations Workspaces that have been linked to the Jira site in this request. * * @example [ * "111-222-333", * "444-555-666" * ] */ acceptedWorkspaceIds?: string[]; }; }; }; /** @description Request has incorrect format. */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; /** @description Set of Ids is too large. Submit fewer Ids in each payload. */ 413: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete Operations Workpaces by Id * @description Bulk delete all Operations Workspaces that match the given request. * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. * * e.g. DELETE /bulk?workspaceIds=111-222-333,444-555-666 */ deleteWorkspaces: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Operations module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; responses: { /** @description Delete accepted. Workspaces and relate data will eventually be removed from Jira. */ 202: { content: never; }; /** @description Request has incorrect format. */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get all Operations Workspace IDs or a specific Operations Workspace by ID * @description Retrieve the either all Operations Workspace IDs associated with the Jira site or a specific Operations Workspace ID for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * e.g. GET /workspace?workspaceId=111-222-333 * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ getWorkspaces: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; responses: { /** @description Either the ID provided if stored or a list of available IDs. */ 200: { content: { "application/json": { /** * Operations Workspace Ids * @description The IDs of Operations Workspaces that are available to this Jira site. * * @example [ * "111-222-333", * "444-555-666" * ] */ workspaceIds: string[]; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; /** @description No data found for the given Workspace ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Submit Incident or Review data * @description Update / insert Incident or Review data. * * Incidents and reviews are identified by their ID, and existing Incident and Review data for the same ID will be replaced if it exists and the updateSequenceNumber of existing data is less than the incoming data. * * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getIncidentById or getReviewById operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple Incidents and Reviews being submitted in one request, each is validated individually prior to submission. Details of which entities failed submission (if any) are available in the response object. * * A maximum of 1000 incidents can be submitted in one request. * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ submitEntity: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; /** @description Incident data to submit. */ requestBody: { content: { "application/json": { /** * Properties * @description Properties assigned to incidents/components/review data that can then be used for delete / query operations. * * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. * * Properties are supplied as key/value pairs, and a maximum of 5 properties can be supplied, keys cannot contain ':' or start with '_'. * * @example { * "accountId": "account-234", * "projectId": "project-123" * } */ properties?: { [key: string]: string; }; /** * ProviderMetadata * @description Information about the provider. This is useful for auditing, logging, debugging, * and other internal uses. It is not considered private information. Hence, it may not contain personally * identifiable information. */ providerMetadata?: { /** * @description An optional name of the source of the incidents. * @example Atlassian Operations Platform 2.1.0 */ product?: string; }; } & (({ incidents?: ({ /** * @description The IncidentData schema version used for this incident data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion: "1.0"; /** * @description The identifier for the Incident. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this Incident in the case of out-of-order receipt of update requests. * * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Incident and increment that on each update to Jira). * * Updates for a Incident that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The IDs of the Components impacted by this Incident. Must be unique for a given Provider. * * @example [ * "111-222-333", * "444-555-666" * ] */ affectedComponents: string[]; /** * @description The human-readable summary for the Incident. Will be shown in the UI. * * If not provided, will use the ID for display. * * @example Unable to log into VPN */ summary: string; /** * @description A description of the issue in Markdown format. Will be shown in the UI and used when creating Jira Issues. * * @example null */ description: string; /** * Format: uri * @description A URL users can use to link to a summary view of this incident, if appropriate. * * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the incident in that project). * * @example https://example.com/project/ITHELPDESK-9/summary */ url: string; /** * Format: date-time * @description The timestamp to present to the user that shows when the Incident was raised. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ createdDate: string; /** * Format: date-time * @description The last-updated timestamp to present to the user the last time the Incident was updated. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * IncidentSeverity * @description Severity information for a single Incident. * * This is the severity information that will be presented to the user on e.g. the Jira Incidents screen. */ severity?: { /** * @description The severity level of the Incident with P1 being the highest and P5 being the lowest * @example P1 * @enum {string} */ level: "P1" | "P2" | "P3" | "P4" | "P5" | "unknown"; }; /** * IncidentStatus * @description The current status of the Incident. * * @example open * @enum {string} */ status: "open" | "resolved" | "unknown"; /** @description The IDs of the Jira issues related to this Incident. Must be unique for a given Provider. */ associations?: ({ /** * @description the type of the association being made * @example issueIdOrKeys * @enum {string} */ associationType?: "issueIdOrKeys" | "serviceIdOrKeys" | "ati:cloud:compass:event-source"; values?: string[]; })[]; })[]; }) | ({ reviews?: ({ /** * @description The PostIncidentReviewData schema version used for this post-incident review data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion: "1.0"; /** * @description The identifier for the Review. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this Review in the case of out-of-order receipt of update requests. * * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Review and increment that on each update to Jira). * * Updates for a Review that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The IDs of the Incidents covered by this Review. Must be unique for a given Provider. * * @example [ * "111-222-333", * "444-555-666" * ] */ reviews: string[]; /** * @description The human-readable summary for the Post-Incident Review. Will be shown in the UI. * * If not provided, will use the ID for display. * * @example PIR - Unable to log into VPN */ summary: string; /** * @description A description of the review in Markdown format. Will be shown in the UI and used when creating Jira Issues. * * @example null */ description: string; /** * Format: uri * @description A URL users can use to link to a summary view of this review, if appropriate. * * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the review in that project). * * @example https://example.com/project/ITHELPDESK-9/summary */ url: string; /** * Format: date-time * @description The timestamp to present to the user that shows when the Review was raised. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ createdDate: string; /** * Format: date-time * @description The last-updated timestamp to present to the user the last time the Review was updated. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * Review status * @description The current status of the Post-Incident Review. * * @example open * @enum {string} */ status: "in progress" | "outstanding actions" | "completed" | "unknown"; /** @description The IDs of the Jira issues related to this Incident. Must be unique for a given Provider. */ associations?: ({ /** * @description the type of the association being made * @example issueIdOrKeys * @enum {string} */ associationType?: "issueIdOrKeys" | "serviceIdOrKeys" | "ati:cloud:compass:event-source"; values?: string[]; })[]; })[]; })); }; }; responses: { /** * @description Submission accepted. Each submitted Incident that is of a valid format will be eventually available in Jira. * * Details of which Incidents were submitted and which failed submission (due to data format problems etc.) are available in the response object. */ 202: { content: { "application/json": { /** * @description The IDs of Incidents that have been accepted for submission. * * A Incident may be rejected if it was only associated with unknown project keys. * * Note that a Incident that isn't updated due to it's updateSequenceNumber being out of order is not considered a failed submission. * * @example [ * "111-222-333", * "444-555-666" * ] */ acceptedIncidents?: string[]; /** * @description Details of Incidents that have not been accepted for submission, usually due to a problem with the request data. * * The object (if present) will be keyed by Incident ID and include any errors associated with that Incident that have prevented it being submitted. */ failedIncidents?: { [key: string]: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; /** * @description Project keys that are not known on this Jira instance (if any). * * These may be invalid keys (e.g. `UTF` is sometimes incorrectly identified as a Jira project key), or they may be for projects that no longer exist. * * If a Incident has been associated with project keys other than those in this array it will still be stored against those valid keys. * If a Incident was only associated with project keys deemed to be invalid it won't be persisted. */ unknownProjectKeys?: string[]; }; }; }; /** * @description Request has incorrect format. * * Note that in the case of an individual Incident having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid Incident will be contained in the response object. */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; /** @description Data is too large. Submit fewer Incidents in each payload. */ 413: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete Incidents or Review by Property * @description Bulk delete all Entties that match the given request. * * One or more query params must be supplied to specify Properties to delete by. * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). * See the documentation for the submitEntity operation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * * Deletion is performed asynchronously. The getIncidentById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteEntityByProperty: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; responses: { /** @description Delete accepted. Data will eventually be removed from Jira. */ 202: { content: never; }; /** @description Request has incorrect format (e.g. missing at least one Property param). */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get a Incident by ID * @description Retrieve the currently stored Incident data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ getIncidentById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; path: { /** @description The ID of the Incident to fetch. */ incidentId: string; }; }; responses: { /** @description The Incident data currently stored for the given ID. */ 200: { content: { "application/json": { /** * @description The IncidentData schema version used for this incident data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion: "1.0"; /** * @description The identifier for the Incident. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this Incident in the case of out-of-order receipt of update requests. * * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Incident and increment that on each update to Jira). * * Updates for a Incident that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The IDs of the Components impacted by this Incident. Must be unique for a given Provider. * * @example [ * "111-222-333", * "444-555-666" * ] */ affectedComponents: string[]; /** * @description The human-readable summary for the Incident. Will be shown in the UI. * * If not provided, will use the ID for display. * * @example Unable to log into VPN */ summary: string; /** * @description A description of the issue in Markdown format. Will be shown in the UI and used when creating Jira Issues. * * @example null */ description: string; /** * Format: uri * @description A URL users can use to link to a summary view of this incident, if appropriate. * * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the incident in that project). * * @example https://example.com/project/ITHELPDESK-9/summary */ url: string; /** * Format: date-time * @description The timestamp to present to the user that shows when the Incident was raised. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ createdDate: string; /** * Format: date-time * @description The last-updated timestamp to present to the user the last time the Incident was updated. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * IncidentSeverity * @description Severity information for a single Incident. * * This is the severity information that will be presented to the user on e.g. the Jira Incidents screen. */ severity?: { /** * @description The severity level of the Incident with P1 being the highest and P5 being the lowest * @example P1 * @enum {string} */ level: "P1" | "P2" | "P3" | "P4" | "P5" | "unknown"; }; /** * IncidentStatus * @description The current status of the Incident. * * @example open * @enum {string} */ status: "open" | "resolved" | "unknown"; /** @description The IDs of the Jira issues related to this Incident. Must be unique for a given Provider. */ associations?: ({ /** * @description the type of the association being made * @example issueIdOrKeys * @enum {string} */ associationType?: "issueIdOrKeys" | "serviceIdOrKeys" | "ati:cloud:compass:event-source"; values?: string[]; })[]; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; /** @description No data found for the given Incident ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete a Incident by ID * @description Delete the Incident data currently stored for the given ID. * * Deletion is performed asynchronously. The getIncidentById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteIncidentById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; path: { /** @description The ID of the Incident to delete. */ incidentId: string; }; }; responses: { /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get a Review by ID * @description Retrieve the currently stored Review data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ getReviewById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; path: { /** @description The ID of the Review to fetch. */ reviewId: string; }; }; responses: { /** @description The Review data currently stored for the given ID. */ 200: { content: { "application/json": { /** * @description The PostIncidentReviewData schema version used for this post-incident review data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion: "1.0"; /** * @description The identifier for the Review. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this Review in the case of out-of-order receipt of update requests. * * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each Review and increment that on each update to Jira). * * Updates for a Review that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The IDs of the Incidents covered by this Review. Must be unique for a given Provider. * * @example [ * "111-222-333", * "444-555-666" * ] */ reviews: string[]; /** * @description The human-readable summary for the Post-Incident Review. Will be shown in the UI. * * If not provided, will use the ID for display. * * @example PIR - Unable to log into VPN */ summary: string; /** * @description A description of the review in Markdown format. Will be shown in the UI and used when creating Jira Issues. * * @example null */ description: string; /** * Format: uri * @description A URL users can use to link to a summary view of this review, if appropriate. * * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the review in that project). * * @example https://example.com/project/ITHELPDESK-9/summary */ url: string; /** * Format: date-time * @description The timestamp to present to the user that shows when the Review was raised. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ createdDate: string; /** * Format: date-time * @description The last-updated timestamp to present to the user the last time the Review was updated. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; /** * Review status * @description The current status of the Post-Incident Review. * * @example open * @enum {string} */ status: "in progress" | "outstanding actions" | "completed" | "unknown"; /** @description The IDs of the Jira issues related to this Incident. Must be unique for a given Provider. */ associations?: ({ /** * @description the type of the association being made * @example issueIdOrKeys * @enum {string} */ associationType?: "issueIdOrKeys" | "serviceIdOrKeys" | "ati:cloud:compass:event-source"; values?: string[]; })[]; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; /** @description No data found for the given Review ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete a Review by ID * @description Delete the Review data currently stored for the given ID. * * Deletion is performed asynchronously. The getReviewById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraOperationsInfoProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteReviewById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; path: { /** @description The ID of the Review to delete. */ reviewId: string; }; }; responses: { /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Submit DevOps Components * @description Update / insert DevOps Component data. * * Components are identified by their ID, and existing Component data for the same ID will be replaced if it exists and the updateSequenceNumber of existing data is less than the incoming data. * * Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getComponentById operation can be used to confirm that data has been stored successfully (if needed). * * In the case of multiple Components being submitted in one request, each is validated individually prior to submission. Details of which Components failed submission (if any) are available in the response object. * * A maximum of 1000 components can be submitted in one request. * * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'WRITE' scope for Connect apps. */ submitComponents: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the DevOps Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; /** @description DevOps Component data to submit. */ requestBody: { content: { "application/json": { /** * Properties * @description Properties assigned to incidents/components/review data that can then be used for delete / query operations. * * Examples might be an account or user ID that can then be used to clean up data if an account is removed from the Provider system. * * Properties are supplied as key/value pairs, and a maximum of 5 properties can be supplied, keys cannot contain ':' or start with '_'. * * @example { * "accountId": "account-234", * "projectId": "project-123" * } */ properties?: { [key: string]: string; }; components: ({ /** * @description The DevOpsComponentData schema version used for this devops component data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion: "1.0"; /** * @description The identifier for the DevOps Component. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this DevOps Component in the case of out-of-order receipt of update requests. * * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each DevOps Component and increment that on each update to Jira). * * Updates for a DevOps Component that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The human-readable name for the DevOps Component. Will be shown in the UI. * * @example Galactus */ name: string; /** * @description The human-readable name for the Provider that owns this DevOps Component. Will be shown in the UI. * * @example Marvel */ providerName?: string; /** * @description A description of the DevOps Component in Markdown format. Will be shown in the UI. * * @example null */ description: string; /** * Format: uri * @description A URL users can use to link to a summary view of this devops component, if appropriate. * * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the component in that project). * * @example https://example.com/project/MS/galactus/summary */ url: string; /** * Format: uri * @description A URL to display a logo representing this devops component, if available. * * @example https://example.com/project/MS/galactus/logo */ avatarUrl: string; /** * @description The tier of the component. Will be shown in the UI. * * @example Tier 1 * @enum {string} */ tier: "Tier 1" | "Tier 2" | "Tier 3" | "Tier 4"; /** * @description The type of the component. Will be shown in the UI. * * @example Service * @enum {string} */ componentType: "Service" | "Application" | "Library" | "Capability" | "Cloud resource" | "Data pipeline" | "Machine learning model" | "UI element" | "Website" | "Other"; /** * Format: date-time * @description The last-updated timestamp to present to the user the last time the DevOps Component was updated. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; })[]; /** * ProviderMetadata * @description Information about the provider. This is useful for auditing, logging, debugging, * and other internal uses. It is not considered private information. Hence, it may not contain personally * identifiable information. */ providerMetadata?: { /** * @description An optional name of the source of the incidents. * @example Atlassian Operations Platform 2.1.0 */ product?: string; }; }; }; }; responses: { /** * @description Submission accepted. Each submitted Component that is of a valid format will be eventually available in Jira. * Details of which Components were submitted and which failed submission (due to data format problems etc.) are available in the response object. */ 202: { content: { "application/json": { /** * @description The IDs of Components that have been accepted for submission. * * A Component may be rejected if it was only associated with unknown project keys. * * Note that a Component that isn't updated due to it's updateSequenceNumber being out of order is not considered a failed submission. * * @example [ * "111-222-333", * "444-555-666" * ] */ acceptedComponents?: string[]; /** * @description Details of Components that have not been accepted for submission, usually due to a problem with the request data. * * The object (if present) will be keyed by Component ID and include any errors associated with that Component that have prevented it being submitted. */ failedComponents?: { [key: string]: { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; /** * @description Project keys that are not known on this Jira instance (if any). * * These may be invalid keys (e.g. `UTF` is sometimes incorrectly identified as a Jira project key), or they may be for projects that no longer exist. * * If a Component has been associated with project keys other than those in this array it will still be stored against those valid keys. * If a Component was only associated with project keys deemed to be invalid it won't be persisted. */ unknownProjectKeys?: string[]; }; }; }; /** * @description Request has incorrect format. * * Note that in the case of an individual Component having an invalid format (rather than the request as a whole) the response for the request will be a 202 and details of the invalid Component will be contained in the response object. */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'WRITE' scope. */ 403: { content: never; }; /** @description Data is too large. Submit fewer Components in each payload. */ 413: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete DevOps Components by Property * @description Bulk delete all Components that match the given request. * * One or more query params must be supplied to specify Properties to delete by. * If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). * See the documentation for the submitComponents operation for more details. * * e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456 * * Deletion is performed asynchronously. The getComponentById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteComponentsByProperty: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define the Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; }; responses: { /** @description Delete accepted. Data will eventually be removed from Jira. */ 202: { content: never; }; /** @description Request has incorrect format (e.g. missing at least one Property param). */ 400: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Get a Component by ID * @description Retrieve the currently stored Component data for the given ID. * * The result will be what is currently stored, ignoring any pending updates or deletes. * * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'READ' scope for Connect apps. */ getComponentById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; path: { /** @description The ID of the Component to fetch. */ componentId: string; }; }; responses: { /** @description The Component data currently stored for the given ID. */ 200: { content: { "application/json": { /** * @description The DevOpsComponentData schema version used for this devops component data. * * Placeholder to support potential schema changes in the future. * * @default 1.0 * @example 1.0 * @enum {string} */ schemaVersion: "1.0"; /** * @description The identifier for the DevOps Component. Must be unique for a given Provider. * * @example 111-222-333 */ id: string; /** * Format: int64 * @description An ID used to apply an ordering to updates for this DevOps Component in the case of out-of-order receipt of update requests. * * This can be any monotonically increasing number. A suggested implementation is to use epoch millis from the Provider system, but other alternatives are valid (e.g. a Provider could store a counter against each DevOps Component and increment that on each update to Jira). * * Updates for a DevOps Component that are received with an updateSqeuenceId lower than what is currently stored will be ignored. * * @example 1523494301448 */ updateSequenceNumber: number; /** * @description The human-readable name for the DevOps Component. Will be shown in the UI. * * @example Galactus */ name: string; /** * @description The human-readable name for the Provider that owns this DevOps Component. Will be shown in the UI. * * @example Marvel */ providerName?: string; /** * @description A description of the DevOps Component in Markdown format. Will be shown in the UI. * * @example null */ description: string; /** * Format: uri * @description A URL users can use to link to a summary view of this devops component, if appropriate. * * This could be any location that makes sense in the Provider system (e.g. if the summary information comes from a specific project, it might make sense to link the user to the component in that project). * * @example https://example.com/project/MS/galactus/summary */ url: string; /** * Format: uri * @description A URL to display a logo representing this devops component, if available. * * @example https://example.com/project/MS/galactus/logo */ avatarUrl: string; /** * @description The tier of the component. Will be shown in the UI. * * @example Tier 1 * @enum {string} */ tier: "Tier 1" | "Tier 2" | "Tier 3" | "Tier 4"; /** * @description The type of the component. Will be shown in the UI. * * @example Service * @enum {string} */ componentType: "Service" | "Application" | "Library" | "Capability" | "Cloud resource" | "Data pipeline" | "Machine learning model" | "UI element" | "Website" | "Other"; /** * Format: date-time * @description The last-updated timestamp to present to the user the last time the DevOps Component was updated. * * Expected format is an RFC3339 formatted string. * * @example 2018-01-20T23:27:25.000Z */ lastUpdated: string; }; }; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'READ' scope. */ 403: { content: never; }; /** @description No data found for the given Component ID. */ 404: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; /** * Delete a Component by ID * @description Delete the Component data currently stored for the given ID. * * Deletion is performed asynchronously. The getComponentById operation can be used to confirm that data has been deleted successfully (if needed). * * Only Connect apps that define the `jiraDevOpsComponentProvider` module can access this resource. * This resource requires the 'DELETE' scope for Connect apps. */ deleteComponentById: { parameters: { header: { /** * @description All requests must be signed with a Connect JWT token that corresponds to the Provider app installed in Jira. * * If the JWT token corresponds to an app that does not define Operations Information module it will be rejected with a 403. * * See https://developer.atlassian.com/blog/2015/01/understanding-jwt/ for more details. */ Authorization: string; }; path: { /** @description The ID of the Component to delete. */ componentId: string; }; }; responses: { /** @description Delete has been accepted. Data will eventually be removed from Jira if it exists. */ 202: { content: never; }; /** @description Missing a JWT token, or token is invalid. */ 401: { content: never; }; /** * @description The JWT token used does not correspond to an app that defines the Operations Information module, * or the app does not define the 'DELETE' scope. */ 403: { content: never; }; /** @description API rate limit has been exceeded. */ 429: { content: never; }; /** @description Service is unavailable due to maintenance or other reasons. */ 503: { content: never; }; /** @description An unknown error has occurred. */ default: { content: { "application/json": { /** @description A human-readable message describing the error. */ message: string; /** @description An optional trace ID that can be used by Jira developers to locate the source of the error. */ errorTraceId?: string; }[]; }; }; }; }; } export {};