openapi: 3.0.0 info: title: Jira Ticket API description: >- API for the JIRA Ticket System. If questions regarding to this API, the official documentation might help: - [JIRA API 7.6.1](https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/) version: 0.0.1 contact: {} servers: - url: /jira description: 'Development Stage' tags: - name: Jira issues description: 'Api für die JIRA Issues (Stories, Epics, Tasks, Subtasks, etc.)' externalDocs: description: This API ist developed with this API Documentation url: https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/ paths: /rest/api/2/mypermissions: description: 'Dies ist eine Testdescription für die ersten Schritte' summary: 'Dies ist eine Testsummary als Beispiel für eine Summary mit Deployment' get: tags: - permission parameters: - name: projectKey in: query schema: type: string description: '- key of project to scope returned permissions for.' required: false - name: projectId in: query schema: type: string description: '- id of project to scope returned permissions for.' required: false - name: issueKey in: query schema: type: string description: '- key of the issue to scope returned permissions for.' required: false - name: issueId in: query schema: type: string description: '- id of the issue to scope returned permissions for.' required: false responses: '200': description: 'Returns a list of all permissions in JIRA and whether the user has them.' content: application/json: schema: $ref: '#/components/schemas/permissions' '400': description: invalid '404': description: key not found /rest/api/2/permissions: description: 'Returns all permissions that are present in the JIRA instance - Global, Project and the global ones added by plugins' get: tags: - permission responses: '200': description: 'Returns a list of all permissions in JIRA.' content: application/json: schema: $ref: '#/components/schemas/permissions' '401': description: unauthenticated request content: application/json: schema: type: string '403': description: user without administer permissions content: application/json: schema: type: string /rest/api/2/application-properties: get: parameters: - name: key in: query required: true schema: type: string description: 'a String containing the property key' - name: permissionLevel in: query required: true schema: type: string description: 'when fetching a list specifies the permission level of all items in the list see {@link com.atlassian.jira.bc.admin.ApplicationPropertiesService.EditPermissionLevel}' - name: keyFilter in: query required: true schema: type: string description: 'when fetching a list allows the list to be filtered by the propertys start of key e.g. "jira.lf.*" whould fetch only those permissions that are editable and whose keys start with "jira.lf.". This is a regex.' responses: '200': description: 'Returned if the property exists and the currently authenticated user has permission to view it. Contains a full representation of the property.' content: 'application/json': schema: $ref: '#/components/schemas/property' '404': description: >- property does not exist or the currently authenticated user does not have permission to view it content: application/json: schema: type: string /rest/api/2/application-properties/{id}: put: parameters: - name: id in: path description: a String containing the property key required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/application-property' responses: '200': description: success content: 'application/json: ': schema: $ref: '#/components/schemas/property' '403': description: >- the currently authenticated user does not have permission to edit the property content: application/json: schema: type: string '404': description: >- the property does not exist or the currently authenticated user does not have permission to view it content: application/json: schema: type: string /rest/api/2/application-properties/advanced-settings: get: responses: '200': description: 'Returns all properties to display in the "General Configuration > Advanced Settings" page.' content: application/json: schema: $ref: '#/components/schemas/list-of-property' '401': description: 'the current user is not authenticated' content: application/json: schema: type: string '403': description: 'the current user is not an administrator' content: application/json: schema: type: string /rest/api/2/applicationrole: description: 'Provides REST access to JIRAs Application Roles.' put: parameters: - name: If-Match in: header schema: type: string description: '' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/list-of-application-role' responses: '200': description: 'Returns the updated ApplicationRole if the update was successful.' content: application/json: schema: $ref: '#/components/schemas/list-of-application-role' '401': description: 'Returned if the current user does not have permission to edit roles.' content: application/json: schema: type: string '403': description: the current user is not an administrator content: application/json: schema: type: string '404': description: the role does not exist content: application/json: schema: type: string '412': description: the current user does not have permission to edit roles content: application/json: schema: type: string get: description: 'Returns all ApplicationRoles in the system. Will also return an ETag header containing a version hash of the collection of ApplicationRoles.' requestBody: content: application/json: schema: $ref: '#/components/schemas/list-of-application-role' responses: '200': description: 'Returns all ApplicationRoles in the system' content: application/json: schema: $ref: '#/components/schemas/list-of-application-role' '401': description: the current user is not authenticated content: application/json: schema: type: string '403': description: the current user is not an administrator content: application/json: schema: type: string /rest/api/2/applicationrole/{key}: get: description: 'Returns the ApplicationRole with passed key if it exists.' parameters: - name: key in: path description: The application role id required: true schema: type: string responses: '200': description: success content: application/json: schema: $ref: '#/components/schemas/application-role' '401': description: 'the current user is not authenticated' content: application/json: schema: type: string '403': description: 'the current user is not an administrator' content: application/json: schema: type: string '404': description: 'the role does not exist' content: application/json: schema: type: string put: description: 'Updates the ApplicationRole with the passed data. Only the groups and default groups setting of the role may be updated. Requests to change the key or the name of the role will be silently ignored. Optional: If versionHash is passed through the If-Match header the request will be rejected if not the same as server' parameters: - name: key in: path description: The application role id required: true schema: type: string - name: If-Match in: header description: 'the hash of the version to update. Optional Param' required: false schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/application-role' responses: '200': description: 'Returns the updated ApplicationRole if the update was successful.' content: application/json: schema: $ref: '#/components/schemas/application-role' '401': description: the current user does not have permission to edit roles content: application/json: schema: type: string '403': description: the current user is not an administrator content: application/json: schema: type: string '404': description: the role does not exist content: application/json: schema: type: string '412': description: >- the If-Match header is not null and contains a different version to the server content: application/json: schema: type: string /rest/api/2/attachment/{id}: get: parameters: - name: id in: path description: The attachment id required: true schema: type: string responses: '200': description: 'JSON representation of the attachment meta-data. The representation does not contain the attachment itself, but contains a URI that can be used to download the actual attached file.' content: application/json: schema: $ref: '#/components/schemas/attachment' '403': description: The calling user is not permitted to view the requested attachment content: application/json: schema: type: string '404': description: >- there is no attachment with the requested id or attachments feature is disabled content: application/json: schema: type: string delete: parameters: - name: id in: path description: The attachment id required: true schema: type: string responses: '204': description: 'Removal was successful' content: application/json: schema: type: string '403': description: The calling user is not permitted to view the requested attachment content: application/json: schema: type: string '404': description: >- there is no attachment with the requested id or attachments feature is disabled content: application/json: schema: type: string /rest/api/2/attachment/meta: get: description: 'Returns the meta information for an attachments, specifically if they are enabled and the maximum upload size allowed.' responses: '200': description: 'JSON representation of the attachment capabilities. Consumers of this resource may also need to check if the logged in user has permission to upload or otherwise manipulate attachments using the {@link com.atlassian.jira.rest.v2.permission.PermissionsResource}.' content: application/json: schema: $ref: '#/components/schemas/attachment-meta' /rest/api/2/auditing/record: description: 'Resource representing the auditing records' get: description: 'Returns auditing records filtered using provided parameters' parameters: - name: offset in: query schema: type: integer description: 'the number of record from which search starts' - name: limit in: query schema: type: integer description: 'maximum number of returned results (if is limit is <= 0 or > 1000, it will be set do default value: 1000)' - name: filter in: query schema: type: string description: 'text query; each record that will be returned must contain the provided text in one of its fields' - name: from in: query schema: type: string description: 'timestamp in past; "from" must be less or equal "to", otherwise the result set will be empty only records that where created in the same moment or after the "from" timestamp will be provided in response' - name: to in: query schema: type: string description: 'timestamp in past; "from" must be less or equal "to", otherwise the result set will be empty only records that where created in the same moment or earlier than the "to" timestamp will be provided in response' - name: projectIds in: query schema: type: string description: 'list of project ids to look for' - name: userIds in: query schema: type: string description: 'list of user ids to look for' responses: '200': description: 'Returns a list auditing records filtered with request query parameters' content: 'application/json': schema: $ref: '#/components/schemas/audit-record' '400': content: application/json: schema: type: string description: 'In case of unhandled error while fetching auditing records' '403': content: application/json: schema: type: string description: 'Returned if the user does not have admin permission' post: description: 'Store a record in Audit Log' requestBody: content: application/json: schema: $ref: '#/components/schemas/audit-record' responses: '201': content: application/json: schema: type: string description: 'Returned if the record is successfully stored.' '400': content: application/json: schema: type: string description: 'In case of unhandled error while fetching auditing records' '403': content: application/json: schema: type: string description: 'Returned if the user does not have admin permission' /rest/api/2/avatar/{type}/system: get: description: 'Returns all system avatars of the given type.' parameters: - name: type in: path description: 'name of file being uploaded' required: true schema: type: string responses: '200': description: 'Returns a map containing a list of system avatars. A map is returned to be consistent with the shape of the project/KEY/avatars REST end point.' content: application/json: schema: $ref: '#/components/schemas/system-avatars' '500': content: application/json: schema: type: string description: 'Returned if an error occurs while retrieving the list of avatars.' /rest/api/2/avatar/{type}/temporary: post: description: 'Creates temporary avatar' parameters: - name: type in: path description: 'name of file being uploaded' required: true schema: type: string - name: filename in: query description: 'name of file being uploaded' required: true schema: type: string - name: size in: query description: 'size of file' required: true schema: type: number responses: '200': content: application/json: schema: $ref: '#/components/schemas/avatar-cropping' description: 'temporary avatar cropping instructions' '400': content: application/json: schema: type: string description: 'Valiation failed. For example filesize is beyond max attachment size.' '500': content: application/json: schema: type: string description: 'Returned if an error occurs while converting temporary avatar to real avatar' '403': content: application/json: schema: type: string description: 'Returned if the request does not conain a valid XSRF token' /rest/api/2/avatar/{type}/temporaryCrop: post: description: 'Updates the cropping instructions of the temporary avatar.' parameters: - name: type in: path description: 'name of file being uploaded' required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/avatar-cropping' responses: '200': content: application/json: schema: type: string description: '' '400': content: application/json: schema: type: string description: 'Returned if the cropping coordinates are invalid' '500': content: application/json: schema: type: string description: 'Returned if an error occurs while cropping the temporary avatar' /rest/api/2/component: post: description: 'Create a component via POST.' requestBody: content: application/json: schema: $ref: '#/components/schemas/component' responses: '201': content: application/json: schema: $ref: '#/components/schemas/component' description: 'Returned if the component is created successfully.' '401': content: application/json: schema: type: string description: 'Returned if the caller is not logged in and does not have permission to create components in the project.' '403': content: application/json: schema: type: string description: 'Returned if the caller is authenticated and does not have permission to create components in the project.' '404': content: application/json: schema: type: string description: 'Returned if the project does not exist or the currently authenticated user does not have permission to view it.' /rest/api/2/component/{id}: put: description: 'Modify a component via PUT. Any fields present in the PUT will override existing values. As a convenience, if a field is not present, it is silently ignored. If leadUserName is an empty string ("") the component lead will be removed.' parameters: - $ref: '#/components/parameters/componentId' requestBody: content: application/json: schema: $ref: '#/components/schemas/component' responses: '200': content: application/json: schema: type: string description: 'Returned if the component exists and the currently authenticated user has permission to edit it.' '403': content: application/json: schema: type: string description: 'Returned if the currently authenticated user does not have permission to edit the component.' '404': content: application/json: schema: type: string description: 'Returned if the component does not exist or the currently authenticated user does not have permission to view it.' get: description: 'Returns a project component.' parameters: - $ref: '#/components/parameters/componentId' responses: '200': content: application/json: schema: $ref: '#/components/schemas/component' description: 'Returns a full JSON representation of a project component.' '404': content: application/json: schema: type: string description: 'Returned if there is no component with the given key, or if the calling user does not have permission to view the component.' delete: parameters: - $ref: '#/components/parameters/componentId' - name: moveIssuesTo in: query schema: type: string description: 'The new component applied to issues whose *id*" component will be deleted. If this value is null, then the *id* component is simply removed from the related isues.' responses: '204': content: application/json: schema: type: string description: 'Returned if the component is successfully deleted.' '403': content: application/json: schema: type: string description: 'Returned if the currently authenticated user does not have permission to delete the component.' '404': content: application/json: schema: type: string description: 'Returned if the component does not exist or the currently authenticated user does not have permission to view it.' /rest/api/2/component/{id}/relatedIssueCounts: get: description: 'Returns counts of issues related to this component.' parameters: - $ref: '#/components/parameters/componentId' responses: '200': content: application/json: schema: $ref: '#/components/schemas/component-issue-counts' description: 'Returned if the component exists and the currently authenticated user has permission to view it. Contains counts of issues related to this component.' '404': content: application/json: schema: type: string description: 'Returned if the component does not exist or the currently authenticated user does not have permission to view it.' /rest/api/2/configuration: get: description: 'Returns the information if the optional features in JIRA are enabled or disabled. If the time tracking is enabled, it also returns the detailed information about time tracking configuration.' responses: '200': content: application/json: schema: $ref: '#/components/schemas/configuration' description: 'Returned the configuration of optional features in JIRA' '401': content: application/json: schema: type: string description: 'Returned if the user is not logged in.' /rest/api/2/customFieldOption/{id}: get: parameters: - name: id in: path description: The customfield id required: true schema: type: string responses: '200': description: 'Returned if the Custom Field Option exists and is visible by the calling user.' content: application/json: schema: $ref: '#/components/schemas/custom-field-option' '404': description: >- Returned if the Custom Field Option does not exist, or is not visible to the calling user content: application/json: schema: type: string /rest/api/2/dashboard: get: parameters: - name: filter in: query description: 'an optional filter that is applied to the list of dashboards. Valid values include "favourite" for returning only favourite dashboards, and "my" for returning dashboards that are owned by the calling user.' schema: type: string - name: startAt in: query description: 'the index of the first dashboard to return (0-based). must be 0 or a multiple of maxResults' schema: type: integer - name: maxResults in: query description: 'a hint as to the the maximum number of dashboards to return in each call. Note that the JIRA server reserves the right to impose a maxResults limit that is lower than the value that a client provides, dues to lack or resources or any other condition. When this happens, your results will be truncated. Callers should always check the returned maxResults to determine the value that is effectively being used.' schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/dashboards' description: 'Returns a list of dashboards.' /rest/api/2/dashboard/{id}: get: parameters: - name: id in: path description: 'ID of the dashboard' schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/dashboard' description: 'Returns a single dashboard.' '404': content: application/json: schema: type: string description: 'Returned if there is no dashboard with the specified id, or if the user does not have permission to see it.' /rest/api/2/dashboard/{dashboardId}/items/{itemId}/properties: get: description: 'Returns the keys of all properties for the dashboard item identified by the id.' parameters: - name: dashboardId in: path description: 'Dashboard ID' schema: type: string required: true - name: itemId in: path description: 'Item ID' schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/entity-properties-key' description: 'Returned if the dashboard item was found.' '400': description: 'Returned if the dashboard item id is invalid.' '404': description: 'Returned if the dashboard item with given id does not exist or user does not have permissions to view it.' /rest/api/2/dashboard/{dashboardId}/items/{itemId}/properties/{propertyKey}: delete: description: 'Removes the property from the dashboard item identified by the key or by the id. Ths user removing the property is required to have permissions to administer the dashboard item.' parameters: - name: dashboardId in: path description: 'Dashboard ID' schema: type: string required: true - name: itemId in: path description: 'Item ID' schema: type: string required: true - name: propertyKey in: path description: 'property Key' schema: type: string required: true responses: '204': description: 'Returned if the dashboard item property was removed successfully.' '400': description: 'Returned if the dashboard item id is invalid.' '403': description: 'Returned if the dashboard item id is invalid.' '404': description: 'Returned if the dashboard item id is invalid.' put: description: 'Sets the value of the specified dashboard items property. You can use this resource to store a custom data against the dashboard item identified by the id. The user who stores the data is required to have permissions to administer the dashboard item.' parameters: - name: dashboardId in: path description: 'Dashboard ID' schema: type: string required: true - name: itemId in: path description: 'Item ID' schema: type: string required: true - name: propertyKey in: path description: 'property Key' schema: type: string required: true responses: '200': description: 'Returned if the dashboard item property is successfully updated.' '201': description: 'Returned if the dashboard item property is successfully created.' '400': description: 'Returned if the dashboard item id is invalid.' '403': description: 'Returned if the calling user does not have permission to administer the dashboard item.' '404': description: 'Returned if the dashboard item with given id does not exist or user does not have permissions to view it.' get: description: 'Returns the value of the property with a given key from the dashboard item identified by the id. The user who retrieves the property is required to have permissions to read the dashboard item.' parameters: - name: dashboardId in: path description: 'Dashboard ID' schema: type: string required: true - name: itemId in: path description: 'Item ID' schema: type: string required: true - name: propertyKey in: path description: 'property Key' schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/entity-property' description: 'Returned if the dashboard item property was found.' '400': description: 'Returned if the dashboard item id is invalid.' '404': description: 'Returned if the dashboard item with given id does not exist or user does not have permissions to view it.' /rest/api/2/field: post: description: 'Creates a custom field using a definition (object encapsulating custom field data)' requestBody: content: application/json: schema: $ref: '#/components/schemas/custom-field-definition' responses: '201': content: application/json: schema: $ref: '#/components/schemas/field' description: 'Returned if custom field was created.' '400': description: 'Returned if the input is invalid (e.g. invalid values).' '500': description: 'Returned if exception occured during custom field creation.' get: description: 'Returns a list of all fields, both System and Custom' responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-field' description: 'Contains a full representation of all visible fields in JSON.' /rest/api/2/filter: post: description: 'Creates a new filter, and returns newly created filter. Currently sets permissions just using the users default sharing permissions' parameters: - name: expand in: query description: 'the parameters to expand' schema: type: string required: false responses: '200': content: application/json: schema: $ref: '#/components/schemas/filter' description: 'Returns a JSON representation of a filter' '400': description: 'Returned if the input is invalid (e.g. filter name was not provided).' /rest/api/2/filter/{id}: put: parameters: - name: id in: path description: 'filter id' schema: type: string required: true - name: expand in: query description: 'the parameters to expand' schema: type: string required: false responses: '200': content: application/json: schema: $ref: '#/components/schemas/filter' description: 'Returns a JSON representation of a filter' '400': description: 'Returned if there is a problem updating up the filter of the given id' delete: description: 'Delete a filter.' parameters: - name: id in: path description: 'filter id' schema: type: string required: true responses: '204': description: 'Returned if the filter was removed successfully' '400': description: 'Returned if an error occurs.' '401': description: 'Returned if the calling user is not authenticated.' get: description: 'Returns a filter given an id' parameters: - name: id in: path description: 'filter id' schema: type: string required: true - name: expand in: query description: 'the parameters to expand' schema: type: string required: false - name: enableSharedUsers in: query description: 'enable calculating shared users collection' schema: type: boolean default: true required: false responses: '200': content: application/json: schema: $ref: '#/components/schemas/filter' description: 'Returns a JSON representation of a filter' '400': description: 'Returned if there is a problem looking up the filter given the id' /rest/api/2/filter/{id}/columns: get: description: 'Returns the default columns for the given filter. Currently logged in user will be used as the user making such request.' parameters: - name: id in: path description: 'filter id' schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-column-layout-item' description: 'Returns a list of columns for configured for the given user' '404': description: 'Returned if the filter does not have any columns.' '500': description: 'Returned if an error occurs while retrieving the column configuration.' put: description: 'Sets the default columns for the given filter.' parameters: - name: id in: path description: 'filter id' schema: type: string required: true requestBody: content: application/json: schema: $ref: '#/components/schemas/list-of-column-layout-item' responses: '200': description: 'Returned when the columns are saved successfully' '500': description: 'Returned if an error occurs while retrieving the column configuration.' delete: description: 'Resets the columns for the given filter such that the filter no longer has its own column config.' parameters: - name: id in: path description: 'filter id' schema: type: string required: true responses: '204': description: 'Returned when the columns are reset/removed successfully' '500': description: 'Returned when the columns are reset/removed successfully' /rest/api/2/filter/{id}/permission: get: description: 'Returns all share permissions of the given filter.' parameters: - name: id in: path description: 'filter id' schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-filter-permission' description: 'Returned if successful.' '401': description: 'Returned if user is not logged in.' '404': description: 'Returned when filter with given id does not exist or when the user does not have permissions to view the filter. .' post: description: 'Adds a share permissions to the given filter. Adding a global permission removes all previous permissions from the filter.' parameters: - name: id in: path description: 'filter id' schema: type: string required: true requestBody: content: application/json: schema: $ref: '#/components/schemas/share-permission-input' responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-filter-permission' description: 'Returned if successful.' '400': description: 'Returned given permission input bean is invalid or when user does not have the permission to share filters or when the user cannot edit the given filter.' '401': description: 'Returned if user is not logged in.' '404': description: 'Returned when filter with given id does not exist or when the user does not have permissions to view the filter. .' /rest/api/2/filter/{id}/permission/{permissionId}: get: description: 'Returns a single share permission of the given filter.' parameters: - name: id in: path description: 'filter id' schema: type: string required: true - name: permissionId in: path description: 'permission id' schema: type: string required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/filter-permission' description: 'Returned if successful.' '401': description: 'Returned if user is not logged in.' '404': description: 'Returned when filter or permission with given id does not exist or when the user does not have permissions to view the filter.' delete: description: 'Removes a share permissions from the given filter.' parameters: - name: id in: path description: 'filter id' schema: type: string required: true - name: permissionId in: path description: 'permission id' schema: type: string required: true responses: '200': content: application/json: schema: type: string description: '' '204': description: 'Returned if successful.' '404': description: 'Returned when filter or permission with given id does not exist or when the user does not have permissions to view the filter.' /rest/api/2/filter/defaultShareScope: get: description: 'Returns the default share scope of the logged-in user.' responses: '200': content: application/json: schema: $ref: '#/components/schemas/default-share-scope' description: 'Returns the default share scope of the logged-in user.' '400': description: 'Returned if there is a problem looking up preferences for the logged-in user' put: description: 'Sets the default share scope of the logged-in user. Available values are GLOBAL and PRIVATE.' requestBody: content: application/json: schema: $ref: '#/components/schemas/default-share-scope' responses: '200': content: application/json: schema: $ref: '#/components/schemas/default-share-scope' description: 'Returns the new default share scope of the logged-in user.' '400': description: 'Returned if there is a problem setting the preferences for the logged-in user' /rest/api/2/filter/favourite: get: description: 'Returns the favourite filters of the logged-in user.' parameters: - name: expand in: query description: 'the parameters to expand' schema: type: string - name: enableSharedUsers in: query description: 'enable calculating shared users collection' schema: type: boolean default: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-filter' description: 'Returns a JSON representation of a list of filters' /rest/api/2/groups/picker: description: 'REST endpoint for searching groups in a group picker' get: description: 'Returns groups with substrings matching a given query. This is mainly for use with the group picker, so the returned groups contain html to be used as picker suggestions. The groups are also wrapped in a single response object that also contains a header for use in the picker, specifically Showing X of Y matching groups. The number of groups returned is limited by the system property "jira.ajax.autocomplete.limit" The groups will be unique and sorted.' parameters: - name: query in: query description: 'a String to match groups agains' schema: type: string - name: exclude in: query description: '' schema: type: string - name: maxResults in: query description: '' schema: type: integer - name: userName in: query description: 'a String to match groups agains' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/group-suggestions' description: 'Returned even if no groups match the given substring' /rest/api/2/groupuserpicker: get: description: 'Returns a list of users and groups matching query with highlighting. This resource cannot be accessed anonymously.' parameters: - name: query in: query description: 'A string used to search username, Name or e-mail address' schema: type: string - name: maxResults in: query description: 'the maximum number of users to return (defaults to 50). The maximum allowed value is 1000. If you specify a value that is higher than this number, your search results will be truncated.' schema: type: integer - name: showAvatar in: query description: '' schema: type: boolean - name: fieldId in: query description: 'The custom field id, if this request comes from a custom field, such as a user picker. Optional.' schema: type: string - name: projectId in: query description: 'The list of project ids to further restrict the search This parameter can occur multiple times to pass in multiple project ids. Comma separated value is not supported. This parameter is only used when fieldId is present.' schema: type: string - name: issueTypeId in: query description: 'The list of issue type ids to further restrict the search. This parameter can occur multiple times to pass in multiple issue type ids. Comma separated value is not supported. Special values such as -1 (all standard issue types), -2 (all subtask issue types) are supported. This parameter is only used when fieldId is present.' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/users-and-groups' description: '' /rest/api/2/issue: post: tags: - issue description: >- Creates an issue or a sub-task from a JSON representation. The fields that can be set on create, in either the fields parameter or the update parameter can be determined using the /rest/api/2/issue/createmeta resource. If a field is not configured to appear on the create screen, then it will not be in the createmeta, and a field validation error will occur if it is submitted. Creating a sub-task is similar to creating a regular issue, with two important differences: the issueType field must correspond to a sub-task issue type (you can use /issue/createmeta to discover sub-task issue types), and you must provide a parent field in the issue create request containing the id or key of the parent issue. summary: Creates an issue or a sub-task from a JSON representation. responses: '200': description: Returns a link to the created issue. content: application/json: schema: type: string example: id: '10000' key: 'TST-24' self: 'http://www.example.com/jira/rest/api/2/issue/10000' '400': description: >- Returned if the input is invalid (e.g. missing required fields, invalid field values, and so forth) content: application/json: schema: type: string example: errorMessages: - 'Field "priority" is required' errors: {} /rest/api/2/issue/bulk: post: tags: - issue responses: '201': description: Returns a link to the created issues content: application/json: schema: type: string '400': description: >- Returned if the input is invalid (e.g. missing required fields, invalid field values, and so forth) content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}: get: tags: - issue description: >- Returns a full representation of the issue for the given issue key. An issue JSON consists of the issue key, a collection of fields, a link to the workflow transition sub-resource, and (optionally) the HTML rendered values of any fields that support it (e.g. if wiki syntax is enabled for the description or comments). The fields param (which can be specified multiple times) gives a comma-separated list of fields to include in the response. This can be used to retrieve a subset of fields. A particular field can be excluded by prefixing it with a minus. By default, all (*all) fields are returned in this get-issue resource. Note: the default is different when doing a jql search -- the default there is just navigable fields (*navigable). *all - include all fields *navigable - include just navigable fields summary,comment - include just the summary and comments -comment - include everything except comments (the default is *all for get-issue) *all,-comment - include everything except comments The {@code properties} param is similar to {@code fields} and specifies a comma-separated list of issue properties to include. Unlike {@code fields}, properties are not included by default. To include them all send {@code ?properties=*all}. You can also include only specified properties or exclude some properties with a minus (-) sign. {@code *all} - include all properties {@code *all, -prop1} - include all properties except {@code prop1} {@code prop1, prop1} - include {@code prop1} and {@code prop2} properties JIRA will attempt to identify the issue by the issueIdOrKey path parameter. This can be an issue id, or an issue key. If the issue cannot be found via an exact match, JIRA will also look for the issue in a case-insensitive way, or by looking to see if the issue was moved. In either of these cases, the request will proceed as normal (a 302 or other redirect will not be returned). The issue key contained in the response will indicate the current value of issues key. The expand param is used to include, hidden by default, parts of response. This can be used to include: renderedFields - field values in HTML format names - display name of each field schema - schema for each field which describes a type of the field transitions - all possible transitions for the given issue operations - all possibles operations which may be applied on issue editmeta - information about how each field may be edited. It contains fields schema as well. changelog - history of all changes of the given issue versionedRepresentations - REST representations of all fields. Some field may contain more recent versions. RESET representations are numbered. The greatest number always represents the most recent version. It is recommended that the most recent version is used. version for these fields which provide a more recent REST representation. After including versionedRepresentations "fields" field become hidden. parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: fields in: query description: >- the list of fields to return for the issue. By default, all fields are returned. schema: type: string - name: expand in: query schema: type: string - name: properties in: query description: >- the list of properties to return for the issue. By default no properties are returned. schema: type: string responses: '200': description: Returns a full representation of a JIRA issue in JSON format. content: application/json: schema: type: string '404': description: >- Returned if the requested issue is not found, or the user does not have permission to view it. content: application/json: schema: type: string put: tags: - issue description: >- Edits an issue from a JSON representation. The issue can either be updated by setting explicit the field value(s) or by using an operation to change the field value. The fields that can be updated, in either the fields parameter or the update parameter, can be determined using the /rest/api/2/issue/{issueIdOrKey}/editmeta resource. If a field is not configured to appear on the edit screen, then it will not be in the editmeta, and a field validation error will occur if it is submitted. Specifying a "field_id": field_value in the "fields" is a shorthand for a "set" operation in the "update" section. Field should appear either in "fields" or "update", not in both. parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: notifyUsers in: query description: >- send the email with notification that the issue was updated to users that watch it. Admin or project admin permissions are required to disable the notification. schema: type: boolean responses: '204': description: if the issue was updated successfully content: application/json: schema: type: string '400': description: if an error occurs content: application/json: schema: type: string '403': description: >- Returned if the user doesn`t have permissions to disable users notification content: application/json: schema: type: string delete: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: deleteSubtasks in: query description: >- a String of true or false indicating that any subtasks should also be deleted. If the issue has no subtasks this parameter is ignored. If the issue has subtasks and this parameter is missing or false, then the issue will not be deleted and an error will be returned. schema: type: string responses: '204': description: if the issue was removed successfully content: application/json: schema: type: string '400': description: if an error occurs content: application/json: schema: type: string '401': description: if the calling user is not authenticated content: application/json: schema: type: string '403': description: if the calling user does not have permission to delete the issue content: application/json: schema: type: string '404': description: if the issue does not exist content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/assignee: put: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '204': description: if the issue is successfully assigned content: application/json: schema: type: string '400': description: if there is a problem with the received user representation content: application/json: schema: type: string '401': description: if the calling user does not have permission to assign the issue content: application/json: schema: type: string '404': description: if either the issue or the user does not exist content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/comment: get: tags: - issue description: >- Returns all comments for an issue. Results can be ordered by the "created" field which means the date a comment was added. parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: startAt in: query description: the page offset, if not specified then defaults to 0 schema: type: number responses: '200': description: >- returns a collection of comments associated with the issue, with count and pagination information. content: application/json: schema: type: string '404': description: >- if the issue with the given id/key does not exist or if the currently authenticated user does not have permission to view it content: application/json: schema: type: string post: tags: - issue description: Adds a new comment to an issue. parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: expand in: query description: 'optional flags: renderedBody (provides body rendered in HTML)' schema: type: string responses: '201': description: Returned if add was successful content: application/json: schema: type: string '400': description: >- Returned if the input is invalid (e.g. missing required fields, invalid values, and so forth). content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/comment/{id}: get: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: id in: path description: The comment id required: true schema: type: string responses: '200': description: if request was successful content: application/json: schema: type: string '404': description: >- if the requested comment is not found, or the user does not have permission to view it content: application/json: schema: type: string put: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: id in: path description: The comment id required: true schema: type: string responses: '200': description: if update was successful content: application/json: schema: type: string '400': description: >- if the input is invalid (e.g. missing required fields, invalid values, and so forth) content: application/json: schema: type: string delete: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: id in: path description: The comment id required: true schema: type: string responses: '200': description: if delete was successful content: application/json: schema: type: string '400': description: >- if the input is invalid (e.g. missing required fields, invalid values, and so forth) content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/editmeta: get: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '200': description: if the issue is successfully assigned content: application/json: schema: type: string '404': description: >- if the requested issue is not found or the user does not have permission to view it content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/notify: post: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '200': description: if the issue is successfully assigned content: application/json: schema: type: string '400': description: >- if the input is invalid (e.g. missing required fields, invalid values, and so forth) content: application/json: schema: type: string '403': description: is outgoing emails are disabled OR no SMTP server is defined content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/remotelink: get: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '200': description: if the issue is successfully assigned content: application/json: schema: type: string '401': description: if the calling user is not authenticated content: application/json: schema: type: string '403': description: >- if the calling user does not have permission to view the remote issue links, or if issue linking is disabled content: application/json: schema: type: string '404': description: if the issue or remote issue link do not exist content: application/json: schema: type: string post: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '200': description: if the issue is successfully assigned content: application/json: schema: type: string '400': description: >- if the input is invalid (e.g. missing required fields, invalid values, and so forth) content: application/json: schema: type: string '401': description: if the calling user is not authenticated content: application/json: schema: type: string '403': description: >- if the calling user does not have permission to create/update the remote issue link, or if issue linking is disabled content: application/json: schema: type: string delete: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '200': description: if the issue is successfully assigned content: application/json: schema: type: string '401': description: if the calling user is not authenticated content: application/json: schema: type: string '403': description: >- if the calling user does not have permission to delete the remote issue link, or if issue linking is disabled content: application/json: schema: type: string '404': description: if the issue or remote issue link do not exist content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/remotelink/{linkId}: get: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: linkId in: path description: The link ID required: true schema: type: string responses: '200': description: if the issue is successfully assigned content: application/json: schema: type: string '400': description: >- if the linkId is not a valid number, or if the remote issue link with the given id does not belong to the given issue content: application/json: schema: type: string '401': description: if the calling user is not authenticated content: application/json: schema: type: string '403': description: >- if the calling user does not have permission to view the remote issue link, or if issue linking is disabled content: application/json: schema: type: string '404': description: if the issue or remote issue link do not exist content: application/json: schema: type: string put: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: linkId in: path description: The link ID required: true schema: type: integer format: int32 responses: '204': description: if the issue is successfully assigned content: application/json: schema: type: string '400': description: >- if the input is invalid (e.g. missing required fields, invalid values, and so forth) content: application/json: schema: type: string '401': description: if the calling user is not authenticated content: application/json: schema: type: string '403': description: >- if the calling user does not have permission to update the remote issue link, or if issue linking is disabled content: application/json: schema: type: string delete: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: linkId in: path description: The link ID required: true schema: type: integer format: int32 responses: '204': description: if the remote issue link was removed successfully content: application/json: schema: type: string '401': description: if the calling user is not authenticated content: application/json: schema: type: string '403': description: >- if the calling user does not have permission to update the remote issue link, or if issue linking is disabled content: application/json: schema: type: string '404': description: if the issue or remote issue link do not exist content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/transitions: get: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '200': description: if the transition was successful content: application/json: schema: type: string '404': description: >- The issue does not exist or the user does not have permission to view it content: application/json: schema: type: string post: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '204': description: if the transition was successful content: application/json: schema: type: string '400': description: If there is no transition specified content: application/json: schema: type: string '404': description: >- The issue does not exist or the user does not have permission to view it content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/votes: get: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '200': description: Information about voting on the current issue content: application/json: schema: type: string '404': description: >- Returned if the user cannot view the issue in question or voting is disabled content: application/json: schema: type: string post: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '204': description: Nothing is returned on success content: application/json: schema: type: string '404': description: >- Returned if the user cannot vote for any reason. (The user did not vote on the issue, the user is the reporter, voting is disabled, the issue does not exist, etc.) content: application/json: schema: type: string delete: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '204': description: Nothing is returned on success content: application/json: schema: type: string '404': description: >- Returned if the user cannot remove a vote for any reason. (The user did not vote on the issue, the user is the reporter, voting is disabled, the issue does not exist, etc.) content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/watchers: get: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '200': description: Returns the list of watchers for an issue content: application/json: schema: type: string '404': description: >- Returned if the requested issue is not found, or the user does not have permission to view it content: application/json: schema: type: string post: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '204': description: Returned if the watcher was added successfully content: application/json: schema: type: string '400': description: Returned if there is a problem with the received user representation content: application/json: schema: type: string '401': description: >- Returned if the calling user does not have permission to add the watcher to the issue's list of watchers content: application/json: schema: type: string '404': description: Returned if either the issue or the user does not exist content: application/json: schema: type: string delete: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: username in: query description: >- a String containing the name of the user to remove from the watcher list. Must not be null. required: true schema: type: string responses: '204': description: Returned if the watcher was removed successfully content: application/json: schema: type: string '400': description: Returned if a user name query parameter is not supplied content: application/json: schema: type: string '401': description: >- Returned if the calling user does not have permission to remove the watcher from the issue's list of watchers content: application/json: schema: type: string '404': description: Returned if either the issue or the user does not exist content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/worklog: get: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string responses: '200': description: Returned if the watcher was removed successfully content: application/json: schema: type: string '404': description: >- Returned if the issue with the given id/key does not exist or if the currently authenticated user does not have permission to view it content: application/json: schema: type: string post: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: adjustEstimate in: query description: >- (optional) allows you to provide specific instructions to update the remaining time estimate of the issue. Valid values are "new" - sets the estimate to a specific value "leave"- leaves the estimate as is "manual" - specify a specific amount to increase remaining estimate by "auto"- Default option. Will automatically adjust the value based on the new timeSpent specified on the worklog schema: type: string - name: newEstimate in: query description: >- (required when "new" is selected for adjustEstimate) the new value for the remaining estimate field. e.g. "2d" schema: type: string - name: reduceBy in: query description: >- (required when "manual" is selected for adjustEstimate) the amount to reduce the remaining estimate by e.g. "2d" schema: type: string responses: '201': description: Returned if add was successful content: application/json: schema: type: string '400': description: >- Returned if the input is invalid (e.g. missing required fields, invalid values, and so forth) content: application/json: schema: type: string '403': description: >- Returned if the calling user does not have permission to add the worklog content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/worklog/{id}: get: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: id in: path description: The issue ID or Key required: true schema: type: string responses: '200': description: >- Returned if the work log with the given id exists and the currently authenticated user has permission to view it. The returned response contains a full representation of the work log in JSON format. content: application/json: schema: type: string '404': description: >- Returned if the work log with the given id does not exist or if the currently authenticated user does not have permission to view it. content: application/json: schema: type: string put: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: id in: path description: The issue ID or Key required: true schema: type: string - name: adjustEstimate in: query description: >- (optional) allows you to provide specific instructions to update the remaining time estimate of the issue. Valid values are "new" - sets the estimate to a specific value "leave"- leaves the estimate as is "auto"- Default option. Will automatically adjust the value based on the new timeSpent specified on the worklog schema: type: string - name: newEstimate in: query description: >- (required when "new" is selected for adjustEstimate) the new value for the remaining estimate field. schema: type: string responses: '200': description: Returned if update was successful content: application/json: schema: type: string '400': description: >- Returned if the input is invalid (e.g. missing required fields, invalid values, and so forth). content: application/json: schema: type: string '403': description: >- Returned if the calling user does not have permission to update the worklog content: application/json: schema: type: string delete: tags: - issue parameters: - name: issueIdOrKey in: path description: The issue ID or Key required: true schema: type: string - name: id in: path description: The issue ID or Key required: true schema: type: string - name: adjustEstimate in: query description: >- (optional) allows you to provide specific instructions to update the remaining time estimate of the issue. Valid values are "new" - sets the estimate to a specific value "leave"- leaves the estimate as is "auto"- Default option. Will automatically adjust the value based on the new timeSpent specified on the worklog schema: type: string - name: newEstimate in: query description: >- (required when "new" is selected for adjustEstimate) the new value for the remaining estimate field. schema: type: string - name: increaseBy in: query description: >- (required when "manual" is selected for adjustEstimate) the amount to increase the remaining estimate by e.g. "2d" schema: type: string responses: '204': description: Returned if delete was successful content: application/json: schema: type: string '400': description: >- Returned if the input is invalid (e.g. missing required fields, invalid values, and so forth). content: application/json: schema: type: string '403': description: >- Returned if the calling user does not have permission to delete the worklog content: application/json: schema: type: string /rest/api/2/issue/createmeta: get: tags: - issue description: >- Returns the meta data for creating issues. This includes the available projects, issue types and fields, including field types and whether or not those fields are required. Projects will not be returned if the user does not have permission to create issues in that project. The fields in the createmeta correspond to the fields in the create screen for the project/issuetype. Fields not in the screen will not be in the createmeta. Fields will only be returned if expand=projects.issuetypes.fields. The results can be filtered by project and/or issue type, given by the query params. parameters: - name: projectIds in: query description: >- combined with the projectKeys param, lists the projects with which to filter the results. If absent, all projects are returned. This parameter can be specified multiple times, and/or be a comma-separated list. Specifiying a project that does not exist (or that you cannot create issues in) is not an error, but it will not be in the results. required: true schema: type: string - name: projectKeys in: query description: >- combined with the projectIds param, lists the projects with which to filter the results. If null, all projects are returned. This parameter can be specified multiple times, and/or be a comma-separated list. Specifiying a project that does not exist (or that you cannot create issues in) is not an error, but it will not be in the results. required: true schema: type: string - name: issuetypeIds in: query description: >- combinded with issuetypeNames, lists the issue types with which to filter the results. If null, all issue types are returned. This parameter can be specified multiple times, and/or be a comma-separated list. Specifiying an issue type that does not exist is not an error. schema: type: string - name: issuetypeNames in: query description: >- combinded with issuetypeIds, lists the issue types with which to filter the results. If null, all issue types are returned. This parameter can be specified multiple times, but is NOT interpreted as a comma-separated list. Specifiying an issue type that does not exist is not an error. schema: type: string responses: '200': description: Returns the meta data for creating issues. content: application/json: schema: type: string '403': description: >- Returned if the user does not have permission to view any of the requested projects. content: application/json: schema: type: string /rest/api/2/issue/picker: get: tags: - issue description: >- Returns suggested issues which match the auto-completion query for the user which executes this request. This REST method will check the users history and the users browsing context and select this issues, which match the query. parameters: - name: query in: query description: the query. schema: type: string - name: currentJQL in: query description: >- the JQL in context of which the request is executed. Only issues which match this JQL query will be included in results. schema: type: string - name: currentIssueKey in: query description: >- the key of the issue in context of which the request is executed. The issue which is in context will not be included in the auto-completion result, even if it matches the query. schema: type: string - name: currentProjectId in: query description: >- the id of the project in context of which the request is executed. Suggested issues will be only from this project. schema: type: string - name: showSubTasks in: query description: if set to false, subtasks will not be included in the list. schema: type: boolean - name: showSubTaskParent in: query description: >- if set to false and request is executed in context of a subtask, the parent issue will not be included in the auto-completion result, even if it matches the query. schema: type: boolean responses: '200': description: Returns a list of issues which match the picker parameters. content: application/json: schema: type: string /rest/api/2/issue/{issueIdOrKey}/attachments: summary: 'Add one or more attachments to an issue.' description: 'This resource expects a multipart post. The media-type multipart/form-data is defined in RFC 1867. Most client libraries have classes that make dealing with multipart posts simple. For instance, in Java the Apache HTTP Components library provides a MultiPartEntity that makes it simple to submit a multipart POST. In order to protect against XSRF attacks, because this method accepts multipart/form-data, it has XSRF protection on it. This means you must submit a header of X-Atlassian-Token: no-check with the request, otherwise it will be blocked. The name of the multipart/form-data parameter that contains attachments must be "file" A simple example to upload a file called "myfile.txt" to issue REST-123: curl -D- -u admin:admin -X POST -H "X-Atlassian-Token: no-check" -F "file=@myfile.txt" http://myhost/rest/api/2/issue/TEST-123/attachments' parameters: - $ref: '#/components/parameters/authorization-jira' post: tags: - issue parameters: - name: issueIdOrKey in: path schema: type: string required: true responses: '200': content: 'application/json: ': schema: type: string description: '' '403': content: 'application/json: ': schema: type: string description: 'Returned if attachments is disabled or if you dont have permission to add attachments to this issue.' '404': content: 'application/json: ': schema: type: string description: 'Returned if the requested issue is not found, the user does not have permission to view it, or if the attachments exceeds the maximum configured attachment size.' /rest/api/2/issue/{issueIdOrKey}/subtask: parameters: - $ref: '#/components/parameters/authorization-jira' get: tags: - issue summary: 'Returns an issues subtask list' parameters: - name: issueIdOrKey in: path schema: type: string required: true responses: '200': content: 'application/json: ': schema: type: string description: '' '403': content: 'application/json: ': schema: type: string description: 'Returned if the user is not allowed to edit the issue' '404': content: 'application/json: ': schema: type: string description: 'Returned if the issue doesnt exist' /rest/api/2/issue/{issueIdOrKey}/subtask/move: parameters: - $ref: '#/components/parameters/authorization-jira' get: tags: - issue description: 'Reorders an issues subtasks by moving the subtask at index "from" to index "to".' parameters: - name: issueIdOrKey in: path schema: type: string required: true summary: 'Can move sub task' responses: '200': content: 'application/json': schema: type: string description: '' '403': content: 'application/json': schema: type: string description: '' post: tags: - issue description: 'Reorders an issues subtasks by moving the subtask at index "from" to index "to".' summary: 'Can move sub task' parameters: - name: issueIdOrKey in: path schema: type: string required: true requestBody: content: application/json: schema: $ref: '#/components/schemas/ism-move-position' responses: '204': content: 'application/json': schema: type: string description: 'Returned if the request was successful' '400': content: 'application/json': schema: type: string description: 'Returned if the from or to parameters are out of bounds' '403': content: 'application/json': schema: type: string description: 'Returned if the user is not allowed to edit the issue' '404': content: 'application/json': schema: type: string description: 'Returned if the parent issue doesnt exist' /rest/api/2/issueLink: description: 'The Link Issue Resource provides functionality to manage issue links.' parameters: - $ref: '#/components/parameters/authorization-jira' post: tags: - issueLink description: 'Creates an issue link between two issues. The user requires the link issue permission for the issue which will be linked to another issue. The specified link type in the request is used to create the link and will create a link from the first issue to the second issue using the outward description. It also create a link from the second issue to the first issue using the inward description of the issue link type. It will add the supplied comment to the first issue. The comment can have a restriction who can view it. If group is specified, only users of this group can view this comment, if roleLevel is specified only users who have the specified role can view this comment. The user who creates the issue link needs to belong to the specified group or have the specified role.' requestBody: content: application/json: schema: $ref: '#/components/schemas/link-issue-request' responses: '201': description: 'if the issue link was created successfully.' content: application/json: schema: type: string '400': description: 'if it cant create the supplied comment. The response will contain an error message indicating why it failed to create the comment. No issue link will be created if it failed to create the comment.' content: application/json: schema: type: string '401': description: 'if the issue link was created successfully.' content: application/json: schema: type: string '500': description: 'if the user does not have the link issue permission for the issue, which will be linked to another issue.' content: application/json: schema: type: string '404': description: 'If issue linking is disabled or it failed to find one of the issues (issue might exist, but it is not visible for this user) or it failed to find the specified issue link type.' content: application/json: schema: type: string /rest/api/2/issueLink/{linkId}: parameters: - $ref: '#/components/parameters/authorization-jira' get: tags: - issueLink description: 'Returns an issue link with the specified id.' parameters: - name: linkId in: path schema: type: string required: true responses: '204': content: application/json: schema: $ref: '#/components/schemas/issue-ref' description: '' '400': content: application/json: schema: type: string description: 'If the specified issue link id is invalid.' '401': content: application/json: schema: type: string description: 'if the user does not have the link issue permission for the issue, which will be linked to another issue.' '404': content: application/json: schema: type: string description: 'If issue linking is disabled or it failed to find an issue link with the specified id. Either because none exists with this id, or the user doesnt have the permission to see one of the linked issues.' '500': content: application/json: schema: type: string description: 'if an error occurred when creating the issue link or the comment.' delete: tags: - issueLink description: 'Deletes an issue link with the specified id. To be able to delete an issue link you must be able to view both issues and must have the link issue permission for at least one of the issues.' responses: '204': content: application/json: schema: type: string description: 'If it successfully deleted the issue link.' '400': content: application/json: schema: type: string description: 'If the specified issue link id is invalid.' '401': content: application/json: schema: type: string description: 'if the user does not have the link issue permission for the source or destination issue of the issue link.' '404': content: application/json: schema: type: string description: 'If issue linking is disabled or it failed to find an issue link with the specified id. Either because none exists with this id, or the user doesnt have the permission to see one of the linked issues.' '500': content: application/json: schema: type: string description: 'if an error occurred when deleting the issue link or the comment.' /rest/api/2/issueLinkType: description: 'Rest resource to retrieve a list of issue link types.' parameters: - $ref: '#/components/parameters/authorization-jira' get: tags: - issueLink description: 'Returns a list of available issue link types, if issue linking is enabled. Each issue link type has an id, a name and a label for the outward and inward link relationship.' responses: '200': content: application/json: schema: $ref: '#/components/schemas/issue-link-type' description: 'Returns a list of all available issue link types.' '404': description: 'Returned if issue linking is disabled.' post: tags: - issueLink description: 'Create a new issue link type.' requestBody: content: application/json: schema: $ref: '#/components/schemas/issue-link-type' responses: '200': content: application/json: schema: $ref: '#/components/schemas/issue-link-type' description: 'The new issue link type has been created.' '404': description: 'Issue linking is disabled or you do not have permission to create issue link types.' /rest/api/2/issueLinkType/{issueLinkTypeId}: parameters: - $ref: '#/components/parameters/authorization-jira' get: tags: - issueLink description: 'Returns for a given issue link type id all information about this issue link type.' parameters: - name: issueLinkTypeId in: path required: true description: 'The issue link type id' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/issue-link-type' description: 'Returns the issue link type with the given id.' '404': description: 'Returned if issue linking is disabled or no issue link type with the given id exists.' delete: description: 'Delete the specified issue link type.' responses: '204': description: 'deleted successfull' '404': description: 'Returned if issue linking is disabled or no issue link type with the given id exists.' put: description: 'Update the specified issue link type.' requestBody: content: application/json: schema: $ref: '#/components/schemas/issue-link-type' responses: '200': content: application/json: schema: $ref: '#/components/schemas/issue-link-type' description: 'updated' '400': description: 'Returned if the supplied id is not a number.' '404': description: 'Returned if issue linking is disabled or no issue link type with the given id exists.' /rest/api/2/issuetype: parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns a list of all issue types visible to the user' responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-issue-type' description: 'Returns a list of all issue types visible to the user' post: description: 'Creates an issue type from a JSON representation and adds the issue newly created issue type to the default issue type scheme.' requestBody: content: application/json: schema: $ref: '#/components/schemas/issue-type-create' responses: '200': content: application/json: schema: $ref: '#/components/schemas/issue-type' description: 'Returned if the issue type was successfully created.' '400': description: 'Returned if the request is invalid. This happens when the name is invalid or issue type is subtask on instance which has subtasks disabled.' '401': description: 'Returned if the calling user is not authenticated.' '403': description: 'Returned if the calling user does not have permission to administer JIRA.' '409': description: 'Returned if there already exists an issue type with the specified name.' /rest/api/2/issuetype/{id}: parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns a full representation of the issue type that has the given id.' parameters: - name: id in: path required: true description: 'the issue type id' schema: type: 'string' responses: '200': content: application/json: schema: $ref: '#/components/schemas/issue-type' description: 'Returned if the issue type exists and is visible by the calling user.' delete: description: 'Deletes the specified issue type. If the issue type has any associated issues, these issues will be migrated to the alternative issue type specified in the parameter. You can determine the alternative issue types by calling the /rest/api/2/issuetype/{id}/alternatives resource.' parameters: - name: id in: path required: true description: 'the issue type id to delete' schema: type: 'string' - name: alternativeIssueTypeId in: query required: false description: 'the alternative issue type id to migrate the issues to' schema: type: 'string' responses: '200': content: application/json: schema: type: string description: 'Returned if the issue type was successfully removed.' '400': description: 'Returned if the request is invalid. It happens when there are associated issues with the issue type which is being removed, but it is impossible to migrate these issues to the alternative issue type.' '401': description: 'Returned if the calling user is not authenticated.' '403': description: 'Returned if the calling user does not have permission to administer JIRA.' '404': description: 'Returned if the issue type which is supposed to be removed does not exist or the alternative issue type does not exist.' put: description: 'Updates the specified issue type from a JSON representation.' parameters: - name: id in: path required: true description: 'The issue type id' schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/issue-type-update' responses: '200': content: application/json: schema: $ref: '#/components/schemas/issue-type' description: 'Returned if the issue type was successfully updated.' '400': description: 'Returned if the request is invalid. This happens when the name is invalid or if the avatar with given id does not exist.' '401': description: 'Returned if the calling user is not authenticated.' '403': description: 'Returned if the calling user does not have permission to administer JIRA.' '404': description: 'Returned if the issue type to update does not exist.' '409': description: 'Returned if there already exists an issue type with the specified name.' /rest/api/2/issuetype/{id}/alternatives: parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns a list of all alternative issue types for the given issue type id. The list will contain these issues types, to which issues assigned to the given issue type can be migrated. The suitable alternatives are issue types which are assigned to the same workflow, the same field configuration and the same screen scheme.' parameters: - name: id in: path required: true description: 'The alternative issue type id' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-issue-type' description: 'Returned if the issue type exists and is visible by the calling user.' '404': description: 'Returned if the issue type does not exist, or is not visible to the calling user.' /rest/api/2/issuetype/{id}/avatar: summary: 'Create avatar from temporary' parameters: - $ref: '#/components/parameters/authorization-jira' post: description: 'Converts temporary avatar into a real avatar' parameters: - name: id in: path required: true description: 'the temporary avatar id to convert into a real one' schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/avatar-cropping' responses: '201': description: 'Returns created avatar' content: application/json: schema: $ref: '#/components/schemas/avatar' '400': description: 'Returned if the cropping coordinates are invalid' '403': description: 'Returned if the currently authenticated user does not have permission to pick avatar' '404': description: 'Returned if the currently authenticated user does not have EDIT PROJECT permission.' '500': description: 'Returned if an error occurs while converting temporary avatar to real avatar' /rest/api/2/issuetype/{id}/avatar/temporary#1: summary: 'Store temporary avatar' parameters: - $ref: '#/components/parameters/authorization-jira' post: description: |- Creates temporary avatar. Creating a temporary avatar is part of a 3-step process in uploading a new avatar for an issue type':' upload, crop, confirm. The following examples shows these three steps using curl. The cookies (session) need to be preserved between requests, hence the use of -b and -c. The id created in step 2 needs to be passed to step 3 (you can simply pass the whole response of step 2 as the request of step 3).

          curl -c cookiejar.txt -X POST -u admin:admin -H "X-Atlassian-Token: no-check" \
          -H "Content-Type: image/png" --data-binary @mynewavatar.png \
          http://localhost:8090/jira/rest/api/2/issuetype/1/avatar/temporary?filename=mynewavatar.png

          curl -b cookiejar.txt -X POST -u admin:admin -H "X-Atlassian-Token: no-check" \
            -H "Content-Type: application/json" --data '{"cropperWidth": "65","cropperOffsetX": "10","cropperOffsetY": "16"}' \
            -o tmpid.json http://localhost:8090/jira/rest/api/2/issuetype/1/avatar

          curl -b cooki ejar.txt -X PUT -u admin:admin -H "X-Atlassian-Token: no-check" \
          -H "Content-Type: application/json" --data-binary @tmpid.json \
          http://localhost:8090/jira/rest/api/2/issuetype/1/avatar
          
parameters: - name: id in: path required: true description: 'the issuetype id for the temporary avatar' schema: type: string - name: filename in: query required: true description: 'the filename of file being uploaded' schema: type: string - name: size in: query required: true description: 'size of file' schema: type: number responses: '200': content: application/json: schema: $ref: '#/components/schemas/avatar-cropping' description: 'temporary avatar cropping instructions' '401': description: 'Returned if the calling user is not authenticated.' '403': description: 'Returned if the calling user does not have permission to administer JIRA.' '404': description: 'Returned if the issue type to update does not exist or if the request does not contain valid XSRF token.' /rest/api/2/issuetype/{id}/avatar/temporary#2: summary: 'Store temporary avatar using multi part' parameters: - $ref: '#/components/parameters/authorization-jira' post: description: |- Creates temporary avatar using multipart. The response is sent back as JSON stored in a textarea. This is because the client uses remote iframing to submit avatars using multipart. So we must send them a valid HTML page back from which the client parses the JSON from. Creating a temporary avatar is part of a 3-step process in uploading a new avatar for an issue type: upload, crop, confirm. This endpoint allows you to use a multipart upload instead of sending the image directly as the request body. You *must* use "avatar" as the name of the upload parameter:

          curl -c cookiejar.txt -X POST -u admin:admin -H "X-Atlassian-Token: no-check" \
          -F "avatar=@mynewavatar.png;type=image/png" \
          'http://localhost:8090/jira/rest/api/2/issuetype/1/avatar/temporary'
        
parameters: - name: id in: path required: true description: 'the issuetype id for the temporary avatar' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/avatar-cropping' description: 'temporary avatar cropping instructions' '401': description: 'Returned if the calling user is not authenticated.' '403': description: 'Returned if the calling user does not have permission to administer JIRA.' '404': description: 'Returned if the issue type to update does not exist or if the request does not contain valid XSRF token.' /rest/api/2/jql/autocompletedata: summary: 'Resource for auto complete data for searches.' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns the auto complete data required for JQL searches.' responses: '200': description: 'The auto complete data required for JQL searches.' content: application/json: schema: $ref: '#/components/schemas/auto-complete-response' '401': description: 'Returned if the calling user is not authenticated.' '500': description: 'Returned if an error occurs while generating the response.' /rest/api/2/jql/autocompletedata/suggestions: summary: 'Get field auto complete for query string' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns auto complete suggestions for JQL search.' parameters: - name: fieldName in: query required: false description: 'the field name for which the suggestions are generated.' schema: type: string - name: fieldValue in: query required: false description: 'the portion of the field value that has already been provided by the user.' schema: type: string - name: predicateName in: query required: false description: 'the predicate for which the suggestions are generated. Suggestions are generated only for: "by", "from" and "to".' schema: type: string - name: predicateValue in: query required: false description: 'the portion of the predicate value that has already been provided by the user.' schema: type: string responses: '200': description: 'The autocompletion suggestions for JQL search.' content: application/json: schema: $ref: '#/components/schemas/auto-complete-result-wrapper' /rest/api/2/priority: summary: 'Get priorities' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns a list of all issue priorities.' responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-priority' description: 'Returned if the priorities exists and the user has permission to view it. Contains a full representation of the priority in JSON format.' /rest/api/2/priority/{id}: summary: 'Get priority' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns an issue priority.' parameters: - name: id in: path required: true description: 'the issue id to return the priority for' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/priority' description: 'Returned if the issue priority exists and is visible by the calling user. Contains a full representation of the issue priority in JSON.' '404': description: 'Returned if the issue priority does not exist or is not visible to the calling user.' /rest/api/2/project: summary: 'Get all projects' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns all projects which are visible for the currently logged in user. If no user is logged in, it returns the list of projects that are visible when using anonymous access.' parameters: - name: expand in: query required: false description: 'the parameters to expand' schema: type: string - name: recent in: query required: false description: 'if this parameter is set then only projects recently accessed by the current user (if not logged in then based on HTTP session) will be returned (maximum count limited to the specified number but no more than 20).' schema: type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-project' description: 'Returns a list of projects for which the user has the BROWSE, ADMINISTER or PROJECT_ADMIN project permission.' /rest/api/2/project/{projectIdOrKey}: summary: 'Get project' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Contains a full representation of a project in JSON format. All project keys associated with the project will only be returned if expand=projectKeys.' parameters: - name: projectIdOrKey in: path required: true description: 'the project id or key' schema: type: string - name: expand in: query required: false description: 'the parameters to expand' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/project' description: 'Returned if the project exists and the user has permission to view it. Contains a full representation of a project in JSON format.' '404': description: 'Returned if the project is not found, or the calling user does not have permission to view it.' /rest/api/2/project/{projectIdOrKey}/avatars: summary: 'Get all avatars' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns all avatars which are visible for the currently logged in user. The avatars are grouped into system and custom.' parameters: - name: projectIdOrKey in: path required: true description: 'the project id or key' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/object-avatar' description: 'Returns a map containing a list of avatars for both custom an system avatars, which the user has the BROWSE project permission.' '404': description: 'Returned if the currently authenticated user does not have VIEW PROJECT permission.' /rest/api/2/project/{projectIdOrKey}/components: summary: 'Get project components' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Contains a full representation of a the specified projects components.' parameters: - name: projectIdOrKey in: path required: true description: 'the project id or key' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-component' description: 'Returned if the project exists and the user has permission to view its components. Contains a full representation of the projects components in JSON format.' '404': description: 'Returned if the project is not found, or the calling user does not have permission to view it.' /rest/api/2/project/{projectIdOrKey}/statuses: summary: 'Get all statuses' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Get all issue types with valid status values for a project' parameters: - name: projectIdOrKey in: path required: true description: 'the project id or key' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-issue-type-with-status' description: 'Returned if the project exists and the user has permission to view its components. Contains a full representation of issue types with status values which are valid for each issue type' '400': description: 'Returned if the project is not found, or the calling user does not have permission to view it.' /rest/api/2/project/{projectIdOrKey}/version: summary: 'Get project versions paginated' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns all versions for the specified project. Results are [paginated](https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#pagination). Results can be ordered by the following fields: - sequence - name - startDate - releaseDate' parameters: - name: projectIdOrKey in: path required: true description: 'the project id or key' schema: type: string - name: startAt in: query required: false description: 'the page offset, if not specified then defaults to 0' schema: type: number default: 0 - name: maxResults in: query required: false description: 'how many results on the page should be included. Defaults to 50.' schema: type: integer default: 50 - name: orderBy in: query required: false description: 'ordering of the results.' schema: type: string - name: expand in: query required: false description: 'the parameters to expand' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/page-of-version' description: 'One page of versions for the project.' '404': description: 'Returned if the project is not found, or the calling user does not have permission to view it.' /rest/api/2/project/{projectIdOrKey}/versions: summary: 'Get project versions' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Contains a full representation of a the specified projects versions.' parameters: - name: projectIdOrKey in: path required: true description: 'the project id or key' schema: type: string - name: expand in: query required: false description: 'the parameters to expand' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-version' description: 'Returned if the project exists and the user has permission to view its versions. Contains a full representation of the projects versions in JSON format.' /rest/api/2/project/{projectKeyOrId}/securitylevel: summary: 'Provide security level information of the given project for the current user.' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns all security levels for the project that the current logged in user has access to. If the user does not have the Set Issue Security permission, the list will be empty.' parameters: - name: projectIdOrKey in: path required: true description: 'the project id or key' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/security-list-level' description: 'Returns a list of all security levels in a project for which the current user has access.' '404': description: 'Returned if the project is not found or the user does not have permissions to browse it.' /rest/api/2/projectCategory: parameters: - $ref: '#/components/parameters/authorization-jira' get: summary: 'Get all project categories' description: 'Returns all project categories' responses: '200': content: application/json: schema: $ref: '#/components/schemas/project-category' description: 'Returns a list of project categories.' '500': description: 'Returned if an error occurs while retrieving the list of projects.' post: summary: 'Create project category' description: 'Create a project category via POST.' requestBody: content: application/json: schema: $ref: '#/components/schemas/project-category' responses: '200': content: application/json: schema: $ref: '#/components/schemas/project-category' description: 'Returned if the project category is created successfully.' '401': description: 'Returned if the caller is not logged in so does not have permission to create project categories.' '403': description: 'Returned if the caller is authenticated and does not have permission to create project categories (is not global admin).' '409': description: 'Returned if a project category with the given name already exists.' /rest/api/2/projectCategory/{id}: parameters: - $ref: '#/components/parameters/authorization-jira' get: summary: 'Get project category by id' description: 'Contains a representation of a project category in JSON format.' parameters: - name: id in: path required: true description: 'the project category id' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/project-category' description: 'Returned if the project category exists. Contains representation of a project category in JSON format.' '404': description: 'Returned if the project category does not exist or the currently authenticated user does not have permission to view it.' delete: summary: 'Remove project category' description: 'Delete a project category.' parameters: - name: id in: path required: true description: 'the project category id' schema: type: string responses: '204': description: 'Returned if the project category is successfully deleted.' '401': description: 'Returned if the caller is not logged in so does not have permission to delete project categories.' '403': description: 'Returned if the caller is authenticated and does not have permission to delete project categories (is not global admin).' '404': description: 'Returned if the project category does not exist or the currently authenticated user does not have permission to view it.' put: summary: 'Update project category' description: 'Modify a project category via PUT. Any fields present in the PUT will override existing values. As a convenience, if a field is not present, it is silently ignored.' parameters: - name: id in: path required: true description: 'the project category id' schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/project-category' responses: '200': content: application/json: schema: $ref: '#/components/schemas/project-category' description: 'Returned if the project category exists and the currently authenticated user has permission to edit it.' '201': content: application/json: schema: $ref: '#/components/schemas/project-category' description: '' '401': description: 'Returned if the caller is not logged in so does not have permission to change project categories.' '403': description: 'Returned if the caller is authenticated and does not have permission to change project categories (is not global admin).' '404': description: 'Returned if the project category does not exist or the currently authenticated user does not have permission to view it.' /rest/api/2/projectvalidate/key: summary: 'Validates a project key.' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Validates a project key.' parameters: - name: key in: query required: true description: 'the project key' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/error-collection' description: 'Returns an ErrorCollection containing any validation errors for the project key.' /rest/api/2/resolution: summary: 'Get resolutions' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns a list of all resolutions.' responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-resolution' description: 'Returned if the resolutions exists and the user has permission to view them. Contains a full representation of the resolution in JSON format.' /rest/api/2/resolution/{id}: summary: 'Get resolution by id' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns a resolution.' responses: '200': content: application/json: schema: $ref: '#/components/schemas/resolution' description: 'Returned if the resolution exists and the user has permission to view it. Contains a full representation of the resolution in JSON format.' '404': description: 'Returned if the resolution does not exist or the user does not have permission to view it.' /rest/api/2/search: summary: 'Resource for searches.' parameters: - $ref: '#/components/parameters/authorization-jira' post: summary: 'Search using search request' description: 'Performs a search using JQL.' requestBody: content: application/json: schema: $ref: '#/components/schemas/search-request' responses: '200': content: application/json: schema: $ref: '#/components/schemas/search-results' description: 'Returns a JSON representation of the search results.' '400': description: 'Returned if there is a problem with the JQL query.' get: summary: 'Search' description: |- Searches for issues using JQL. Sorting the jql parameter is a full JQL expression, and includes an ORDER BY clause. The fields param (which can be specified multiple times) gives a comma-separated list of fields to include in the response. This can be used to retrieve a subset of fields. A particular field can be excluded by prefixing it with a minus. By default, only navigable (*navigable) fields are returned in this search resource. Note: the default is different in the get-issue resource -- the default there all fields (*all). *all - include all fields *navigable - include just navigable fields summary,comment - include just the summary and comments -description - include navigable fields except the description (the default is *navigable for search) *all,-comment - include everything except comments GET vs POST: If the JQL query is too large to be encoded as a query param you should instead POST to this resource. Expanding Issues in the Search Result: It is possible to expand the issues returned by directly specifying the expansion on the expand parameter passed in to this resources. For instance, to expand the "changelog" for all the issues on the search result, it is neccesary to specify "changelog" as one of the values to expand. parameters: - name: jql in: query required: true description: 'a JQL query string' schema: type: string - name: startAt in: query required: false description: 'the index of the first issue to return (0-based)' schema: type: integer - name: maxResults in: query required: false description: 'the maximum number of issues to return (defaults to 50). The maximum allowable value is dictated by the JIRA property "jira.search.views.default.max". If you specify a value that is higher than this number, your search results will be truncated' schema: type: integer - name: validateQuery in: query required: true description: 'whether to validate the JQL query' schema: type: boolean default: true - name: fields in: query required: false description: 'the list of fields to return for each issue. By default, all navigable fields are returned.' schema: type: string - name: expand in: query required: false description: 'A comma-separated list of the parameters to expand.' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/search-results' description: 'Returns a JSON representation of the search results.' '400': description: 'Returned if there is a problem with the JQL query.' /rest/api/2/securitylevel/{id}: summary: 'Get issuesecuritylevel' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns a full representation of the security level that has the given id.' parameters: - name: id in: path required: true description: 'the security level of the issue by id' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/security-level' description: 'Returned if the issue type exists and is visible by the calling user.' '404': description: 'Returned if the issue type does not exist, or is not visible to the calling user.' /rest/api/2/serverInfo: summary: 'Get server info' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns general information about the current JIRA server.' parameters: - name: doHealthCheck in: query required: false description: 'perform the healthcheck' schema: type: boolean responses: '200': content: application/json: schema: $ref: '#/components/schemas/server-info' description: 'Returns a full representation of the server info in JSON format' /rest/api/2/status: summary: 'Returns a list of all statuses' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns a list of all statuses' responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-status' description: 'Returns a list of all JIRA issue statuses in JSON format, that are visible to the user.' '404': description: 'Returned if the requested issue status is not found, or the user does not have permission to view it.' /rest/api/2/status/{idOrName}: summary: 'Returns a full representation of the Status having the given id or name.' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns a full representation of the Status having the given id or name.' parameters: - name: idOrName in: path required: true description: 'id or name of status' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/status' description: 'Returns a full representation of a JIRA issue status in JSON format.' '404': description: 'Returned if the requested issue status is not found, or the user does not have permission to view it.' /rest/api/2/statuscategory: summary: 'Returns a list of all status categories' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns a list of all status categories' responses: '200': content: application/json: schema: $ref: '#/components/schemas/list-of-status-category' description: 'Returns a list of all JIRA issue status categories in JSON format, that are visible to the user.' /rest/api/2/statuscategory/{idOrKey}: summary: 'Returns a full representation of the StatusCategory having the given id or key' parameters: - $ref: '#/components/parameters/authorization-jira' get: description: 'Returns a full representation of the StatusCategory having the given id or key' parameters: - name: idOrKey in: path required: true description: 'id or key of status category' schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/status-category' description: 'Returns a full representation of a JIRA issue status category in JSON format.' '404': description: 'Returned if the requested issue status category is not found, or the user does not have permission to view it.' /rest/api/2/version: summary: 'Create version' parameters: - $ref: '#/components/parameters/authorization-jira' post: description: 'Create a version via POST.' requestBody: content: application/json: schema: $ref: '#/components/schemas/version' responses: '201': description: 'Returned if the version is created successfully.' content: application/json: schema: $ref: '#/components/schemas/version' '403': description: 'Returned if the currently authenticated user does not have permission to edit the version.' '404': description: 'Returned if the version does not exist or the currently authenticated user does not have permission to view it.' /rest/api/2/version/{id}/move: summary: 'Move version' parameters: - $ref: '#/components/parameters/authorization-jira' post: description: |- Modify a version's sequence within a project. The move version bean has 2 alternative field value pairs: position An absolute position, which may have a value of 'First', 'Last', 'Earlier' or 'Later' after A version to place this version after. The value should be the self link of another version parameters: - name: id in: path required: true description: 'version id' schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/version-move' responses: '200': description: 'Returned if the version exists and the currently authenticated user has permission to view it. Contains a full representation of the version moved.' content: application/json: schema: $ref: '#/components/schemas/version' '404': description: 'Returned if the version, or target of the version to move after does not exist or the currently authenticated user does not have permission to view it.' /rest/api/2/version/{id}: parameters: - $ref: '#/components/parameters/authorization-jira' get: summary: 'Get version' description: 'Returns a project version.' parameters: - name: id in: path required: true description: 'version id' schema: type: string - name: expand in: query required: false description: '' schema: type: string responses: '200': description: 'Returned if the version exists and the currently authenticated user has permission to view it. Contains a full representation of the version.' content: application/json: schema: $ref: '#/components/schemas/version' '404': description: 'Returned if the version does not exist or the currently authenticated user does not have permission to view it.' put: summary: 'Update version' description: 'Modify a version via PUT. Any fields present in the PUT will override existing values. As a convenience, if a field is not present, it is silently ignored.' parameters: - name: id in: path required: true description: 'version id' schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/version' responses: '200': description: 'Returned if the version exists and the currently authenticated user has permission to edit it.' content: application/json: schema: $ref: '#/components/schemas/version' '403': description: 'Returned if the currently authenticated user does not have permission to edit the version.' '404': description: 'Returned if the version does not exist or the currently authenticated user does not have permission to view it.' delete: summary: 'delete a version' description: 'Delete a project version.' parameters: - name: id in: path required: true description: 'version id' schema: type: string - name: moveFixIssuesTo in: query required: false description: 'The version to set fixVersion to on issues where the deleted version is the fix version, If null then the fixVersion is removed.' schema: type: string - name: moveAffectedIssuesTo in: query required: false description: 'The version to set affectedVersion to on issues where the deleted version is the affected version, If null then the affectedVersion is removed.' schema: type: string responses: '204': description: 'Returned if the version is successfully deleted.' '403': description: 'Returned if the currently authenticated user does not have permission to delete the version.' '404': description: 'Returned if the version does not exist or the currently authenticated user does not have permission to view it.' /rest/api/2/version/{id}/mergeto/{moveIssuesTo}: summary: 'Merge versions' parameters: - $ref: '#/components/parameters/authorization-jira' put: summary: 'Merge versions' description: 'Merge versions' parameters: - name: id in: path required: true description: 'version id' schema: type: string - name: moveIssuesTo in: path required: true description: '' schema: type: string responses: '204': description: 'Returned if the version is successfully deleted.' '403': description: 'Returned if the currently authenticated user does not have permission to delete the version.' '404': description: 'Returned if the version does not exist or the currently authenticated user does not have permission to view it.' /rest/api/2/version/{id}/relatedIssueCounts: summary: 'Get version related issues' parameters: - $ref: '#/components/parameters/authorization-jira' get: summary: 'Get version related issues' description: 'Returns a bean containing the number of fixed in and affected issues for the given version.' parameters: - name: id in: path required: true description: 'version id' schema: type: string responses: '200': description: 'Returned if the version exists and the currently authenticated user has permission to view it. Contains counts of issues fixed in and affecting this version, custom fields connected to this version.' content: application/json: schema: $ref: '#/components/schemas/version-issue-counts' '404': description: 'Returned if the version does not exist or the currently authenticated user does not have permission to view it.' /rest/api/2/version/{id}/removeAndSwap: summary: 'Delete a project version.' parameters: - $ref: '#/components/parameters/authorization-jira' post: summary: 'Delete a project version.' parameters: - name: id in: path required: true description: 'version id' schema: type: string requestBody: content: application/json: schema: type: string responses: '204': description: 'Returned if the version is successfully deleted.' '403': description: 'Returned if the currently authenticated user does not have permission to delete the version.' '404': description: 'Returned if the version does not exist or the currently authenticated user does not have permission to view it.' /rest/api/2/version/{id}/unresolvedIssueCount: summary: 'Get version unresolved issues' parameters: - $ref: '#/components/parameters/authorization-jira' get: summary: 'Get version unresolved issues' description: 'Returns the number of unresolved issues for the given version' parameters: - name: id in: path required: true description: 'version id' schema: type: string responses: '200': description: 'Returned if the version exists and the currently authenticated user has permission to view it. Contains counts of issues unresolved in this version.' content: application/json: schema: $ref: '#/components/schemas/version-unresolved-issue-counts' '404': description: 'Returned if the version does not exist or the currently authenticated user does not have permission to view it.' /rest/api/2/version/{versionId}/remotelink: parameters: - $ref: '#/components/parameters/authorization-jira' get: summary: 'Get remote version links by version id' description: 'Returns the remote version links associated with the given version ID.' parameters: - name: versionId in: path required: true description: 'version id' schema: type: string responses: '200': description: 'Returned if the version exists and the currently authenticated user has permission to view it, which is restricted to those users with BROWSE permission for the project. Contains a full representation of the remote version links.' content: application/json: schema: $ref: '#/components/schemas/remote-entity-link' '404': description: 'Returned if the version does not exist or the currently authenticated user does not have permission to view it.' post: summary: 'Create or update remote version link' description: 'Create a remote version link via POST. The links global ID will be taken from the JSON payload if provided; otherwise, it will be generated.' parameters: - name: versionId in: path required: true description: 'version id' schema: type: string requestBody: content: application/json: schema: type: string responses: '200': description: 'Returned if the version is created successfully. The document will has no content, and a {@code Location:} header contains the self-URI for the newly created link.' '400': description: 'Returned if the JSON payload is empty or malformed' '403': description: 'Returned if the currently authenticated user does not have permission to edit the version.' '404': description: 'Returned if the version does not exist or the currently authenticated user does not have permission to view it.s' delete: summary: 'Delete remote version links by version id' description: 'Delete all remote version links for a given version ID.' parameters: - name: versionId in: path required: true description: 'version id' schema: type: string responses: '204': description: 'Returned if the remote version links are successfully deleted.' '403': description: 'Returned if the currently authenticated user does not have administrative rights to the project and thereby cannot delete remote links to the version.' '404': description: 'Returned if the version does not exist, the currently authenticated user does not have permission to view it, or the version does not have any remote links to delete' /rest/api/2/version/{versionId}/remotelink/{globalId}: parameters: - $ref: '#/components/parameters/authorization-jira' get: summary: 'Get remote version link' description: 'A REST sub-resource representing a remote version link' parameters: - name: versionId in: path required: true description: 'version id' schema: type: string - name: globalId in: path required: true description: 'version id' schema: type: string responses: '200': description: 'Information on the remote version link (or links)' content: application/json: schema: $ref: '#/components/schemas/remote-entity-link' '404': description: 'Returned if the version or remote version link does not exist or if the user does not have the BROWSE permission for the project that owns the specified version' post: summary: 'Create or update remote version link' description: 'Create a remote version link via POST. The links global ID will be taken from the JSON payload if provided; otherwise, it will be generated.' parameters: - name: versionId in: path required: true description: 'version id' schema: type: string - name: globalId in: path required: true description: 'version id' schema: type: string requestBody: content: application/json: schema: type: string responses: '201': description: 'Returned if the version is created successfully. The document will has no content, and a {@code Location:} header contains the self-URI for the newly created link.' '400': description: 'Returned if the JSON payload is empty or malformed' '403': description: 'Returned if the currently authenticated user does not have permission to edit the version.' '404': description: 'Returned if the version does not exist or the currently authenticated user does not have permission to view it.' delete: summary: 'Delete remote version link' description: 'Delete a specific remote version link with the given version ID and global ID.' parameters: - name: versionId in: path required: true description: 'version id' schema: type: string - name: globalId in: path required: true description: 'version id' schema: type: string responses: '204': description: 'Returned if the remote version link is successfully deleted.' '403': description: 'Returned if the currently authenticated user does not have administrative rights to the project and thereby cannot delete remote links to the version.' '404': description: 'Returned if the version does not exist, the currently authenticated user does not have permission to view it, or the version does not have a link for the given global ID' /rest/api/2/version/remotelink: summary: 'Get remote version links' parameters: - $ref: '#/components/parameters/authorization-jira' get: summary: 'Get remote version links' description: 'Returns the remote version links for a given global ID.' parameters: - name: globalId in: query required: true description: 'global id' schema: type: string responses: '200': description: 'Contains a list of remote version links. Any existing links that the user does not have permission to see will be filtered out. The user must have BROWSE permission for the project to see links to its versions.' content: application/json: schema: $ref: '#/components/schemas/list-of-remote-entity-link' /rest/api/2/worklog/deleted: parameters: - $ref: '#/components/parameters/authorization-jira' get: summary: 'Get ids of worklogs deleted since' description: 'Returns worklogs id and delete time of worklogs that was deleted since given time. The returns set of worklogs is limited to 1000 elements. This API will not return worklogs deleted during last minute.' parameters: - name: since in: query required: true description: 'a date time in unix timestamp format since when deleted worklogs will be returned.' schema: type: number default: 0 responses: '200': description: 'Returns a JSON representation of the worklog changes.' content: application/json: schema: $ref: '#/components/schemas/worklog-changed-since' /rest/api/2/worklog/list: summary: 'Get worklogs for ids' parameters: - $ref: '#/components/parameters/authorization-jira' post: summary: 'Get worklogs for ids' description: 'Returns worklogs for given worklog ids. Only worklogs to which the calling user has permissions, will be included in the result. The returns set of worklogs is limited to 1000 elements.' requestBody: content: application/json: schema: $ref: '#/components/schemas/worklog-ids-request' responses: '200': description: 'Returns a JSON representation of the search results.' content: application/json: schema: $ref: '#/components/schemas/list-of-worklog' '400': description: 'Returned if the request contains more than 1000 ids or is null' /rest/api/2/worklog/updated: summary: 'Get ids of worklogs modified since' parameters: - $ref: '#/components/parameters/authorization-jira' get: summary: 'Get ids of worklogs modified since' description: 'Returns worklogs id and update time of worklogs that was updated since given time. The returns set of worklogs is limited to 1000 elements. This API will not return worklogs updated during last minute.' parameters: - name: since in: query required: true description: 'a date time in unix timestamp format since when updated worklogs will be returned.' schema: type: number default: 0 responses: '200': description: 'Returns a JSON representation of the worklog changes.' content: application/json: schema: $ref: '#/components/schemas/worklog-changed-since' components: schemas: list-of-worklog: title: 'List of Worklog' type: array items: $ref: '#/components/schemas/worklog' worklog: title: 'Worklog' type: object properties: self: type: string author: type: object items: $ref: '#/components/schemas/user' updateAuthor: type: object items: $ref: '#/components/schemas/user' comment: type: string created: type: string updated: type: string visibility: type: object items: $ref: '#/components/schemas/visibility' started: type: string timeSpent: type: string timeSpendSeconds: type: string id: type: string issueId: type: string additionalProperties: false worklog-ids-request: title: 'Worklog Ids Request' type: object properties: ids: type: array items: type: integer additionalProperties: false worklog-changed-since: title: 'Worklog Changed Since' type: object properties: values: type: array items: $ref: '#/components/schemas/worklog-change' since: type: integer until: type: integer isLastPage: type: boolean self: type: string nextPage: type: string additionalProperties: false required: - isLastPage worklog-change: title: 'Worklog Change' type: object properties: worklogId: type: integer updatedTime: type: integer additionalProperties: false remote-entity-link: title: 'Remote Entity Link' type: object properties: self: type: string name: type: string link: type: object additionalProperties: false version-unresolved-issue-counts: title: 'Version Unresolved Issue Counts' type: object properties: self: type: string issuesUnresolvedCount: type: integer additionalProperties: false required: - issuesUnresolvedCount version-issue-counts: title: 'Version Issue Counts' type: object properties: self: type: string issuesFixedCount: type: integer issuesAffectedCount: type: integer issueCountWithCustomFieldsShowingVersion: type: integer customFielsUsage: type: array items: $ref: '#/components/schemas/version-usage-in-custom-fields' additionalProperties: false required: - issuesFixedCount - issuesAffectedCount - issueCountWithCustomFieldsShowingVersion version-usage-in-custom-fields: title: 'Version Usage In Custom Fields' type: object properties: fieldName: type: string customFieldId: type: integer issueCountWithVersionInCustomField: type: integer additionalProperties: false required: - customFieldId - issueCountWithVersionInCustomField version-move: title: 'Version Move' type: object properties: after: type: string position: type: string enum: - Earlier - Later - First - Last additionalProperties: false ism-move-position: title: 'Issue Sub Task Move Position' type: object properties: current: type: integer example: 911 original: type: integer example: 42 required: - current - original audit-record: title: 'Audit Record' type: object properties: id: type: integer example: 1 summary: type: string example: 'User created' remoteAddress: type: string example: '192.168.1.1' authorKey: type: string example: 'administrator' created: type: string example: '2014-03-19T18:45:42.967+0000' category: type: string example: 'user management' eventSource: type: string example: 'JIRA Connect Plugin' description: type: string example: 'Optional description' objectItem: type: object items: $ref: '#/components/schemas/associated-item' changedValues: type: array items: $ref: '#/components/schemas/changedValue' associatedItems: type: array items: $ref: '#/components/schemas/associated-item' auto-complete-response: title: 'Auto Complete Response' type: object properties: visibleFieldNames: type: array items: type: string visibleFunctionsNames: type: array items: type: string jqlReservedWords: type: array items: type: string additionalProperties: false auto-complete-result-wrapper: title: 'Auto Complete Result Wrapper' type: object properties: results: type: array items: $ref: '#/components/schemas/auto-complete-result' additionalProperties: false auto-complete-result: title: 'Auto Complete Result' type: object properties: value: type: string example: 'ActiveObjects' displayName: type: string example: 'ActiveObjects (AO)' additionalProperties: false associated-item: title: 'Associated Item' type: object properties: id: type: string example: 'jira-software-users' name: type: string example: 'jira-software-users' typeName: type: string example: 'GROUP' parentId: type: string example: '1' parentName: type: string example: 'JIRA Internal Directory' additionalProperties: false permissions: title: Permissions type: object properties: permissions: type: object properties: .*: type: object items: $ref: '#/components/schemas/permission' permission: type: object properties: id: type: string example: 12 key: type: string example: 'EDIT_ISSUES' name: type: string example: 'Edit_Issues' type: type: string enum: - GLOBAL - PROJECT description: type: string example: 'Ability to edit issues.' additionalProperties: false list-of-remote-entity-link: title: 'List of Remote Entity Link' type: array items: $ref: '#/components/schemas/remote-entity-link' additionalProperties: false list-of-property: title: 'List of Property' type: object items: $ref: '#/components/schemas/property' list-of-priority: title: 'List of Priority' type: array items: $ref: '#/components/schemas/priority' list-of-application-role: title: 'List of Application Role' type: array items: $ref: '#/components/schemas/application-role' list-of-field: title: 'List of Field' type: array items: $ref: '#/components/schemas/field' list-of-filter-permission: title: 'List of Filter Permission' type: array items: $ref: '#/components/schemas/filter-permission' additionalProperties: false list-of-project: title: 'List of Project' type: array items: $ref: '#/components/schemas/project' list-of-component: title: 'List of Component' type: array items: $ref: '#/components/schemas/component' list-of-issue-type-with-status: title: 'List of Issue Type With Status' type: array items: $ref: '#/components/schemas/issue-type-with-status' list-of-version: title: 'List of Version' type: array items: $ref: '#/components/schemas/version' additionalProperties: false list-of-project-category: title: 'List of Project Category' type: array items: $ref: '#/components/schemas/project-category' list-of-resolution: title: 'List of Resolution' type: array items: $ref: '#/components/schemas/resolution' list-of-status: title: 'List of Status' type: array items: $ref: '#/components/schemas/status' additionalProperties: false list-of-status-category: title: 'List of Status Category' type: array items: $ref: '#/components/schemas/status-category' additionalProperties: false resolution: title: 'Resolution' type: object properties: self: type: string description: type: string iconUrl: type: string name: type: string id: type: string additionalProperties: false property: title: properties properties: id: type: string example: 'jira.home' key: type: string example: 'jira.home' value: type: string example: '/var/jira/jira-home' name: type: string example: 'jira.home' desc: type: string example: 'JIRA home directory' type: type: string example: 'string' defaultValue: type: string example: 'CLONE -' example: type: string example: '??' allowedValues: type: array items: type: string additionalProperties: false application-property: title: Application Property type: object properties: id: type: string example: 'jira.home' value: type: string example: '/var/jira/jira-home' additionalProperties: false attachment: title: 'Attachment' type: object properties: self: type: string example: 'http://www.example.com/jira/rest/api/2.0/attachments/10000' filename: type: string author: type: object items: $ref: '#/components/schemas/user' maxItems: 1 minItems: 0 created: type: string size: type: integer mimeType: type: string properties: type: object items: {} additionalProperties: false content: type: string thumbnail: type: string link-issue-request: title: 'Link Issue Request' type: object properties: type: type: object items: $ref: '#/components/schemas/issue-link-type' inwardIssue: type: object items: $ref: '#/components/schemas/issue-ref' outwardIssue: type: object items: $ref: '#/components/schemas/issue-ref' comment: type: object items: $ref: '#/components/schemas/comment' issue-link: title: 'Issue Link' type: object properties: id: type: string self: type: string type: type: object items: $ref: '#/components/schemas/issue-link-type' inwardIssue: type: object items: $ref: '#/components/schemas/issue-ref' outwardIssue: type: object items: $ref: '#/components/schemas/issue-ref' issue-link-type: title: 'Issue Link Type' type: object properties: id: type: string name: type: string inward: type: string outward: type: string additionalProperties: false issue-ref: title: 'Issue Ref' type: object properties: id: type: string key: type: string fields: type: object items: $ref: '#/components/schemas/fields' additionalProperties: false issue-type-create: title: 'Issue Type Create' type: object properties: name: type: string example: 'name' description: type: string example: 'description' type: type: string enum: - subtask - standard additionalProperties: false issue-type-update: title: 'Issue Type Update' type: object properties: name: type: string description: type: string avatarId: type: integer additionalProperties: false comment: title: 'Comment' type: object properties: id: type: string author: type: object items: $ref: '#/components/schemas/user' minItems: 1 maxItems: 1 body: type: string renderedBody: type: string updateAuthor: type: object items: $ref: '#/components/schemas/user' minItems: 1 maxItems: 1 created: type: string updated: type: string visibility: type: object items: $ref: '#/components/schemas/visibility' properties: type: array items: $ref: '#/components/schemas/entity-property' additionalProperties: false visibility: title: 'Visibility' type: object properties: type: type: string enum: - group - role value: type: string additionalProperties: false entity-property: title: 'Entity Property' type: object properties: key: type: string value: type: object nullable: true additionalProperties: false fields: title: 'Fields' type: object properties: summary: type: string status: type: object items: $ref: '#/components/schemas/status' issuetype: type: object items: $ref: '#/components/schemas/issue-type' priority: type: object items: $ref: '#/components/schemas/priority' status: title: 'Status' type: object properties: statusColor: type: string description: type: string iconUrl: type: string name: type: string id: type: string statusCategory: type: object items: $ref: '#/components/schemas/status-category' additionalProperties: false status-category: title: 'Status Category' type: object properties: id: type: integer key: type: string colorName: type: string name: type: string additionalProperties: false issue-type: title: Issue Type type: object properties: id: type: string description: type: string iconUrl: type: string name: type: string subtask: type: boolean avatarId: type: integer additionalProperties: false required: - subtask priority: title: Priority type: object properties: statusColor: type: string description: type: string iconUrl: type: string name: type: string id: type: string additionalProperties: false user: title: 'User' type: object properties: self: type: string key: type: string name: type: string emailAddress: type: string avatarUrls: type: object items: $ref: '#/components/schemas/avatar-url' displayName: type: string active: type: boolean timeZone: type: string locale: type: string groups: type: object items: $ref: '#/components/schemas/simple-list-wrapper' applicationRoles: type: object items: $ref: '#/components/schemas/simple-list-wrapper' expand: type: string required: - active avatar-url: title: 'Avatar Url' type: object properties: .+: type: string simple-list-wrapper: title: 'Simple List Wrapper' type: object properties: size: type: integer max-results: type: integer items: type: array items: $ref: '#/components/schemas/group' additionalProperties: false required: - size group: title: Group type: object properties: name: type: string self: type: string additionalProperties: false application-role: title: 'Application Role' type: object properties: key: type: string example: 'jira-software' groups: type: array items: type: string example: ["jira-software-users","jira-testers"] name: type: string example: 'JIRA Software' defaultGroups: type: array items: type: string example: ["jira-software-users"] selectedByDefault: type: boolean example: true defined: type: boolean example: false numberOfSeats: type: integer example: 10 remainingSeats: type: integer example: 5 userCount: type: integer example: 5 userCountDescription: type: integer example: '5 Developer' hasUnlimitedSeats: type: boolean example: false platform: type: boolean example: false attachment-meta: title: 'Attachment Meta' type: object properties: enabled: type: boolean uploadLimit: type: integer additionalProperties: false required: - enabled changedValue: title: 'Changed Value' type: object properties: fieldName: type: string example: 'email' changedFrom: type: string example: 'user@atlassian.com' changedTo: type: string example: 'newuser@atlassian.com' additionalProperties: false system-avatars: title: 'System Avatars' type: object properties: system: type: array items: $ref: '#/components/schemas/avatar' additionalProperties: false avatar: title: 'Avatar' type: object properties: id: type: string example: '1000' owner: type: string example: 'fred' isSystemAvatar: type: boolean example: true isSelected: type: boolean example: false isDeletable: type: boolean example: false urls: type: object items: $ref: '#/components/schemas/avatar-url' example: '16x16': value: '16x16': 'http://localhost:8090/jira/secure/useravatar?size=xsmall&avatarId=10040' '24x24': value: '24x24': 'http://localhost:8090/jira/secure/useravatar?size=small&avatarId=10040' selected: type: boolean example: false additionalProperties: false required: - isSystemAvatar - isSelected - isDeletable - selected avatar-cropping: title: 'Avatar Cropping' type: object properties: cropperWidth: type: integer example: 120 cropperOffsetX: type: integer example: 50 cropperOffsetY: type: integer example: 50 url: type: string example: 'http://example.com/jira/secure/temporaryavatar?cropped=true' needsCropping: type: boolean example: true additionalProperties: false required: - cropperWidth - cropperOffsetX - cropperOffsetY - needsCropping component: title: 'Component' type: object properties: self: type: string id: type: string example: 1000 name: type: string example: 'Component 1' description: type: string example: 'This is a JIRA component' lead: $ref: '#/components/schemas/user' leadUserName: type: string example: '' assigneeType: $ref: '#/components/schemas/enumAssigneeType' assignee: type: object items: $ref: '#/components/schemas/user' realAssigneeType: $ref: '#/components/schemas/enumAssigneeType' realAssignee: $ref: '#/components/schemas/user' isAssigneeTypeValid: type: boolean example: false project: type: string example: 'HSP' projectId: type: integer example: 10000 additionalProperties: false required: - isAssigneeTypeValid enumAssigneeType: title: 'Enum AssigneeType' type: string enum: - 'PROJECT_DEFAULT' - 'COMPONENT_LEAD' - 'PROJECT_LEAD' - 'UNASSIGNED' component-issue-counts: title: 'Component Issue Counts' type: object properties: self: type: string issueCount: type: integer additionalProperties: false required: - issueCount configuration: title: 'Configuration' type: object properties: votingEnabled: type: boolean example: true watchingEnabled: type: boolean example: true unassignedIssuesAllowed: type: boolean example: false subTasksEnabled: type: boolean example: false issueLinkingEnabled: type: boolean example: false timeTrackingEnabled: type: boolean example: false attachmentsEnabled: type: boolean example: false timeTrackingConfiguration: type: object items: $ref: '#/components/schemas/timeTrackingConfiguration' additionalProperties: false required: - votingEnabled - watchingEnabled - unassignedIssuesAllowed - subTasksEnabled - issueLinkingEnabled - timeTrackingEnabled - attachmentsEnabled custom-field-option: title: 'Custom Field Option' type: object properties: self: type: string example: 'http://localhost:8090/jira/rest/api/2.0/customFieldOption/3' value: type: string example: 'Blue' timeTrackingConfiguration: title: 'Time Tracking Configuration' type: object properties: workingHoursPerDay: type: number example: 8 workingDaysPerWeek: type: number example: 5 timeFormat: type: string enum: - pretty - days - hours example: 'pretty' defaultUnit: type: string enum: - minute - hour - day - week example: day additionalProperties: false required: - workingHoursPerDay - workingDaysPerWeek dashboard: title: 'Dashboard' type: object properties: id: type: string example: 10000 name: type: string example: 'System Dashboard' self: type: string example: 'http://www.example.com/jira/rest/api/2/dashboard/10000' view: type: string example: 'http://www.example.com/jira/secure/Dashboard.jspa?selectPageId=10000' additionalProperties: false dashboards: title: 'Dashboards' type: object properties: startAt: type: integer example: 10 maxResults: type: integer example: 10 total: type: integer example: 143 prev: type: string example: 'http://www.example.com/jira/rest/api/2/dashboard?startAt=0' next: type: string example: 'http://www.example.com/jira/rest/api/2/dashboard?startAt=10' dashboards: type: array items: $ref: '#/components/schemas/dashboard' additionalProperties: false entity-properties-key: title: 'Entity Properties Keys' type: object properties: keys: type: array items: $ref: '#/components/schemas/entity-property-key' additionalProperties: false entity-property-key: title: 'Entity Property Key' type: object properties: self: type: string example: 'http://www.example.com/jira/rest/api/2/issue/EX-2/properties/issue.support' key: type: string example: 'issue.support' additionalProperties: false custom-field-definition: title: 'Custom Field Definition' type: object properties: name: type: string example: 'New custom field' description: type: string example: 'Custom field for picking groups' type: type: string example: 'com.atlassian.jira.plugin.system.customfieldtypes:grouppicker' searchKey: type: string example: 'com.atlassian.jira.plugin.system.customfieldtypes:grouppickersearcher' additionalProperties: false field: title: 'Field' type: object properties: id: type: string example: 'customfield_10101' name: type: string example: 'New custom field' custom: type: boolean example: true orderable: type: boolean example: true navigable: type: boolean example: true searchable: type: boolean example: true clausesNames: type: array items: type: string example: ["cf[10101]", "New custom field"] schema: type: object items: $ref: '#/components/schemas/json-type' additionalProperties: false json-type: title: 'Json Type' type: object properties: type: type: string example: 'project' items: type: string system: type: string custom: type: string example: 'com.atlassian.jira.plugin.system.customfieldtypes:project' customId: type: integer example: 10101 additionalProperties: false filter: title: 'Filter' type: object properties: id: type: string name: type: string example: 'All oben Bugs' description: type: string example: 'Lists all open bugs' owner: $ref: '#/components/schemas/user' jql: type: string example: 'type = Bug and resolution is empty' viewUrl: type: string searchUrl: type: string favourite: type: boolean example: true sharePermission: type: array items: $ref: '#/components/schemas/filter-permission' sharedUsers: type: object items: $ref: '#/components/schemas/user-bean-list-wrapper' subscriptions: type: object items: $ref: '#/components/schemas/filter-subsciption-bean-list-wrapper' version: title: 'Version' type: object properties: id: type: string description: type: string name: type: string archived: type: boolean released: type: boolean overdue: type: boolean userStartDate: type: string userReleaseDate: type: string project: type: string projectId: type: integer moveUnfixedIssuesTo: type: string operations: type: array items: $ref: '#/components/schemas/simple-link' remotelinks: type: array items: $ref: '#/components/schemas/remote-entity-links' additionalProperties: false simple-link: title: Simple Link type: object properties: id: type: string styleClass: type: string iconClass: type: string label: type: string title: type: string href: type: string weight: type: integer additionalProperties: false remote-entity-links: title: Remote Entity Link type: object properties: name: type: string link: { } additionalProperties: false filter-permission: title: 'Filter Permission' type: object properties: id: type: integer type: type: string project: type: object items: $ref: '#/components/schemas/project' role: type: object items: $ref: '#/components/schemas/project-role' group: type: object items: $ref: '#/components/schemas/group' additionalProperties: false project-role: title: 'Project Role' type: object properties: name: type: string id: type: integer description: type: string actors: type: array items: $ref: '#/components/schemas/role-actor' role-actor: title: Role Actor type: object properties: id: type: integer displayName: type: string type: type: string name: type: string avatarUrl: type: string additionalProperties: false project: title: Project type: object properties: id: type: string key: type: string description: type: string lead: type: object items: $ref: '#/components/schemas/user' components: type: array items: $ref: '#/components/schemas/component' issueTypes: type: array items: $ref: '#/components/schemas/issue-type' url: type: string email: type: string assigneeType: type: string enum: - PROJECT_LEAD - UNASSIGNED versions: type: array items: $ref: '#/components/schemas/version' name: type: string roles: type: object properties: .+: type: string avatarUrls: type: object items: $ref: '#/components/schemas/avatar-url' projectKeys: type: array items: type: string projectCategory: type: object items: $ref: '#/components/schemas/project-category' projectTypeKey: type: string additionalProperties: false project-category: title: 'Project Category' type: object properties: id: type: string name: type: string description: type: string additionalProperties: false filter-subscriptions: title: 'Filter Subscription' type: object properties: id: type: integer user: type: object items: $ref: '#/components/schemas/user' group: type: object items: $ref: '#/components/schemas/group' additionalProperties: false filter-subsciption-bean-list-wrapper: title: 'Filter Subscription Bean List Wrapper' type: object properties: size: type: integer max-results: type: integer start-index: type: integer end-index: type: integer items: type: array items: $ref: '#/components/schemas/filter-subscriptions' additionalProperties: false user-bean-list-wrapper: title: 'User Bean List Wrapper' type: object properties: size: type: integer max-results: type: integer start-index: type: integer end-index: type: integer items: type: array items: $ref: '#/components/schemas/user' additionalProperties: false required: - size - max-results - start-index - end-index list-of-column-layout-item: title: 'List of Column Layout Item' type: array items: $ref: '#/components/schemas/column-layout-item' additionalProperties: false required: - position column-layout-item: title: 'Column Layout Item' type: object properties: columnsHeadingKey: type: string id: type: string navigableField: type: object items: $ref: '#/components/schemas/navigable-field' positions: type: integer additionalProperties: false required: - position navigable-field: title: 'Navigable Field' type: object properties: columnCssClass: type: string columnHeadingKey: type: string defaultSortOrder: type: string hiddenFieldId: type: string sortComparatorSource: title: 'Field Comparator Source' type: object sorter: type: object items: $ref: '#/components/schemas/lucene-field-sorter' position: type: integer additionalProperties: false required: - position lucene-field-sorter: title: 'Lucene Field Sorter' type: object properties: comparator: type: object documentConstant: type: string additionalProperties: false share-permission-input: title: 'Share Permission Input' type: object properties: type: type: string projectId: type: string groupname: type: string projectRoleId: type: string additionalProperties: false default-share-scope: title: 'Default Share Scope' type: object properties: scope: type: string enum: - GLOBAL - AUTHENTICATED - PRIVATE additionalProperties: false list-of-filter: title: 'List of Filter' type: array items: $ref: '#/components/schemas/filter' group-suggestions: title: 'Group Suggestions' type: object properties: header: type: string total: type: integer groups: type: array items: $ref: '#/components/schemas/group-suggestion' additionalProperties: false group-suggestion: title: 'Group Suggestion' type: object properties: name: type: string html: type: string labels: type: array items: $ref: '#/components/schemas/group-label' additionalProperties: false group-label: title: 'Group Label' type: object properties: text: type: string title: type: string type: type: string enum: - ADMIN - SINGLE - MULTIPLE additionalProperties: false user-picker-results: title: 'User Picker Results' type: object properties: users: type: object items: $ref: '#/components/schemas/user-picker-user' groups: type: object items: $ref: '#/components/schemas/group-suggestions' additionalProperties: false user-picker-user: title: 'User Picker User' type: object properties: name: type: string key: type: string html: type: string displayName: type: string avatarUrl: type: string additionalProperties: false users-and-groups: title: 'Users And Groups' type: object properties: users: type: array items: $ref: '#/components/schemas/user-picker-results' additionalProperties: false list-of-issue-type: title: 'List of Issue Type' type: array items: $ref: '#/components/schemas/issue-type' object-avatar: title: 'Object' type: object properties: .*: type: array items: $ref: '#/components/schemas/avatar' issue-type-with-status: title: 'Issue Type With Status' type: object properties: self: type: string id: type: string name: type: string subtask: type: boolean statuses: type: array items: $ref: '#/components/schemas/status' required: - subtask page-of-version: title: 'Page of Version' type: object properties: self: type: string example: 'https://www.example.com/jira/rest/api/2/project/PR/version?startAt=0&maxResults=2' nextPage: type: string example: 'https://www.example.com/jira/rest/api/2/project/PR/version?startAt=2&maxResults=2' maxResults: type: integer example: 2 startAt: type: integer example: 0 total: type: integer example: 7 isLast: type: boolean example: false values: type: array items: $ref: '#/components/schemas/version' additionalProperties: false required: - maxResults - startAt security-list-level: title: 'Security List Level' type: object properties: levels: type: array items: $ref: '#/components/schemas/security-level' security-level: title: 'Security Level' type: object properties: self: type: string id: type: string description: type: string name: type: string additionalProperties: false error-collection: title: 'Error Collection' type: object properties: errorMessages: type: array items: type: string errors: type: object items: $ref: '#/components/schemas/error' status: type: integer additionalProperties: false error: title: 'Error' type: object properties: .*: type: string additionalProperties: false search-request: title: 'Search Request' type: object properties: jql: type: string startAt: type: integer maxResults: type: integer fields: type: array items: type: string validateQuery: type: boolean additionalProperties: false search-results: title: 'Search Results' type: object properties: expand: type: string startAt: type: integer maxResults: type: integer total: type: integer issues: type: array items: $ref: '#/components/schemas/issue' warningMessages: type: array items: type: string names: type: object items: $ref: '#/components/schemas/object' schema: type: object items: $ref: '#/components/schemas/json-type' issue: title: 'Issue' type: object properties: expand: type: string id: type: string self: type: string key: type: string fields: type: object items: $ref: '#/components/schemas/object' renderedFields: type: object items: $ref: '#/components/schemas/object' properties: type: object items: $ref: '#/components/schemas/object-string' names: type: object items: $ref: '#/components/schemas/object-string' schema: type: object items: $ref: '#/components/schemas/json-type' transitions: type: array items: $ref: '#/components/schemas/transition' operations: type: object items: $ref: '#/components/schemas/opsbar' editmeta: type: object items: $ref: '#/components/schemas/edit-meta' changelog: type: object items: $ref: '#/components/schemas/changelog' versionedRepresentations: type: object items: properties: .*: type: object items: $ref: '#/components/schemas/object' additionalProperties: false fieldsToInclude: type: object items: $ref: '#/components/schemas/object' additionalProperties: false changelog: title: 'Changelog' type: object properties: startAt: type: integer maxResults: type: integer total: type: integer histories: type: array items: $ref: '#/components/schemas/change-history' additionalProperties: false change-history: title: 'Change History' type: object properties: id: type: string author: type: object items: $ref: '#/components/schemas/user' created: type: string items: type: array items: $ref: '#/components/schemas/change-item' historyMetadata: type: object items: $ref: '#/components/schemas/history-metadata' history-metadata: title: 'History Metadata' type: object properties: type: type: string description: type: string descriptionKey: type: string activityDescription: type: string activityDescriptionKey: type: string emailDescription: type: string emailDescriptionKey: type: string actor: type: object items: $ref: '#/components/schemas/history-metadata-participant' generator: type: object items: $ref: '#/components/schemas/history-metadata-participant' cause: type: object items: $ref: '#/components/schemas/history-metadata-participant' extraData: type: object items: $ref: '#/components/schemas/object-string' additionalProperties: false server-info: title: 'Server Info' type: object properties: baseUrl: type: string version: type: string versionNumbers: type: array items: type: integer deploymentType: type: string buildNumber: type: integer buildDate: type: string serverTime: type: string scmInfo: type: string buildPartnerName: type: string serverTitle: type: string healthChecks: type: array items: $ref: '#/components/schemas/health-check-result' additionalProperties: false health-check-result: title: 'Health Check Result' type: object properties: name: type: string description: type: string passed: type: boolean additionalProperties: false change-item: title: 'Change Item' type: object properties: field: type: string fieldtype: type: string from: type: string fromString: type: string to: type: string toString: type: string additionalProperties: false edit-meta: title: 'Edit Meta' type: object properties: fields: type: object items: properties: .*: $ref: '#/components/schemas/field-meta' additionalProperties: false opsbar: title: 'Opsbar' type: object properties: linkGroups: type: array items: $ref: '#/components/schemas/link-group' additionalProperties: false transition: title: 'Transition' type: object properties: id: type: string name: type: string to: type: object items: $ref: '#/components/schemas/status' fields: type: object items: $ref: '#/components/schemas/field-meta' expand: type: string additionalProperties: false field-meta: title: 'Field Meta' type: object properties: required: type: boolean schema: type: object items: $ref: '#/components/schemas/json-type' name: type: string autoCompleteUrl: type: string hasDefaultValue: type: boolean operations: type: array items: type: string allowedValues: type: array items: $ref: '#/components/schemas/object' additionalProperties: false required: - required link-group: title: 'Link Group' type: object properties: id: type: string styleClass: type: string header: type: object items: $ref: '#/components/schemas/simple-link' weight: type: integer links: type: array items: $ref: '#/components/schemas/simple-link' groups: type: array items: $ref: '#/components/schemas/link-group' additionalProperties: false history-metadata-participant: title: 'History Metadata Participant' type: object properties: id: type: string displayName: type: string displayNameKey: type: string type: type: string avatarUrl: type: string url: type: string additionalProperties: false object: title: 'Object' type: object properties: .*: type: object additionalProperties: false object-string: title: 'Object' type: object properties: .*: type: string additionalProperties: false parameters: authorization-jira: name: Authorization-JIRA in: header required: true description: 'The header to authenticate agains the JIRA (JIRA token)' schema: type: string default: '{{authorization-jira}}' componentId: in: query name: id schema: type: integer description: 'Jira Component ID' requestBodies: ism-move-position: description: 'Issue Sub Task Move Position' content: application/json: schema: $ref: '#/components/schemas/ism-move-position' required: true securitySchemes: YOUR_SCHEMA_HERE: type: oauth2 flows: clientCredentials: tokenUrl: https://yoururl.com/as/token.oauth2 scopes: email: email openid: openid profile: profile