{"note":"OpenAPI conversion -- returning structured metadata","name":"jira","description":"The Jira Cloud platform REST API","version":"1001.0.0-SNAPSHOT-b3b58c01f8925e44dc69b63d90c3ee1d53bec5a6","base_url":"https://your-domain.atlassian.net","endpoints":621,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api The Jira Cloud platform REST API\n@base https://your-domain.atlassian.net\n@version 1001.0.0-SNAPSHOT-b3b58c01f8925e44dc69b63d90c3ee1d53bec5a6\n@auth OAuth2 | Bearer basic\n@endpoints 621\n@hint download_for_search\n@toc rest(621)\n\n@endpoint GET /rest/api/3/announcementBanner\n@desc Get announcement banner configuration\n@returns(200) {hashId: str, isDismissible: bool, isEnabled: bool, message: str, visibility: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint PUT /rest/api/3/announcementBanner\n@desc Update announcement banner configuration\n@optional {isDismissible: bool # Flag indicating if the announcement banner can be dismissed by the user., isEnabled: bool # Flag indicating if the announcement banner is enabled or not., message: str # The text on the announcement banner., visibility: str # Visibility of the announcement banner. Can be public or private.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if an invalid parameter is passed., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"isDismissible\":false,\"isEnabled\":true,\"message\":\"This is a public, enabled, non-dismissible banner, set using the API\",\"visibility\":\"public\"}\n\n@endpoint POST /rest/api/3/app/field/context/configuration/list\n@desc Bulk get custom field configurations\n@required {fieldIdsOrKeys: [str] # List of IDs or keys of the custom fields. It can be a mix of IDs and keys in the same query.}\n@optional {id: [int(int64)] # The list of configuration IDs. To include multiple configurations, separate IDs with an ampersand: `id=10000&id=10001`. Can't be provided with `fieldContextId`, `issueId`, `projectKeyOrId`, or `issueTypeId`., fieldContextId: [int(int64)] # The list of field context IDs. To include multiple field contexts, separate IDs with an ampersand: `fieldContextId=10000&fieldContextId=10001`. Can't be provided with `id`, `issueId`, `projectKeyOrId`, or `issueTypeId`., issueId: int(int64) # The ID of the issue to filter results by. If the issue doesn't exist, an empty list is returned. Can't be provided with `projectKeyOrId`, or `issueTypeId`., projectKeyOrId: str # The ID or key of the project to filter results by. Must be provided with `issueTypeId`. Can't be provided with `issueId`., issueTypeId: str # The ID of the issue type to filter results by. Must be provided with `projectKeyOrId`. Can't be provided with `issueId`., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=100 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user is not a Jira admin or the request is not authenticated as from the app that provided the field., 404: Returned if the custom field is not found.}\n@example_request {\"fieldIdsOrKeys\":[\"customfield_10035\",\"customfield_10036\"]}\n\n@endpoint POST /rest/api/3/app/field/value\n@desc Update custom fields\n@optional {generateChangelog: bool=true # Whether to generate a changelog for this update., updates: [map{customField!: str, issueIds!: [int(int64)], value!: any}]}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the request is not authenticated as the app that provided all the fields., 404: Returned if any field is not found.}\n@example_request {\"updates\":[{\"customField\":\"customfield_10010\",\"issueIds\":[10010,10011],\"value\":\"new value\"},{\"customField\":\"customfield_10011\",\"issueIds\":[10010],\"value\":1000}]}\n\n@endpoint GET /rest/api/3/app/field/{fieldIdOrKey}/context/configuration\n@desc Get custom field configurations\n@required {fieldIdOrKey: str # The ID or key of the custom field, for example `customfield_10000`.}\n@optional {id: [int(int64)] # The list of configuration IDs. To include multiple configurations, separate IDs with an ampersand: `id=10000&id=10001`. Can't be provided with `fieldContextId`, `issueId`, `projectKeyOrId`, or `issueTypeId`., fieldContextId: [int(int64)] # The list of field context IDs. To include multiple field contexts, separate IDs with an ampersand: `fieldContextId=10000&fieldContextId=10001`. Can't be provided with `id`, `issueId`, `projectKeyOrId`, or `issueTypeId`., issueId: int(int64) # The ID of the issue to filter results by. If the issue doesn't exist, an empty list is returned. Can't be provided with `projectKeyOrId`, or `issueTypeId`., projectKeyOrId: str # The ID or key of the project to filter results by. Must be provided with `issueTypeId`. Can't be provided with `issueId`., issueTypeId: str # The ID of the issue type to filter results by. Must be provided with `projectKeyOrId`. Can't be provided with `issueId`., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=100 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user is not a Jira admin or the request is not authenticated as from the app that provided the field., 404: Returned if the custom field is not found.}\n\n@endpoint PUT /rest/api/3/app/field/{fieldIdOrKey}/context/configuration\n@desc Update custom field configurations\n@required {fieldIdOrKey: str # The ID or key of the custom field, for example `customfield_10000`., configurations: [map{configuration: any, fieldContextId!: str, id!: str, schema: any}] # The list of custom field configuration details.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user is not a Jira admin or the request is not authenticated as from the app that provided the field., 404: Returned if the custom field is not found.}\n@example_request {\"configurations\":[{\"id\":\"10000\"},{\"configuration\":{\"maxValue\":10000,\"minValue\":0},\"id\":\"10001\",\"schema\":{\"properties\":{\"amount\":{\"type\":\"number\"},\"currency\":{\"type\":\"string\"}},\"required\":[\"amount\",\"currency\"]}}]}\n\n@endpoint PUT /rest/api/3/app/field/{fieldIdOrKey}/value\n@desc Update custom field value\n@required {fieldIdOrKey: str # The ID or key of the custom field. For example, `customfield_10010`.}\n@optional {generateChangelog: bool=true # Whether to generate a changelog for this update., updates: [map{issueIds!: [int(int64)], value!: any}] # The list of custom field update details.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the request is not authenticated as the app that provided the field., 404: Returned if the field is not found.}\n@example_request {\"updates\":[{\"issueIds\":[10010],\"value\":\"new value\"}]}\n\n@endpoint GET /rest/api/3/application-properties\n@desc Get application property\n@optional {key: str # The key of the application property., permissionLevel: str # The permission level of all items being returned in the list., keyFilter: str # When a `key` isn't provided, this filters the list of results by the application property `key` using a regular expression. For example, using `jira.lf.*` will return all application properties with keys that start with *jira.lf.*.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the application property is not found or the user does not have permission to view it.}\n\n@endpoint GET /rest/api/3/application-properties/advanced-settings\n@desc Get advanced settings\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user is not an administrator.}\n\n@endpoint PUT /rest/api/3/application-properties/{id}\n@desc Set application property\n@required {id: str # The key of the application property to update.}\n@optional {id: str # The ID of the application property., value: str # The new value.}\n@returns(200) {allowedValues: [str], defaultValue: str, desc: str, example: str, id: str, key: str, name: str, type: str, value: str} # Returned if the request is successful.\n@errors {400: Returned if the data type of the `value` does not match the application property's data type. For example, a string is provided instead of an integer., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to edit the property., 404: Returned if the property is not found or the user does not have permission to view it.}\n@example_request {\"id\":\"jira.home\",\"value\":\"/var/jira/jira-home\"}\n\n@endpoint GET /rest/api/3/applicationrole\n@desc Get all application roles\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user is not an administrator.}\n\n@endpoint GET /rest/api/3/applicationrole/{key}\n@desc Get application role\n@required {key: str # The key of the application role. Use the [Get all application roles](#api-rest-api-3-applicationrole-get) operation to get the key for each application role.}\n@returns(200) {defaultGroups: [str], defaultGroupsDetails: [map], defined: bool, groupDetails: [map], groups: [str], hasUnlimitedSeats: bool, key: str, name: str, numberOfSeats: int(int32), platform: bool, remainingSeats: int(int32), selectedByDefault: bool, userCount: int(int32), userCountDescription: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user is not an administrator., 404: Returned if the role is not found.}\n\n@endpoint GET /rest/api/3/attachment/content/{id}\n@desc Get attachment content\n@required {id: str # The ID of the attachment.}\n@optional {redirect: bool=true # Whether a redirect is provided for the attachment download. Clients that do not automatically follow redirects can set this to `false` to avoid making multiple requests to download the attachment.}\n@returns(200) Returned if the request is successful when `redirect` is set to `false`.\n@returns(206) Returned if the request is successful when a `Range` header is provided and `redirect` is set to `false`.\n@errors {303: Returned if the request is successful. See the `Location` header for the download URL., 400: Returned if the range supplied in the `Range` header is malformed., 401: Returned if the authentication credentials are incorrect., 403: The user does not have the necessary permission., 404: Returned if:   *  the attachment is not found.  *  attachments are disabled in the Jira settings., 416: Returned if the server is unable to satisfy the range of bytes provided.}\n\n@endpoint GET /rest/api/3/attachment/meta\n@desc Get Jira attachment settings\n@returns(200) {enabled: bool, uploadLimit: int(int64)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/attachment/thumbnail/{id}\n@desc Get attachment thumbnail\n@required {id: str # The ID of the attachment.}\n@optional {redirect: bool=true # Whether a redirect is provided for the attachment download. Clients that do not automatically follow redirects can set this to `false` to avoid making multiple requests to download the attachment., fallbackToDefault: bool=true # Whether a default thumbnail is returned when the requested thumbnail is not found., width: int(int32) # The maximum width to scale the thumbnail to., height: int(int32) # The maximum height to scale the thumbnail to.}\n@returns(200) Returned if the request is successful when `redirect` is set to `false`.\n@errors {303: Returned if the request is successful. See the `Location` header for the download URL., 400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect., 403: The user does not have the necessary permission., 404: Returned if:   *  the attachment is not found.  *  attachments are disabled in the Jira settings.  *  `fallbackToDefault` is `false` and the request thumbnail cannot be downloaded.}\n\n@endpoint DELETE /rest/api/3/attachment/{id}\n@desc Delete attachment\n@required {id: str # The ID of the attachment.}\n@returns(204) Returned if the request is successful.\n@errors {403: Returned if the user does not have the necessary permission., 404: Returned if:   *  the attachment is not found.  *  attachments are disabled in the Jira settings.}\n\n@endpoint GET /rest/api/3/attachment/{id}\n@desc Get attachment metadata\n@required {id: str # The ID of the attachment.}\n@returns(200) {author: any, content: str, created: str(date-time), filename: str, id: int(int64), mimeType: str, properties: map, self: str(uri), size: int(int64), thumbnail: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if:   *  the attachment is not found.  *  attachments are disabled in the Jira settings.}\n\n@endpoint GET /rest/api/3/attachment/{id}/expand/human\n@desc Get all metadata for an expanded attachment\n@required {id: str # The ID of the attachment.}\n@returns(200) {entries: [map], id: int(int64), mediaType: str, name: str, totalEntryCount: int(int64)} # Returned if the request is successful. If an empty list is returned in the response, the attachment is empty, corrupt, or not an archive.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: The user does not have the necessary permission., 404: Returned if:   *  the attachment is not found.  *  attachments are disabled in the Jira settings., 409: Returned if the attachment is an archive, but not a supported archive format.}\n\n@endpoint GET /rest/api/3/attachment/{id}/expand/raw\n@desc Get contents metadata for an expanded attachment\n@required {id: str # The ID of the attachment.}\n@returns(200) {entries: [map], totalEntryCount: int(int32)} # Returned if the request is successful. If an empty list is returned in the response, the attachment is empty, corrupt, or not an archive.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: The user does not have the necessary permission., 404: Returned if:   *  the attachment is not found.  *  attachments are disabled in the Jira settings., 409: Returned if the attachment is an archive, but not a supported archive format.}\n\n@endpoint GET /rest/api/3/auditing/record\n@desc Get audit records\n@optional {offset: int(int32)=0 # The number of records to skip before returning the first result., limit: int(int32)=1000 # The maximum number of results to return., filter: str # The strings to match with audit field content, space separated., from: str # The date and time on or after which returned audit records must have been created. If `to` is provided `from` must be before `to` or no audit records are returned., to: str # The date and time on or before which returned audit results must have been created. If `from` is provided `to` must be after `from` or no audit records are returned.}\n@returns(200) {limit: int(int32), offset: int(int32), records: [map], total: int(int64)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if:   *  the user does not have the required permissions.  *  all Jira products are on free plans. Audit logs are available when at least one Jira product is on a paid plan.}\n\n@endpoint GET /rest/api/3/avatar/{type}/system\n@desc Get system avatars by type\n@required {type: str(issuetype/project/user/priority) # The avatar type.}\n@returns(200) {system: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 500: Returned if an error occurs while retrieving the list of avatars.}\n\n@endpoint POST /rest/api/3/bulk/issues/delete\n@desc Bulk delete issues\n@required {selectedIssueIdsOrKeys: [str] # List of issue IDs or keys which are to be bulk deleted. These IDs or keys can be from different projects and issue types.}\n@optional {sendBulkNotification: bool=true # A boolean value that indicates whether to send a bulk change notification when the issues are being deleted.  If `true`, dispatches a bulk notification email to users about the updates.}\n@returns(201) {taskId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"selectedIssueIdsOrKeys\":[\"10001\",\"10002\"],\"sendBulkNotification\":false}\n\n@endpoint GET /rest/api/3/bulk/issues/fields\n@desc Get bulk editable fields\n@required {issueIdsOrKeys: str # The IDs or keys of the issues to get editable fields from.}\n@optional {searchText: str # (Optional)The text to search for in the editable fields., endingBefore: str # (Optional)The end cursor for use in pagination., startingAfter: str # (Optional)The start cursor for use in pagination.}\n@returns(200) {endingBefore: str, fields: [map], startingAfter: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if no editable fields are found for the provided issue IDs.}\n\n@endpoint POST /rest/api/3/bulk/issues/fields\n@desc Bulk edit issues\n@required {editedFieldsInput: any # An object that defines the values to be updated in specified fields of an issue. The structure and content of this parameter vary depending on the type of field being edited. Although the order is not significant, ensure that field IDs align with those in selectedActions., selectedActions: [str] # List of all the field IDs that are to be bulk edited. Each field ID in this list corresponds to a specific attribute of an issue that is set to be modified in the bulk edit operation. The relevant field ID can be obtained by calling the Bulk Edit Get Fields REST API (documentation available on this page itself)., selectedIssueIdsOrKeys: [str] # List of issue IDs or keys which are to be bulk edited. These IDs or keys can be from different projects and issue types.}\n@optional {sendBulkNotification: bool=true # A boolean value that indicates whether to send a bulk change notification when the issues are being edited.  If `true`, dispatches a bulk notification email to users about the updates.}\n@returns(201) {taskId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/bulk/issues/move\n@desc Bulk move issues\n@optional {sendBulkNotification: bool=true # A boolean value that indicates whether to send a bulk change notification when the issues are being moved.  If `true`, dispatches a bulk notification email to users about the updates., targetToSourcesMapping: map # An object representing the mapping of issues and data related to destination entities, like fields and statuses, that are required during a bulk move.  The key is a string that is created by concatenating the following three entities in order, separated by commas. The format is `,,`. It should be unique across mappings provided in the payload. If you provide multiple mappings for the same key, only one will be processed. However, the operation won't fail, so the error may be hard to track down.   *  ***Destination project*** (Required): ID or key of the project to which the issues are being moved.  *  ***Destination issueType*** (Required): ID of the issueType to which the issues are being moved.  *  ***Destination parent ID or key*** (Optional): ID or key of the issue which will become the parent of the issues being moved. Only required when the destination issueType is a subtask.}\n@returns(201) {taskId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"sendBulkNotification\":true,\"targetToSourcesMapping\":{\"PROJECT-KEY,10001\":{\"inferClassificationDefaults\":false,\"inferFieldDefaults\":false,\"inferStatusDefaults\":false,\"inferSubtaskTypeDefault\":true,\"issueIdsOrKeys\":[\"ISSUE-1\"],\"targetClassification\":[{\"classifications\":{\"5bfa70f7-4af1-44f5-9e12-1ce185f15a38\":[\"bd58e74c-c31b-41a7-ba69-9673ebd9dae9\",\"-1\"]}}],\"targetMandatoryFields\":[{\"fields\":{\"customfield_10000\":{\"retain\":false,\"type\":\"raw\",\"value\":[\"value-1\",\"value-2\"]},\"description\":{\"retain\":true,\"type\":\"adf\",\"value\":{\"content\":[{\"content\":[{\"text\":\"New description value\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1}},\"fixVersions\":{\"retain\":false,\"type\":\"raw\",\"value\":[\"10009\"]},\"labels\":{\"retain\":false,\"type\":\"raw\",\"value\":[\"label-1\",\"label-2\"]}}}],\"targetStatus\":[{\"statuses\":{\"10001\":[\"10002\",\"10003\"]}}]}}}\n\n@endpoint GET /rest/api/3/bulk/issues/transition\n@desc Get available transitions\n@required {issueIdsOrKeys: str # Comma (,) separated Ids or keys of the issues to get transitions available for them.}\n@optional {endingBefore: str # (Optional)The end cursor for use in pagination., startingAfter: str # (Optional)The start cursor for use in pagination.}\n@returns(200) {availableTransitions: [map], endingBefore: str, startingAfter: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid. For example, if a provided issue ID or key is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint POST /rest/api/3/bulk/issues/transition\n@desc Bulk transition issue statuses\n@required {bulkTransitionInputs: [map{selectedIssueIdsOrKeys!: [str], transitionId!: str}] # List of objects and each object has two properties:   *  Issues that will be bulk transitioned.  *  TransitionId that corresponds to a specific transition of issues that share the same workflow.}\n@optional {sendBulkNotification: bool=true # A boolean value that indicates whether to send a bulk change notification when the issues are being transitioned.  If `true`, dispatches a bulk notification email to users about the updates.}\n@returns(201) {taskId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"bulkTransitionInputs\":[{\"selectedIssueIdsOrKeys\":[\"10001\",\"10002\"],\"transitionId\":\"11\"},{\"selectedIssueIdsOrKeys\":[\"TEST-1\"],\"transitionId\":\"2\"}],\"sendBulkNotification\":false}\n\n@endpoint POST /rest/api/3/bulk/issues/unwatch\n@desc Bulk unwatch issues\n@required {selectedIssueIdsOrKeys: [str] # List of issue IDs or keys which are to be bulk watched or unwatched. These IDs or keys can be from different projects and issue types.}\n@returns(201) {taskId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"selectedIssueIdsOrKeys\":[\"10001\",\"10002\"]}\n\n@endpoint POST /rest/api/3/bulk/issues/watch\n@desc Bulk watch issues\n@required {selectedIssueIdsOrKeys: [str] # List of issue IDs or keys which are to be bulk watched or unwatched. These IDs or keys can be from different projects and issue types.}\n@returns(201) {taskId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"selectedIssueIdsOrKeys\":[\"10001\",\"10002\"]}\n\n@endpoint GET /rest/api/3/bulk/queue/{taskId}\n@desc Get bulk issue operation progress\n@required {taskId: str # The ID of the task.}\n@returns(200) {created: str(date-time), failedAccessibleIssues: map, invalidOrInaccessibleIssueCount: int(int32), processedAccessibleIssues: [int(int64)], progressPercent: int(int64), started: str(date-time), status: str, submittedBy: map{accountId: str, accountType: str, active: bool, appType: str, applicationRoles: any, avatarUrls: any, displayName: str, emailAddress: str, expand: str, groups: any, guest: bool, key: str, locale: str, name: str, self: str(uri), timeZone: str}, taskId: str, totalIssueCount: int(int32), updated: str(date-time)} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/changelog/bulkfetch\n@desc Bulk fetch changelogs\n@required {issueIdsOrKeys: [str] # List of issue IDs/keys to fetch changelogs for}\n@optional {fieldIds: [str] # List of field IDs to filter changelogs, maxResults: int(int32)=1000 # The maximum number of items to return per page, nextPageToken: str # The cursor for pagination}\n@returns(200) {issueChangeLogs: [map], nextPageToken: str} # Returned if the request is successful.\n@errors {400: Returned if there are input validation problems such as no issue IDs/keys were present, or more than 1000 issue IDs/keys were requested.}\n\n@endpoint GET /rest/api/3/classification-levels\n@desc Get all classification levels\n@optional {status: [str] # Optional set of statuses to filter by., orderBy: str(rank/-rank/+rank) # Ordering of the results by a given field. If not provided, values will not be sorted.}\n@returns(200) {classifications: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/comment/list\n@desc Get comments by IDs\n@required {ids: [int(int64)] # The list of comment IDs. A maximum of 1000 IDs can be specified.}\n@optional {expand: str # Use [expand](#expansion) to include additional information about comments in the response. This parameter accepts a comma-separated list. Expand options include:   *  `renderedBody` Returns the comment body rendered in HTML.  *  `properties` Returns the comment's properties.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request contains more than 1000 IDs or is empty.}\n@example_request {\"ids\":[1,2,5,10]}\n\n@endpoint GET /rest/api/3/comment/{commentId}/properties\n@desc Get comment property keys\n@required {commentId: str # The ID of the comment.}\n@returns(200) {keys: [map]} # Returned if the request is successful.\n@errors {400: Returned if the comment ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the comment is not found.}\n\n@endpoint DELETE /rest/api/3/comment/{commentId}/properties/{propertyKey}\n@desc Delete comment property\n@required {commentId: str # The ID of the comment., propertyKey: str # The key of the property.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the comment or the property is not found.}\n\n@endpoint GET /rest/api/3/comment/{commentId}/properties/{propertyKey}\n@desc Get comment property\n@required {commentId: str # The ID of the comment., propertyKey: str # The key of the property.}\n@returns(200) {key: str, value: any} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the comment or the property is not found.}\n\n@endpoint PUT /rest/api/3/comment/{commentId}/properties/{propertyKey}\n@desc Set comment property\n@required {commentId: str # The ID of the comment., propertyKey: str # The key of the property. The maximum length is 255 characters.}\n@returns(200) Returned if the comment property is updated.\n@returns(201) Returned if the comment property is created.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the comment is not found.}\n\n@endpoint GET /rest/api/3/component\n@desc Find components for projects\n@optional {projectIdsOrKeys: [str] # The project IDs and/or project keys (case sensitive)., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., orderBy: str(description/-description/+description/name/-name/+name) # [Order](#ordering) the results by a field:   *  `description` Sorts by the component description.  *  `name` Sorts by component name., query: str # Filter the results using a literal string. Components with a matching `name` or `description` are returned (case insensitive).}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or the user does not have permission to view it.}\n\n@endpoint POST /rest/api/3/component\n@desc Create component\n@optional {ari: str # Compass component's ID. Can't be updated. Not required for creating a Project Component., assignee: any # The details of the user associated with `assigneeType`, if any. See `realAssignee` for details of the user assigned to issues created with this component., assigneeType: str(PROJECT_DEFAULT/COMPONENT_LEAD/PROJECT_LEAD/UNASSIGNED) # The nominal user type used to determine the assignee for issues created with this component. See `realAssigneeType` for details on how the type of the user, and hence the user, assigned to issues is determined. Can take the following values:   *  `PROJECT_LEAD` the assignee to any issues created with this component is nominally the lead for the project the component is in.  *  `COMPONENT_LEAD` the assignee to any issues created with this component is nominally the lead for the component.  *  `UNASSIGNED` an assignee is not set for issues created with this component.  *  `PROJECT_DEFAULT` the assignee to any issues created with this component is nominally the default assignee for the project that the component is in.  Default value: `PROJECT_DEFAULT`.   Optional when creating or updating a component., description: str # The description for the component. Optional when creating or updating a component., id: str # The unique identifier for the component., isAssigneeTypeValid: bool # Whether a user is associated with `assigneeType`. For example, if the `assigneeType` is set to `COMPONENT_LEAD` but the component lead is not set, then `false` is returned., lead: any # The user details for the component's lead user., leadAccountId: str # The accountId of the component's lead user. The accountId uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*., leadUserName: str # This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., metadata: map # Compass component's metadata. Can't be updated. Not required for creating a Project Component., name: str # The unique name for the component in the project. Required when creating a component. Optional when updating a component. The maximum length is 255 characters., project: str # The key of the project the component is assigned to. Required when creating a component. Can't be updated., projectId: int(int64) # The ID of the project the component is assigned to., realAssignee: any # The user assigned to issues created with this component, when `assigneeType` does not identify a valid assignee., realAssigneeType: str(PROJECT_DEFAULT/COMPONENT_LEAD/PROJECT_LEAD/UNASSIGNED) # The type of the assignee that is assigned to issues created with this component, when an assignee cannot be set from the `assigneeType`. For example, `assigneeType` is set to `COMPONENT_LEAD` but no component lead is set. This property is set to one of the following values:   *  `PROJECT_LEAD` when `assigneeType` is `PROJECT_LEAD` and the project lead has permission to be assigned issues in the project that the component is in.  *  `COMPONENT_LEAD` when `assignee`Type is `COMPONENT_LEAD` and the component lead has permission to be assigned issues in the project that the component is in.  *  `UNASSIGNED` when `assigneeType` is `UNASSIGNED` and Jira is configured to allow unassigned issues.  *  `PROJECT_DEFAULT` when none of the preceding cases are true., self: str(uri) # The URL of the component.}\n@returns(201) {ari: str, assignee: any, assigneeType: str, description: str, id: str, isAssigneeTypeValid: bool, lead: any, leadAccountId: str, leadUserName: str, metadata: map, name: str, project: str, projectId: int(int64), realAssignee: any, realAssigneeType: str, self: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if:   *  the user is not found.  *  `name` is not provided.  *  `name` is over 255 characters in length.  *  `projectId` is not provided.  *  `assigneeType` is an invalid value., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to manage the project containing the component or does not have permission to administer Jira., 404: Returned if the project is not found or the user does not have permission to browse the project containing the component.}\n@example_request {\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a Jira component\",\"isAssigneeTypeValid\":false,\"leadAccountId\":\"5b10a2844c20165700ede21g\",\"name\":\"Component 1\",\"project\":\"HSP\"}\n\n@endpoint DELETE /rest/api/3/component/{id}\n@desc Delete component\n@required {id: str # The ID of the component.}\n@optional {moveIssuesTo: str # The ID of the component to replace the deleted component. If this value is null no replacement is made.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to manage the project containing the component or does not have permission to administer Jira., 404: Returned if:   *  the component is not found.  *  the replacement component is not found.  *  the user does not have permission to browse the project containing the component.}\n\n@endpoint GET /rest/api/3/component/{id}\n@desc Get component\n@required {id: str # The ID of the component.}\n@returns(200) {ari: str, assignee: any, assigneeType: str, description: str, id: str, isAssigneeTypeValid: bool, lead: any, leadAccountId: str, leadUserName: str, metadata: map, name: str, project: str, projectId: int(int64), realAssignee: any, realAssigneeType: str, self: str(uri)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the component is not found or the user does not have permission to browse the project containing the component.}\n\n@endpoint PUT /rest/api/3/component/{id}\n@desc Update component\n@required {id: str # The ID of the component.}\n@optional {ari: str # Compass component's ID. Can't be updated. Not required for creating a Project Component., assignee: any # The details of the user associated with `assigneeType`, if any. See `realAssignee` for details of the user assigned to issues created with this component., assigneeType: str(PROJECT_DEFAULT/COMPONENT_LEAD/PROJECT_LEAD/UNASSIGNED) # The nominal user type used to determine the assignee for issues created with this component. See `realAssigneeType` for details on how the type of the user, and hence the user, assigned to issues is determined. Can take the following values:   *  `PROJECT_LEAD` the assignee to any issues created with this component is nominally the lead for the project the component is in.  *  `COMPONENT_LEAD` the assignee to any issues created with this component is nominally the lead for the component.  *  `UNASSIGNED` an assignee is not set for issues created with this component.  *  `PROJECT_DEFAULT` the assignee to any issues created with this component is nominally the default assignee for the project that the component is in.  Default value: `PROJECT_DEFAULT`.   Optional when creating or updating a component., description: str # The description for the component. Optional when creating or updating a component., id: str # The unique identifier for the component., isAssigneeTypeValid: bool # Whether a user is associated with `assigneeType`. For example, if the `assigneeType` is set to `COMPONENT_LEAD` but the component lead is not set, then `false` is returned., lead: any # The user details for the component's lead user., leadAccountId: str # The accountId of the component's lead user. The accountId uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*., leadUserName: str # This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., metadata: map # Compass component's metadata. Can't be updated. Not required for creating a Project Component., name: str # The unique name for the component in the project. Required when creating a component. Optional when updating a component. The maximum length is 255 characters., project: str # The key of the project the component is assigned to. Required when creating a component. Can't be updated., projectId: int(int64) # The ID of the project the component is assigned to., realAssignee: any # The user assigned to issues created with this component, when `assigneeType` does not identify a valid assignee., realAssigneeType: str(PROJECT_DEFAULT/COMPONENT_LEAD/PROJECT_LEAD/UNASSIGNED) # The type of the assignee that is assigned to issues created with this component, when an assignee cannot be set from the `assigneeType`. For example, `assigneeType` is set to `COMPONENT_LEAD` but no component lead is set. This property is set to one of the following values:   *  `PROJECT_LEAD` when `assigneeType` is `PROJECT_LEAD` and the project lead has permission to be assigned issues in the project that the component is in.  *  `COMPONENT_LEAD` when `assignee`Type is `COMPONENT_LEAD` and the component lead has permission to be assigned issues in the project that the component is in.  *  `UNASSIGNED` when `assigneeType` is `UNASSIGNED` and Jira is configured to allow unassigned issues.  *  `PROJECT_DEFAULT` when none of the preceding cases are true., self: str(uri) # The URL of the component.}\n@returns(200) {ari: str, assignee: any, assigneeType: str, description: str, id: str, isAssigneeTypeValid: bool, lead: any, leadAccountId: str, leadUserName: str, metadata: map, name: str, project: str, projectId: int(int64), realAssignee: any, realAssigneeType: str, self: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if:   *  the user is not found.  *  `assigneeType` is an invalid value.  *  `name` is over 255 characters in length., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to manage the project containing the component or does not have permission to administer Jira., 404: Returned if the component is not found or the user does not have permission to browse the project containing the component.}\n@example_request {\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a Jira component\",\"isAssigneeTypeValid\":false,\"leadAccountId\":\"5b10a2844c20165700ede21g\",\"name\":\"Component 1\"}\n\n@endpoint GET /rest/api/3/component/{id}/relatedIssueCounts\n@desc Get component issues count\n@required {id: str # The ID of the component.}\n@returns(200) {issueCount: int(int64), self: str(uri)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the component is not found.}\n\n@endpoint GET /rest/api/3/config/fieldschemes\n@desc Get field schemes\n@optional {projectId: [int(int64)] # (optional) List of project IDs to filter schemes by. If not provided, schemes from all projects are returned., query: str # (optional) Text filter for scheme name or description matching (case-insensitive). If not provided, no text filtering is applied., startAt: int(int64)=0 # Zero-based index of the first item to return (default: 0), maxResults: int(int32)=50 # Maximum number of items to return per page (default: 50, max: 100)}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Pagianted list of field association schemes\n@errors {400: Returned if the request parameters are invalid (e.g., negative startAt, maxResults exceeding limit)., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the feature flag is disabled.}\n\n@endpoint POST /rest/api/3/config/fieldschemes\n@desc Create field scheme\n@required {name: str # The name of the scheme to be created}\n@optional {description: str # Description of the scheme to be created}\n@returns(200) {description: str, id: int(int64), links: map{associations: str, projects: str}, name: str} # Returned if the creation was successful.\n@errors {400: Returned if the request is invalid. If request is malformed, returns a collection of errors., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions, 404: Returned if the feature flag is disabled or the scheme ID is not found.}\n@example_request {\"description\":\"Field association scheme description\",\"name\":\"Field association scheme name\"}\n\n@endpoint DELETE /rest/api/3/config/fieldschemes/fields\n@desc Remove fields associated with field schemes\n@returns(200) {results: [map]} # Returned if the field association update was successful.\n@returns(204) The request completed successfully. No additional content will be sent in the response.\n@returns(207) {results: [map]} # Returned if the field association update was partially successful.\n@errors {400: Returned if the request is invalid. If request is malformed, returns a collection of errors. If request is well-formed but contains invalid scheme or field IDs, returns failure details., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions}\n@example_request {\"customfield_10000\":{\"schemeIds\":[10000,10001]},\"customfield_10001\":{\"schemeIds\":[10002]}}\n\n@endpoint PUT /rest/api/3/config/fieldschemes/fields\n@desc Update fields associated with field schemes\n@returns(200) {results: [map]} # Returned if the field association update was successful.\n@returns(204) The request completed successfully. No additional content will be sent in the response.\n@returns(207) {results: [map]} # Returned if the field association update was partially successful.\n@errors {400: Returned if the request is invalid. If request is malformed, returns a collection of errors. If request is well-formed but contains invalid scheme or field IDs, returns failure details., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions}\n@example_request {\"customfield_10000\":[{\"restrictedToWorkTypes\":[1,2],\"schemeIds\":[10000,10001]}],\"customfield_10001\":[{\"schemeIds\":[10002]}]}\n\n@endpoint DELETE /rest/api/3/config/fieldschemes/fields/parameters\n@desc Remove field parameters\n@returns(200) Returned if the removal was successful.\n@returns(204) The request completed successfully. No additional content will be sent in the response.\n@returns(207) {results: [map]} # Returned if the removal was partially successful.\n@errors {400: Returned if the request is invalid. If request is malformed, returns a collection of errors. If request is well-formed but contains invalid scheme or project IDs, returns failure details., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions}\n@example_request {\"customfield_10000\":[{\"parameters\":[\"description\",\"isRequired\"],\"schemeId\":10000,\"workTypeIds\":[1,2]}],\"description\":[{\"parameters\":[\"description\"],\"schemeId\":10001,\"workTypeIds\":[3]}]}\n\n@endpoint PUT /rest/api/3/config/fieldschemes/fields/parameters\n@desc Update field parameters\n@returns(200) {results: [map]} # Returned if the field parameter update was successful.\n@returns(204) The request completed successfully. No additional content will be sent in the response.\n@returns(207) {results: [map]} # Returned if the field parameter update was partially successful.\n@errors {400: Returned if the request is invalid. If request is malformed, returns a collection of errors. If request is well-formed but contains invalid scheme or field IDs, returns failure details., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions}\n@example_request {\"customfield_10000\":[{\"parameters\":{\"description\":\"Field description\",\"isRequired\":true},\"schemeIds\":[10000,10001],\"workTypeParameters\":[{\"description\":\"Description for Bug\",\"isRequired\":false,\"workTypeId\":10002}]}],\"customfield_10001\":[{\"schemeIds\":[10001],\"workTypeParameters\":[{\"description\":\"Description for Bug\",\"isRequired\":false,\"workTypeId\":10002},{\"description\":\"Description for Task\",\"isRequired\":true,\"workTypeId\":10003}]}]}\n\n@endpoint GET /rest/api/3/config/fieldschemes/projects\n@desc Get projects with field schemes\n@required {projectId: [int(int64)] # List of project ids to filter the results by.}\n@optional {startAt: int(int64)=0 # The starting index of the returned projects. Base index: 0., maxResults: int(int32)=50 # The maximum number of projects to return per page, maximum allowed value is 100.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returns the list of project with field association schemes.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the feature flag is disabled.}\n\n@endpoint PUT /rest/api/3/config/fieldschemes/projects\n@desc Associate projects to field schemes\n@returns(200) {results: [map]} # Returned if the association was successful.\n@returns(204) The request completed successfully. No additional content will be sent in the response.\n@returns(207) {results: [map]} # Returned if the association was partially successful.\n@errors {400: Returned if the request is invalid. If request is malformed, returns a collection of errors. If request is well-formed but contains invalid scheme or project IDs, returns failure details., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions}\n@example_request {\"10000\":{\"projectIds\":[10000,10001]},\"10001\":{\"projectIds\":[10002]}}\n\n@endpoint DELETE /rest/api/3/config/fieldschemes/{id}\n@desc Delete a field scheme\n@required {id: int(int64) # The ID of the field association scheme to delete.}\n@returns(200) {deleted: bool, id: str} # Returned if the field association scheme deletion was successful.\n@errors {400: Returned if the scheme that the user is attempting to delete is a system scheme., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions, 404: Return if the provided ID does not match any existing field association scheme, 409: Return if the scheme that the user is attempting to delete is still in use.}\n\n@endpoint GET /rest/api/3/config/fieldschemes/{id}\n@desc Get field scheme\n@required {id: int(int64) # The scheme id to fetch}\n@returns(200) {description: str, id: str, isDefault: bool, links: map{associations: str, projects: str}, name: str} # Returned if a field association scheme matches the given scheme ID\n@errors {403: Returned if the user does not have the required permissions, 404: Returned if provided ID does not match any field association schemes}\n\n@endpoint PUT /rest/api/3/config/fieldschemes/{id}\n@desc Update field scheme\n@required {id: int(int64)}\n@optional {description: str # The description value to update, name: str # The name value to update}\n@returns(200) {description: str, id: int(int64), links: map{associations: str, projects: str}, name: str} # Returned if the update was successful.\n@errors {400: Returned if the request is invalid. If request is malformed, returns a collection of errors., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions, 404: Returned if the feature flag is disabled or the scheme ID is not found.}\n@example_request {\"description\":\"Field association scheme description\",\"name\":\"Field association scheme name\"}\n\n@endpoint POST /rest/api/3/config/fieldschemes/{id}/clone\n@desc Clone field scheme\n@required {id: int(int64) # The ID of the source field association scheme to clone from, name: str # The name of the scheme to be created}\n@optional {description: str # Description of the scheme to be created}\n@returns(200) {description: str, id: int(int64), links: map{associations: str, projects: str}, name: str} # Returned if the clone was successful.\n@errors {400: Returned if the request is invalid. If request is malformed, returns a collection of errors., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions, 404: Returned if the feature flag is disabled or the source scheme ID is not found.}\n@example_request {\"description\":\"Field association scheme description\",\"name\":\"Field association scheme name\"}\n\n@endpoint GET /rest/api/3/config/fieldschemes/{id}/fields\n@desc Search field scheme fields\n@required {id: int(int64) # The scheme ID to search for child fields}\n@optional {startAt: int(int64)=0 # The starting index of the returned fields. Base index: 0., maxResults: int(int32)=50 # The maximum number of fields to return per page, maximum allowed value is 100., fieldId: [str] # The field IDs to filter by, if empty then all fields belonging to a field association scheme will be returned}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returns the matching fields, at the specified page of the results.\n@errors {400: Returned if the request parameters are invalid (e.g., negative startAt, maxResults exceeding limit, duplicate fieldIds)., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the feature flag is disabled or the scheme ID is not found.}\n\n@endpoint GET /rest/api/3/config/fieldschemes/{id}/fields/{fieldId}/parameters\n@desc Get field parameters\n@required {id: int(int64) # the ID of the field association scheme to retrieve parameters for, fieldId: str # the ID of the field}\n@returns(200) {fieldId: str, parameters: map{description: str, isRequired: bool}, workTypeParameters: [map]} # Returned if the parameters fetched were successful.\n@errors {400: Returned if the request is invalid. If request is malformed, returns a collection of errors., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions}\n\n@endpoint GET /rest/api/3/config/fieldschemes/{id}/projects\n@desc Search field scheme projects\n@required {id: int(int64) # The scheme id to search for associated projects}\n@optional {startAt: int(int64)=0 # The starting index of the returned projects. Base index: 0., maxResults: int(int32)=50 # The maximum number of projects to return per page, maximum allowed value is 100., projectId: [int(int64)] # The project Ids to filter by, if empty then all projects belonging to a field association scheme will be returned}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returns a paginated list of projects associated with the field association scheme, matching the specified filter criteria.\n@errors {400: 400 response, 401: 401 response, 403: 403 response, 404: 404 response}\n\n@endpoint GET /rest/api/3/configuration\n@desc Get global settings\n@returns(200) {attachmentsEnabled: bool, issueLinkingEnabled: bool, subTasksEnabled: bool, timeTrackingConfiguration: any, timeTrackingEnabled: bool, unassignedIssuesAllowed: bool, votingEnabled: bool, watchingEnabled: bool} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/configuration/timetracking\n@desc Get selected time tracking provider\n@returns(200) {key: str, name: str, url: str} # Returned if the request is successful and time tracking is enabled.\n@returns(204) Returned if the request is successful but time tracking is disabled.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint PUT /rest/api/3/configuration/timetracking\n@desc Select time tracking provider\n@required {key: str # The key for the time tracking provider. For example, *JIRA*.}\n@optional {name: str # The name of the time tracking provider. For example, *JIRA provided time tracking*., url: str # The URL of the configuration page for the time tracking provider app. For example, */example/config/url*. This property is only returned if the `adminPageKey` property is set in the module descriptor of the time tracking provider app.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the time tracking provider is not found., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"key\":\"Jira\"}\n\n@endpoint GET /rest/api/3/configuration/timetracking/list\n@desc Get all time tracking providers\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint GET /rest/api/3/configuration/timetracking/options\n@desc Get time tracking settings\n@returns(200) {defaultUnit: str, timeFormat: str, workingDaysPerWeek: num(double), workingHoursPerDay: num(double)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint PUT /rest/api/3/configuration/timetracking/options\n@desc Set time tracking settings\n@required {defaultUnit: str(minute/hour/day/week) # The default unit of time applied to logged time., timeFormat: str(pretty/days/hours) # The format that will appear on an issue's *Time Spent* field., workingDaysPerWeek: num(double) # The number of days in a working week., workingHoursPerDay: num(double) # The number of hours in a working day.}\n@returns(200) {defaultUnit: str, timeFormat: str, workingDaysPerWeek: num(double), workingHoursPerDay: num(double)} # Returned if the request is successful.\n@errors {400: Returned if the request object is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"defaultUnit\":\"hour\",\"timeFormat\":\"pretty\",\"workingDaysPerWeek\":5.5,\"workingHoursPerDay\":7.6}\n\n@endpoint GET /rest/api/3/customFieldOption/{id}\n@desc Get custom field option\n@required {id: str # The ID of the custom field option.}\n@returns(200) {self: str(uri), value: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the custom field option is not found.  *  the user does not have permission to view the custom field.}\n\n@endpoint GET /rest/api/3/dashboard\n@desc Get all dashboards\n@optional {filter: str(my/favourite) # The filter applied to the list of dashboards. Valid values are:   *  `favourite` Returns dashboards the user has marked as favorite.  *  `my` Returns dashboards owned by the user., startAt: int(int32)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=20 # The maximum number of items to return per page.}\n@returns(200) {dashboards: [map], maxResults: int(int32), next: str, prev: str, startAt: int(int32), total: int(int32)} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/dashboard\n@desc Create dashboard\n@required {editPermissions: [map{group: any, id: int(int64), project: any, role: any, type!: str, user: any}] # The edit permissions for the dashboard., name: str # The name of the dashboard., sharePermissions: [map{group: any, id: int(int64), project: any, role: any, type!: str, user: any}] # The share permissions for the dashboard.}\n@optional {extendAdminPermissions: bool=false # Whether admin level permissions are used. It should only be true if the user has *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg), description: str # The description of the dashboard.}\n@returns(200) {automaticRefreshMs: int(int32), description: str, editPermissions: [map], id: str, isFavourite: bool, isWritable: bool, name: str, owner: any, popularity: int(int64), rank: int(int32), self: str(uri), sharePermissions: [map], systemDashboard: bool, view: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"description\":\"A dashboard to help auditors identify sample of issues to check.\",\"editPermissions\":[],\"name\":\"Auditors dashboard\",\"sharePermissions\":[{\"type\":\"global\"}]}\n\n@endpoint PUT /rest/api/3/dashboard/bulk/edit\n@desc Bulk edit dashboards\n@required {action: str(changeOwner/changePermission/addPermission/removePermission) # Allowed action for bulk edit shareable entity, entityIds: [int(int64)] # The id list of shareable entities to be changed.}\n@optional {changeOwnerDetails: any # The details of change owner action., extendAdminPermissions: bool # Whether the actions are executed by users with Administer Jira global permission., permissionDetails: any # The permission details to be changed.}\n@returns(200) {action: str, entityErrors: map} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"action\":\"changePermission\",\"entityIds\":[10001,10002],\"extendAdminPermissions\":true,\"permissionDetails\":{\"editPermissions\":[{\"group\":{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"name\":\"jira-administrators\",\"self\":\"https://your-domain.atlassian.net/rest/api/~ver~/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"},\"id\":10010,\"type\":\"group\"}],\"sharePermissions\":[{\"id\":10000,\"type\":\"global\"}]}}\n\n@endpoint GET /rest/api/3/dashboard/gadgets\n@desc Get available gadgets\n@returns(200) {gadgets: [map]} # Returned if the request is successful.\n@errors {400: 400 response, 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/dashboard/search\n@desc Search for dashboards\n@optional {dashboardName: str # String used to perform a case-insensitive partial match with `name`., accountId: str # User account ID used to return dashboards with the matching `owner.accountId`. This parameter cannot be used with the `owner` parameter., owner: str # This parameter is deprecated because of privacy changes. Use `accountId` instead. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. User name used to return dashboards with the matching `owner.name`. This parameter cannot be used with the `accountId` parameter., groupname: str # As a group's name can change, use of `groupId` is recommended. Group name used to return dashboards that are shared with a group that matches `sharePermissions.group.name`. This parameter cannot be used with the `groupId` parameter., groupId: str # Group ID used to return dashboards that are shared with a group that matches `sharePermissions.group.groupId`. This parameter cannot be used with the `groupname` parameter., projectId: int(int64) # Project ID used to returns dashboards that are shared with a project that matches `sharePermissions.project.id`., orderBy: str(description/-description/+description/favorite_count/-favorite_count/+favorite_count/id/-id/+id/is_favorite/-is_favorite/+is_favorite/name/-name/+name/owner/-owner/+owner)=name # [Order](#ordering) the results by a field:   *  `description` Sorts by dashboard description. Note that this sort works independently of whether the expand to display the description field is in use.  *  `favourite_count` Sorts by dashboard popularity.  *  `id` Sorts by dashboard ID.  *  `is_favourite` Sorts by whether the dashboard is marked as a favorite.  *  `name` Sorts by dashboard name.  *  `owner` Sorts by dashboard owner name., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., status: str(active/archived/deleted)=active # The status to filter by. It may be active, archived or deleted., expand: str # Use [expand](#expansion) to include additional information about dashboard in the response. This parameter accepts a comma-separated list. Expand options include:   *  `description` Returns the description of the dashboard.  *  `owner` Returns the owner of the dashboard.  *  `viewUrl` Returns the URL that is used to view the dashboard.  *  `favourite` Returns `isFavourite`, an indicator of whether the user has set the dashboard as a favorite.  *  `favouritedCount` Returns `popularity`, a count of how many users have set this dashboard as a favorite.  *  `sharePermissions` Returns details of the share permissions defined for the dashboard.  *  `editPermissions` Returns details of the edit permissions defined for the dashboard.  *  `isWritable` Returns whether the current user has permission to edit the dashboard.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if:   *  `orderBy` is invalid.  *  `expand` includes an invalid value.  *  `accountId` and `owner` are provided.  *  `groupname` and `groupId` are provided., 401: 401 response}\n\n@endpoint GET /rest/api/3/dashboard/{dashboardId}/gadget\n@desc Get gadgets\n@required {dashboardId: int(int64) # The ID of the dashboard.}\n@optional {moduleKey: [str] # The list of gadgets module keys. To include multiple module keys, separate module keys with ampersand: `moduleKey=key:one&moduleKey=key:two`., uri: [str] # The list of gadgets URIs. To include multiple URIs, separate URIs with ampersand: `uri=/rest/example/uri/1&uri=/rest/example/uri/2`., gadgetId: [int(int64)] # The list of gadgets IDs. To include multiple IDs, separate IDs with ampersand: `gadgetId=10000&gadgetId=10001`.}\n@returns(200) {gadgets: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect., 404: Returned if the dashboard is not found.}\n\n@endpoint POST /rest/api/3/dashboard/{dashboardId}/gadget\n@desc Add gadget to dashboard\n@required {dashboardId: int(int64) # The ID of the dashboard.}\n@optional {color: str # The color of the gadget. Should be one of `blue`, `red`, `yellow`, `green`, `cyan`, `purple`, `gray`, or `white`., ignoreUriAndModuleKeyValidation: bool # Whether to ignore the validation of module key and URI. For example, when a gadget is created that is a part of an application that isn't installed., moduleKey: str # The module key of the gadget type. Can't be provided with `uri`., position: any # The position of the gadget. When the gadget is placed into the position, other gadgets in the same column are moved down to accommodate it., title: str # The title of the gadget., uri: str # The URI of the gadget type. Can't be provided with `moduleKey`.}\n@returns(200) {color: str, id: int(int64), moduleKey: str, position: any, title: str, uri: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the dashboard is not found.}\n@example_request {\"color\":\"blue\",\"ignoreUriAndModuleKeyValidation\":false,\"moduleKey\":\"com.atlassian.plugins.atlassian-connect-plugin:com.atlassian.connect.node.sample-addon__sample-dashboard-item\",\"position\":{\"column\":1,\"row\":0},\"title\":\"Issue statistics\"}\n\n@endpoint DELETE /rest/api/3/dashboard/{dashboardId}/gadget/{gadgetId}\n@desc Remove gadget from dashboard\n@required {dashboardId: int(int64) # The ID of the dashboard., gadgetId: int(int64) # The ID of the gadget.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the gadget or the dashboard is not found.}\n\n@endpoint PUT /rest/api/3/dashboard/{dashboardId}/gadget/{gadgetId}\n@desc Update gadget on dashboard\n@required {dashboardId: int(int64) # The ID of the dashboard., gadgetId: int(int64) # The ID of the gadget.}\n@optional {color: str # The color of the gadget. Should be one of `blue`, `red`, `yellow`, `green`, `cyan`, `purple`, `gray`, or `white`., position: any # The position of the gadget., title: str # The title of the gadget.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect., 404: Returned if the gadget or the dashboard is not found.}\n@example_request {\"color\":\"red\",\"position\":{\"column\":1,\"row\":1},\"title\":\"My new gadget title\"}\n\n@endpoint GET /rest/api/3/dashboard/{dashboardId}/items/{itemId}/properties\n@desc Get dashboard item property keys\n@required {dashboardId: str # The ID of the dashboard., itemId: str # The ID of the dashboard item.}\n@returns(200) {keys: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the dashboard or dashboard item is not found, or the dashboard is not owned by or shared with the user.}\n\n@endpoint DELETE /rest/api/3/dashboard/{dashboardId}/items/{itemId}/properties/{propertyKey}\n@desc Delete dashboard item property\n@required {dashboardId: str # The ID of the dashboard., itemId: str # The ID of the dashboard item., propertyKey: str # The key of the dashboard item property.}\n@returns(204) Returned if the dashboard item property is deleted.\n@errors {400: Returned if the dashboard or dashboard item ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user is not the owner of the dashboard., 404: Returned if the dashboard item is not found or the dashboard is not shared with the user.}\n\n@endpoint GET /rest/api/3/dashboard/{dashboardId}/items/{itemId}/properties/{propertyKey}\n@desc Get dashboard item property\n@required {dashboardId: str # The ID of the dashboard., itemId: str # The ID of the dashboard item., propertyKey: str # The key of the dashboard item property.}\n@returns(200) {key: str, value: any} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the dashboard, the dashboard item, or dashboard item property is not found, or the dashboard is not owned by or shared with the user.}\n\n@endpoint PUT /rest/api/3/dashboard/{dashboardId}/items/{itemId}/properties/{propertyKey}\n@desc Set dashboard item property\n@required {dashboardId: str # The ID of the dashboard., itemId: str # The ID of the dashboard item., propertyKey: str # The key of the dashboard item property. The maximum length is 255 characters. For dashboard items with a spec URI and no complete module key, if the provided propertyKey is equal to \"config\", the request body's JSON must be an object with all keys and values as strings.}\n@returns(200) Returned if the dashboard item property is updated.\n@returns(201) Returned if the dashboard item property is created.\n@errors {400: Returned if:   *  Request is invalid  *  Or if all of these conditions are met in the request:           *  The dashboard item has a spec URI and no complete module key      *  The value of propertyKey is equal to \"config\"      *  The request body contains a JSON object whose keys and values are not strings., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user is not the owner of the dashboard., 404: Returned if the dashboard item is not found or the dashboard is not shared with the user.}\n@example_request {\"number\":5,\"string\":\"string-value\"}\n\n@endpoint DELETE /rest/api/3/dashboard/{id}\n@desc Delete dashboard\n@required {id: str # The ID of the dashboard.}\n@returns(204) Returned if the dashboard is deleted.\n@errors {400: 400 response, 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/dashboard/{id}\n@desc Get dashboard\n@required {id: str # The ID of the dashboard.}\n@returns(200) {automaticRefreshMs: int(int32), description: str, editPermissions: [map], id: str, isFavourite: bool, isWritable: bool, name: str, owner: any, popularity: int(int64), rank: int(int32), self: str(uri), sharePermissions: [map], systemDashboard: bool, view: str} # Returned if the request is successful.\n@errors {400: 400 response, 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the dashboard is not found or the dashboard is not owned by or shared with the user.}\n\n@endpoint PUT /rest/api/3/dashboard/{id}\n@desc Update dashboard\n@required {id: str # The ID of the dashboard to update., editPermissions: [map{group: any, id: int(int64), project: any, role: any, type!: str, user: any}] # The edit permissions for the dashboard., name: str # The name of the dashboard., sharePermissions: [map{group: any, id: int(int64), project: any, role: any, type!: str, user: any}] # The share permissions for the dashboard.}\n@optional {extendAdminPermissions: bool=false # Whether admin level permissions are used. It should only be true if the user has *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg), description: str # The description of the dashboard.}\n@returns(200) {automaticRefreshMs: int(int32), description: str, editPermissions: [map], id: str, isFavourite: bool, isWritable: bool, name: str, owner: any, popularity: int(int64), rank: int(int32), self: str(uri), sharePermissions: [map], systemDashboard: bool, view: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the dashboard is not found or the dashboard is not owned by the user.}\n@example_request {\"description\":\"A dashboard to help auditors identify sample of issues to check.\",\"editPermissions\":[],\"name\":\"Auditors dashboard\",\"sharePermissions\":[{\"type\":\"global\"}]}\n\n@endpoint POST /rest/api/3/dashboard/{id}/copy\n@desc Copy dashboard\n@required {id: str, editPermissions: [map{group: any, id: int(int64), project: any, role: any, type!: str, user: any}] # The edit permissions for the dashboard., name: str # The name of the dashboard., sharePermissions: [map{group: any, id: int(int64), project: any, role: any, type!: str, user: any}] # The share permissions for the dashboard.}\n@optional {extendAdminPermissions: bool=false # Whether admin level permissions are used. It should only be true if the user has *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg), description: str # The description of the dashboard.}\n@returns(200) {automaticRefreshMs: int(int32), description: str, editPermissions: [map], id: str, isFavourite: bool, isWritable: bool, name: str, owner: any, popularity: int(int64), rank: int(int32), self: str(uri), sharePermissions: [map], systemDashboard: bool, view: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the dashboard is not found or the dashboard is not owned by or shared with the user.}\n@example_request {\"description\":\"A dashboard to help auditors identify sample of issues to check.\",\"editPermissions\":[],\"name\":\"Auditors dashboard\",\"sharePermissions\":[{\"type\":\"global\"}]}\n\n@endpoint GET /rest/api/3/data-policy\n@desc Get data policy for the workspace\n@returns(200) {anyContentBlocked: bool} # Returned if the request is successful\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the client is not authorized to make the request.}\n\n@endpoint GET /rest/api/3/data-policy/project\n@desc Get data policy for projects\n@optional {ids: str # A list of project identifiers. This parameter accepts a comma-separated list.}\n@returns(200) {projectDataPolicies: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid or includes invalid or not-permitted project identifiers., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the client is not authorized to make the request.}\n\n@endpoint GET /rest/api/3/events\n@desc Get events\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to complete this request.}\n\n@endpoint POST /rest/api/3/expression/analyse\n@desc Analyse Jira expression\n@required {expressions: [str] # The list of Jira expressions to analyse.}\n@optional {check: str(syntax/type/complexity)=syntax # The check to perform:   *  `syntax` Each expression's syntax is checked to ensure the expression can be parsed. Also, syntactic limits are validated. For example, the expression's length.  *  `type` EXPERIMENTAL. Each expression is type checked and the final type of the expression inferred. Any type errors that would result in the expression failure at runtime are reported. For example, accessing properties that don't exist or passing the wrong number of arguments to functions. Also performs the syntax check.  *  `complexity` EXPERIMENTAL. Determines the formulae for how many [expensive operations](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/#expensive-operations) each expression may execute., contextVariables: map # Context variables and their types. The type checker assumes that [common context variables](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/#context-variables), such as `issue` or `project`, are available in context and sets their type. Use this property to override the default types or provide details of new variables.}\n@returns(200) {results: [map]} # Returned if the request is successful.\n@errors {400: 400 response, 401: Returned if the authentication credentials are incorrect or missing., 404: 404 response}\n@example_request {\"contextVariables\":{\"listOfStrings\":\"List<String>\",\"record\":\"{ a: Number, b: String }\",\"value\":\"User\"},\"expressions\":[\"issues.map(issue => issue.properties['property_key'])\"]}\n\n@endpoint POST /rest/api/3/expression/eval\n@desc Currently being removed. Evaluate Jira expression\n@required {expression: str # The Jira expression to evaluate.}\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts `meta.complexity` that returns information about the expression complexity. For example, the number of expensive operations used by the expression and how close the expression is to reaching the [complexity limit](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/#restrictions). Useful when designing and debugging your expressions., context: any # The context in which the Jira expression is evaluated.}\n@returns(200) {meta: any, value: any} # Returned if the evaluation results in a value. The result is a JSON primitive value, list, or object.\n@errors {400: Returned if:   *  the request is invalid, that is:           *  invalid data is provided, such as a request including issue ID and key.      *  the expression is invalid and can not be parsed.  *  evaluation fails at runtime. This may happen for various reasons. For example, accessing a property on a null object (such as the expression `issue.id` where `issue` is `null`). In this case an error message is provided., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if any object provided in the request context is not found or the user does not have permission to view it.}\n@example_request {\"context\":{\"board\":10100,\"custom\":{\"config\":{\"type\":\"json\",\"value\":{\"userId\":\"10002\"}},\"issuesList\":[{\"key\":\"ACJIRA-1471\",\"type\":\"issue\"},{\"id\":100001,\"type\":\"issue\"}],\"myUser\":{\"accountId\":\"100001\",\"type\":\"user\"},\"nullField\":{\"type\":\"json\"}},\"customerRequest\":1450,\"issue\":{\"key\":\"ACJIRA-1470\"},\"issues\":{\"jql\":{\"maxResults\":100,\"query\":\"project = HSP\",\"startAt\":0,\"validation\":\"strict\"}},\"project\":{\"key\":\"ACJIRA\"},\"serviceDesk\":10023,\"sprint\":10001},\"expression\":\"{ key: issue.key, type: issue.issueType.name, links: issue.links.map(link => link.linkedIssue.id), listCustomVariable: issuesList.includes(issue), customVariables: myUser.accountId == config.userId}\"}\n\n@endpoint POST /rest/api/3/expression/evaluate\n@desc Evaluate Jira expression using enhanced search API\n@required {expression: str # The Jira expression to evaluate.}\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts `meta.complexity` that returns information about the expression complexity. For example, the number of expensive operations used by the expression and how close the expression is to reaching the [complexity limit](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/#restrictions). Useful when designing and debugging your expressions., context: any # The context in which the Jira expression is evaluated.}\n@returns(200) {meta: any, value: any} # Returned if the evaluation results in a value. The result is a JSON primitive value, list, or object.\n@errors {400: Returned if:   *  the request is invalid, that is:           *  invalid data is provided, such as a request including issue ID and key.      *  the expression is invalid and can not be parsed.  *  evaluation fails at runtime. This may happen for various reasons. For example, accessing a property on a null object (such as the expression `issue.id` where `issue` is `null`). In this case an error message is provided.  *  If jql is unbounded or empty.  *  If nextPageToken is invalid, 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if any object provided in the request context is not found or the user does not have permission to view it.}\n@example_request {\"context\":{\"board\":10100,\"custom\":{\"config\":{\"type\":\"json\",\"value\":{\"userId\":\"10002\"}},\"issuesList\":[{\"key\":\"ACJIRA-1471\",\"type\":\"issue\"},{\"id\":100001,\"type\":\"issue\"}],\"myUser\":{\"accountId\":\"100001\",\"type\":\"user\"},\"nullField\":{\"type\":\"json\"}},\"customerRequest\":1450,\"issue\":{\"key\":\"ACJIRA-1470\"},\"issues\":{\"jql\":{\"maxResults\":100,\"nextPageToken\":\"EgQIlMIC\",\"query\":\"project = HSP\"}},\"project\":{\"key\":\"ACJIRA\"},\"serviceDesk\":10023,\"sprint\":10001},\"expression\":\"{ key: issue.key, type: issue.issueType.name, links: issue.links.map(link => link.linkedIssue.id), listCustomVariable: issuesList.includes(issue), customVariables: myUser.accountId == config.userId}\"}\n\n@endpoint GET /rest/api/3/field\n@desc Get fields\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/field\n@desc Create custom field\n@required {name: str # The name of the custom field, which is displayed in Jira. This is not the unique identifier., type: str # The type of the custom field. These built-in custom field types are available:   *  `cascadingselect`: Enables values to be selected from two levels of select lists (value: `com.atlassian.jira.plugin.system.customfieldtypes:cascadingselect`)  *  `datepicker`: Stores a date using a picker control (value: `com.atlassian.jira.plugin.system.customfieldtypes:datepicker`)  *  `datetime`: Stores a date with a time component (value: `com.atlassian.jira.plugin.system.customfieldtypes:datetime`)  *  `float`: Stores and validates a numeric (floating point) input (value: `com.atlassian.jira.plugin.system.customfieldtypes:float`)  *  `grouppicker`: Stores a user group using a picker control (value: `com.atlassian.jira.plugin.system.customfieldtypes:grouppicker`)  *  `importid`: A read-only field that stores the ID the issue had in the system it was imported from (value: `com.atlassian.jira.plugin.system.customfieldtypes:importid`)  *  `labels`: Stores labels (value: `com.atlassian.jira.plugin.system.customfieldtypes:labels`)  *  `multicheckboxes`: Stores multiple values using checkboxes (value: ``)  *  `multigrouppicker`: Stores multiple user groups using a picker control (value: ``)  *  `multiselect`: Stores multiple values using a select list (value: `com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes`)  *  `multiuserpicker`: Stores multiple users using a picker control (value: `com.atlassian.jira.plugin.system.customfieldtypes:multigrouppicker`)  *  `multiversion`: Stores multiple versions from the versions available in a project using a picker control (value: `com.atlassian.jira.plugin.system.customfieldtypes:multiversion`)  *  `project`: Stores a project from a list of projects that the user is permitted to view (value: `com.atlassian.jira.plugin.system.customfieldtypes:project`)  *  `radiobuttons`: Stores a value using radio buttons (value: `com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons`)  *  `readonlyfield`: Stores a read-only text value, which can only be populated via the API (value: `com.atlassian.jira.plugin.system.customfieldtypes:readonlyfield`)  *  `select`: Stores a value from a configurable list of options (value: `com.atlassian.jira.plugin.system.customfieldtypes:select`)  *  `textarea`: Stores a long text string using a multiline text area (value: `com.atlassian.jira.plugin.system.customfieldtypes:textarea`)  *  `textfield`: Stores a text string using a single-line text box (value: `com.atlassian.jira.plugin.system.customfieldtypes:textfield`)  *  `url`: Stores a URL (value: `com.atlassian.jira.plugin.system.customfieldtypes:url`)  *  `userpicker`: Stores a user using a picker control (value: `com.atlassian.jira.plugin.system.customfieldtypes:userpicker`)  *  `version`: Stores a version using a picker control (value: `com.atlassian.jira.plugin.system.customfieldtypes:version`)  To create a field based on a [Forge custom field type](https://developer.atlassian.com/platform/forge/manifest-reference/modules/#jira-custom-field-type--beta-), use the ID of the Forge custom field type as the value. For example, `ari:cloud:ecosystem::extension/e62f20a2-4b61-4dbe-bfb9-9a88b5e3ac84/548c5df1-24aa-4f7c-bbbb-3038d947cb05/static/my-cf-type-key`.}\n@optional {description: str # The description of the custom field, which is displayed in Jira., searcherKey: str(com.atlassian.jira.plugin.system.customfieldtypes:cascadingselectsearcher/com.atlassian.jira.plugin.system.customfieldtypes:daterange/com.atlassian.jira.plugin.system.customfieldtypes:datetimerange/com.atlassian.jira.plugin.system.customfieldtypes:exactnumber/com.atlassian.jira.plugin.system.customfieldtypes:exacttextsearcher/com.atlassian.jira.plugin.system.customfieldtypes:grouppickersearcher/com.atlassian.jira.plugin.system.customfieldtypes:labelsearcher/com.atlassian.jira.plugin.system.customfieldtypes:multiselectsearcher/com.atlassian.jira.plugin.system.customfieldtypes:numberrange/com.atlassian.jira.plugin.system.customfieldtypes:projectsearcher/com.atlassian.jira.plugin.system.customfieldtypes:textsearcher/com.atlassian.jira.plugin.system.customfieldtypes:userpickergroupsearcher/com.atlassian.jira.plugin.system.customfieldtypes:versionsearcher) # The searcher defines the way the field is searched in Jira. For example, *com.atlassian.jira.plugin.system.customfieldtypes:grouppickersearcher*.   The search UI (basic search and JQL search) will display different operations and values for the field, based on the field searcher. You must specify a searcher that is valid for the field type, as listed below (abbreviated values shown):   *  `cascadingselect`: `cascadingselectsearcher`  *  `datepicker`: `daterange`  *  `datetime`: `datetimerange`  *  `float`: `exactnumber` or `numberrange`  *  `grouppicker`: `grouppickersearcher`  *  `importid`: `exactnumber` or `numberrange`  *  `labels`: `labelsearcher`  *  `multicheckboxes`: `multiselectsearcher`  *  `multigrouppicker`: `multiselectsearcher`  *  `multiselect`: `multiselectsearcher`  *  `multiuserpicker`: `userpickergroupsearcher`  *  `multiversion`: `versionsearcher`  *  `project`: `projectsearcher`  *  `radiobuttons`: `multiselectsearcher`  *  `readonlyfield`: `textsearcher`  *  `select`: `multiselectsearcher`  *  `textarea`: `textsearcher`  *  `textfield`: `textsearcher`  *  `url`: `exacttextsearcher`  *  `userpicker`: `userpickergroupsearcher`  *  `version`: `versionsearcher`  If no searcher is provided, the field isn't searchable. However, [Forge custom fields](https://developer.atlassian.com/platform/forge/manifest-reference/modules/#jira-custom-field-type--beta-) have a searcher set automatically, so are always searchable.}\n@returns(201) {clauseNames: [str], custom: bool, id: str, key: str, name: str, navigable: bool, orderable: bool, schema: any, scope: any, searchable: bool} # Returned if the custom field is created.\n@errors {400: Returned if:   *  the user does not have permission to create custom fields.  *  any of the request object properties have invalid or missing values.}\n@example_request {\"description\":\"Custom field for picking groups\",\"name\":\"New custom field\",\"searcherKey\":\"com.atlassian.jira.plugin.system.customfieldtypes:grouppickersearcher\",\"type\":\"com.atlassian.jira.plugin.system.customfieldtypes:grouppicker\"}\n\n@endpoint DELETE /rest/api/3/field/association\n@desc Remove associations\n@required {associationContexts: [map{identifier: map, type!: str}] # Contexts to associate/unassociate the fields with., fields: [map{identifier: map, type!: str}] # Fields to associate/unassociate with projects.}\n@returns(204) Returned if the field association validation passes.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the field, project, or issue type is not found.}\n@example_request {\"associationContexts\":[{\"identifier\":10000,\"type\":\"PROJECT_ID\"},{\"identifier\":10001,\"type\":\"PROJECT_ID\"}],\"fields\":[{\"identifier\":\"customfield_10000\",\"type\":\"FIELD_ID\"},{\"identifier\":\"customfield_10001\",\"type\":\"FIELD_ID\"}]}\n\n@endpoint PUT /rest/api/3/field/association\n@desc Create associations\n@required {associationContexts: [map{identifier: map, type!: str}] # Contexts to associate/unassociate the fields with., fields: [map{identifier: map, type!: str}] # Fields to associate/unassociate with projects.}\n@returns(204) Returned if the field association validation passes.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the field, project, or issue type is not found.}\n@example_request {\"associationContexts\":[{\"identifier\":10000,\"type\":\"PROJECT_ID\"},{\"identifier\":10001,\"type\":\"PROJECT_ID\"}],\"fields\":[{\"identifier\":\"customfield_10000\",\"type\":\"FIELD_ID\"},{\"identifier\":\"customfield_10001\",\"type\":\"FIELD_ID\"}]}\n\n@endpoint GET /rest/api/3/field/search\n@desc Get fields paginated\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., type: [str] # The type of fields to search., id: [str] # The IDs of the custom fields to return or, where `query` is specified, filter., query: str # String used to perform a case-insensitive partial match with field names or descriptions., orderBy: str(contextsCount/-contextsCount/+contextsCount/lastUsed/-lastUsed/+lastUsed/name/-name/+name/screensCount/-screensCount/+screensCount/projectsCount/-projectsCount/+projectsCount) # [Order](#ordering) the results by:   *  `contextsCount` sorts by the number of contexts related to a field  *  `lastUsed` sorts by the date when the value of the field last changed  *  `name` sorts by the field name  *  `screensCount` sorts by the number of screens related to a field, expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `key` returns the key for each field  *  `stableId` returns the stableId for each field  *  `lastUsed` returns the date when the value of the field last changed  *  `screensCount` returns the number of screens related to a field  *  `contextsCount` returns the number of contexts related to a field  *  `isLocked` returns information about whether the field is locked  *  `searcherKey` returns the searcher key for each custom field, projectIds: [int(int64)] # The IDs of the projects to filter the fields by. Fields belonging to project Ids that the user does not have access to will not be returned}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint GET /rest/api/3/field/search/trashed\n@desc Get fields in trash paginated\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., id: [str], query: str # String used to perform a case-insensitive partial match with field names or descriptions., expand: str(name/-name/+name/trashDate/-trashDate/+trashDate/plannedDeletionDate/-plannedDeletionDate/+plannedDeletionDate/projectsCount/-projectsCount/+projectsCount), orderBy: str # [Order](#ordering) the results by a field:   *  `name` sorts by the field name  *  `trashDate` sorts by the date the field was moved to the trash  *  `plannedDeletionDate` sorts by the planned deletion date}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint PUT /rest/api/3/field/{fieldId}\n@desc Update custom field\n@required {fieldId: str # The ID of the custom field.}\n@optional {description: str # The description of the custom field. The maximum length is 40000 characters., name: str # The name of the custom field. It doesn't have to be unique. The maximum length is 255 characters., searcherKey: str(com.atlassian.jira.plugin.system.customfieldtypes:cascadingselectsearcher/com.atlassian.jira.plugin.system.customfieldtypes:daterange/com.atlassian.jira.plugin.system.customfieldtypes:datetimerange/com.atlassian.jira.plugin.system.customfieldtypes:exactnumber/com.atlassian.jira.plugin.system.customfieldtypes:exacttextsearcher/com.atlassian.jira.plugin.system.customfieldtypes:grouppickersearcher/com.atlassian.jira.plugin.system.customfieldtypes:labelsearcher/com.atlassian.jira.plugin.system.customfieldtypes:multiselectsearcher/com.atlassian.jira.plugin.system.customfieldtypes:numberrange/com.atlassian.jira.plugin.system.customfieldtypes:projectsearcher/com.atlassian.jira.plugin.system.customfieldtypes:textsearcher/com.atlassian.jira.plugin.system.customfieldtypes:userpickergroupsearcher/com.atlassian.jira.plugin.system.customfieldtypes:versionsearcher) # The searcher that defines the way the field is searched in Jira. It can be set to `null`, otherwise you must specify the valid searcher for the field type, as listed below (abbreviated values shown):   *  `cascadingselect`: `cascadingselectsearcher`  *  `datepicker`: `daterange`  *  `datetime`: `datetimerange`  *  `float`: `exactnumber` or `numberrange`  *  `grouppicker`: `grouppickersearcher`  *  `importid`: `exactnumber` or `numberrange`  *  `labels`: `labelsearcher`  *  `multicheckboxes`: `multiselectsearcher`  *  `multigrouppicker`: `multiselectsearcher`  *  `multiselect`: `multiselectsearcher`  *  `multiuserpicker`: `userpickergroupsearcher`  *  `multiversion`: `versionsearcher`  *  `project`: `projectsearcher`  *  `radiobuttons`: `multiselectsearcher`  *  `readonlyfield`: `textsearcher`  *  `select`: `multiselectsearcher`  *  `textarea`: `textsearcher`  *  `textfield`: `textsearcher`  *  `url`: `exacttextsearcher`  *  `userpicker`: `userpickergroupsearcher`  *  `version`: `versionsearcher`}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field is not found.}\n@example_request {\"description\":\"Select the manager and the corresponding employee.\",\"name\":\"Managers and employees list\",\"searcherKey\":\"com.atlassian.jira.plugin.system.customfieldtypes:cascadingselectsearcher\"}\n\n@endpoint GET /rest/api/3/field/{fieldId}/association/project\n@desc Get field project associations\n@required {fieldId: str # The ID of the field, for example `customfield_10000`.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint GET /rest/api/3/field/{fieldId}/context\n@desc Get custom field contexts\n@required {fieldId: str # The ID of the custom field.}\n@optional {isAnyIssueType: bool # Whether to return contexts that apply to all issue types., isGlobalContext: bool # Whether to return contexts that apply to all projects., contextId: [int(int64)] # The list of context IDs. To include multiple contexts, separate IDs with ampersand: `contextId=10000&contextId=10001`., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field was not found.}\n\n@endpoint POST /rest/api/3/field/{fieldId}/context\n@desc Create custom field context\n@required {fieldId: str # The ID of the custom field., name: str # The name of the context.}\n@optional {description: str # The description of the context., id: str # The ID of the context., issueTypeIds: [str] # The list of issue types IDs for the context. If the list is empty, the context refers to all issue types., projectIds: [str] # The list of project IDs associated with the context. If the list is empty, the context is global.}\n@returns(201) {description: str, id: str, issueTypeIds: [str], name: str, projectIds: [str]} # Returned if the custom field context is created.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the field, project, or issue type is not found., 409: Returned if the issue type is a sub-task, but sub-tasks are disabled in Jira settings.}\n@example_request {\"description\":\"A context used to define the custom field options for bugs.\",\"issueTypeIds\":[\"10010\"],\"name\":\"Bug fields context\",\"projectIds\":[]}\n\n@endpoint GET /rest/api/3/field/{fieldId}/context/defaultValue\n@desc Get custom field contexts default values\n@required {fieldId: str # The ID of the custom field, for example `customfield\\_10000`.}\n@optional {contextId: [int(int64)] # The IDs of the contexts., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field is not found.}\n\n@endpoint PUT /rest/api/3/field/{fieldId}/context/defaultValue\n@desc Set custom field contexts default values\n@required {fieldId: str # The ID of the custom field.}\n@optional {defaultValues: [map]}\n@returns(204) Returned if operation is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field, a context, an option, or a cascading option is not found.}\n@example_request {\"defaultValues\":[{\"contextId\":\"10100\",\"optionId\":\"10001\",\"type\":\"option.single\"},{\"contextId\":\"10101\",\"optionId\":\"10003\",\"type\":\"option.single\"},{\"contextId\":\"10103\",\"optionId\":\"10005\",\"type\":\"option.single\"}]}\n\n@endpoint GET /rest/api/3/field/{fieldId}/context/issuetypemapping\n@desc Get issue types for custom field context\n@required {fieldId: str # The ID of the custom field.}\n@optional {contextId: [int(int64)] # The ID of the context. To include multiple contexts, provide an ampersand-separated list. For example, `contextId=10001&contextId=10002`., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if operation is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions.}\n\n@endpoint POST /rest/api/3/field/{fieldId}/context/mapping\n@desc Get custom field contexts for projects and issue types\n@required {fieldId: str # The ID of the custom field., mappings: [map{issueTypeId!: str, projectId!: str}] # The project and issue type mappings.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field, project, or issue type is not found.}\n@example_request {\"mappings\":[{\"issueTypeId\":\"10000\",\"projectId\":\"10000\"},{\"issueTypeId\":\"10001\",\"projectId\":\"10000\"},{\"issueTypeId\":\"10002\",\"projectId\":\"10001\"}]}\n\n@endpoint GET /rest/api/3/field/{fieldId}/context/projectmapping\n@desc Get project mappings for custom field context\n@required {fieldId: str # The ID of the custom field, for example `customfield\\_10000`.}\n@optional {contextId: [int(int64)] # The list of context IDs. To include multiple context, separate IDs with ampersand: `contextId=10000&contextId=10001`., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field is not found.}\n\n@endpoint DELETE /rest/api/3/field/{fieldId}/context/{contextId}\n@desc Delete custom field context\n@required {fieldId: str # The ID of the custom field., contextId: int(int64) # The ID of the context.}\n@returns(204) Returned if the context is deleted.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field or the context is not found.}\n\n@endpoint PUT /rest/api/3/field/{fieldId}/context/{contextId}\n@desc Update custom field context\n@required {fieldId: str # The ID of the custom field., contextId: int(int64) # The ID of the context.}\n@optional {description: str # The description of the custom field context. The maximum length is 255 characters., name: str # The name of the custom field context. The name must be unique. The maximum length is 255 characters.}\n@returns(204) Returned if the context is updated.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field or the context is not found.}\n@example_request {\"description\":\"A context used to define the custom field options for bugs.\",\"name\":\"Bug fields context\"}\n\n@endpoint PUT /rest/api/3/field/{fieldId}/context/{contextId}/issuetype\n@desc Add issue types to context\n@required {fieldId: str # The ID of the custom field., contextId: int(int64) # The ID of the context., issueTypeIds: [str] # The list of issue type IDs.}\n@returns(204) Returned if operation is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field, context, or one or more issue types are not found., 409: Returned if the issue type is a sub-task, but sub-tasks are disabled in Jira settings.}\n@example_request {\"issueTypeIds\":[\"10001\",\"10005\",\"10006\"]}\n\n@endpoint POST /rest/api/3/field/{fieldId}/context/{contextId}/issuetype/remove\n@desc Remove issue types from context\n@required {fieldId: str # The ID of the custom field., contextId: int(int64) # The ID of the context., issueTypeIds: [str] # The list of issue type IDs.}\n@returns(204) Returned if operation is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field, context, or one or more issue types are not found.}\n@example_request {\"issueTypeIds\":[\"10001\",\"10005\",\"10006\"]}\n\n@endpoint GET /rest/api/3/field/{fieldId}/context/{contextId}/option\n@desc Get custom field options (context)\n@required {fieldId: str # The ID of the custom field., contextId: int(int64) # The ID of the context.}\n@optional {optionId: int(int64) # The ID of the option., onlyOptions: bool=false # Whether only options are returned., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=100 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the custom field is not found or the context doesn't match the custom field.}\n\n@endpoint POST /rest/api/3/field/{fieldId}/context/{contextId}/option\n@desc Create custom field options (context)\n@required {fieldId: str # The ID of the custom field., contextId: int(int64) # The ID of the context.}\n@optional {options: [map{disabled: bool, optionId: str, value!: str}] # Details of options to create.}\n@returns(200) {options: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the custom field is not found or the context doesn't match the custom field.}\n@example_request {\"options\":[{\"disabled\":false,\"value\":\"Scranton\"},{\"disabled\":true,\"optionId\":\"10000\",\"value\":\"Manhattan\"},{\"disabled\":false,\"value\":\"The Electric City\"}]}\n\n@endpoint PUT /rest/api/3/field/{fieldId}/context/{contextId}/option\n@desc Update custom field options (context)\n@required {fieldId: str # The ID of the custom field., contextId: int(int64) # The ID of the context.}\n@optional {options: [map{disabled: bool, id!: str, value: str}] # Details of the options to update.}\n@returns(200) {options: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the field, context, or one or more options is not found.}\n@example_request {\"options\":[{\"disabled\":false,\"id\":\"10001\",\"value\":\"Scranton\"},{\"disabled\":true,\"id\":\"10002\",\"value\":\"Manhattan\"},{\"disabled\":false,\"id\":\"10003\",\"value\":\"The Electric City\"}]}\n\n@endpoint PUT /rest/api/3/field/{fieldId}/context/{contextId}/option/move\n@desc Reorder custom field options (context)\n@required {fieldId: str # The ID of the custom field., contextId: int(int64) # The ID of the context., customFieldOptionIds: [str] # A list of IDs of custom field options to move. The order of the custom field option IDs in the list is the order they are given after the move. The list must contain custom field options or cascading options, but not both.}\n@optional {after: str # The ID of the custom field option or cascading option to place the moved options after. Required if `position` isn't provided., position: str(First/Last) # The position the custom field options should be moved to. Required if `after` isn't provided.}\n@returns(204) Returned if options are reordered.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the field, the context, or one or more of the options is not found..}\n@example_request {\"customFieldOptionIds\":[\"10001\",\"10002\"],\"position\":\"First\"}\n\n@endpoint DELETE /rest/api/3/field/{fieldId}/context/{contextId}/option/{optionId}\n@desc Delete custom field options (context)\n@required {fieldId: str # The ID of the custom field., contextId: int(int64) # The ID of the context from which an option should be deleted., optionId: int(int64) # The ID of the option to delete.}\n@returns(204) Returned if the option is deleted.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the field, the context, or the option is not found.}\n\n@endpoint DELETE /rest/api/3/field/{fieldId}/context/{contextId}/option/{optionId}/issue\n@desc Replace custom field options\n@required {fieldId: str # The ID of the custom field., optionId: int(int64) # The ID of the option to be deselected., contextId: int(int64) # The ID of the context.}\n@optional {replaceWith: int(int64) # The ID of the option that will replace the currently selected option., jql: str # A JQL query that specifies the issues to be updated. For example, *project=10000*.}\n@errors {303: Returned if the long-running task to deselect the option is started., 400: Returned if the request is not valid., 403: Returned if the user does not have the necessary permission., 404: Returned if the field is not found or does not support options, or the options to be replaced are not found.}\n\n@endpoint PUT /rest/api/3/field/{fieldId}/context/{contextId}/project\n@desc Assign custom field context to projects\n@required {fieldId: str # The ID of the custom field., contextId: int(int64) # The ID of the context., projectIds: [str] # The IDs of projects.}\n@returns(204) Returned if operation is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field, context, or project is not found.}\n@example_request {\"projectIds\":[\"10001\",\"10005\",\"10006\"]}\n\n@endpoint POST /rest/api/3/field/{fieldId}/context/{contextId}/project/remove\n@desc Remove custom field context from projects\n@required {fieldId: str # The ID of the custom field., contextId: int(int64) # The ID of the context., projectIds: [str] # The IDs of projects.}\n@returns(204) Returned if the custom field context is removed from the projects.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the custom field, context, or one or more projects are not found.}\n@example_request {\"projectIds\":[\"10001\",\"10005\",\"10006\"]}\n\n@endpoint GET /rest/api/3/field/{fieldId}/contexts\n@desc Get contexts for a field\n@required {fieldId: str # The ID of the field to return contexts for.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=20 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint GET /rest/api/3/field/{fieldId}/screens\n@desc Get screens for a field\n@required {fieldId: str # The ID of the field to return screens for.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=100 # The maximum number of items to return per page., expand: str # Use [expand](#expansion) to include additional information about screens in the response. This parameter accepts `tab` which returns details about the screen tabs the field is used in.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint GET /rest/api/3/field/{fieldKey}/option\n@desc Get all issue field options\n@required {fieldKey: str # The field key is specified in the following format: **$(app-key)\\_\\_$(field-key)**. For example, *example-add-on\\_\\_example-issue-field*. To determine the `fieldKey` value, do one of the following:   *  open the app's plugin descriptor, then **app-key** is the key at the top and **field-key** is the key in the `jiraIssueFields` module. **app-key** can also be found in the app listing in the Atlassian Universal Plugin Manager.  *  run [Get fields](#api-rest-api-3-field-get) and in the field details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"`}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the field is not found or does not support options., 403: Returned if the request is not authenticated as a Jira administrator or the app that provided the field.}\n\n@endpoint POST /rest/api/3/field/{fieldKey}/option\n@desc Create issue field option\n@required {fieldKey: str # The field key is specified in the following format: **$(app-key)\\_\\_$(field-key)**. For example, *example-add-on\\_\\_example-issue-field*. To determine the `fieldKey` value, do one of the following:   *  open the app's plugin descriptor, then **app-key** is the key at the top and **field-key** is the key in the `jiraIssueFields` module. **app-key** can also be found in the app listing in the Atlassian Universal Plugin Manager.  *  run [Get fields](#api-rest-api-3-field-get) and in the field details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"`, value: str # The option's name, which is displayed in Jira.}\n@optional {config: map{attributes: [str], scope: any} # Details of the projects the option is available in., properties: map # The properties of the option as arbitrary key-value pairs. These properties can be searched using JQL, if the extractions (see https://developer.atlassian.com/cloud/jira/platform/modules/issue-field-option-property-index/) are defined in the descriptor for the issue field module.}\n@returns(200) {config: map{attributes: [str], scope: any}, id: int(int64), properties: map, value: str} # Returned if the request is successful.\n@errors {400: Returned if the option is invalid., 403: Returned if the request is not authenticated as a Jira administrator or the app that provided the field., 404: Returned if the field is not found or does not support options.}\n@example_request {\"config\":{\"attributes\":[],\"scope\":{\"global\":{},\"projects\":[],\"projects2\":[{\"attributes\":[\"notSelectable\"],\"id\":1001},{\"attributes\":[\"notSelectable\"],\"id\":1002}]}},\"properties\":{\"description\":\"The team's description\",\"founded\":\"2016-06-06\",\"leader\":{\"email\":\"lname@example.com\",\"name\":\"Leader Name\"},\"members\":42},\"value\":\"Team 1\"}\n\n@endpoint GET /rest/api/3/field/{fieldKey}/option/suggestions/edit\n@desc Get selectable issue field options\n@required {fieldKey: str # The field key is specified in the following format: **$(app-key)\\_\\_$(field-key)**. For example, *example-add-on\\_\\_example-issue-field*. To determine the `fieldKey` value, do one of the following:   *  open the app's plugin descriptor, then **app-key** is the key at the top and **field-key** is the key in the `jiraIssueFields` module. **app-key** can also be found in the app listing in the Atlassian Universal Plugin Manager.  *  run [Get fields](#api-rest-api-3-field-get) and in the field details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"`}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., projectId: int(int64) # Filters the results to options that are only available in the specified project.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the field is not found or does not support options.}\n\n@endpoint GET /rest/api/3/field/{fieldKey}/option/suggestions/search\n@desc Get visible issue field options\n@required {fieldKey: str # The field key is specified in the following format: **$(app-key)\\_\\_$(field-key)**. For example, *example-add-on\\_\\_example-issue-field*. To determine the `fieldKey` value, do one of the following:   *  open the app's plugin descriptor, then **app-key** is the key at the top and **field-key** is the key in the `jiraIssueFields` module. **app-key** can also be found in the app listing in the Atlassian Universal Plugin Manager.  *  run [Get fields](#api-rest-api-3-field-get) and in the field details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"`}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., projectId: int(int64) # Filters the results to options that are only available in the specified project.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the field is not found or does not support options.}\n\n@endpoint DELETE /rest/api/3/field/{fieldKey}/option/{optionId}\n@desc Delete issue field option\n@required {fieldKey: str # The field key is specified in the following format: **$(app-key)\\_\\_$(field-key)**. For example, *example-add-on\\_\\_example-issue-field*. To determine the `fieldKey` value, do one of the following:   *  open the app's plugin descriptor, then **app-key** is the key at the top and **field-key** is the key in the `jiraIssueFields` module. **app-key** can also be found in the app listing in the Atlassian Universal Plugin Manager.  *  run [Get fields](#api-rest-api-3-field-get) and in the field details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"`, optionId: int(int64) # The ID of the option to be deleted.}\n@returns(204) Returned if the field option is deleted.\n@errors {403: Returned if the request is not authenticated as a Jira administrator or the app that provided the field., 404: Returned if the field or option is not found., 409: Returned if the option is selected for the field in any issue.}\n\n@endpoint GET /rest/api/3/field/{fieldKey}/option/{optionId}\n@desc Get issue field option\n@required {fieldKey: str # The field key is specified in the following format: **$(app-key)\\_\\_$(field-key)**. For example, *example-add-on\\_\\_example-issue-field*. To determine the `fieldKey` value, do one of the following:   *  open the app's plugin descriptor, then **app-key** is the key at the top and **field-key** is the key in the `jiraIssueFields` module. **app-key** can also be found in the app listing in the Atlassian Universal Plugin Manager.  *  run [Get fields](#api-rest-api-3-field-get) and in the field details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"`, optionId: int(int64) # The ID of the option to be returned.}\n@returns(200) {config: map{attributes: [str], scope: any}, id: int(int64), properties: map, value: str} # Returned if the requested option is returned.\n@errors {400: Returned if the field is not found or does not support options., 403: Returned if the request is not authenticated as a Jira administrator or the app that provided the field., 404: Returned if the option is not found.}\n\n@endpoint PUT /rest/api/3/field/{fieldKey}/option/{optionId}\n@desc Update issue field option\n@required {fieldKey: str # The field key is specified in the following format: **$(app-key)\\_\\_$(field-key)**. For example, *example-add-on\\_\\_example-issue-field*. To determine the `fieldKey` value, do one of the following:   *  open the app's plugin descriptor, then **app-key** is the key at the top and **field-key** is the key in the `jiraIssueFields` module. **app-key** can also be found in the app listing in the Atlassian Universal Plugin Manager.  *  run [Get fields](#api-rest-api-3-field-get) and in the field details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"`, optionId: int(int64) # The ID of the option to be updated., id: int(int64) # The unique identifier for the option. This is only unique within the select field's set of options., value: str # The option's name, which is displayed in Jira.}\n@optional {config: map{attributes: [str], scope: any} # Details of the projects the option is available in., properties: map # The properties of the object, as arbitrary key-value pairs. These properties can be searched using JQL, if the extractions (see [Issue Field Option Property Index](https://developer.atlassian.com/cloud/jira/platform/modules/issue-field-option-property-index/)) are defined in the descriptor for the issue field module.}\n@returns(200) {config: map{attributes: [str], scope: any}, id: int(int64), properties: map, value: str} # Returned if the option is updated or created.\n@errors {400: Returned if the option is invalid, or the *ID* in the request object does not match the *optionId* parameter., 403: Returned if the request is not authenticated as a Jira administrator or the app that provided the field., 404: Returned if field is not found.}\n@example_request {\"config\":{\"attributes\":[],\"scope\":{\"global\":{},\"projects\":[],\"projects2\":[{\"attributes\":[\"notSelectable\"],\"id\":1001},{\"attributes\":[\"notSelectable\"],\"id\":1002}]}},\"id\":1,\"properties\":{\"description\":\"The team's description\",\"founded\":\"2016-06-06\",\"leader\":{\"email\":\"lname@example.com\",\"name\":\"Leader Name\"},\"members\":42},\"value\":\"Team 1\"}\n\n@endpoint DELETE /rest/api/3/field/{fieldKey}/option/{optionId}/issue\n@desc Replace issue field option\n@required {fieldKey: str # The field key is specified in the following format: **$(app-key)\\_\\_$(field-key)**. For example, *example-add-on\\_\\_example-issue-field*. To determine the `fieldKey` value, do one of the following:   *  open the app's plugin descriptor, then **app-key** is the key at the top and **field-key** is the key in the `jiraIssueFields` module. **app-key** can also be found in the app listing in the Atlassian Universal Plugin Manager.  *  run [Get fields](#api-rest-api-3-field-get) and in the field details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"`, optionId: int(int64) # The ID of the option to be deselected.}\n@optional {replaceWith: int(int64) # The ID of the option that will replace the currently selected option., jql: str # A JQL query that specifies the issues to be updated. For example, *project=10000*., overrideScreenSecurity: bool=false # Whether screen security is overridden to enable hidden fields to be edited. Available to Connect and Forge app users with admin permission., overrideEditableFlag: bool=false # Whether screen security is overridden to enable uneditable fields to be edited. Available to Connect and Forge app users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).}\n@errors {303: Returned if the long-running task to deselect the option is started., 400: Returned if the request is not valid., 403: Returned if the user does not have the necessary permission., 404: Returned if the field is not found or does not support options, or the options to be replaced are not found.}\n\n@endpoint DELETE /rest/api/3/field/{id}\n@desc Delete custom field\n@required {id: str # The ID of a custom field.}\n@errors {303: Returned if the request is successful., 400: Returned if any of these are true:   *  The custom field is locked.  *  The custom field is used in a issue security scheme or a permission scheme.  *  The custom field ID format is incorrect., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the custom field is not found., 409: Returned if a task to delete the custom field is running.}\n\n@endpoint POST /rest/api/3/field/{id}/restore\n@desc Restore custom field from trash\n@required {id: str # The ID of a custom field.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the custom field is not found.}\n\n@endpoint POST /rest/api/3/field/{id}/trash\n@desc Move custom field to trash\n@required {id: str # The ID of a custom field.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the custom field is not found.}\n\n@endpoint GET /rest/api/3/fieldconfiguration\n@desc Get all field configurations\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., id: [int(int64)] # The list of field configuration IDs. To include multiple IDs, provide an ampersand-separated list. For example, `id=10000&id=10001`., isDefault: bool=false # If *true* returns default field configurations only., query: str= # The query string used to match against field configuration names and descriptions.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint POST /rest/api/3/fieldconfiguration\n@desc Create field configuration\n@required {name: str # The name of the field configuration. Must be unique.}\n@optional {description: str # The description of the field configuration.}\n@returns(200) {description: str, id: int(int64), isDefault: bool, name: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"description\":\"My field configuration description\",\"name\":\"My Field Configuration\"}\n\n@endpoint DELETE /rest/api/3/fieldconfiguration/{id}\n@desc Delete field configuration\n@required {id: int(int64) # The ID of the field configuration.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the field configuration is not found.}\n\n@endpoint PUT /rest/api/3/fieldconfiguration/{id}\n@desc Update field configuration\n@required {id: int(int64) # The ID of the field configuration., name: str # The name of the field configuration. Must be unique.}\n@optional {description: str # The description of the field configuration.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the field configuration is not found.}\n@example_request {\"description\":\"A brand new description\",\"name\":\"My Modified Field Configuration\"}\n\n@endpoint GET /rest/api/3/fieldconfiguration/{id}/fields\n@desc Get field configuration items\n@required {id: int(int64) # The ID of the field configuration.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the field configuration is not found.}\n\n@endpoint PUT /rest/api/3/fieldconfiguration/{id}/fields\n@desc Update field configuration items\n@required {id: int(int64) # The ID of the field configuration., fieldConfigurationItems: [map{description: str, id!: str, isHidden: bool, isRequired: bool, renderer: str}] # Details of fields in a field configuration.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the field configuration is not found.}\n@example_request {\"fieldConfigurationItems\":[{\"description\":\"The new description of this item.\",\"id\":\"customfield_10012\",\"isHidden\":false},{\"id\":\"customfield_10011\",\"isRequired\":true},{\"description\":\"Another new description.\",\"id\":\"customfield_10010\",\"isHidden\":false,\"isRequired\":false,\"renderer\":\"wiki-renderer\"}]}\n\n@endpoint GET /rest/api/3/fieldconfigurationscheme\n@desc Get all field configuration schemes\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., id: [int(int64)] # The list of field configuration scheme IDs. To include multiple IDs, provide an ampersand-separated list. For example, `id=10000&id=10001`.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permissions.}\n\n@endpoint POST /rest/api/3/fieldconfigurationscheme\n@desc Create field configuration scheme\n@required {name: str # The name of the field configuration scheme. The name must be unique.}\n@optional {description: str # The description of the field configuration scheme.}\n@returns(201) {description: str, id: str, name: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permissions.}\n@example_request {\"description\":\"We can use this one for software projects.\",\"name\":\"Field Configuration Scheme for software related projects\"}\n\n@endpoint GET /rest/api/3/fieldconfigurationscheme/mapping\n@desc Get field configuration issue type items\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., fieldConfigurationSchemeId: [int(int64)] # The list of field configuration scheme IDs. To include multiple field configuration schemes separate IDs with ampersand: `fieldConfigurationSchemeId=10000&fieldConfigurationSchemeId=10001`.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if no field configuration schemes are found.}\n\n@endpoint GET /rest/api/3/fieldconfigurationscheme/project\n@desc Get field configuration schemes for projects\n@required {projectId: [int(int64)] # The list of project IDs. To include multiple projects, separate IDs with ampersand: `projectId=10000&projectId=10001`.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint PUT /rest/api/3/fieldconfigurationscheme/project\n@desc Assign field configuration scheme to project\n@required {projectId: str # The ID of the project.}\n@optional {fieldConfigurationSchemeId: str # The ID of the field configuration scheme. If the field configuration scheme ID is `null`, the operation assigns the default field configuration scheme.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the project is not a classic project., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permissions., 404: Returned if the project is missing.}\n@example_request {\"fieldConfigurationSchemeId\":\"10000\",\"projectId\":\"10000\"}\n\n@endpoint DELETE /rest/api/3/fieldconfigurationscheme/{id}\n@desc Delete field configuration scheme\n@required {id: int(int64) # The ID of the field configuration scheme.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the field configuration scheme is not found.}\n\n@endpoint PUT /rest/api/3/fieldconfigurationscheme/{id}\n@desc Update field configuration scheme\n@required {id: int(int64) # The ID of the field configuration scheme., name: str # The name of the field configuration scheme. The name must be unique.}\n@optional {description: str # The description of the field configuration scheme.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permissions., 404: Returned if the field configuration scheme is not found.}\n@example_request {\"description\":\"We can use this one for software projects.\",\"name\":\"Field Configuration Scheme for software related projects\"}\n\n@endpoint PUT /rest/api/3/fieldconfigurationscheme/{id}/mapping\n@desc Assign issue types to field configurations\n@required {id: int(int64) # The ID of the field configuration scheme., mappings: [map{fieldConfigurationId!: str, issueTypeId!: str}] # Field configuration to issue type mappings.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the field configuration scheme, the field configuration, or the issue type is not found.}\n@example_request {\"mappings\":[{\"fieldConfigurationId\":\"10000\",\"issueTypeId\":\"default\"},{\"fieldConfigurationId\":\"10002\",\"issueTypeId\":\"10001\"},{\"fieldConfigurationId\":\"10001\",\"issueTypeId\":\"10002\"}]}\n\n@endpoint POST /rest/api/3/fieldconfigurationscheme/{id}/mapping/delete\n@desc Remove issue types from field configuration scheme\n@required {id: int(int64) # The ID of the field configuration scheme., issueTypeIds: [str] # The list of issue type IDs. Must contain unique values not longer than 255 characters and not be empty. Maximum of 100 IDs.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the field configuration scheme or the issue types are not found.}\n@example_request {\"issueTypeIds\":[\"10000\",\"10001\",\"10002\"]}\n\n@endpoint POST /rest/api/3/filter\n@desc Create filter\n@required {name: str # The name of the filter. Must be unique.}\n@optional {expand: str # Use [expand](#expansion) to include additional information about filter in the response. This parameter accepts a comma-separated list. Expand options include:   *  `sharedUsers` Returns the users that the filter is shared with. This includes users that can browse projects that the filter is shared with. If you don't specify `sharedUsers`, then the `sharedUsers` object is returned but it doesn't list any users. The list of users returned is limited to 1000, to access additional users append `[start-index:end-index]` to the expand request. For example, to access the next 1000 users, use `?expand=sharedUsers[1001:2000]`.  *  `subscriptions` Returns the users that are subscribed to the filter. If you don't specify `subscriptions`, the `subscriptions` object is returned but it doesn't list any subscriptions. The list of subscriptions returned is limited to 1000, to access additional subscriptions append `[start-index:end-index]` to the expand request. For example, to access the next 1000 subscriptions, use `?expand=subscriptions[1001:2000]`., overrideSharePermissions: bool=false # EXPERIMENTAL: Whether share permissions are overridden to enable filters with any share permissions to be created. Available to users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)., approximateLastUsed: str(date-time) # \\[Experimental\\] Approximate last used time. Returns the date and time when the filter was last used. Returns `null` if the filter hasn't been used after tracking was enabled. For performance reasons, timestamps aren't updated in real time and therefore may not be exactly accurate., description: str # A description of the filter., editPermissions: [map{group: any, id: int(int64), project: any, role: any, type!: str, user: any}] # The groups and projects that can edit the filter., favourite: bool # Whether the filter is selected as a favorite., favouritedCount: int(int64) # The count of how many users have selected this filter as a favorite, including the filter owner., id: str # The unique identifier for the filter., jql: str # The JQL query for the filter. For example, *project = SSP AND issuetype = Bug*., owner: any # The user who owns the filter. This is defaulted to the creator of the filter, however Jira administrators can change the owner of a shared filter in the admin settings., searchUrl: str(uri) # A URL to view the filter results in Jira, using the [Search for issues using JQL](#api-rest-api-3-filter-search-get) operation with the filter's JQL string to return the filter results. For example, *https://your-domain.atlassian.net/rest/api/3/search?jql=project+%3D+SSP+AND+issuetype+%3D+Bug*., self: str(uri) # The URL of the filter., sharePermissions: [map{group: any, id: int(int64), project: any, role: any, type!: str, user: any}] # The groups and projects that the filter is shared with., sharedUsers: any # A paginated list of the users that the filter is shared with. This includes users that are members of the groups or can browse the projects that the filter is shared with., subscriptions: any # A paginated list of the users that are subscribed to the filter., viewUrl: str(uri) # A URL to view the filter results in Jira, using the ID of the filter. For example, *https://your-domain.atlassian.net/issues/?filter=10100*.}\n@returns(200) {approximateLastUsed: str(date-time), description: str, editPermissions: [map], favourite: bool, favouritedCount: int(int64), id: str, jql: str, name: str, owner: any, searchUrl: str(uri), self: str(uri), sharePermissions: [map], sharedUsers: any, subscriptions: any, viewUrl: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if the request object is invalid. For example, the `name` is not unique or the project ID is not specified for a project role share permission., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"description\":\"Lists all open bugs\",\"jql\":\"type = Bug and resolution is empty\",\"name\":\"All Open Bugs\"}\n\n@endpoint GET /rest/api/3/filter/defaultShareScope\n@desc Get default share scope\n@returns(200) {scope: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint PUT /rest/api/3/filter/defaultShareScope\n@desc Set default share scope\n@required {scope: str(GLOBAL/AUTHENTICATED/PRIVATE) # The scope of the default sharing for new filters and dashboards:   *  `AUTHENTICATED` Shared with all logged-in users.  *  `GLOBAL` Shared with all logged-in users. This shows as `AUTHENTICATED` in the response.  *  `PRIVATE` Not shared with any users.}\n@returns(200) {scope: str} # Returned if the request is successful.\n@errors {400: Returned if an invalid scope is set., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"scope\":\"GLOBAL\"}\n\n@endpoint GET /rest/api/3/filter/favourite\n@desc Get favorite filters\n@optional {expand: str # Use [expand](#expansion) to include additional information about filter in the response. This parameter accepts a comma-separated list. Expand options include:   *  `sharedUsers` Returns the users that the filter is shared with. This includes users that can browse projects that the filter is shared with. If you don't specify `sharedUsers`, then the `sharedUsers` object is returned but it doesn't list any users. The list of users returned is limited to 1000, to access additional users append `[start-index:end-index]` to the expand request. For example, to access the next 1000 users, use `?expand=sharedUsers[1001:2000]`.  *  `subscriptions` Returns the users that are subscribed to the filter. If you don't specify `subscriptions`, the `subscriptions` object is returned but it doesn't list any subscriptions. The list of subscriptions returned is limited to 1000, to access additional subscriptions append `[start-index:end-index]` to the expand request. For example, to access the next 1000 subscriptions, use `?expand=subscriptions[1001:2000]`.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/filter/my\n@desc Get my filters\n@optional {expand: str # Use [expand](#expansion) to include additional information about filter in the response. This parameter accepts a comma-separated list. Expand options include:   *  `sharedUsers` Returns the users that the filter is shared with. This includes users that can browse projects that the filter is shared with. If you don't specify `sharedUsers`, then the `sharedUsers` object is returned but it doesn't list any users. The list of users returned is limited to 1000, to access additional users append `[start-index:end-index]` to the expand request. For example, to access the next 1000 users, use `?expand=sharedUsers[1001:2000]`.  *  `subscriptions` Returns the users that are subscribed to the filter. If you don't specify `subscriptions`, the `subscriptions` object is returned but it doesn't list any subscriptions. The list of subscriptions returned is limited to 1000, to access additional subscriptions append `[start-index:end-index]` to the expand request. For example, to access the next 1000 subscriptions, use `?expand=subscriptions[1001:2000]`., includeFavourites: bool=false # Include the user's favorite filters in the response.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/filter/search\n@desc Search for filters\n@optional {filterName: str # String used to perform a case-insensitive partial match with `name`., accountId: str # User account ID used to return filters with the matching `owner.accountId`. This parameter cannot be used with `owner`., owner: str # This parameter is deprecated because of privacy changes. Use `accountId` instead. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. User name used to return filters with the matching `owner.name`. This parameter cannot be used with `accountId`., groupname: str # As a group's name can change, use of `groupId` is recommended to identify a group. Group name used to returns filters that are shared with a group that matches `sharePermissions.group.groupname`. This parameter cannot be used with the `groupId` parameter., groupId: str # Group ID used to returns filters that are shared with a group that matches `sharePermissions.group.groupId`. This parameter cannot be used with the `groupname` parameter., projectId: int(int64) # Project ID used to returns filters that are shared with a project that matches `sharePermissions.project.id`., id: [int(int64)] # The list of filter IDs. To include multiple IDs, provide an ampersand-separated list. For example, `id=10000&id=10001`. Do not exceed 200 filter IDs., orderBy: str(description/-description/+description/favourite_count/-favourite_count/+favourite_count/id/-id/+id/is_favourite/-is_favourite/+is_favourite/name/-name/+name/owner/-owner/+owner/is_shared/-is_shared/+is_shared)=name # [Order](#ordering) the results by a field:   *  `description` Sorts by filter description. Note that this sorting works independently of whether the expand to display the description field is in use.  *  `favourite_count` Sorts by the count of how many users have this filter as a favorite.  *  `is_favourite` Sorts by whether the filter is marked as a favorite.  *  `id` Sorts by filter ID.  *  `name` Sorts by filter name.  *  `owner` Sorts by the ID of the filter owner.  *  `is_shared` Sorts by whether the filter is shared., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., expand: str # Use [expand](#expansion) to include additional information about filter in the response. This parameter accepts a comma-separated list. Expand options include:   *  `description` Returns the description of the filter.  *  `favourite` Returns an indicator of whether the user has set the filter as a favorite.  *  `favouritedCount` Returns a count of how many users have set this filter as a favorite.  *  `jql` Returns the JQL query that the filter uses.  *  `owner` Returns the owner of the filter.  *  `searchUrl` Returns a URL to perform the filter's JQL query.  *  `sharePermissions` Returns the share permissions defined for the filter.  *  `editPermissions` Returns the edit permissions defined for the filter.  *  `isWritable` Returns whether the current user has permission to edit the filter.  *  `approximateLastUsed` \\[Experimental\\] Returns the approximate date and time when the filter was last evaluated.  *  `subscriptions` Returns the users that are subscribed to the filter.  *  `viewUrl` Returns a URL to view the filter., overrideSharePermissions: bool=false # EXPERIMENTAL: Whether share permissions are overridden to enable filters with any share permissions to be returned. Available to users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)., isSubstringMatch: bool=false # When `true` this will perform a case-insensitive substring match for the provided `filterName`. When `false` the filter name will be searched using [full text search syntax](https://support.atlassian.com/jira-software-cloud/docs/search-for-issues-using-the-text-field/).}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if:   *  `owner` and `accountId` are provided.  *  `expand` includes an invalid value.  *  `orderBy` is invalid.  *  `id` identifies more than 200 filter IDs., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint DELETE /rest/api/3/filter/{id}\n@desc Delete filter\n@required {id: int(int64) # The ID of the filter to delete.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the filter is not found., 401: Returned if the user does not have permission to delete the filter.}\n\n@endpoint GET /rest/api/3/filter/{id}\n@desc Get filter\n@required {id: int(int64) # The ID of the filter to return.}\n@optional {expand: str # Use [expand](#expansion) to include additional information about filter in the response. This parameter accepts a comma-separated list. Expand options include:   *  `sharedUsers` Returns the users that the filter is shared with. This includes users that can browse projects that the filter is shared with. If you don't specify `sharedUsers`, then the `sharedUsers` object is returned but it doesn't list any users. The list of users returned is limited to 1000, to access additional users append `[start-index:end-index]` to the expand request. For example, to access the next 1000 users, use `?expand=sharedUsers[1001:2000]`.  *  `subscriptions` Returns the users that are subscribed to the filter. If you don't specify `subscriptions`, the `subscriptions` object is returned but it doesn't list any subscriptions. The list of subscriptions returned is limited to 1000, to access additional subscriptions append `[start-index:end-index]` to the expand request. For example, to access the next 1000 subscriptions, use `?expand=subscriptions[1001:2000]`., overrideSharePermissions: bool=false # EXPERIMENTAL: Whether share permissions are overridden to enable filters with any share permissions to be returned. Available to users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).}\n@returns(200) {approximateLastUsed: str(date-time), description: str, editPermissions: [map], favourite: bool, favouritedCount: int(int64), id: str, jql: str, name: str, owner: any, searchUrl: str(uri), self: str(uri), sharePermissions: [map], sharedUsers: any, subscriptions: any, viewUrl: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if the filter is not found or the user does not have permission to view it., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint PUT /rest/api/3/filter/{id}\n@desc Update filter\n@required {id: int(int64) # The ID of the filter to update., name: str # The name of the filter. Must be unique.}\n@optional {expand: str # Use [expand](#expansion) to include additional information about filter in the response. This parameter accepts a comma-separated list. Expand options include:   *  `sharedUsers` Returns the users that the filter is shared with. This includes users that can browse projects that the filter is shared with. If you don't specify `sharedUsers`, then the `sharedUsers` object is returned but it doesn't list any users. The list of users returned is limited to 1000, to access additional users append `[start-index:end-index]` to the expand request. For example, to access the next 1000 users, use `?expand=sharedUsers[1001:2000]`.  *  `subscriptions` Returns the users that are subscribed to the filter. If you don't specify `subscriptions`, the `subscriptions` object is returned but it doesn't list any subscriptions. The list of subscriptions returned is limited to 1000, to access additional subscriptions append `[start-index:end-index]` to the expand request. For example, to access the next 1000 subscriptions, use `?expand=subscriptions[1001:2000]`., overrideSharePermissions: bool=false # EXPERIMENTAL: Whether share permissions are overridden to enable the addition of any share permissions to filters. Available to users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)., approximateLastUsed: str(date-time) # \\[Experimental\\] Approximate last used time. Returns the date and time when the filter was last used. Returns `null` if the filter hasn't been used after tracking was enabled. For performance reasons, timestamps aren't updated in real time and therefore may not be exactly accurate., description: str # A description of the filter., editPermissions: [map{group: any, id: int(int64), project: any, role: any, type!: str, user: any}] # The groups and projects that can edit the filter., favourite: bool # Whether the filter is selected as a favorite., favouritedCount: int(int64) # The count of how many users have selected this filter as a favorite, including the filter owner., id: str # The unique identifier for the filter., jql: str # The JQL query for the filter. For example, *project = SSP AND issuetype = Bug*., owner: any # The user who owns the filter. This is defaulted to the creator of the filter, however Jira administrators can change the owner of a shared filter in the admin settings., searchUrl: str(uri) # A URL to view the filter results in Jira, using the [Search for issues using JQL](#api-rest-api-3-filter-search-get) operation with the filter's JQL string to return the filter results. For example, *https://your-domain.atlassian.net/rest/api/3/search?jql=project+%3D+SSP+AND+issuetype+%3D+Bug*., self: str(uri) # The URL of the filter., sharePermissions: [map{group: any, id: int(int64), project: any, role: any, type!: str, user: any}] # The groups and projects that the filter is shared with., sharedUsers: any # A paginated list of the users that the filter is shared with. This includes users that are members of the groups or can browse the projects that the filter is shared with., subscriptions: any # A paginated list of the users that are subscribed to the filter., viewUrl: str(uri) # A URL to view the filter results in Jira, using the ID of the filter. For example, *https://your-domain.atlassian.net/issues/?filter=10100*.}\n@returns(200) {approximateLastUsed: str(date-time), description: str, editPermissions: [map], favourite: bool, favouritedCount: int(int64), id: str, jql: str, name: str, owner: any, searchUrl: str(uri), self: str(uri), sharePermissions: [map], sharedUsers: any, subscriptions: any, viewUrl: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if the request object is invalid. For example, the `name` is not unique or the project ID is not specified for a project role share permission., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"description\":\"Lists all open bugs\",\"jql\":\"type = Bug and resolution is empty\",\"name\":\"All Open Bugs\"}\n\n@endpoint DELETE /rest/api/3/filter/{id}/columns\n@desc Reset columns\n@required {id: int(int64) # The ID of the filter.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if:   *  the filter is not found.  *  the user does not have permission to view the filter., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/filter/{id}/columns\n@desc Get columns\n@required {id: int(int64) # The ID of the filter.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the user does not have permission to view the filter., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if a column configuration is not set for the filter.}\n\n@endpoint PUT /rest/api/3/filter/{id}/columns\n@desc Set columns\n@required {id: int(int64) # The ID of the filter.}\n@optional {columns: [str]}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if:   *  a non-navigable field is set as a column.  *  the user does not have permission to view the filter., 403: Returned if the requesting user is not an owner of the filter.}\n\n@endpoint DELETE /rest/api/3/filter/{id}/favourite\n@desc Remove filter as favorite\n@required {id: int(int64) # The ID of the filter.}\n@optional {expand: str # Use [expand](#expansion) to include additional information about filter in the response. This parameter accepts a comma-separated list. Expand options include:   *  `sharedUsers` Returns the users that the filter is shared with. This includes users that can browse projects that the filter is shared with. If you don't specify `sharedUsers`, then the `sharedUsers` object is returned but it doesn't list any users. The list of users returned is limited to 1000, to access additional users append `[start-index:end-index]` to the expand request. For example, to access the next 1000 users, use `?expand=sharedUsers[1001:2000]`.  *  `subscriptions` Returns the users that are subscribed to the filter. If you don't specify `subscriptions`, the `subscriptions` object is returned but it doesn't list any subscriptions. The list of subscriptions returned is limited to 1000, to access additional subscriptions append `[start-index:end-index]` to the expand request. For example, to access the next 1000 subscriptions, use `?expand=subscriptions[1001:2000]`.}\n@returns(200) {approximateLastUsed: str(date-time), description: str, editPermissions: [map], favourite: bool, favouritedCount: int(int64), id: str, jql: str, name: str, owner: any, searchUrl: str(uri), self: str(uri), sharePermissions: [map], sharedUsers: any, subscriptions: any, viewUrl: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if:   *  the filter is not found.  *  the user does not have permission to view the filter.}\n\n@endpoint PUT /rest/api/3/filter/{id}/favourite\n@desc Add filter as favorite\n@required {id: int(int64) # The ID of the filter.}\n@optional {expand: str # Use [expand](#expansion) to include additional information about filter in the response. This parameter accepts a comma-separated list. Expand options include:   *  `sharedUsers` Returns the users that the filter is shared with. This includes users that can browse projects that the filter is shared with. If you don't specify `sharedUsers`, then the `sharedUsers` object is returned but it doesn't list any users. The list of users returned is limited to 1000, to access additional users append `[start-index:end-index]` to the expand request. For example, to access the next 1000 users, use `?expand=sharedUsers[1001:2000]`.  *  `subscriptions` Returns the users that are subscribed to the filter. If you don't specify `subscriptions`, the `subscriptions` object is returned but it doesn't list any subscriptions. The list of subscriptions returned is limited to 1000, to access additional subscriptions append `[start-index:end-index]` to the expand request. For example, to access the next 1000 subscriptions, use `?expand=subscriptions[1001:2000]`.}\n@returns(200) {approximateLastUsed: str(date-time), description: str, editPermissions: [map], favourite: bool, favouritedCount: int(int64), id: str, jql: str, name: str, owner: any, searchUrl: str(uri), self: str(uri), sharePermissions: [map], sharedUsers: any, subscriptions: any, viewUrl: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if:   *  the filter is not found.  *  the user does not have permission to favorite the filter.}\n\n@endpoint PUT /rest/api/3/filter/{id}/owner\n@desc Change filter owner\n@required {id: int(int64) # The ID of the filter to update., accountId: str # The account ID of the new owner.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned when:   *  The new owner of the filter owns a filter with the same name.  *  An attempt is made to change owner of the default filter., 403: Returned if the requesting user is not an owner of the filter or does not have *Administer Jira* global permission., 404: Returned if the filter or the new owner of the filter is not found.}\n@example_request {\"accountId\":\"0000-0000-0000-0000\"}\n\n@endpoint GET /rest/api/3/filter/{id}/permission\n@desc Get share permissions\n@required {id: int(int64) # The ID of the filter.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the filter is not found.  *  the user does not have permission to view the filter.}\n\n@endpoint POST /rest/api/3/filter/{id}/permission\n@desc Add share permission\n@required {id: int(int64) # The ID of the filter., type: str(user/project/group/projectRole/global/authenticated) # The type of the share permission.Specify the type as follows:   *  `user` Share with a user.  *  `group` Share with a group. Specify `groupname` as well.  *  `project` Share with a project. Specify `projectId` as well.  *  `projectRole` Share with a project role in a project. Specify `projectId` and `projectRoleId` as well.  *  `global` Share globally, including anonymous users. If set, this type overrides all existing share permissions and must be deleted before any non-global share permissions is set.  *  `authenticated` Share with all logged-in users. This shows as `loggedin` in the response. If set, this type overrides all existing share permissions and must be deleted before any non-global share permissions is set.}\n@optional {accountId: str # The user account ID that the filter is shared with. For a request, specify the `accountId` property for the user., groupId: str # The ID of the group, which uniquely identifies the group across all Atlassian products.For example, *952d12c3-5b5b-4d04-bb32-44d383afc4b2*. Cannot be provided with `groupname`., groupname: str # The name of the group to share the filter with. Set `type` to `group`. Please note that the name of a group is mutable, to reliably identify a group use `groupId`., projectId: str # The ID of the project to share the filter with. Set `type` to `project`., projectRoleId: str # The ID of the project role to share the filter with. Set `type` to `projectRole` and the `projectId` for the project that the role is in., rights: int(int32) # The rights for the share permission.}\n@returns(201) Returned if the request is successful.\n@errors {400: Returned if:   *  the request object is invalid. For example, it contains an invalid type, the ID does not match the type, or the project or group is not found.  *  the user does not own the filter.  *  the user does not have the required permissions., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the filter is not found.  *  the user does not have permission to view the filter.}\n@example_request {\"groupname\":\"jira-administrators\",\"rights\":1,\"type\":\"group\"}\n\n@endpoint DELETE /rest/api/3/filter/{id}/permission/{permissionId}\n@desc Delete share permission\n@required {id: int(int64) # The ID of the filter., permissionId: int(int64) # The ID of the share permission.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the filter is not found.  *  the user does not own the filter.}\n\n@endpoint GET /rest/api/3/filter/{id}/permission/{permissionId}\n@desc Get share permission\n@required {id: int(int64) # The ID of the filter., permissionId: int(int64) # The ID of the share permission.}\n@returns(200) {group: any, id: int(int64), project: any, role: any, type: str, user: any} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the filter is not found.  *  the permission is not found.  *  the user does not have permission to view the filter.}\n\n@endpoint POST /rest/api/3/forge/panel/action/bulk/async\n@desc Bulk pin or unpin issue panel to projects\n@required {moduleId: str # The moduleId of the Forge panel in the format `ari:cloud:ecosystem::extension/{app-id}/{environment-id}/static/{module-key}`, projectList: [map{action!: str, projectIdOrKey!: str}] # The list of projects to pin or unpin the issue panel to or from.}\n@returns(202) {taskId: str} # Accepted. Returns the task ID for polling progress.\n@errors {400: Returned if the request body is invalid., 403: Returned if the user does not have permission to administer Jira., 500: Returned if the task could not be submitted (server error).}\n\n@endpoint DELETE /rest/api/3/group\n@desc Remove group\n@optional {groupname: str, groupId: str # The ID of the group. This parameter cannot be used with the `groupname` parameter., swapGroup: str # As a group's name can change, use of `swapGroupId` is recommended to identify a group.   The group to transfer restrictions to. Only comments and worklogs are transferred. If restrictions are not transferred, comments and worklogs are inaccessible after the deletion. This parameter cannot be used with the `swapGroupId` parameter., swapGroupId: str # The ID of the group to transfer restrictions to. Only comments and worklogs are transferred. If restrictions are not transferred, comments and worklogs are inaccessible after the deletion. This parameter cannot be used with the `swapGroup` parameter.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the group name is not specified., 401: Returned if the authentication credentials are incorrect or missing from the request., 403: Returned if the user does not have the necessary permission., 404: Returned if the group is not found.}\n\n@endpoint GET /rest/api/3/group\n@desc Get group\n@optional {groupname: str # As a group's name can change, use of `groupId` is recommended to identify a group.   The name of the group. This parameter cannot be used with the `groupId` parameter., groupId: str # The ID of the group. This parameter cannot be used with the `groupName` parameter., expand: str # List of fields to expand.}\n@returns(200) {expand: str, groupId: str?, name: str, self: str(uri), users: any} # Returned if the request is successful.\n@errors {400: Returned if the group name is not specified., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the calling user does not have the Administer Jira global permission., 404: Returned if the group is not found.}\n\n@endpoint POST /rest/api/3/group\n@desc Create group\n@required {name: str # The name of the group.}\n@returns(201) {expand: str, groupId: str?, name: str, self: str(uri), users: any} # Returned if the request is successful.\n@errors {400: Returned if group name is not specified or the group name is in use., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"name\":\"power-users\"}\n\n@endpoint GET /rest/api/3/group/bulk\n@desc Bulk get groups\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., groupId: [str] # The ID of a group. To specify multiple IDs, pass multiple `groupId` parameters. For example, `groupId=5b10a2844c20165700ede21g&groupId=5b10ac8d82e05b22cc7d4ef5`., groupName: [str] # The name of a group. To specify multiple names, pass multiple `groupName` parameters. For example, `groupName=administrators&groupName=jira-software-users`., accessType: str # The access level of a group. Valid values: 'site-admin', 'admin', 'user'., applicationKey: str # The application key of the product user groups to search for. Valid values: 'jira-servicedesk', 'jira-software', 'jira-product-discovery', 'jira-core'.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 500: Returned if the group with the given access level can't be retrieved.}\n\n@endpoint GET /rest/api/3/group/member\n@desc Get users from group\n@optional {groupname: str # As a group's name can change, use of `groupId` is recommended to identify a group.   The name of the group. This parameter cannot be used with the `groupId` parameter., groupId: str # The ID of the group. This parameter cannot be used with the `groupName` parameter., includeInactiveUsers: bool=false # Include inactive users., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page (number should be between 1 and 50).}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the group name is not specified., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the calling user does not have the Administer Jira global permission., 404: Returned if the group is not found.}\n\n@endpoint DELETE /rest/api/3/group/user\n@desc Remove user from group\n@required {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*.}\n@optional {groupname: str # As a group's name can change, use of `groupId` is recommended to identify a group.   The name of the group. This parameter cannot be used with the `groupId` parameter., groupId: str # The ID of the group. This parameter cannot be used with the `groupName` parameter., username: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if:   *  `groupName` is missing.  *  `accountId` is missing., 401: Returned if the authentication credentials are incorrect or missing from the request., 403: Returned if the user does not have the necessary permission., 404: Returned if the group or user are not found., 429: Returned if rate limiting is being enforced.}\n\n@endpoint POST /rest/api/3/group/user\n@desc Add user to group\n@optional {groupname: str # As a group's name can change, use of `groupId` is recommended to identify a group.   The name of the group. This parameter cannot be used with the `groupId` parameter., groupId: str # The ID of the group. This parameter cannot be used with the `groupName` parameter., accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*., name: str # This property is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(201) {expand: str, groupId: str?, name: str, self: str(uri), users: any} # Returned if the request is successful.\n@errors {400: Returned if:   *  `groupname` is not provided.  *  `accountId` is missing., 401: Returned if the authentication credentials are incorrect or missing from the request., 403: Returned if the calling user does not have the necessary permission., 404: Returned if the group or user are not found., 429: Returned if rate limiting is being enforced.}\n@example_request {\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\"}\n\n@endpoint GET /rest/api/3/groups/picker\n@desc Find groups\n@optional {accountId: str # This parameter is deprecated, setting it does not affect the results. To find groups containing a particular user, use [Get user groups](#api-rest-api-3-user-groups-get)., query: str # The string to find in group names., exclude: [str] # As a group's name can change, use of `excludeGroupIds` is recommended to identify a group.   A group to exclude from the result. To exclude multiple groups, provide an ampersand-separated list. For example, `exclude=group1&exclude=group2`. This parameter cannot be used with the `excludeGroupIds` parameter., excludeId: [str] # A group ID to exclude from the result. To exclude multiple groups, provide an ampersand-separated list. For example, `excludeId=group1-id&excludeId=group2-id`. This parameter cannot be used with the `excludeGroups` parameter., maxResults: int(int32) # The maximum number of groups to return. The maximum number of groups that can be returned is limited by the system property `jira.ajax.autocomplete.limit`., caseInsensitive: bool=false # Whether the search for groups should be case insensitive., userName: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(200) {groups: [map], header: str, total: int(int32)} # Returned if the request is successful.\n\n@endpoint GET /rest/api/3/groupuserpicker\n@desc Find users and groups\n@required {query: str # The search string.}\n@optional {maxResults: int(int32)=50 # The maximum number of items to return in each list., showAvatar: bool=false # Whether the user avatar should be returned. If an invalid value is provided, the default value is used., fieldId: str # The custom field ID of the field this request is for., projectId: [str] # The ID of a project that returned users and groups must have permission to view. To include multiple projects, provide an ampersand-separated list. For example, `projectId=10000&projectId=10001`. This parameter is only used when `fieldId` is present., issueTypeId: [str] # The ID of an issue type that returned users and groups must have permission to view. To include multiple issue types, provide an ampersand-separated list. For example, `issueTypeId=10000&issueTypeId=10001`. Special values, such as `-1` (all standard issue types) and `-2` (all subtask issue types), are supported. This parameter is only used when `fieldId` is present., avatarSize: str(xsmall/xsmall@2x/xsmall@3x/small/small@2x/small@3x/medium/medium@2x/medium@3x/large/large@2x/large@3x/xlarge/xlarge@2x/xlarge@3x/xxlarge/xxlarge@2x/xxlarge@3x/xxxlarge/xxxlarge@2x/xxxlarge@3x)=xsmall # The size of the avatar to return. If an invalid value is provided, the default value is used., caseInsensitive: bool=false # Whether the search for groups should be case insensitive., excludeConnectAddons: bool=false # Whether Connect app users and groups should be excluded from the search results. If an invalid value is provided, the default value is used.}\n@returns(200) {groups: map{groups: [map], header: str, total: int(int32)}, users: map{header: str, total: int(int32), users: [map]}} # Returned if the request is successful.\n@errors {400: Returned if the query parameter is not provided., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 429: Returned if the rate limit is exceeded. User search endpoints share a collective rate limit for the tenant, in addition to Jira's normal rate limiting you may receive a rate limit for user search. Please respect the Retry-After header.}\n\n@endpoint GET /rest/api/3/instance/license\n@desc Get license\n@returns(200) {applications: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/issue\n@desc Create issue\n@optional {updateHistory: bool=false # Whether the project in which the issue is created is added to the user's **Recently viewed** project list, as shown under **Projects** in Jira. When provided, the issue type and request type are added to the user's history for a project. These values are then used to provide defaults on the issue create screen., fields: map # List of issue screen fields to update, specifying the sub-field to update and its value for each field. This field provides a straightforward option when setting a sub-field. When multiple sub-fields or other operations are required, use `update`. Fields included in here cannot be included in `update`., historyMetadata: any # Additional issue history details., properties: [map{key: str, value: any}] # Details of issue properties to be add or update., transition: any # Details of a transition. Required when performing a transition, optional when creating or editing an issue., update: map # A Map containing the field field name and a list of operations to perform on the issue screen field. Note that fields included in here cannot be included in `fields`.}\n@returns(201) {id: str, key: str, self: str, transition: any, watchers: any} # Returned if the request is successful.\n@errors {400: Returned if the request:   *  is missing required fields.  *  contains invalid field values.  *  contains fields that cannot be set for the issue type.  *  is by a user who does not have the necessary permission.  *  is to create a subtype in a project different that of the parent issue.  *  is for a subtask when the option to create subtasks is disabled.  *  is invalid for any other reason., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 422: Returned if a configuration problem prevents the creation of the issue.}\n@example_request {\"fields\":{\"assignee\":{\"id\":\"5b109f2e9729b51b54dc274d\"},\"components\":[{\"id\":\"10000\"}],\"customfield_10000\":\"09/Jun/19\",\"customfield_20000\":\"06/Jul/19 3:25 PM\",\"customfield_30000\":[\"10000\",\"10002\"],\"customfield_40000\":{\"content\":[{\"content\":[{\"text\":\"Occurs on all orders\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"customfield_50000\":{\"content\":[{\"content\":[{\"text\":\"Could impact day-to-day work.\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"customfield_60000\":\"jira-software-users\",\"customfield_70000\":[\"jira-administrators\",\"jira-software-users\"],\"customfield_80000\":{\"value\":\"red\"},\"description\":{\"content\":[{\"content\":[{\"text\":\"Order entry fails when selecting supplier.\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"duedate\":\"2019-05-11\",\"environment\":{\"content\":[{\"content\":[{\"text\":\"UAT\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"fixVersions\":[{\"id\":\"10001\"}],\"issuetype\":{\"id\":\"10000\"},\"labels\":[\"bugfix\",\"blitz_test\"],\"parent\":{\"key\":\"PROJ-123\"},\"priority\":{\"id\":\"20000\"},\"project\":{\"id\":\"10000\"},\"reporter\":{\"id\":\"5b10a2844c20165700ede21g\"},\"security\":{\"id\":\"10000\"},\"summary\":\"Main order flow broken\",\"timetracking\":{\"originalEstimate\":\"10\",\"remainingEstimate\":\"5\"},\"versions\":[{\"id\":\"10000\"}]},\"update\":{}}\n\n@endpoint POST /rest/api/3/issue/archive\n@desc Archive issue(s) by JQL\n@optional {jql: str}\n@returns(202) Returns the URL to check the status of the submitted request.\n@errors {400: Returned if no issues were archived due to a bad request, for example an invalid JQL query., 401: Returned if no issues were archived because the provided authentication credentials are either missing or invalid., 403: Returned if no issues were archived because the user lacks the required Jira admin or site admin permissions., 412: Returned if a request to archive issue(s) is already running.}\n@example_request {\"jql\":\"project = FOO AND updated < -2y\"}\n\n@endpoint PUT /rest/api/3/issue/archive\n@desc Archive issue(s) by issue ID/key\n@optional {issueIdsOrKeys: [str]}\n@returns(200) {errors: map{issueIsSubtask: map{count: int(int64), issueIdsOrKeys: [str], message: str}, issuesInArchivedProjects: map{count: int(int64), issueIdsOrKeys: [str], message: str}, issuesInUnlicensedProjects: map{count: int(int64), issueIdsOrKeys: [str], message: str}, issuesNotFound: map{count: int(int64), issueIdsOrKeys: [str], message: str}, userDoesNotHavePermission: map{count: int(int64), issueIdsOrKeys: [str], message: str}}, numberOfIssuesUpdated: int(int64)} # Returned if there is at least one valid issue to archive in the request. The return message will include the count of archived issues and subtasks, as well as error details for issues which failed to get archived.\n@errors {400: Returned if none of the issues in the request can be archived. Possible reasons:   *  the issues weren't found  *  the issues are subtasks  *  the issues belong to unlicensed projects  *  the issues belong to archived projects, 401: Returned if no issues were archived because the provided authentication credentials are either missing or invalid., 403: Returned if no issues were archived because the user lacks the required Jira admin or site admin permissions., 412: Returned if one or more issues were successfully archived, but the operation was incomplete because the number of issue IDs or keys provided exceeds 1000.}\n@example_request {\"issueIdsOrKeys\":[\"PR-1\",\"1001\",\"PROJECT-2\"]}\n\n@endpoint POST /rest/api/3/issue/bulk\n@desc Bulk create issue\n@optional {issueUpdates: [map{fields: map, historyMetadata: any, properties: [map], transition: any, update: map}]}\n@returns(201) {errors: [map], issues: [map]} # Returned if any of the issue or subtask creation requests were successful. A request may be unsuccessful when it:   *  is missing required fields.  *  contains invalid field values.  *  contains fields that cannot be set for the issue type.  *  is by a user who does not have the necessary permission.  *  is to create a subtype in a project different that of the parent issue.  *  is for a subtask when the option to create subtasks is disabled.  *  is invalid for any other reason.\n@errors {400: Returned if all requests are invalid. Requests may be unsuccessful when they:   *  are missing required fields.  *  contain invalid field values.  *  contain fields that cannot be set for the issue type.  *  are by a user who does not have the necessary permission.  *  are to create a subtype in a project different that of the parent issue.  *  is for a subtask when the option to create subtasks is disabled.  *  are invalid for any other reason., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"issueUpdates\":[{\"fields\":{\"assignee\":{\"id\":\"5b109f2e9729b51b54dc274d\"},\"components\":[{\"id\":\"10000\"}],\"customfield_10000\":\"09/Jun/19\",\"customfield_20000\":\"06/Jul/19 3:25 PM\",\"customfield_30000\":[\"10000\",\"10002\"],\"customfield_40000\":{\"content\":[{\"content\":[{\"text\":\"Occurs on all orders\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"customfield_50000\":{\"content\":[{\"content\":[{\"text\":\"Could impact day-to-day work.\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"customfield_60000\":\"jira-software-users\",\"customfield_70000\":[\"jira-administrators\",\"jira-software-users\"],\"customfield_80000\":{\"value\":\"red\"},\"description\":{\"content\":[{\"content\":[{\"text\":\"Order entry fails when selecting supplier.\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"duedate\":\"2011-03-11\",\"environment\":{\"content\":[{\"content\":[{\"text\":\"UAT\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"fixVersions\":[{\"id\":\"10001\"}],\"issuetype\":{\"id\":\"10000\"},\"labels\":[\"bugfix\",\"blitz_test\"],\"priority\":{\"id\":\"20000\"},\"project\":{\"id\":\"10000\"},\"reporter\":{\"id\":\"5b10a2844c20165700ede21g\"},\"security\":{\"id\":\"10000\"},\"summary\":\"Main order flow broken\",\"timetracking\":{\"originalEstimate\":\"10\",\"remainingEstimate\":\"5\"},\"versions\":[{\"id\":\"10000\"}]},\"update\":{\"worklog\":[{\"add\":{\"started\":\"2019-07-05T11:05:00.000+0000\",\"timeSpent\":\"60m\"}}]}},{\"fields\":{\"assignee\":{\"id\":\"5b109f2e9729b51b54dc274d\"},\"components\":[{\"id\":\"10000\"}],\"customfield_10000\":\"09/Jun/19\",\"customfield_20000\":\"06/Jul/19 3:25 PM\",\"customfield_30000\":[\"10000\",\"10002\"],\"customfield_40000\":{\"content\":[{\"content\":[{\"text\":\"Occurs on all orders\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"customfield_50000\":{\"content\":[{\"content\":[{\"text\":\"Could impact day-to-day work.\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"customfield_60000\":\"jira-software-users\",\"customfield_70000\":[\"jira-administrators\",\"jira-software-users\"],\"customfield_80000\":{\"value\":\"red\"},\"description\":{\"content\":[{\"content\":[{\"text\":\"Order remains pending after approved.\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"duedate\":\"2019-04-16\",\"environment\":{\"content\":[{\"content\":[{\"text\":\"UAT\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"fixVersions\":[{\"id\":\"10001\"}],\"issuetype\":{\"id\":\"10000\"},\"labels\":[\"new_release\"],\"priority\":{\"id\":\"20000\"},\"project\":{\"id\":\"1000\"},\"reporter\":{\"id\":\"5b10a2844c20165700ede21g\"},\"security\":{\"id\":\"10000\"},\"summary\":\"Order stuck in pending\",\"timetracking\":{\"originalEstimate\":\"15\",\"remainingEstimate\":\"5\"},\"versions\":[{\"id\":\"10000\"}]},\"update\":{}}]}\n\n@endpoint POST /rest/api/3/issue/bulkfetch\n@desc Bulk fetch issues\n@required {issueIdsOrKeys: [str] # An array of issue IDs or issue keys to fetch. You can mix issue IDs and keys in the same query.}\n@optional {expand: [str] # Use [expand](#expansion) to include additional information about issues in the response. Note that, unlike the majority of instances where `expand` is specified, `expand` is defined as a list of values. The expand options are:   *  `renderedFields` Returns field values rendered in HTML format.  *  `names` Returns the display name of each field.  *  `schema` Returns the schema describing a field type.  *  `transitions` Returns all possible transitions for the issue.  *  `operations` Returns all possible operations for the issue.  *  `editmeta` Returns information about how each field can be edited.  *  `changelog` Returns a list of recent updates to an issue, sorted by date, starting from the most recent. This returns a maximum of 40 changelogs. If you require more, please refer to [Bulk fetch changelogs](#api-rest-api-3-changelog-bulkfetch-post).  *  `versionedRepresentations` Instead of `fields`, returns `versionedRepresentations` a JSON array containing each version of a field's value, with the highest numbered item representing the most recent version., fields: [str] # A list of fields to return for each issue, use it to retrieve a subset of fields. This parameter accepts a comma-separated list. Expand options include:   *  `*all` Returns all fields.  *  `*navigable` Returns navigable fields.  *  Any issue field, prefixed with a minus to exclude.  The default is `*navigable`.  Examples:   *  `summary,comment` Returns the summary and comments fields only.  *  `-description` Returns all navigable (default) fields except description.  *  `*all,-comment` Returns all fields except comments.  Multiple `fields` parameters can be included in a request.  Note: All navigable fields are returned by default. This differs from [GET issue](#api-rest-api-3-issue-issueIdOrKey-get) where the default is all fields., fieldsByKeys: bool # Reference fields by their key (rather than ID). The default is `false`., properties: [str] # A list of issue property keys of issue properties to be included in the results. A maximum of 5 issue property keys can be specified.}\n@returns(200) {issueErrors: [map], issues: [map]} # Returned if the request is successful. A response may contain both successful issues and issue errors.\n@errors {400: Returned if no issue IDs/keys were present, or more than 100 issue IDs/keys were requested., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"expand\":[\"names\"],\"fields\":[\"summary\",\"project\",\"assignee\"],\"fieldsByKeys\":false,\"issueIdsOrKeys\":[\"EX-1\",\"EX-2\",\"10005\"],\"properties\":[]}\n\n@endpoint GET /rest/api/3/issue/createmeta\n@desc Get create issue metadata\n@optional {projectIds: [str] # List of project IDs. This parameter accepts a comma-separated list. Multiple project IDs can also be provided using an ampersand-separated list. For example, `projectIds=10000,10001&projectIds=10020,10021`. This parameter may be provided with `projectKeys`., projectKeys: [str] # List of project keys. This parameter accepts a comma-separated list. Multiple project keys can also be provided using an ampersand-separated list. For example, `projectKeys=proj1,proj2&projectKeys=proj3`. This parameter may be provided with `projectIds`., issuetypeIds: [str] # List of issue type IDs. This parameter accepts a comma-separated list. Multiple issue type IDs can also be provided using an ampersand-separated list. For example, `issuetypeIds=10000,10001&issuetypeIds=10020,10021`. This parameter may be provided with `issuetypeNames`., issuetypeNames: [str] # List of issue type names. This parameter accepts a comma-separated list. Multiple issue type names can also be provided using an ampersand-separated list. For example, `issuetypeNames=name1,name2&issuetypeNames=name3`. This parameter may be provided with `issuetypeIds`., expand: str # Use [expand](#expansion) to include additional information about issue metadata in the response. This parameter accepts `projects.issuetypes.fields`, which returns information about the fields in the issue creation screen for each issue type. Fields hidden from the screen are not returned. Use the information to populate the `fields` and `update` fields in [Create issue](#api-rest-api-3-issue-post) and [Create issues](#api-rest-api-3-issue-bulk-post).}\n@returns(200) {expand: str, projects: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/issue/createmeta/{projectIdOrKey}/issuetypes\n@desc Get create metadata issue types for a project\n@required {projectIdOrKey: str # The ID or key of the project.}\n@optional {startAt: int(int32)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {createMetaIssueType: [map], issueTypes: [map], maxResults: int(int32), startAt: int(int64), total: int(int64)} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/issue/createmeta/{projectIdOrKey}/issuetypes/{issueTypeId}\n@desc Get create field metadata for a project and issue type id\n@required {projectIdOrKey: str # The ID or key of the project., issueTypeId: str # The issuetype ID.}\n@optional {startAt: int(int32)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {fields: [map], maxResults: int(int32), results: [map], startAt: int(int64), total: int(int64)} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/issue/limit/report\n@desc Get issue limit report\n@optional {isReturningKeys: bool=false # Return issue keys instead of issue ids in the response.  Usage: Add `?isReturningKeys=true` to the end of the path to request issue keys.}\n@returns(200) {issuesApproachingLimit: map, issuesBreachingLimit: map, limits: map} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to complete this request.}\n\n@endpoint GET /rest/api/3/issue/picker\n@desc Get issue picker suggestions\n@optional {query: str # A string to match against text fields in the issue such as title, description, or comments., currentJQL: str # A JQL query defining a list of issues to search for the query term. Note that `username` and `userkey` cannot be used as search terms for this parameter, due to privacy reasons. Use `accountId` instead., currentIssueKey: str # The key of an issue to exclude from search results. For example, the issue the user is viewing when they perform this query., currentProjectId: str # The ID of a project that suggested issues must belong to., showSubTasks: bool # Indicate whether to include subtasks in the suggestions list., showSubTaskParent: bool # When `currentIssueKey` is a subtask, whether to include the parent issue in the suggestions if it matches the query.}\n@returns(200) {sections: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/issue/properties\n@desc Bulk set issues properties by list\n@optional {entitiesIds: [int(int64)] # A list of entity property IDs., properties: map # A list of entity property keys and values.}\n@errors {303: Returned if the operation is successful., 400: Return if the request is invalid or the user does not have the necessary permission., 401: Returned if the authentication credentials are incorrect.}\n\n@endpoint POST /rest/api/3/issue/properties/multi\n@desc Bulk set issue properties by issue\n@optional {issues: [map{issueID: int(int64), properties: map}] # A list of issue IDs and their respective properties.}\n@errors {303: Returned if the operation is successful., 400: Return if the request is invalid., 401: Returned if the authentication credentials are incorrect., 403: Return if the user does not have the necessary permission.}\n@example_request {\"issues\":[{\"issueID\":1000,\"properties\":{\"myProperty\":{\"owner\":\"admin\",\"weight\":100}}},{\"issueID\":1001,\"properties\":{\"myOtherProperty\":{\"cost\":150,\"transportation\":\"car\"}}}]}\n\n@endpoint DELETE /rest/api/3/issue/properties/{propertyKey}\n@desc Bulk delete issue property\n@required {propertyKey: str # The key of the property.}\n@optional {currentValue: any # The value of properties to perform the bulk operation on., entityIds: [int(int64)] # List of issues to perform the bulk delete operation on.}\n@errors {303: Returned if the request is successful., 400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"currentValue\":\"deprecated value\",\"entityIds\":[10100,100010]}\n\n@endpoint PUT /rest/api/3/issue/properties/{propertyKey}\n@desc Bulk set issue property\n@required {propertyKey: str # The key of the property. The maximum length is 255 characters.}\n@optional {expression: str # EXPERIMENTAL. The Jira expression to calculate the value of the property. The value of the expression must be an object that can be converted to JSON, such as a number, boolean, string, list, or map. The context variables available to the expression are `issue` and `user`. Issues for which the expression returns a value whose JSON representation is longer than 32768 characters are ignored., filter: any # The bulk operation filter., value: any # The value of the property. The value must be a [valid](https://tools.ietf.org/html/rfc4627), non-empty JSON blob. The maximum length is 32768 characters.}\n@errors {303: Returned if the request is successful., 400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"filter\":{\"currentValue\":{\"owner\":\"admin\",\"weight\":50},\"entityIds\":[10100,100010],\"hasProperty\":true},\"value\":{\"owner\":\"admin\",\"weight\":100}}\n\n@endpoint PUT /rest/api/3/issue/unarchive\n@desc Unarchive issue(s) by issue keys/ID\n@optional {issueIdsOrKeys: [str]}\n@returns(200) {errors: map{issueIsSubtask: map{count: int(int64), issueIdsOrKeys: [str], message: str}, issuesInArchivedProjects: map{count: int(int64), issueIdsOrKeys: [str], message: str}, issuesInUnlicensedProjects: map{count: int(int64), issueIdsOrKeys: [str], message: str}, issuesNotFound: map{count: int(int64), issueIdsOrKeys: [str], message: str}, userDoesNotHavePermission: map{count: int(int64), issueIdsOrKeys: [str], message: str}}, numberOfIssuesUpdated: int(int64)} # Returned if there is at least one valid issue to unarchive in the request. It will return the count of unarchived issues, which also includes the count of the subtasks unarchived, and it will show the detailed errors for those issues which are not unarchived.\n@errors {400: Returned if none of the issues in the request are eligible to be unarchived. Possible reasons:   *  the issues weren't found  *  the issues are subtasks  *  the issues belong to archived projects, 401: Returned if no issues were unarchived because the provided authentication credentials are either missing or invalid., 403: Returned if no issues were unarchived because the user lacks the required Jira admin or site admin permissions., 412: Returned if one or more issues were successfully unarchived, but the operation was incomplete because the number of issue IDs or keys provided exceeds 1000.}\n@example_request {\"issueIdsOrKeys\":[\"PR-1\",\"1001\",\"PROJECT-2\"]}\n\n@endpoint POST /rest/api/3/issue/watching\n@desc Get is watching issue bulk\n@required {issueIds: [str] # The list of issue IDs.}\n@returns(200) {issuesIsWatching: map} # Returned if the request is successful\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"issueIds\":[\"10001\",\"10002\",\"10005\"]}\n\n@endpoint DELETE /rest/api/3/issue/{issueIdOrKey}\n@desc Delete issue\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {deleteSubtasks: str(true/false)=false # Whether the issue's subtasks are deleted when the issue is deleted.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the issue has subtasks and `deleteSubtasks` is not set to *true*., 401: Returned if the authentication credentials are incorrect., 403: Returned if the user does not have permission to delete the issue., 404: Returned if the issue is not found or the user does not have permission to view the issue.}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}\n@desc Get issue\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {fields: [str] # A list of fields to return for the issue. This parameter accepts a comma-separated list. Use it to retrieve a subset of fields. Allowed values:   *  `*all` Returns all fields.  *  `*navigable` Returns navigable fields.  *  Any issue field, prefixed with a minus to exclude.  Examples:   *  `summary,comment` Returns only the summary and comments fields.  *  `-description` Returns all (default) fields except description.  *  `*navigable,-comment` Returns all navigable fields except comment.  This parameter may be specified multiple times. For example, `fields=field1,field2& fields=field3`.  Note: All fields are returned by default. This differs from [Search for issues using JQL (GET)](#api-rest-api-3-search-get) and [Search for issues using JQL (POST)](#api-rest-api-3-search-post) where the default is all navigable fields., fieldsByKeys: bool=false # Whether fields in `fields` are referenced by keys rather than IDs. This parameter is useful where fields have been added by a connect app and a field's key may differ from its ID., expand: str # Use [expand](#expansion) to include additional information about the issues in the response. This parameter accepts a comma-separated list. Expand options include:   *  `renderedFields` Returns field values rendered in HTML format.  *  `names` Returns the display name of each field.  *  `schema` Returns the schema describing a field type.  *  `transitions` Returns all possible transitions for the issue.  *  `editmeta` Returns information about how each field can be edited.  *  `changelog` Returns a list of recent updates to an issue, sorted by date, starting from the most recent.  *  `versionedRepresentations` Returns a JSON array for each version of a field's value, with the highest number representing the most recent version. Note: When included in the request, the `fields` parameter is ignored., properties: [str] # A list of issue properties to return for the issue. This parameter accepts a comma-separated list. Allowed values:   *  `*all` Returns all issue properties.  *  Any issue property key, prefixed with a minus to exclude.  Examples:   *  `*all` Returns all properties.  *  `*all,-prop1` Returns all properties except `prop1`.  *  `prop1,prop2` Returns `prop1` and `prop2` properties.  This parameter may be specified multiple times. For example, `properties=prop1,prop2& properties=prop3`., updateHistory: bool=false # Whether the project in which the issue is created is added to the user's **Recently viewed** project list, as shown under **Projects** in Jira. This also populates the [JQL issues search](#api-rest-api-3-search-get) `lastViewed` field., failFast: bool=false # Whether to fail the request quickly in case of an error while loading fields for an issue. For `failFast=true`, if one field fails, the entire operation fails. For `failFast=false`, the operation will continue even if a field fails. It will return a valid response, but without values for the failed field(s).}\n@returns(200) {changelog: any, editmeta: any, expand: str, fields: map, fieldsToInclude: map{actuallyIncluded: [str], excluded: [str], included: [str]}, id: str, key: str, names: map, operations: any, properties: map, renderedFields: map, schema: map, self: str(uri), transitions: [map], versionedRepresentations: map} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue is not found or the user does not have permission to view it.}\n\n@endpoint PUT /rest/api/3/issue/{issueIdOrKey}\n@desc Edit issue\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {notifyUsers: bool=true # Whether a notification email about the issue update is sent to all watchers. To disable the notification, administer Jira or administer project permissions are required. If the user doesn't have the necessary permission the request is ignored., overrideScreenSecurity: bool=false # Whether screen security is overridden to enable hidden fields to be edited. Available to Connect and Forge app users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) and Forge apps acting on behalf of users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)., overrideEditableFlag: bool=false # Whether screen security is overridden to enable uneditable fields to be edited. Available to Connect and Forge app users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) and Forge apps acting on behalf of users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)., returnIssue: bool=false # Whether the response should contain the issue with fields edited in this request. The returned issue will have the same format as in the [Get issue API](#api-rest-api-3-issue-issueidorkey-get)., expand: str= # The Get issue API expand parameter to use in the response if the `returnIssue` parameter is `true`., fields: map # List of issue screen fields to update, specifying the sub-field to update and its value for each field. This field provides a straightforward option when setting a sub-field. When multiple sub-fields or other operations are required, use `update`. Fields included in here cannot be included in `update`., historyMetadata: any # Additional issue history details., properties: [map{key: str, value: any}] # Details of issue properties to be add or update., transition: any # Details of a transition. Required when performing a transition, optional when creating or editing an issue., update: map # A Map containing the field field name and a list of operations to perform on the issue screen field. Note that fields included in here cannot be included in `fields`.}\n@returns(200) Returned if the request is successful and the `returnIssue` parameter is `true`\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if:   *  the request body is missing.  *  the user does not have the necessary permission to edit one or more fields.  *  the request includes one or more fields that are not found or are not associated with the issue's edit screen.  *  the request includes an invalid transition., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user uses `overrideScreenSecurity` or `overrideEditableFlag` but doesn't have the necessary permission., 404: Returned if the issue is not found or the user does not have permission to view it., 409: Returned if the issue could not be updated due to a conflicting update., 422: Returned if a configuration problem prevents the issue being updated.}\n@example_request {\"fields\":{\"customfield_10000\":{\"content\":[{\"content\":[{\"text\":\"Investigation underway\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"customfield_10010\":1,\"summary\":\"Completed orders still displaying in pending\"},\"historyMetadata\":{\"activityDescription\":\"Complete order processing\",\"actor\":{\"avatarUrl\":\"http://mysystem/avatar/tony.jpg\",\"displayName\":\"Tony\",\"id\":\"tony\",\"type\":\"mysystem-user\",\"url\":\"http://mysystem/users/tony\"},\"cause\":{\"id\":\"myevent\",\"type\":\"mysystem-event\"},\"description\":\"From the order testing process\",\"extraData\":{\"Iteration\":\"10a\",\"Step\":\"4\"},\"generator\":{\"id\":\"mysystem-1\",\"type\":\"mysystem-application\"},\"type\":\"myplugin:type\"},\"properties\":[{\"key\":\"key1\",\"value\":\"Order number 10784\"},{\"key\":\"key2\",\"value\":\"Order number 10923\"}],\"update\":{\"components\":[{\"set\":\"\"}],\"labels\":[{\"add\":\"triaged\"},{\"remove\":\"blocker\"}],\"summary\":[{\"set\":\"Bug in business logic\"}],\"timetracking\":[{\"edit\":{\"originalEstimate\":\"1w 1d\",\"remainingEstimate\":\"4d\"}}]}}\n\n@endpoint PUT /rest/api/3/issue/{issueIdOrKey}/assignee\n@desc Assign issue\n@required {issueIdOrKey: str # The ID or key of the issue to be assigned.}\n@optional {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. Required in requests., accountType: str(atlassian/app/customer/unknown) # The user account type. Can take the following values:   *  `atlassian` regular Atlassian user account  *  `app` system account used for Connect applications and OAuth to represent external systems  *  `customer` Jira Service Desk account representing an external service desk, active: bool # Whether the user is active., appType: str # The app type of the user account when accountType is 'app'. Can take the following values:   *  `service` Service Account  *  `agent` Rovo Agent Account  *  `unknown` Unknown app type, applicationRoles: any # The application roles the user is assigned to., avatarUrls: any # The avatars of the user., displayName: str # The display name of the user. Depending on the user’s privacy setting, this may return an alternative value., emailAddress: str # The email address of the user. Depending on the user’s privacy setting, this may be returned as null., expand: str # Expand options that include additional user details in the response., groups: any # The groups that the user belongs to., guest: bool # Whether the user is a guest., key: str # This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., locale: str # The locale of the user. Depending on the user’s privacy setting, this may be returned as null., name: str # This property is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., self: str(uri) # The URL of the user., timeZone: str # The time zone specified in the user's profile. If the user's time zone is not visible to the current user (due to user's profile setting), or if a time zone has not been set, the instance's default time zone will be returned.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if:   *  the user is not found.  *  `name`, `key`, or `accountId` is missing.  *  more than one of `name`, `key`, and `accountId` are provided., 403: Returned if the user does not have the necessary permission., 404: Returned if the issue is not found.}\n@example_request {\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\"}\n\n@endpoint POST /rest/api/3/issue/{issueIdOrKey}/attachments\n@desc Add attachment\n@required {issueIdOrKey: str # The ID or key of the issue that attachments are added to.}\n@returns(200) Returned if the request is successful.\n@errors {403: Returned if the user does not have the necessary permission., 404: Returned if any of the following is true:   *  the issue is not found.  *  the user does not have permission to view the issue., 413: Returned if any of the following is true:   *  the attachments exceed the maximum attachment size for issues.  *  more than 60 files are requested to be uploaded.  *  the per-issue limit for attachments has been breached.  See [Configuring file attachments](https://confluence.atlassian.com/x/wIXKM) for details.}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/changelog\n@desc Get changelogs\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {startAt: int(int32)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=100 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {404: Returned if the issue is not found or the user does not have permission to view it.}\n\n@endpoint POST /rest/api/3/issue/{issueIdOrKey}/changelog/list\n@desc Get changelogs by IDs\n@required {issueIdOrKey: str # The ID or key of the issue., changelogIds: [int(int64)] # The list of changelog IDs.}\n@returns(200) {histories: [map], maxResults: int(int32), startAt: int(int32), total: int(int32)} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 404: Returned if the issue is not found or the user does not have the necessary permission.}\n@example_request {\"changelogIds\":[10001,10002]}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/comment\n@desc Get comments\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=100 # The maximum number of items to return per page., orderBy: str(created/-created/+created) # [Order](#ordering) the results by a field. Accepts *created* to sort comments by their created date., expand: str # Use [expand](#expansion) to include additional information about comments in the response. This parameter accepts `renderedBody`, which returns the comment body rendered in HTML.}\n@returns(200) {comments: [map], maxResults: int(int32), startAt: int(int64), total: int(int64)} # Returned if the request is successful.\n@errors {400: Returned if `orderBy` is set to a value other than *created*., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue is not found or the user does not have permission to view it.}\n\n@endpoint POST /rest/api/3/issue/{issueIdOrKey}/comment\n@desc Add comment\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {expand: str # Use [expand](#expansion) to include additional information about comments in the response. This parameter accepts `renderedBody`, which returns the comment body rendered in HTML., author: any # The ID of the user who created the comment., body: any # The comment text in [Atlassian Document Format](https://developer.atlassian.com/cloud/jira/platform/apis/document/structure/)., created: str(date-time) # The date and time at which the comment was created., id: str # The ID of the comment., jsdAuthorCanSeeRequest: bool # Whether the comment was added from an email sent by a person who is not part of the issue. See [Allow external emails to be added as comments on issues](https://support.atlassian.com/jira-service-management-cloud/docs/allow-external-emails-to-be-added-as-comments-on-issues/)for information on setting up this feature., jsdPublic: bool # Whether the comment is visible in Jira Service Desk. Defaults to true when comments are created in the Jira Cloud Platform. This includes when the site doesn't use Jira Service Desk or the project isn't a Jira Service Desk project and, therefore, there is no Jira Service Desk for the issue to be visible on. To create a comment with its visibility in Jira Service Desk set to false, use the Jira Service Desk REST API [Create request comment](https://developer.atlassian.com/cloud/jira/service-desk/rest/#api-rest-servicedeskapi-request-issueIdOrKey-comment-post) operation., properties: [map{key: str, value: any}] # A list of comment properties. Optional on create and update., renderedBody: str # The rendered version of the comment., self: str # The URL of the comment., updateAuthor: any # The ID of the user who updated the comment last., updated: str(date-time) # The date and time at which the comment was updated last., visibility: any # The group or role to which this comment is visible. Optional on create and update.}\n@returns(201) {author: any, body: any, created: str(date-time), id: str, jsdAuthorCanSeeRequest: bool, jsdPublic: bool, properties: [map], renderedBody: str, self: str, updateAuthor: any, updated: str(date-time), visibility: any} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect., 404: Returned if the issue is not found or the user does not have permission to view it., 413: Returned if the per-issue limit has been breached for one of the following fields:   *  comments  *  attachments}\n@example_request {\"body\":{\"content\":[{\"content\":[{\"text\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eget venenatis elit. Duis eu justo eget augue iaculis fermentum. Sed semper quam laoreet nisi egestas at posuere augue semper.\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"visibility\":{\"identifier\":\"Administrators\",\"type\":\"role\",\"value\":\"Administrators\"}}\n\n@endpoint DELETE /rest/api/3/issue/{issueIdOrKey}/comment/{id}\n@desc Delete comment\n@required {issueIdOrKey: str # The ID or key of the issue., id: str # The ID of the comment.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the user does not have permission to delete the comment., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue or comment is not found or the user does not have permission to view the issue or comment., 405: Returned if an anonymous call is made to the operation.}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/comment/{id}\n@desc Get comment\n@required {issueIdOrKey: str # The ID or key of the issue., id: str # The ID of the comment.}\n@optional {expand: str # Use [expand](#expansion) to include additional information about comments in the response. This parameter accepts `renderedBody`, which returns the comment body rendered in HTML.}\n@returns(200) {author: any, body: any, created: str(date-time), id: str, jsdAuthorCanSeeRequest: bool, jsdPublic: bool, properties: [map], renderedBody: str, self: str, updateAuthor: any, updated: str(date-time), visibility: any} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue or comment is not found or the user does not have permission to view the issue or comment.}\n\n@endpoint PUT /rest/api/3/issue/{issueIdOrKey}/comment/{id}\n@desc Update comment\n@required {issueIdOrKey: str # The ID or key of the issue., id: str # The ID of the comment.}\n@optional {notifyUsers: bool=true # Whether users are notified when a comment is updated., overrideEditableFlag: bool=false # Whether screen security is overridden to enable uneditable fields to be edited. Available to Connect app users with the *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) and Forge apps acting on behalf of users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)., expand: str # Use [expand](#expansion) to include additional information about comments in the response. This parameter accepts `renderedBody`, which returns the comment body rendered in HTML., author: any # The ID of the user who created the comment., body: any # The comment text in [Atlassian Document Format](https://developer.atlassian.com/cloud/jira/platform/apis/document/structure/)., created: str(date-time) # The date and time at which the comment was created., id: str # The ID of the comment., jsdAuthorCanSeeRequest: bool # Whether the comment was added from an email sent by a person who is not part of the issue. See [Allow external emails to be added as comments on issues](https://support.atlassian.com/jira-service-management-cloud/docs/allow-external-emails-to-be-added-as-comments-on-issues/)for information on setting up this feature., jsdPublic: bool # Whether the comment is visible in Jira Service Desk. Defaults to true when comments are created in the Jira Cloud Platform. This includes when the site doesn't use Jira Service Desk or the project isn't a Jira Service Desk project and, therefore, there is no Jira Service Desk for the issue to be visible on. To create a comment with its visibility in Jira Service Desk set to false, use the Jira Service Desk REST API [Create request comment](https://developer.atlassian.com/cloud/jira/service-desk/rest/#api-rest-servicedeskapi-request-issueIdOrKey-comment-post) operation., properties: [map{key: str, value: any}] # A list of comment properties. Optional on create and update., renderedBody: str # The rendered version of the comment., self: str # The URL of the comment., updateAuthor: any # The ID of the user who updated the comment last., updated: str(date-time) # The date and time at which the comment was updated last., visibility: any # The group or role to which this comment is visible. Optional on create and update.}\n@returns(200) {author: any, body: any, created: str(date-time), id: str, jsdAuthorCanSeeRequest: bool, jsdPublic: bool, properties: [map], renderedBody: str, self: str, updateAuthor: any, updated: str(date-time), visibility: any} # Returned if the request is successful.\n@errors {400: Returned if the user does not have permission to edit the comment or the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue or comment is not found or the user does not have permission to view the issue or comment.}\n@example_request {\"body\":{\"content\":[{\"content\":[{\"text\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eget venenatis elit. Duis eu justo eget augue iaculis fermentum. Sed semper quam laoreet nisi egestas at posuere augue semper.\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"visibility\":{\"identifier\":\"Administrators\",\"type\":\"role\",\"value\":\"Administrators\"}}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/editmeta\n@desc Get edit issue metadata\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {overrideScreenSecurity: bool=false # Whether hidden fields are returned. Available to Connect and Forge app users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) and Forge apps acting on behalf of users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)., overrideEditableFlag: bool=false # Whether non-editable fields are returned. Available to Connect and Forge app users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) and Forge apps acting on behalf of users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).}\n@returns(200) {fields: map} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user uses an override parameter but doesn't have permission to do so., 404: Returned if the issue is not found or the user does not have permission to view it.}\n\n@endpoint POST /rest/api/3/issue/{issueIdOrKey}/notify\n@desc Send notification for issue\n@required {issueIdOrKey: str # ID or key of the issue that the notification is sent for.}\n@optional {htmlBody: str # The HTML body of the email notification for the issue., restrict: any # Restricts the notifications to users with the specified permissions., subject: str # The subject of the email notification for the issue. If this is not specified, then the subject is set to the issue key and summary., textBody: str # The plain text body of the email notification for the issue., to: any # The recipients of the email notification for the issue.}\n@returns(204) Returned if the email is queued for sending.\n@errors {400: Returned if:   *  the recipient is the same as the calling user.  *  the recipient is invalid. For example, the recipient is set to the assignee, but the issue is unassigned.  *  the issueIdOrKey is of an invalid/null issue.  *  the request is invalid. For example, required fields are missing or have invalid values., 403: Returned if:   *  outgoing emails are disabled.  *  no SMTP server is configured., 404: Returned if the issue is not found.}\n@example_request {\"htmlBody\":\"The <strong>latest</strong> test results for this ticket are now available.\",\"restrict\":{\"groupIds\":[],\"groups\":[{\"name\":\"notification-group\"}],\"permissions\":[{\"key\":\"BROWSE\"}]},\"subject\":\"Latest test results\",\"textBody\":\"The latest test results for this ticket are now available.\",\"to\":{\"assignee\":false,\"groupIds\":[],\"groups\":[{\"name\":\"notification-group\"}],\"reporter\":false,\"users\":[{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\":false}],\"voters\":true,\"watchers\":true}}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/properties\n@desc Get issue property keys\n@required {issueIdOrKey: str # The key or ID of the issue.}\n@returns(200) {keys: [map]} # Returned if the request is successful.\n@errors {404: Returned if the issue is not found or the user does not have permissions to view the issue.}\n\n@endpoint DELETE /rest/api/3/issue/{issueIdOrKey}/properties/{propertyKey}\n@desc Delete issue property\n@required {issueIdOrKey: str # The key or ID of the issue., propertyKey: str # The key of the property.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue or property is not found, or the user does not have permission to edit the issue.}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/properties/{propertyKey}\n@desc Get issue property\n@required {issueIdOrKey: str # The key or ID of the issue., propertyKey: str # The key of the property.}\n@returns(200) {key: str, value: any} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue or property is not found or the user does not have permission to see the issue.}\n\n@endpoint PUT /rest/api/3/issue/{issueIdOrKey}/properties/{propertyKey}\n@desc Set issue property\n@required {issueIdOrKey: str # The ID or key of the issue., propertyKey: str # The key of the issue property. The maximum length is 255 characters.}\n@returns(200) Returned if the issue property is updated.\n@returns(201) Returned if the issue property is created.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to edit the issue., 404: Returned if the issue is not found or the user does not have permission to view the issue.}\n\n@endpoint DELETE /rest/api/3/issue/{issueIdOrKey}/remotelink\n@desc Delete remote issue link by global ID\n@required {issueIdOrKey: str # The ID or key of the issue., globalId: str # The global ID of a remote issue link.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if a global ID isn't provided., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to link issues., 404: Returned if the issue or remote issue link is not found or the user does not have permission to view the issue.}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/remotelink\n@desc Get remote issue links\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {globalId: str # The global ID of the remote issue link.}\n@returns(200) Returned if the request is successful. A single RemoteIssueLink will be returned when specifying `globalId`, otherwise an array of RemoteIssueLink is returned.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if issue linking is disabled., 404: Returned if the issue or remote issue link is not found or the user does not have permission to view the issue., 413: Returned if the per-issue limit for remote links has been breached.}\n\n@endpoint POST /rest/api/3/issue/{issueIdOrKey}/remotelink\n@desc Create or update remote issue link\n@required {issueIdOrKey: str # The ID or key of the issue., object: any # Details of the item linked to.}\n@optional {application: any # Details of the remote application the linked item is in. For example, trello., globalId: str # An identifier for the remote item in the remote system. For example, the global ID for a remote item in Confluence would consist of the app ID and page ID, like this: `appId=456&pageId=123`.  Setting this field enables the remote issue link details to be updated or deleted using remote system and item details as the record identifier, rather than using the record's Jira ID.  The maximum length is 255 characters., relationship: str # Description of the relationship between the issue and the linked item. If not set, the relationship description \"links to\" is used in Jira.}\n@returns(200) {id: int(int64), self: str} # Returned if the remote issue link is updated.\n@returns(201) {id: int(int64), self: str} # Returned if the remote issue link is created.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to link issues., 404: Returned if the issue is not found or the user does not have permission to view the issue.}\n@example_request {\"application\":{\"name\":\"My Acme Tracker\",\"type\":\"com.acme.tracker\"},\"globalId\":\"system=http://www.mycompany.com/support&id=1\",\"object\":{\"icon\":{\"title\":\"Support Ticket\",\"url16x16\":\"http://www.mycompany.com/support/ticket.png\"},\"status\":{\"icon\":{\"link\":\"http://www.mycompany.com/support?id=1&details=closed\",\"title\":\"Case Closed\",\"url16x16\":\"http://www.mycompany.com/support/resolved.png\"},\"resolved\":true},\"summary\":\"Customer support issue\",\"title\":\"TSTSUP-111\",\"url\":\"http://www.mycompany.com/support?id=1\"},\"relationship\":\"causes\"}\n\n@endpoint DELETE /rest/api/3/issue/{issueIdOrKey}/remotelink/{linkId}\n@desc Delete remote issue link by ID\n@required {issueIdOrKey: str # The ID or key of the issue., linkId: str # The ID of a remote issue link.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the link ID is invalid or the remote issue link does not belong to the issue., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to link issues., 404: Returned if the issue or remote issue link is not found or the user does not have permission to view the issue.}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/remotelink/{linkId}\n@desc Get remote issue link by ID\n@required {issueIdOrKey: str # The ID or key of the issue., linkId: str # The ID of the remote issue link.}\n@returns(200) {application: any, globalId: str, id: int(int64), object: any, relationship: str, self: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if the link ID is invalid or the remote issue link does not belong to the issue., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if issue linking is disabled., 404: Returned if the issue or remote issue link is not found or the user does not have permission to view the issue.}\n\n@endpoint PUT /rest/api/3/issue/{issueIdOrKey}/remotelink/{linkId}\n@desc Update remote issue link by ID\n@required {issueIdOrKey: str # The ID or key of the issue., linkId: str # The ID of the remote issue link., object: any # Details of the item linked to.}\n@optional {application: any # Details of the remote application the linked item is in. For example, trello., globalId: str # An identifier for the remote item in the remote system. For example, the global ID for a remote item in Confluence would consist of the app ID and page ID, like this: `appId=456&pageId=123`.  Setting this field enables the remote issue link details to be updated or deleted using remote system and item details as the record identifier, rather than using the record's Jira ID.  The maximum length is 255 characters., relationship: str # Description of the relationship between the issue and the linked item. If not set, the relationship description \"links to\" is used in Jira.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if:   *  the link ID is invalid.  *  the remote issue link does not belong to the issue.  *  the request body is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to link issues., 404: Returned if the issue or remote issue link is not found or the user does not have permission to view the issue.}\n@example_request {\"application\":{\"name\":\"My Acme Tracker\",\"type\":\"com.acme.tracker\"},\"globalId\":\"system=http://www.mycompany.com/support&id=1\",\"object\":{\"icon\":{\"title\":\"Support Ticket\",\"url16x16\":\"http://www.mycompany.com/support/ticket.png\"},\"status\":{\"icon\":{\"link\":\"http://www.mycompany.com/support?id=1&details=closed\",\"title\":\"Case Closed\",\"url16x16\":\"http://www.mycompany.com/support/resolved.png\"},\"resolved\":true},\"summary\":\"Customer support issue\",\"title\":\"TSTSUP-111\",\"url\":\"http://www.mycompany.com/support?id=1\"},\"relationship\":\"causes\"}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/transitions\n@desc Get transitions\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {expand: str # Use [expand](#expansion) to include additional information about transitions in the response. This parameter accepts `transitions.fields`, which returns information about the fields in the transition screen for each transition. Fields hidden from the screen are not returned. Use this information to populate the `fields` and `update` fields in [Transition issue](#api-rest-api-3-issue-issueIdOrKey-transitions-post)., transitionId: str # The ID of the transition., skipRemoteOnlyCondition: bool=false # Whether transitions with the condition *Hide From User Condition* are included in the response. Available to Connect and Forge app users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) and Forge apps acting on behalf of users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)., includeUnavailableTransitions: bool=false # Whether details of transitions that fail a condition are included in the response, sortByOpsBarAndStatus: bool=false # Whether the transitions are sorted by ops-bar sequence value first then category order (Todo, In Progress, Done) or only by ops-bar sequence value.}\n@returns(200) {expand: str, transitions: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue is not found or the user does not have permission to view it.}\n\n@endpoint POST /rest/api/3/issue/{issueIdOrKey}/transitions\n@desc Transition issue\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {fields: map # List of issue screen fields to update, specifying the sub-field to update and its value for each field. This field provides a straightforward option when setting a sub-field. When multiple sub-fields or other operations are required, use `update`. Fields included in here cannot be included in `update`., historyMetadata: any # Additional issue history details., properties: [map{key: str, value: any}] # Details of issue properties to be add or update., transition: any # Details of a transition. Required when performing a transition, optional when creating or editing an issue., update: map # A Map containing the field field name and a list of operations to perform on the issue screen field. Note that fields included in here cannot be included in `fields`.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if:   *  no transition is specified.  *  the user does not have permission to transition the issue.  *  a field that isn't included on the transition screen is defined in `fields` or `update`.  *  a field is specified in both `fields` and `update`.  *  the request is invalid for any other reason., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue is not found or the user does not have permission to view it., 409: Returned if the issue could not be updated due to a conflicting update., 413: Returned if a per-issue limit has been breached for one of the following fields:   *  comments  *  worklogs  *  attachments  *  issue links  *  remote issue links, 422: Returned if a configuration problem prevents the creation of the issue.}\n@example_request {\"fields\":{\"assignee\":{\"name\":\"bob\"},\"resolution\":{\"name\":\"Fixed\"}},\"historyMetadata\":{\"activityDescription\":\"Complete order processing\",\"actor\":{\"avatarUrl\":\"http://mysystem/avatar/tony.jpg\",\"displayName\":\"Tony\",\"id\":\"tony\",\"type\":\"mysystem-user\",\"url\":\"http://mysystem/users/tony\"},\"cause\":{\"id\":\"myevent\",\"type\":\"mysystem-event\"},\"description\":\"From the order testing process\",\"extraData\":{\"Iteration\":\"10a\",\"Step\":\"4\"},\"generator\":{\"id\":\"mysystem-1\",\"type\":\"mysystem-application\"},\"type\":\"myplugin:type\"},\"transition\":{\"id\":\"5\"},\"update\":{\"comment\":[{\"add\":{\"body\":{\"content\":[{\"content\":[{\"text\":\"Bug has been fixed\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1}}}]}}\n\n@endpoint DELETE /rest/api/3/issue/{issueIdOrKey}/votes\n@desc Delete vote\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  voting is disabled.  *  the user has not voted on the issue.  *  the issue is not found.}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/votes\n@desc Get votes\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@returns(200) {hasVoted: bool, self: str(uri), voters: [map], votes: int(int64)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  voting is disabled.  *  the user does not have permission to view the issue.  *  the issue is not found.}\n\n@endpoint POST /rest/api/3/issue/{issueIdOrKey}/votes\n@desc Add vote\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  voting is disabled.  *  the issue is not found.}\n\n@endpoint DELETE /rest/api/3/issue/{issueIdOrKey}/watchers\n@desc Delete watcher\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {username: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. Required.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if `accountId` is not supplied., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the permission to manage the watcher list., 404: Returned if the issue or the user is not found or the user does not have permission to view the issue.}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/watchers\n@desc Get issue watchers\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@returns(200) {isWatching: bool, self: str, watchCount: int(int32), watchers: [map]} # Returned if the request is successful\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue is not found or the user does not have permission to view it.}\n\n@endpoint POST /rest/api/3/issue/{issueIdOrKey}/watchers\n@desc Add watcher\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the permission to manage the watcher list., 404: Returned if the issue or the user is not found or the user does not have permission to view the issue.}\n\n@endpoint DELETE /rest/api/3/issue/{issueIdOrKey}/worklog\n@desc Bulk delete worklogs\n@required {issueIdOrKey: str # The ID or key of the issue., ids: [int(int64)] # A list of worklog IDs.}\n@optional {adjustEstimate: str(leave/auto)=auto # Defines how to update the issue's time estimate, the options are:   *  `leave` Leaves the estimate unchanged.  *  `auto` Reduces the estimate by the aggregate value of `timeSpent` across all worklogs being deleted., overrideEditableFlag: bool=false # Whether the work log entries should be removed to the issue even if the issue is not editable, because jira.issue.editable set to false or missing. For example, the issue is closed. Connect and Forge app users with admin permission can use this flag.}\n@returns(200) Returned if the bulk deletion request was partially successful, with a message indicating partial success.\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if:   *  `request` is not provided or is invalid  *  the user does not have permission to delete the worklogs  *  the number of worklogs being deleted exceeds the limit, 401: Returned if the authentication credentials are incorrect., 404: Returned if:   *  the issue is not found or user does not have permission to view the issue  *  at least one of the worklogs is not associated with the provided issue  *  time tracking is disabled}\n@example_request {\"ids\":[1,2,5,10]}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/worklog\n@desc Get issue worklogs\n@required {issueIdOrKey: str # The ID or key of the issue.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=5000 # The maximum number of items to return per page., startedAfter: int(int64) # The worklog start date and time, as a UNIX timestamp in milliseconds, after which worklogs are returned., startedBefore: int(int64) # The worklog start date and time, as a UNIX timestamp in milliseconds, before which worklogs are returned., expand: str= # Use [expand](#expansion) to include additional information about worklogs in the response. This parameter accepts`properties`, which returns worklog properties.}\n@returns(200) {maxResults: int(int32), startAt: int(int32), total: int(int32), worklogs: [map]} # Returned if the request is successful\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the issue is not found or the user does not have permission to view the issue.  *  `startAt` or `maxResults` has non-numeric values.  *  time tracking is disabled.}\n\n@endpoint POST /rest/api/3/issue/{issueIdOrKey}/worklog\n@desc Add worklog\n@required {issueIdOrKey: str # The ID or key the issue.}\n@optional {notifyUsers: bool=true # Whether users watching the issue are notified by email., adjustEstimate: str(new/leave/manual/auto)=auto # Defines how to update the issue's time estimate, the options are:   *  `new` Sets the estimate to a specific value, defined in `newEstimate`.  *  `leave` Leaves the estimate unchanged.  *  `manual` Reduces the estimate by amount specified in `reduceBy`.  *  `auto` Reduces the estimate by the value of `timeSpent` in the worklog., newEstimate: str # The value to set as the issue's remaining time estimate, as days (\\#d), hours (\\#h), or minutes (\\#m or \\#). For example, *2d*. Required when `adjustEstimate` is `new`., reduceBy: str # The amount to reduce the issue's remaining estimate by, as days (\\#d), hours (\\#h), or minutes (\\#m). For example, *2d*. Required when `adjustEstimate` is `manual`., expand: str= # Use [expand](#expansion) to include additional information about work logs in the response. This parameter accepts `properties`, which returns worklog properties., overrideEditableFlag: bool=false # Whether the worklog entry should be added to the issue even if the issue is not editable, because jira.issue.editable set to false or missing. For example, the issue is closed. Connect and Forge app users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) can use this flag., author: any # Details of the user who created the worklog., comment: any # A comment about the worklog in [Atlassian Document Format](https://developer.atlassian.com/cloud/jira/platform/apis/document/structure/). Optional when creating or updating a worklog., created: str(date-time) # The datetime on which the worklog was created., id: str # The ID of the worklog record., issueId: str # The ID of the issue this worklog is for., properties: [map{key: str, value: any}] # Details of properties for the worklog. Optional when creating or updating a worklog., self: str(uri) # The URL of the worklog item., started: str(date-time) # The datetime on which the worklog effort was started. Required when creating a worklog. Optional when updating a worklog., timeSpent: str # The time spent working on the issue as days (\\#d), hours (\\#h), or minutes (\\#m or \\#). Required when creating a worklog if `timeSpentSeconds` isn't provided. Optional when updating a worklog. Cannot be provided if `timeSpentSecond` is provided., timeSpentSeconds: int(int64) # The time in seconds spent working on the issue. Required when creating a worklog if `timeSpent` isn't provided. Optional when updating a worklog. Cannot be provided if `timeSpent` is provided., updateAuthor: any # Details of the user who last updated the worklog., updated: str(date-time) # The datetime on which the worklog was last updated., visibility: any # Details about any restrictions in the visibility of the worklog. Optional when creating or updating a worklog.}\n@returns(201) {author: any, comment: any, created: str(date-time), id: str, issueId: str, properties: [map], self: str(uri), started: str(date-time), timeSpent: str, timeSpentSeconds: int(int64), updateAuthor: any, updated: str(date-time), visibility: any} # Returned if the request is successful.\n@errors {400: Returned if:   *  `adjustEstimate` is set to `new` but `newEstimate` is not provided or is invalid.  *  `adjustEstimate` is set to `manual` but `reduceBy` is not provided or is invalid.  *  the user does not have permission to add the worklog.  *  the request JSON is malformed., 401: Returned if the authentication credentials are incorrect., 404: Returned if the issue is not found or the user does not have permission to view it., 413: Returned if the per-issue limit has been breached for one of the following fields:   *  worklogs  *  attachments}\n@example_request {\"comment\":{\"content\":[{\"content\":[{\"text\":\"I did some work here.\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"started\":\"2021-01-17T12:34:00.000+0000\",\"timeSpentSeconds\":12000,\"visibility\":{\"identifier\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"type\":\"group\"}}\n\n@endpoint POST /rest/api/3/issue/{issueIdOrKey}/worklog/move\n@desc Bulk move worklogs\n@required {issueIdOrKey: str}\n@optional {adjustEstimate: str(leave/auto)=auto # Defines how to update the issues' time estimate, the options are:   *  `leave` Leaves the estimate unchanged.  *  `auto` Reduces the estimate by the aggregate value of `timeSpent` across all worklogs being moved in the source issue, and increases it in the destination issue., overrideEditableFlag: bool=false # Whether the work log entry should be moved to and from the issues even if the issues are not editable, because jira.issue.editable set to false or missing. For example, the issue is closed. Connect and Forge app users with admin permission can use this flag., ids: [int(int64)] # A list of worklog IDs., issueIdOrKey: str # The issue id or key of the destination issue}\n@returns(200) Returned if the request is partially successful.\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if:   *  `request` is not provided or is invalid  *  the user does not have permission to move the worklogs  *  the number of worklogs being moved exceeds the limit  *  the total size of worklogs being moved is too large  *  any worklog contains attachments, 401: Returned if the authentication credentials are incorrect., 404: Returned if:   *  the source or destination issue is not found or the user does not have permission to view the issues  *  at least one of the worklogs is not associated with the provided issue  *  time tracking is disabled}\n@example_request {\"ids\":[1,2,5,10],\"issueIdOrKey\":\"ABC-1234\"}\n\n@endpoint DELETE /rest/api/3/issue/{issueIdOrKey}/worklog/{id}\n@desc Delete worklog\n@required {issueIdOrKey: str # The ID or key of the issue., id: str # The ID of the worklog.}\n@optional {notifyUsers: bool=true # Whether users watching the issue are notified by email., adjustEstimate: str(new/leave/manual/auto)=auto # Defines how to update the issue's time estimate, the options are:   *  `new` Sets the estimate to a specific value, defined in `newEstimate`.  *  `leave` Leaves the estimate unchanged.  *  `manual` Increases the estimate by amount specified in `increaseBy`.  *  `auto` Reduces the estimate by the value of `timeSpent` in the worklog., newEstimate: str # The value to set as the issue's remaining time estimate, as days (\\#d), hours (\\#h), or minutes (\\#m or \\#). For example, *2d*. Required when `adjustEstimate` is `new`., increaseBy: str # The amount to increase the issue's remaining estimate by, as days (\\#d), hours (\\#h), or minutes (\\#m or \\#). For example, *2d*. Required when `adjustEstimate` is `manual`., overrideEditableFlag: bool=false # Whether the work log entry should be added to the issue even if the issue is not editable, because jira.issue.editable set to false or missing. For example, the issue is closed. Connect and Forge app users with admin permission can use this flag.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if:   *  `adjustEstimate` is set to `new` but `newEstimate` is not provided or is invalid.  *  `adjustEstimate` is set to `manual` but `reduceBy` is not provided or is invalid.  *  the user does not have permission to delete the worklog., 401: Returned if the authentication credentials are incorrect., 404: Returned if:   *  the issue is not found or user does not have permission to view the issue.  *  the worklog is not found or the user does not have permission to view it.  *  time tracking is disabled.}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/worklog/{id}\n@desc Get worklog\n@required {issueIdOrKey: str # The ID or key of the issue., id: str # The ID of the worklog.}\n@optional {expand: str= # Use [expand](#expansion) to include additional information about work logs in the response. This parameter accepts  `properties`, which returns worklog properties.}\n@returns(200) {author: any, comment: any, created: str(date-time), id: str, issueId: str, properties: [map], self: str(uri), started: str(date-time), timeSpent: str, timeSpentSeconds: int(int64), updateAuthor: any, updated: str(date-time), visibility: any} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect., 404: Returned if:   *  the issue is not found or the user does not have permission to view it.  *  the worklog is not found or the user does not have permission to view it.  *  time tracking is disabled.  .}\n\n@endpoint PUT /rest/api/3/issue/{issueIdOrKey}/worklog/{id}\n@desc Update worklog\n@required {issueIdOrKey: str # The ID or key the issue., id: str # The ID of the worklog.}\n@optional {notifyUsers: bool=true # Whether users watching the issue are notified by email., adjustEstimate: str(new/leave/manual/auto)=auto # Defines how to update the issue's time estimate, the options are:   *  `new` Sets the estimate to a specific value, defined in `newEstimate`.  *  `leave` Leaves the estimate unchanged.  *  `auto` Updates the estimate by the difference between the original and updated value of `timeSpent` or `timeSpentSeconds`., newEstimate: str # The value to set as the issue's remaining time estimate, as days (\\#d), hours (\\#h), or minutes (\\#m or \\#). For example, *2d*. Required when `adjustEstimate` is `new`., expand: str= # Use [expand](#expansion) to include additional information about worklogs in the response. This parameter accepts `properties`, which returns worklog properties., overrideEditableFlag: bool=false # Whether the worklog should be added to the issue even if the issue is not editable. For example, because the issue is closed. Connect and Forge app users with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) can use this flag., author: any # Details of the user who created the worklog., comment: any # A comment about the worklog in [Atlassian Document Format](https://developer.atlassian.com/cloud/jira/platform/apis/document/structure/). Optional when creating or updating a worklog., created: str(date-time) # The datetime on which the worklog was created., id: str # The ID of the worklog record., issueId: str # The ID of the issue this worklog is for., properties: [map{key: str, value: any}] # Details of properties for the worklog. Optional when creating or updating a worklog., self: str(uri) # The URL of the worklog item., started: str(date-time) # The datetime on which the worklog effort was started. Required when creating a worklog. Optional when updating a worklog., timeSpent: str # The time spent working on the issue as days (\\#d), hours (\\#h), or minutes (\\#m or \\#). Required when creating a worklog if `timeSpentSeconds` isn't provided. Optional when updating a worklog. Cannot be provided if `timeSpentSecond` is provided., timeSpentSeconds: int(int64) # The time in seconds spent working on the issue. Required when creating a worklog if `timeSpent` isn't provided. Optional when updating a worklog. Cannot be provided if `timeSpent` is provided., updateAuthor: any # Details of the user who last updated the worklog., updated: str(date-time) # The datetime on which the worklog was last updated., visibility: any # Details about any restrictions in the visibility of the worklog. Optional when creating or updating a worklog.}\n@returns(200) {author: any, comment: any, created: str(date-time), id: str, issueId: str, properties: [map], self: str(uri), started: str(date-time), timeSpent: str, timeSpentSeconds: int(int64), updateAuthor: any, updated: str(date-time), visibility: any} # Returned if the request is successful\n@errors {400: Returned if:   *  `adjustEstimate` is set to `new` but `newEstimate` is not provided or is invalid.  *  the user does not have permission to update the worklog.  *  the request JSON is malformed., 401: Returned if the authentication credentials are incorrect., 404: Returned if:   *  the issue is not found or user does not have permission to view the issue.  *  the worklog is not found or the user does not have permission to view it.  *  time tracking is disabled.}\n@example_request {\"comment\":{\"content\":[{\"content\":[{\"text\":\"I did some work here.\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"started\":\"2021-01-17T12:34:00.000+0000\",\"timeSpentSeconds\":12000,\"visibility\":{\"identifier\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"type\":\"group\"}}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}/properties\n@desc Get worklog property keys\n@required {issueIdOrKey: str # The ID or key of the issue., worklogId: str # The ID of the worklog.}\n@returns(200) {keys: [map]} # Returned if the request is successful.\n@errors {400: Returned if the worklog ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the issue or worklog is not found.  *  the user does not have permission to view the issue or worklog.}\n\n@endpoint DELETE /rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}/properties/{propertyKey}\n@desc Delete worklog property\n@required {issueIdOrKey: str # The ID or key of the issue., worklogId: str # The ID of the worklog., propertyKey: str # The key of the property.}\n@returns(204) Returned if the worklog property is removed.\n@errors {400: Returned if the worklog key or id is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to edit the worklog., 404: Returned if:   *  the issue, worklog, or property is not found.  *  the user does not have permission to view the issue or worklog.}\n\n@endpoint GET /rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}/properties/{propertyKey}\n@desc Get worklog property\n@required {issueIdOrKey: str # The ID or key of the issue., worklogId: str # The ID of the worklog., propertyKey: str # The key of the property.}\n@returns(200) {key: str, value: any} # Returned if the request is successful.\n@errors {400: Returned if the worklog ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the issue, worklog, or property is not found.  *  the user does not have permission to view the issue or worklog.}\n\n@endpoint PUT /rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}/properties/{propertyKey}\n@desc Set worklog property\n@required {issueIdOrKey: str # The ID or key of the issue., worklogId: str # The ID of the worklog., propertyKey: str # The key of the issue property. The maximum length is 255 characters.}\n@returns(200) Returned if the worklog property is updated.\n@returns(201) Returned if the worklog property is created.\n@errors {400: Returned if the worklog ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to edit the worklog., 404: Returned if:   *  the issue or worklog is not found.  *  the user does not have permission to view the issue or worklog.}\n\n@endpoint POST /rest/api/3/issueLink\n@desc Create issue link\n@required {inwardIssue: map{fields: any, id: str, key: str, self: str(uri)} # The ID or key of a linked issue., outwardIssue: map{fields: any, id: str, key: str, self: str(uri)} # The ID or key of a linked issue., type: map{id: str, inward: str, name: str, outward: str, self: str(uri)} # This object is used as follows:   *  In the [ issueLink](#api-rest-api-3-issueLink-post) resource it defines and reports on the type of link between the issues. Find a list of issue link types with [Get issue link types](#api-rest-api-3-issueLinkType-get).  *  In the [ issueLinkType](#api-rest-api-3-issueLinkType-post) resource it defines and reports on issue link types.}\n@optional {comment: map{author: any, body: any, created: str(date-time), id: str, jsdAuthorCanSeeRequest: bool, jsdPublic: bool, properties: [map], renderedBody: str, self: str, updateAuthor: any, updated: str(date-time), visibility: any} # A comment.}\n@returns(201) Returned if the request is successful.\n@errors {400: Returned if the comment is not created. The response contains an error message indicating why the comment wasn't created. The issue link is also not created., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  issue linking is disabled.  *  the user cannot view one or both of the issues. For example, the user doesn't have *Browse project* project permission for a project containing one of the issues.  *  the user does not have *link issues* project permission.  *  either of the link issues are not found.  *  the issue link type is not found., 413: Returned if the per-issue limit for issue links has been breached.}\n@example_request {\"comment\":{\"body\":{\"content\":[{\"content\":[{\"text\":\"Linked related issue!\",\"type\":\"text\"}],\"type\":\"paragraph\"}],\"type\":\"doc\",\"version\":1},\"visibility\":{\"identifier\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"type\":\"group\",\"value\":\"jira-software-users\"}},\"inwardIssue\":{\"key\":\"HSP-1\"},\"outwardIssue\":{\"key\":\"MKY-1\"},\"type\":{\"name\":\"Duplicate\"}}\n\n@endpoint DELETE /rest/api/3/issueLink/{linkId}\n@desc Delete issue link\n@required {linkId: str # The ID of the issue link.}\n@returns(200) 200 response\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the issue link ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  issue linking is disabled.  *  the issue link is not found.  *  the user doesn't have the required permissions.}\n\n@endpoint GET /rest/api/3/issueLink/{linkId}\n@desc Get issue link\n@required {linkId: str # The ID of the issue link.}\n@returns(200) {id: str, inwardIssue: any, outwardIssue: any, self: str(uri), type: any} # Returned if the request is successful.\n@errors {400: Returned if the issue link ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  issue linking is disabled.  *  the issue link is not found.  *  the user doesn't have the required permissions.}\n\n@endpoint GET /rest/api/3/issueLinkType\n@desc Get issue link types\n@returns(200) {issueLinkTypes: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if issue linking is disabled.}\n\n@endpoint POST /rest/api/3/issueLinkType\n@desc Create issue link type\n@optional {id: str # The ID of the issue link type and is used as follows:   *  In the [ issueLink](#api-rest-api-3-issueLink-post) resource it is the type of issue link. Required on create when `name` isn't provided. Otherwise, read only.  *  In the [ issueLinkType](#api-rest-api-3-issueLinkType-post) resource it is read only., inward: str # The description of the issue link type inward link and is used as follows:   *  In the [ issueLink](#api-rest-api-3-issueLink-post) resource it is read only.  *  In the [ issueLinkType](#api-rest-api-3-issueLinkType-post) resource it is required on create and optional on update. Otherwise, read only., name: str # The name of the issue link type and is used as follows:   *  In the [ issueLink](#api-rest-api-3-issueLink-post) resource it is the type of issue link. Required on create when `id` isn't provided. Otherwise, read only.  *  In the [ issueLinkType](#api-rest-api-3-issueLinkType-post) resource it is required on create and optional on update. Otherwise, read only., outward: str # The description of the issue link type outward link and is used as follows:   *  In the [ issueLink](#api-rest-api-3-issueLink-post) resource it is read only.  *  In the [ issueLinkType](#api-rest-api-3-issueLinkType-post) resource it is required on create and optional on update. Otherwise, read only., self: str(uri) # The URL of the issue link type. Read only.}\n@returns(201) {id: str, inward: str, name: str, outward: str, self: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  issue linking is disabled.  *  the issue link type name is in use.  *  the user does not have the required permissions.}\n@example_request {\"inward\":\"Duplicated by\",\"name\":\"Duplicate\",\"outward\":\"Duplicates\"}\n\n@endpoint DELETE /rest/api/3/issueLinkType/{issueLinkTypeId}\n@desc Delete issue link type\n@required {issueLinkTypeId: str # The ID of the issue link type.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the issue link type ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  issue linking is disabled.  *  the issue link type is not found.  *  the user does not have the required permissions.}\n\n@endpoint GET /rest/api/3/issueLinkType/{issueLinkTypeId}\n@desc Get issue link type\n@required {issueLinkTypeId: str # The ID of the issue link type.}\n@returns(200) {id: str, inward: str, name: str, outward: str, self: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if the issue link type ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  issue linking is disabled.  *  the issue link type is not found.  *  the user does not have the required permissions.}\n\n@endpoint PUT /rest/api/3/issueLinkType/{issueLinkTypeId}\n@desc Update issue link type\n@required {issueLinkTypeId: str # The ID of the issue link type.}\n@optional {id: str # The ID of the issue link type and is used as follows:   *  In the [ issueLink](#api-rest-api-3-issueLink-post) resource it is the type of issue link. Required on create when `name` isn't provided. Otherwise, read only.  *  In the [ issueLinkType](#api-rest-api-3-issueLinkType-post) resource it is read only., inward: str # The description of the issue link type inward link and is used as follows:   *  In the [ issueLink](#api-rest-api-3-issueLink-post) resource it is read only.  *  In the [ issueLinkType](#api-rest-api-3-issueLinkType-post) resource it is required on create and optional on update. Otherwise, read only., name: str # The name of the issue link type and is used as follows:   *  In the [ issueLink](#api-rest-api-3-issueLink-post) resource it is the type of issue link. Required on create when `id` isn't provided. Otherwise, read only.  *  In the [ issueLinkType](#api-rest-api-3-issueLinkType-post) resource it is required on create and optional on update. Otherwise, read only., outward: str # The description of the issue link type outward link and is used as follows:   *  In the [ issueLink](#api-rest-api-3-issueLink-post) resource it is read only.  *  In the [ issueLinkType](#api-rest-api-3-issueLinkType-post) resource it is required on create and optional on update. Otherwise, read only., self: str(uri) # The URL of the issue link type. Read only.}\n@returns(200) {id: str, inward: str, name: str, outward: str, self: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if the issue link type ID or the request body are invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  issue linking is disabled.  *  the issue link type is not found.  *  the user does not have the required permissions.}\n@example_request {\"inward\":\"Duplicated by\",\"name\":\"Duplicate\",\"outward\":\"Duplicates\"}\n\n@endpoint PUT /rest/api/3/issues/archive/export\n@desc Export archived issue(s)\n@optional {archivedBy: [str] # List archived issues archived by a specified account ID., archivedDateRange: map{dateAfter!: str, dateBefore!: str} # List issues archived within a specified date range., issueTypes: [str] # List archived issues with a specified issue type ID., projects: [str] # List archived issues with a specified project key., reporters: [str] # List archived issues where the reporter is a specified account ID.}\n@returns(202) {fileUrl: str, payload: str, progress: int(int64), status: str, submittedTime: str(date-time), taskId: str} # Returns the details of your export task. You can use the [get task](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-tasks/#api-rest-api-3-task-taskid-get) API to view the progress of your request.\n@errors {400: Returned when:   *  The request is invalid, or the filters provided are incorrect  *  You requested too many issues for export. The limit is one million issues per request, 401: Returned if no issues were unarchived because the provided authentication credentials are either missing or invalid., 403: Returned if no issues were unarchived because the user lacks the required Jira admin or site admin permissions., 412: Returned if a request to export archived issues is already running.}\n@example_request {\"archivedBy\":[\"uuid-rep-001\",\"uuid-rep-002\"],\"archivedDate\":{\"dateAfter\":\"2023-01-01\",\"dateBefore\":\"2023-01-12\"},\"archivedDateRange\":{\"dateAfter\":\"2023-01-01\",\"dateBefore\":\"2023-01-12\"},\"issueTypes\":[\"10001\",\"10002\"],\"projects\":[\"FOO\",\"BAR\"],\"reporters\":[\"uuid-rep-001\",\"uuid-rep-002\"]}\n\n@endpoint GET /rest/api/3/issuesecurityschemes\n@desc Get issue security schemes\n@returns(200) {issueSecuritySchemes: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect., 403: Returned if the user does not have permission to administer issue security schemes.}\n\n@endpoint POST /rest/api/3/issuesecurityschemes\n@desc Create issue security scheme\n@required {name: str # The name of the issue security scheme. Must be unique (case-insensitive).}\n@optional {description: str # The description of the issue security scheme., levels: [map{description: str, isDefault: bool, members: [map], name!: str}] # The list of scheme levels which should be added to the security scheme.}\n@returns(201) {id: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission.}\n@example_request {\"description\":\"Newly created issue security scheme\",\"levels\":[{\"description\":\"Newly created level\",\"isDefault\":true,\"members\":[{\"parameter\":\"administrators\",\"type\":\"group\"}],\"name\":\"New level\"}],\"name\":\"New security scheme\"}\n\n@endpoint GET /rest/api/3/issuesecurityschemes/level\n@desc Get issue security levels\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page., id: [str] # The list of issue security scheme level IDs. To include multiple issue security levels, separate IDs with an ampersand: `id=10000&id=10001`., schemeId: [str] # The list of issue security scheme IDs. To include multiple issue security schemes, separate IDs with an ampersand: `schemeId=10000&schemeId=10001`., onlyDefault: bool=false # When set to true, returns multiple default levels for each security scheme containing a default. If you provide scheme and level IDs not associated with the default, returns an empty page. The default value is false.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission.}\n\n@endpoint PUT /rest/api/3/issuesecurityschemes/level/default\n@desc Set default issue security levels\n@required {defaultValues: [map{defaultLevelId!: str, issueSecuritySchemeId!: str}] # List of objects with issue security scheme ID and new default level ID.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue resolution isn't found.}\n@example_request {\"defaultValues\":[{\"defaultLevelId\":\"20000\",\"issueSecuritySchemeId\":\"10000\"},{\"defaultLevelId\":\"30000\",\"issueSecuritySchemeId\":\"12000\"}]}\n\n@endpoint GET /rest/api/3/issuesecurityschemes/level/member\n@desc Get issue security level members\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page., id: [str] # The list of issue security level member IDs. To include multiple issue security level members separate IDs with an ampersand: `id=10000&id=10001`., schemeId: [str] # The list of issue security scheme IDs. To include multiple issue security schemes separate IDs with an ampersand: `schemeId=10000&schemeId=10001`., levelId: [str] # The list of issue security level IDs. To include multiple issue security levels separate IDs with an ampersand: `levelId=10000&levelId=10001`., expand: str # Use expand to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `all` Returns all expandable information  *  `field` Returns information about the custom field granted the permission  *  `group` Returns information about the group that is granted the permission  *  `projectRole` Returns information about the project role granted the permission  *  `user` Returns information about the user who is granted the permission}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission.}\n\n@endpoint GET /rest/api/3/issuesecurityschemes/project\n@desc Get projects using issue security schemes\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page., issueSecuritySchemeId: [str] # The list of security scheme IDs to be filtered out., projectId: [str] # The list of project IDs to be filtered out.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the search criteria is invalid.If you specify the project ID parameter, 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission.}\n\n@endpoint PUT /rest/api/3/issuesecurityschemes/project\n@desc Associate security scheme to project\n@required {projectId: str # The ID of the project., schemeId: str # The ID of the issue security scheme. Providing null will clear the association with the issue security scheme.}\n@optional {oldToNewSecurityLevelMappings: [map{newLevelId!: str, oldLevelId!: str}] # The list of scheme levels which should be remapped to new levels of the issue security scheme.}\n@errors {303: Returned if the request is successful., 400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the security scheme isn't found., 409: Returned if a task to remove the issue security level is already running.}\n@example_request {\"oldToNewSecurityLevelMappings\":[{\"newLevelId\":\"30001\",\"oldLevelId\":\"30000\"}],\"projectId\":\"10000\",\"schemeId\":\"20000\"}\n\n@endpoint GET /rest/api/3/issuesecurityschemes/search\n@desc Search issue security schemes\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page., id: [str] # The list of issue security scheme IDs. To include multiple issue security scheme IDs, separate IDs with an ampersand: `id=10000&id=10001`., projectId: [str] # The list of project IDs. To include multiple project IDs, separate IDs with an ampersand: `projectId=10000&projectId=10001`.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission.}\n\n@endpoint GET /rest/api/3/issuesecurityschemes/{id}\n@desc Get issue security scheme\n@required {id: int(int64) # The ID of the issue security scheme. Use the [Get issue security schemes](#api-rest-api-3-issuesecurityschemes-get) operation to get a list of issue security scheme IDs.}\n@returns(200) {defaultSecurityLevelId: int(int64), description: str, id: int(int64), levels: [map], name: str, self: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the administrator permission and the scheme is not used in any project where the user has administrative permission.}\n\n@endpoint PUT /rest/api/3/issuesecurityschemes/{id}\n@desc Update issue security scheme\n@required {id: str # The ID of the issue security scheme.}\n@optional {description: str # The description of the security scheme scheme., name: str # The name of the security scheme scheme. Must be unique.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue security scheme isn't found.}\n@example_request {\"description\":\"My issue security scheme description\",\"name\":\"My issue security scheme name\"}\n\n@endpoint GET /rest/api/3/issuesecurityschemes/{issueSecuritySchemeId}/members\n@desc Get issue security level members by issue security scheme\n@required {issueSecuritySchemeId: int(int64) # The ID of the issue security scheme. Use the [Get issue security schemes](#api-rest-api-3-issuesecurityschemes-get) operation to get a list of issue security scheme IDs.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., issueSecurityLevelId: [str] # The list of issue security level IDs. To include multiple issue security levels separate IDs with ampersand: `issueSecurityLevelId=10000&issueSecurityLevelId=10001`., expand: str # Use expand to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `all` Returns all expandable information.  *  `field` Returns information about the custom field granted the permission.  *  `group` Returns information about the group that is granted the permission.  *  `projectRole` Returns information about the project role granted the permission.  *  `user` Returns information about the user who is granted the permission.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if no issue security level members are found.}\n\n@endpoint DELETE /rest/api/3/issuesecurityschemes/{schemeId}\n@desc Delete issue security scheme\n@required {schemeId: str # The ID of the issue security scheme.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue security scheme isn't found.}\n\n@endpoint PUT /rest/api/3/issuesecurityschemes/{schemeId}/level\n@desc Add issue security levels\n@required {schemeId: str # The ID of the issue security scheme.}\n@optional {levels: [map{description: str, isDefault: bool, members: [map], name!: str}] # The list of scheme levels which should be added to the security scheme.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the security scheme isn't found.}\n@example_request {\"levels\":[{\"description\":\"First Level Description\",\"isDefault\":true,\"members\":[{\"type\":\"reporter\"},{\"parameter\":\"jira-administrators\",\"type\":\"group\"}],\"name\":\"First Level\"}]}\n\n@endpoint DELETE /rest/api/3/issuesecurityschemes/{schemeId}/level/{levelId}\n@desc Remove issue security level\n@required {schemeId: str # The ID of the issue security scheme., levelId: str # The ID of the issue security level to remove.}\n@optional {replaceWith: str # The ID of the issue security level that will replace the currently selected level.}\n@errors {303: Returned if the request is successful., 400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue security level isn't found., 409: Returned if a task to remove the issue security level is already running.}\n\n@endpoint PUT /rest/api/3/issuesecurityschemes/{schemeId}/level/{levelId}\n@desc Update issue security level\n@required {schemeId: str # The ID of the issue security scheme level belongs to., levelId: str # The ID of the issue security level to update.}\n@optional {description: str # The description of the issue security scheme level., name: str # The name of the issue security scheme level. Must be unique.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue security level isn't found.}\n@example_request {\"description\":\"New level description\",\"name\":\"New level name\"}\n\n@endpoint PUT /rest/api/3/issuesecurityschemes/{schemeId}/level/{levelId}/member\n@desc Add issue security level members\n@required {schemeId: str # The ID of the issue security scheme., levelId: str # The ID of the issue security level.}\n@optional {members: [map{parameter: str, type!: str}] # The list of level members which should be added to the issue security scheme level.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the security scheme isn't found.}\n@example_request {\"members\":[{\"type\":\"reporter\"},{\"parameter\":\"jira-administrators\",\"type\":\"group\"}]}\n\n@endpoint DELETE /rest/api/3/issuesecurityschemes/{schemeId}/level/{levelId}/member/{memberId}\n@desc Remove member from issue security level\n@required {schemeId: str # The ID of the issue security scheme., levelId: str # The ID of the issue security level., memberId: str # The ID of the issue security level member to be removed.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the security scheme isn't found.}\n\n@endpoint GET /rest/api/3/issuetype\n@desc Get all issue types for user\n@returns(200) Returned if the request is successful.\n\n@endpoint POST /rest/api/3/issuetype\n@desc Create issue type\n@required {name: str # The unique name for the issue type. The maximum length is 60 characters.}\n@optional {description: str # The description of the issue type., hierarchyLevel: int(int32) # The hierarchy level of the issue type. Use:   *  `-1` for Subtask.  *  `0` for Base.  Defaults to `0`., type: str(subtask/standard) # Deprecated. Use `hierarchyLevel` instead. See the [deprecation notice](https://community.developer.atlassian.com/t/deprecation-of-the-epic-link-parent-link-and-other-related-fields-in-rest-apis-and-webhooks/54048) for details.  Whether the issue type is `subtype` or `standard`. Defaults to `standard`.}\n@returns(201) {avatarId: int(int64), description: str, entityId: str(uuid), hierarchyLevel: int(int32), iconUrl: str, id: str, name: str, scope: any, self: str, subtask: bool} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid because:   *  no content is sent.  *  the issue type name exceeds 60 characters.  *  a subtask issue type is requested on an instance where subtasks are disabled., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 409: Returned if the issue type name is in use.}\n@example_request {\"description\":\"description\",\"name\":\"name\",\"type\":\"standard\"}\n\n@endpoint GET /rest/api/3/issuetype/project\n@desc Get issue types for project\n@required {projectId: int(int64) # The ID of the project.}\n@optional {level: int(int32) # The level of the issue type to filter by. Use:   *  `-1` for Subtask.  *  `0` for Base.  *  `1` for Epic.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 404: Returned if:   *  the project is not found.  *  the user does not have the necessary permission.}\n\n@endpoint DELETE /rest/api/3/issuetype/{id}\n@desc Delete issue type\n@required {id: str # The ID of the issue type.}\n@optional {alternativeIssueTypeId: str # The ID of the replacement issue type.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if any issues cannot be updated with the alternative issue type., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if:   *  the issue type is in use and an alternative issue type is not specified.  *  the issue type or alternative issue type is not found., 409: Returned if the issue type is in use and:   *  also specified as the alternative issue type.  *  is a *standard* issue type and the alternative issue type is a *subtask*., 423: Returned if a resource related to deletion is locked.}\n\n@endpoint GET /rest/api/3/issuetype/{id}\n@desc Get issue type\n@required {id: str # The ID of the issue type.}\n@returns(200) {avatarId: int(int64), description: str, entityId: str(uuid), hierarchyLevel: int(int32), iconUrl: str, id: str, name: str, scope: any, self: str, subtask: bool} # Returned if the request is successful.\n@errors {400: Returned if the issue type ID is invalid., 404: Returned if:   *  the issue type is not found.  *  the user does not have the required permissions.}\n\n@endpoint PUT /rest/api/3/issuetype/{id}\n@desc Update issue type\n@required {id: str # The ID of the issue type.}\n@optional {avatarId: int(int64) # The ID of an issue type avatar. This can be obtained be obtained from the following endpoints:   *  [System issue type avatar IDs only](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-avatars/#api-rest-api-3-avatar-type-system-get)  *  [System and custom issue type avatar IDs](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-avatars/#api-rest-api-3-universal-avatar-type-type-owner-entityid-get), description: str # The description of the issue type., name: str # The unique name for the issue type. The maximum length is 60 characters.}\n@returns(200) {avatarId: int(int64), description: str, entityId: str(uuid), hierarchyLevel: int(int32), iconUrl: str, id: str, name: str, scope: any, self: str, subtask: bool} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid because:   *  no content is sent.  *  the issue type name exceeds 60 characters.  *  the avatar is not associated with this issue type., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the issue type is not found., 409: Returned if the issue type name is in use.}\n@example_request {\"avatarId\":1,\"description\":\"description\",\"name\":\"name\"}\n\n@endpoint GET /rest/api/3/issuetype/{id}/alternatives\n@desc Get alternative issue types\n@required {id: str # The ID of the issue type.}\n@returns(200) Returned if the request is successful.\n@errors {404: Returned if:   *  the issue type is not found.  *  the user does not have the required permissions.}\n\n@endpoint POST /rest/api/3/issuetype/{id}/avatar2\n@desc Load issue type avatar\n@required {id: str # The ID of the issue type., size: int(int32) # The length of each side of the crop region.}\n@optional {x: int(int32)=0 # The X coordinate of the top-left corner of the crop region., y: int(int32)=0 # The Y coordinate of the top-left corner of the crop region.}\n@returns(201) {fileName: str, id: str, isDeletable: bool, isSelected: bool, isSystemAvatar: bool, owner: str, urls: map} # Returned if the request is successful.\n@errors {400: Returned if:   *  an image isn't included in the request.  *  the image type is unsupported.  *  the crop parameters extend the crop area beyond the edge of the image.  *  `cropSize` is missing.  *  the issue type ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the issue type is not found.}\n\n@endpoint GET /rest/api/3/issuetype/{issueTypeId}/properties\n@desc Get issue type property keys\n@required {issueTypeId: str # The ID of the issue type.}\n@returns(200) {keys: [map]} # Returned if the request is successful.\n@errors {400: Returned if the issue type ID is invalid., 404: Returned if:   *  the issue type is not found.  *  the user does not have the required permissions.}\n\n@endpoint DELETE /rest/api/3/issuetype/{issueTypeId}/properties/{propertyKey}\n@desc Delete issue type property\n@required {issueTypeId: str # The ID of the issue type., propertyKey: str # The key of the property. Use [Get issue type property keys](#api-rest-api-3-issuetype-issueTypeId-properties-get) to get a list of all issue type property keys.}\n@returns(204) Returned if the issue type property is deleted.\n@errors {400: Returned if the issue type ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the issue type or property is not found.}\n\n@endpoint GET /rest/api/3/issuetype/{issueTypeId}/properties/{propertyKey}\n@desc Get issue type property\n@required {issueTypeId: str # The ID of the issue type., propertyKey: str # The key of the property. Use [Get issue type property keys](#api-rest-api-3-issuetype-issueTypeId-properties-get) to get a list of all issue type property keys.}\n@returns(200) {key: str, value: any} # Returned if the request is successful.\n@errors {400: Returned if the issue type ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue type or property is not found or the user does not have the required permissions.}\n\n@endpoint PUT /rest/api/3/issuetype/{issueTypeId}/properties/{propertyKey}\n@desc Set issue type property\n@required {issueTypeId: str # The ID of the issue type., propertyKey: str # The key of the issue type property. The maximum length is 255 characters.}\n@returns(200) Returned if the issue type property is updated.\n@returns(201) Returned if the issue type property is created.\n@errors {400: Returned if:   *  the issue type ID is invalid.  *  a property value is not provided.  *  the property value JSON content is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to modify the issue type., 404: Returned if:   *  the issue type is not found.  *  the user does not have the permission view the issue type.}\n@example_request {\"number\":5,\"string\":\"string-value\"}\n\n@endpoint GET /rest/api/3/issuetypescheme\n@desc Get all issue type schemes\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., id: [int(int64)] # The list of issue type schemes IDs. To include multiple IDs, provide an ampersand-separated list. For example, `id=10000&id=10001`., orderBy: str(name/-name/+name/id/-id/+id)=id # [Order](#ordering) the results by a field:   *  `name` Sorts by issue type scheme name.  *  `id` Sorts by issue type scheme ID., expand: str= # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `projects` For each issue type schemes, returns information about the projects the issue type scheme is assigned to.  *  `issueTypes` For each issue type schemes, returns information about the issueTypes the issue type scheme have., queryString: str= # String used to perform a case-insensitive partial match with issue type scheme name.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions.}\n\n@endpoint POST /rest/api/3/issuetypescheme\n@desc Create issue type scheme\n@required {issueTypeIds: [str] # The list of issue types IDs of the issue type scheme. At least one standard issue type ID is required., name: str # The name of the issue type scheme. The name must be unique. The maximum length is 255 characters.}\n@optional {defaultIssueTypeId: str # The ID of the default issue type of the issue type scheme. This ID must be included in `issueTypeIds`., description: str # The description of the issue type scheme. The maximum length is 4000 characters.}\n@returns(201) {issueTypeSchemeId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 409: Returned if the scheme name is used by another scheme.}\n@example_request {\"defaultIssueTypeId\":\"10002\",\"description\":\"A collection of issue types suited to use in a kanban style project.\",\"issueTypeIds\":[\"10001\",\"10002\",\"10003\"],\"name\":\"Kanban Issue Type Scheme\"}\n\n@endpoint GET /rest/api/3/issuetypescheme/mapping\n@desc Get issue type scheme items\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., issueTypeSchemeId: [int(int64)] # The list of issue type scheme IDs. To include multiple IDs, provide an ampersand-separated list. For example, `issueTypeSchemeId=10000&issueTypeSchemeId=10001`.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions.}\n\n@endpoint GET /rest/api/3/issuetypescheme/project\n@desc Get issue type schemes for projects\n@required {projectId: [int(int64)] # The list of project IDs. To include multiple project IDs, provide an ampersand-separated list. For example, `projectId=10000&projectId=10001`.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions.}\n\n@endpoint PUT /rest/api/3/issuetypescheme/project\n@desc Assign issue type scheme to project\n@required {issueTypeSchemeId: str # The ID of the issue type scheme., projectId: str # The ID of the project.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type scheme or the project is not found.}\n@example_request {\"issueTypeSchemeId\":\"10000\",\"projectId\":\"10000\"}\n\n@endpoint DELETE /rest/api/3/issuetypescheme/{issueTypeSchemeId}\n@desc Delete issue type scheme\n@required {issueTypeSchemeId: int(int64) # The ID of the issue type scheme.}\n@returns(204) Returned if the issue type scheme is deleted.\n@errors {400: Returned if the request is to delete the default issue type scheme or if the scheme is associated with a project, 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type scheme is not found.}\n\n@endpoint PUT /rest/api/3/issuetypescheme/{issueTypeSchemeId}\n@desc Update issue type scheme\n@required {issueTypeSchemeId: int(int64) # The ID of the issue type scheme.}\n@optional {defaultIssueTypeId: str # The ID of the default issue type of the issue type scheme., description: str # The description of the issue type scheme. The maximum length is 4000 characters., name: str # The name of the issue type scheme. The name must be unique. The maximum length is 255 characters.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type scheme is not found.}\n@example_request {\"defaultIssueTypeId\":\"10002\",\"description\":\"A collection of issue types suited to use in a kanban style project.\",\"name\":\"Kanban Issue Type Scheme\"}\n\n@endpoint PUT /rest/api/3/issuetypescheme/{issueTypeSchemeId}/issuetype\n@desc Add issue types to issue type scheme\n@required {issueTypeSchemeId: int(int64) # The ID of the issue type scheme., issueTypeIds: [str] # The list of issue type IDs.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type or the issue type scheme is not found.}\n@example_request {\"issueTypeIds\":[\"10000\",\"10002\",\"10003\"]}\n\n@endpoint PUT /rest/api/3/issuetypescheme/{issueTypeSchemeId}/issuetype/move\n@desc Change order of issue types\n@required {issueTypeSchemeId: int(int64) # The ID of the issue type scheme., issueTypeIds: [str] # A list of the issue type IDs to move. The order of the issue type IDs in the list is the order they are given after the move.}\n@optional {after: str # The ID of the issue type to place the moved issue types after. Required if `position` isn't provided., position: str(First/Last) # The position the issue types should be moved to. Required if `after` isn't provided.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type scheme is not found.}\n@example_request {\"after\":\"10008\",\"issueTypeIds\":[\"10001\",\"10004\",\"10002\"]}\n\n@endpoint DELETE /rest/api/3/issuetypescheme/{issueTypeSchemeId}/issuetype/{issueTypeId}\n@desc Remove issue type from issue type scheme\n@required {issueTypeSchemeId: int(int64) # The ID of the issue type scheme., issueTypeId: int(int64) # The ID of the issue type.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type scheme is missing or the issue type is not found in the issue type scheme.}\n\n@endpoint GET /rest/api/3/issuetypescreenscheme\n@desc Get issue type screen schemes\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., id: [int(int64)] # The list of issue type screen scheme IDs. To include multiple IDs, provide an ampersand-separated list. For example, `id=10000&id=10001`., queryString: str= # String used to perform a case-insensitive partial match with issue type screen scheme name., orderBy: str(name/-name/+name/id/-id/+id)=id # [Order](#ordering) the results by a field:   *  `name` Sorts by issue type screen scheme name.  *  `id` Sorts by issue type screen scheme ID., expand: str= # Use [expand](#expansion) to include additional information in the response. This parameter accepts `projects` that, for each issue type screen schemes, returns information about the projects the issue type screen scheme is assigned to.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions.}\n\n@endpoint POST /rest/api/3/issuetypescreenscheme\n@desc Create issue type screen scheme\n@required {issueTypeMappings: [map{issueTypeId!: str, screenSchemeId!: str}] # The IDs of the screen schemes for the issue type IDs and *default*. A *default* entry is required to create an issue type screen scheme, it defines the mapping for all issue types without a screen scheme., name: str # The name of the issue type screen scheme. The name must be unique. The maximum length is 255 characters.}\n@optional {description: str # The description of the issue type screen scheme. The maximum length is 255 characters.}\n@returns(201) {id: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type or screen scheme is not found., 409: Returned if the issue type is a sub-task, but sub-tasks are disabled in Jira settings.}\n@example_request {\"issueTypeMappings\":[{\"issueTypeId\":\"default\",\"screenSchemeId\":\"10001\"},{\"issueTypeId\":\"10001\",\"screenSchemeId\":\"10002\"},{\"issueTypeId\":\"10002\",\"screenSchemeId\":\"10002\"}],\"name\":\"Scrum issue type screen scheme\"}\n\n@endpoint GET /rest/api/3/issuetypescreenscheme/mapping\n@desc Get issue type screen scheme items\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., issueTypeScreenSchemeId: [int(int64)] # The list of issue type screen scheme IDs. To include multiple issue type screen schemes, separate IDs with ampersand: `issueTypeScreenSchemeId=10000&issueTypeScreenSchemeId=10001`.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions.}\n\n@endpoint GET /rest/api/3/issuetypescreenscheme/project\n@desc Get issue type screen schemes for projects\n@required {projectId: [int(int64)] # The list of project IDs. To include multiple projects, separate IDs with ampersand: `projectId=10000&projectId=10001`.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions.}\n\n@endpoint PUT /rest/api/3/issuetypescreenscheme/project\n@desc Assign issue type screen scheme to project\n@optional {issueTypeScreenSchemeId: str # The ID of the issue type screen scheme., projectId: str # The ID of the project.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if:   *  project is not found.  *  issue type screen scheme is not found.  *  the project is not a classic project., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type screen scheme or the project are missing.}\n@example_request {\"issueTypeScreenSchemeId\":\"10001\",\"projectId\":\"10002\"}\n\n@endpoint DELETE /rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}\n@desc Delete issue type screen scheme\n@required {issueTypeScreenSchemeId: str # The ID of the issue type screen scheme.}\n@returns(204) Returned if the issue type screen scheme is deleted.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type screen scheme is not found.}\n\n@endpoint PUT /rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}\n@desc Update issue type screen scheme\n@required {issueTypeScreenSchemeId: str # The ID of the issue type screen scheme.}\n@optional {description: str # The description of the issue type screen scheme. The maximum length is 255 characters., name: str # The name of the issue type screen scheme. The name must be unique. The maximum length is 255 characters.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type screen scheme is not found.}\n@example_request {\"description\":\"Screens for scrum issue types.\",\"name\":\"Scrum scheme\"}\n\n@endpoint PUT /rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}/mapping\n@desc Append mappings to issue type screen scheme\n@required {issueTypeScreenSchemeId: str # The ID of the issue type screen scheme., issueTypeMappings: [map{issueTypeId!: str, screenSchemeId!: str}] # The list of issue type to screen scheme mappings. A *default* entry cannot be specified because a default entry is added when an issue type screen scheme is created.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type screen scheme, issue type, or screen scheme is not found., 409: Returned if the issue type is a sub-task, but sub-tasks are disabled in Jira settings.}\n@example_request {\"issueTypeMappings\":[{\"issueTypeId\":\"10000\",\"screenSchemeId\":\"10001\"},{\"issueTypeId\":\"10001\",\"screenSchemeId\":\"10002\"},{\"issueTypeId\":\"10002\",\"screenSchemeId\":\"10002\"}]}\n\n@endpoint PUT /rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}/mapping/default\n@desc Update issue type screen scheme default screen scheme\n@required {issueTypeScreenSchemeId: str # The ID of the issue type screen scheme., screenSchemeId: str # The ID of the screen scheme.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type screen scheme or the screen scheme is not found, or the screen scheme isn't used in classic projects.}\n@example_request {\"screenSchemeId\":\"10010\"}\n\n@endpoint POST /rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}/mapping/remove\n@desc Remove mappings from issue type screen scheme\n@required {issueTypeScreenSchemeId: str # The ID of the issue type screen scheme., issueTypeIds: [str] # The list of issue type IDs.}\n@returns(204) Returned if the screen scheme mappings are removed from the issue type screen scheme.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the issue type screen scheme or one or more issue type mappings are not found.}\n@example_request {\"issueTypeIds\":[\"10000\",\"10001\",\"10004\"]}\n\n@endpoint GET /rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}/project\n@desc Get issue type screen scheme projects\n@required {issueTypeScreenSchemeId: int(int64) # The ID of the issue type screen scheme.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., query: str=}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions.}\n\n@endpoint GET /rest/api/3/jql/autocompletedata\n@desc Get field reference data (GET)\n@returns(200) {jqlReservedWords: [str], visibleFieldNames: [map], visibleFunctionNames: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect.}\n\n@endpoint POST /rest/api/3/jql/autocompletedata\n@desc Get field reference data (POST)\n@optional {includeCollapsedFields: bool=false # Include collapsed fields for fields that have non-unique names., projectIds: [int(int64)] # List of project IDs used to filter the visible field details returned.}\n@returns(200) {jqlReservedWords: [str], visibleFieldNames: [map], visibleFunctionNames: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect.}\n@example_request {\"includeCollapsedFields\":true,\"projectIds\":[10000,10001,10002]}\n\n@endpoint GET /rest/api/3/jql/autocompletedata/suggestions\n@desc Get field auto complete suggestions\n@optional {fieldName: str # The name of the field., fieldValue: str # The partial field item name entered by the user., predicateName: str # The name of the [ CHANGED operator predicate](https://confluence.atlassian.com/x/hQORLQ#Advancedsearching-operatorsreference-CHANGEDCHANGED) for which the suggestions are generated. The valid predicate operators are *by*, *from*, and *to*., predicateValue: str # The partial predicate item name entered by the user.}\n@returns(200) {results: [map]} # Returned if the request is successful.\n@errors {400: Returned if an invalid combination of parameters is passed., 401: Returned if the authentication credentials are incorrect.}\n\n@endpoint GET /rest/api/3/jql/function/computation\n@desc Get precomputations (apps)\n@optional {functionKey: [str] # The function key in format:   *  Forge: `ari:cloud:ecosystem::extension/[App ID]/[Environment ID]/static/[Function key from manifest]`  *  Connect: `[App key]__[Module key]`, startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=100 # The maximum number of items to return per page., orderBy: str # [Order](#ordering) the results by a field:   *  `functionKey` Sorts by the functionKey.  *  `used` Sorts by the used timestamp.  *  `created` Sorts by the created timestamp.  *  `updated` Sorts by the updated timestamp.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the request is not authenticated as the app that provided the function., 404: Returned if the function is not found.}\n\n@endpoint POST /rest/api/3/jql/function/computation\n@desc Update precomputations (apps)\n@optional {skipNotFoundPrecomputations: bool=false, values: [map{error: str, id!: str, value: str}]}\n@returns(200) {notFoundPrecomputationIDs: [str]} # 200 response\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the request is not authenticated as the app that provided the function., 404: Returned if the function is not found.}\n@example_request {\"values\":[{\"id\":\"f2ef228b-367f-4c6b-bd9d-0d0e96b5bd7b\",\"value\":\"issue in (TEST-1, TEST-2, TEST-3)\"},{\"error\":\"Error message to be displayed to the user\",\"id\":\"2a854f11-d0e1-4260-aea8-64a562a7062a\"}]}\n\n@endpoint POST /rest/api/3/jql/function/computation/search\n@desc Get precomputations by ID (apps)\n@optional {orderBy: str # [Order](#ordering) the results by a field:   *  `functionKey` Sorts by the functionKey.  *  `used` Sorts by the used timestamp.  *  `created` Sorts by the created timestamp.  *  `updated` Sorts by the updated timestamp., precomputationIDs: [str]}\n@returns(200) {notFoundPrecomputationIDs: [str], precomputations: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the request is not authenticated as the app that provided the function., 404: Returned if the function is not found.}\n@example_request {\"precomputationIDs\":[\"f2ef228b-367f-4c6b-bd9d-0d0e96b5bd7b\",\"2a854f11-d0e1-4260-aea8-64a562a7062a\"]}\n\n@endpoint POST /rest/api/3/jql/match\n@desc Check issues against JQL\n@required {issueIds: [int(int64)] # A list of issue IDs., jqls: [str] # A list of JQL queries.}\n@returns(200) {matches: [map]} # Returned if the request is successful.\n@errors {400: Returned if `jqls` exceeds the maximum number of JQL queries or `issueIds` exceeds the maximum number of issue IDs.}\n@example_request {\"issueIds\":[10001,1000,10042],\"jqls\":[\"project = FOO\",\"issuetype = Bug\",\"summary ~ \\\"some text\\\" AND project in (FOO, BAR)\"]}\n\n@endpoint POST /rest/api/3/jql/parse\n@desc Parse JQL query\n@required {validation: str(strict/warn/none)=strict # How to validate the JQL query and treat the validation results. Validation options include:   *  `strict` Returns all errors. If validation fails, the query structure is not returned.  *  `warn` Returns all errors. If validation fails but the JQL query is correctly formed, the query structure is returned.  *  `none` No validation is performed. If JQL query is correctly formed, the query structure is returned., queries: [str] # A list of queries to parse.}\n@returns(200) {queries: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect.}\n@example_request {\"queries\":[\"summary ~ test AND (labels in (urgent, blocker) OR lastCommentedBy = currentUser()) AND status CHANGED AFTER startOfMonth(-1M) ORDER BY updated DESC\",\"issue.property[\\\"spaces here\\\"].value in (\\\"Service requests\\\", Incidents)\",\"invalid query\",\"summary = test\",\"summary in test\",\"project = INVALID\",\"universe = 42\"]}\n\n@endpoint POST /rest/api/3/jql/pdcleaner\n@desc Convert user identifiers to account IDs in JQL queries\n@optional {queryStrings: [str] # A list of queries with user identifiers. Maximum of 100 queries.}\n@returns(200) {queriesWithUnknownUsers: [map], queryStrings: [str]} # Returned if the request is successful. Note that the JQL queries are returned in the same order that they were passed.\n@errors {400: Returned if at least one of the queries cannot be converted. For example, the JQL has invalid operators or invalid keywords, or the users in the query cannot be found., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"queryStrings\":[\"assignee = mia\",\"issuetype = Bug AND assignee in (mia) AND reporter in (alana) order by lastViewed DESC\"]}\n\n@endpoint POST /rest/api/3/jql/sanitize\n@desc Sanitize JQL queries\n@required {queries: [map{accountId: str, query!: str}] # The list of JQL queries to sanitize. Must contain unique values. Maximum of 20 queries.}\n@returns(200) {queries: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"queries\":[{\"query\":\"project = 'Sample project'\"},{\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\",\"query\":\"project = 'Sample project'\"},{\"accountId\":\"cda2aa1395ac195d951b3387\",\"query\":\"project = 'Sample project'\"},{\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\",\"query\":\"invalid query\"}]}\n\n@endpoint GET /rest/api/3/label\n@desc Get all labels\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=1000 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [str]} # Returned if the request is successful.\n\n@endpoint GET /rest/api/3/license/approximateLicenseCount\n@desc Get approximate license count\n@returns(200) {key: str, value: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to complete this request.}\n\n@endpoint GET /rest/api/3/license/approximateLicenseCount/product/{applicationKey}\n@desc Get approximate application license count\n@required {applicationKey: str(jira-core/jira-product-discovery/jira-software/jira-servicedesk) # The ID of the application, represents a specific version of Jira.}\n@returns(200) {key: str, value: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to complete this request.}\n\n@endpoint GET /rest/api/3/mypermissions\n@desc Get my permissions\n@optional {projectKey: str # The key of project. Ignored if `projectId` is provided., projectId: str # The ID of project., issueKey: str # The key of the issue. Ignored if `issueId` is provided., issueId: str # The ID of the issue., permissions: str # A list of permission keys. (Required) This parameter accepts a comma-separated list. To get the list of available permissions, use [Get all permissions](#api-rest-api-3-permissions-get)., projectUuid: str, projectConfigurationUuid: str, commentId: str # The ID of the comment.}\n@returns(200) {permissions: map} # Returned if the request is successful.\n@errors {400: Returned if `permissions` is empty, contains an invalid key, or does not equal BROWSE\\_PROJECTS when commentId is provided., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project or issue is not found or the user does not have permission to view the project or issue.}\n\n@endpoint DELETE /rest/api/3/mypreferences\n@desc Delete preference\n@required {key: str # The key of the preference.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the key is not provided or not found.}\n\n@endpoint GET /rest/api/3/mypreferences\n@desc Get preference\n@required {key: str # The key of the preference.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the key is not provided or not found.}\n\n@endpoint PUT /rest/api/3/mypreferences\n@desc Set preference\n@required {key: str # The key of the preference. The maximum length is 255 characters.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the key or value is not provided or invalid.}\n\n@endpoint GET /rest/api/3/mypreferences/locale\n@desc Get locale\n@returns(200) {locale: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint PUT /rest/api/3/mypreferences/locale\n@desc Set locale\n@optional {locale: str # The locale code. The Java the locale format is used: a two character language code (ISO 639), an underscore, and two letter country code (ISO 3166). For example, en\\_US represents a locale of English (United States). Required on create.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if request is invalid., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"locale\":\"en_US\"}\n\n@endpoint GET /rest/api/3/myself\n@desc Get current user\n@optional {expand: str # Use [expand](#expansion) to include additional information about user in the response. This parameter accepts a comma-separated list. Expand options include:   *  `groups` Returns all groups, including nested groups, the user belongs to.  *  `applicationRoles` Returns the application roles the user is assigned to.}\n@returns(200) {accountId: str, accountType: str, active: bool, appType: str, applicationRoles: any, avatarUrls: any, displayName: str, emailAddress: str, expand: str, groups: any, guest: bool, key: str, locale: str, name: str, self: str(uri), timeZone: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/notificationscheme\n@desc Get notification schemes paginated\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page., id: [str] # The list of notification schemes IDs to be filtered by, projectId: [str] # The list of projects IDs to be filtered by, onlyDefault: bool=false # When set to true, returns only the default notification scheme. If you provide project IDs not associated with the default, returns an empty page. The default value is false., expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `all` Returns all expandable information  *  `field` Returns information about any custom fields assigned to receive an event  *  `group` Returns information about any groups assigned to receive an event  *  `notificationSchemeEvents` Returns a list of event associations. This list is returned for all expandable information  *  `projectRole` Returns information about any project roles assigned to receive an event  *  `user` Returns information about any users assigned to receive an event}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful. Only returns notification schemes that the user has permission to access. An empty list is returned if the user lacks permission to access all notification schemes.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/notificationscheme\n@desc Create notification scheme\n@required {name: str # The name of the notification scheme. Must be unique (case-insensitive).}\n@optional {description: str # The description of the notification scheme., notificationSchemeEvents: [map{event!: any, notifications!: [map]}] # The list of notifications which should be added to the notification scheme.}\n@returns(201) {id: str} # Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission.}\n@example_request {\"description\":\"My new scheme description\",\"name\":\"My new notification scheme\",\"notificationSchemeEvents\":[{\"event\":{\"id\":\"1\"},\"notifications\":[{\"notificationType\":\"Group\",\"parameter\":\"jira-administrators\"}]}]}\n\n@endpoint GET /rest/api/3/notificationscheme/project\n@desc Get projects using notification schemes paginated\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page., notificationSchemeId: [str] # The list of notifications scheme IDs to be filtered out, projectId: [str] # The list of project IDs to be filtered out}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if search criteria are invalid, strings vs numbers for projectId, notificationSchemeId, startAt and maxResult, 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/notificationscheme/{id}\n@desc Get notification scheme\n@required {id: int(int64) # The ID of the notification scheme. Use [Get notification schemes paginated](#api-rest-api-3-notificationscheme-get) to get a list of notification scheme IDs.}\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `all` Returns all expandable information  *  `field` Returns information about any custom fields assigned to receive an event  *  `group` Returns information about any groups assigned to receive an event  *  `notificationSchemeEvents` Returns a list of event associations. This list is returned for all expandable information  *  `projectRole` Returns information about any project roles assigned to receive an event  *  `user` Returns information about any users assigned to receive an event}\n@returns(200) {description: str, expand: str, id: int(int64), name: str, notificationSchemeEvents: [map], projects: [int(int64)], scope: any, self: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the notification scheme is not found or the user does not have permission to view it.}\n\n@endpoint PUT /rest/api/3/notificationscheme/{id}\n@desc Update notification scheme\n@required {id: str # The ID of the notification scheme.}\n@optional {description: str # The description of the notification scheme., name: str # The name of the notification scheme. Must be unique.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the notification scheme isn't found.}\n@example_request {\"description\":\"My updated notification scheme description\",\"name\":\"My updated notification scheme\"}\n\n@endpoint PUT /rest/api/3/notificationscheme/{id}/notification\n@desc Add notifications to notification scheme\n@required {id: str # The ID of the notification scheme., notificationSchemeEvents: [map{event!: any, notifications!: [map]}] # The list of notifications which should be added to the notification scheme.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the notification scheme isn't found.}\n@example_request {\"notificationSchemeEvents\":[{\"event\":{\"id\":\"1\"},\"notifications\":[{\"notificationType\":\"Group\",\"parameter\":\"jira-administrators\"}]}]}\n\n@endpoint DELETE /rest/api/3/notificationscheme/{notificationSchemeId}\n@desc Delete notification scheme\n@required {notificationSchemeId: str # The ID of the notification scheme.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the notification scheme isn't found.}\n\n@endpoint DELETE /rest/api/3/notificationscheme/{notificationSchemeId}/notification/{notificationId}\n@desc Remove notification from notification scheme\n@required {notificationSchemeId: str # The ID of the notification scheme., notificationId: str # The ID of the notification.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if either the notification scheme or notification isn't found.}\n\n@endpoint GET /rest/api/3/permissions\n@desc Get all permissions\n@returns(200) {permissions: map} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint POST /rest/api/3/permissions/check\n@desc Get bulk permissions\n@optional {accountId: str # The account ID of a user., globalPermissions: [str] # Global permissions to look up., projectPermissions: [map{issues: [int(int64)], permissions!: [str], projects: [int(int64)]}] # Project permissions with associated projects and issues to look up.}\n@returns(200) {globalPermissions: [str], projectPermissions: [map]} # Returned if the request is successful.\n@errors {400: Returned if:   *  `projectPermissions` is provided without at least one project permission being provided.  *  an invalid global permission is provided in the global permissions list.  *  an invalid project permission is provided in the project permissions list.  *  more than 1000 valid project IDs or more than 1000 valid issue IDs are provided.  *  an invalid account ID is provided., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"accountId\":\"5b10a2844c20165700ede21g\",\"globalPermissions\":[\"ADMINISTER\"],\"projectPermissions\":[{\"issues\":[10010,10011,10012,10013,10014],\"permissions\":[\"EDIT_ISSUES\"],\"projects\":[10001]}]}\n\n@endpoint POST /rest/api/3/permissions/project\n@desc Get permitted projects\n@required {permissions: [str] # A list of permission keys.}\n@returns(200) {projects: [map]} # Returned if the request is successful.\n@errors {400: Returned if a project permission is not found., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/permissionscheme\n@desc Get all permission schemes\n@optional {expand: str # Use expand to include additional information in the response. This parameter accepts a comma-separated list. Note that permissions are included when you specify any value. Expand options include:   *  `all` Returns all expandable information.  *  `field` Returns information about the custom field granted the permission.  *  `group` Returns information about the group that is granted the permission.  *  `permissions` Returns all permission grants for each permission scheme.  *  `projectRole` Returns information about the project role granted the permission.  *  `user` Returns information about the user who is granted the permission.}\n@returns(200) {permissionSchemes: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/permissionscheme\n@desc Create permission scheme\n@required {name: str # The name of the permission scheme. Must be unique.}\n@optional {expand: str # Use expand to include additional information in the response. This parameter accepts a comma-separated list. Note that permissions are always included when you specify any value. Expand options include:   *  `all` Returns all expandable information.  *  `field` Returns information about the custom field granted the permission.  *  `group` Returns information about the group that is granted the permission.  *  `permissions` Returns all permission grants for each permission scheme.  *  `projectRole` Returns information about the project role granted the permission.  *  `user` Returns information about the user who is granted the permission., description: str # A description for the permission scheme., expand: str # The expand options available for the permission scheme., id: int(int64) # The ID of the permission scheme., permissions: [map{holder: any, id: int(int64), permission: str, self: str(uri)}] # The permission scheme to create or update. See [About permission schemes and grants](../api-group-permission-schemes/#about-permission-schemes-and-grants) for more information., scope: any # The scope of the permission scheme., self: str(uri) # The URL of the permission scheme.}\n@returns(201) {description: str, expand: str, id: int(int64), name: str, permissions: [map], scope: any, self: str(uri)} # Returned if the permission scheme is created.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission or the feature is not available in the Jira plan.}\n@example_request {\"description\":\"description\",\"name\":\"Example permission scheme\",\"permissions\":[{\"holder\":{\"parameter\":\"jira-core-users\",\"type\":\"group\",\"value\":\"ca85fac0-d974-40ca-a615-7af99c48d24f\"},\"permission\":\"ADMINISTER_PROJECTS\"}]}\n\n@endpoint DELETE /rest/api/3/permissionscheme/{schemeId}\n@desc Delete permission scheme\n@required {schemeId: int(int64) # The ID of the permission scheme being deleted.}\n@returns(204) Returned if the permission scheme is deleted.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the permission scheme is not found.}\n\n@endpoint GET /rest/api/3/permissionscheme/{schemeId}\n@desc Get permission scheme\n@required {schemeId: int(int64) # The ID of the permission scheme to return.}\n@optional {expand: str # Use expand to include additional information in the response. This parameter accepts a comma-separated list. Note that permissions are included when you specify any value. Expand options include:   *  `all` Returns all expandable information.  *  `field` Returns information about the custom field granted the permission.  *  `group` Returns information about the group that is granted the permission.  *  `permissions` Returns all permission grants for each permission scheme.  *  `projectRole` Returns information about the project role granted the permission.  *  `user` Returns information about the user who is granted the permission.}\n@returns(200) {description: str, expand: str, id: int(int64), name: str, permissions: [map], scope: any, self: str(uri)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the permission scheme is not found or the user does not have the necessary permission.}\n\n@endpoint PUT /rest/api/3/permissionscheme/{schemeId}\n@desc Update permission scheme\n@required {schemeId: int(int64) # The ID of the permission scheme to update., name: str # The name of the permission scheme. Must be unique.}\n@optional {expand: str # Use expand to include additional information in the response. This parameter accepts a comma-separated list. Note that permissions are always included when you specify any value. Expand options include:   *  `all` Returns all expandable information.  *  `field` Returns information about the custom field granted the permission.  *  `group` Returns information about the group that is granted the permission.  *  `permissions` Returns all permission grants for each permission scheme.  *  `projectRole` Returns information about the project role granted the permission.  *  `user` Returns information about the user who is granted the permission., description: str # A description for the permission scheme., expand: str # The expand options available for the permission scheme., id: int(int64) # The ID of the permission scheme., permissions: [map{holder: any, id: int(int64), permission: str, self: str(uri)}] # The permission scheme to create or update. See [About permission schemes and grants](../api-group-permission-schemes/#about-permission-schemes-and-grants) for more information., scope: any # The scope of the permission scheme., self: str(uri) # The URL of the permission scheme.}\n@returns(200) {description: str, expand: str, id: int(int64), name: str, permissions: [map], scope: any, self: str(uri)} # Returned if the scheme is updated.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if:   *  the user does not have the necessary permission to update permission schemes.  *  the Jira instance is Jira Core Free or Jira Software Free. Permission schemes cannot be updated on free plans., 404: Returned if the permission scheme is not found.}\n@example_request {\"description\":\"description\",\"name\":\"Example permission scheme\",\"permissions\":[{\"holder\":{\"parameter\":\"jira-core-users\",\"type\":\"group\",\"value\":\"ca85fac0-d974-40ca-a615-7af99c48d24f\"},\"permission\":\"ADMINISTER_PROJECTS\"}]}\n\n@endpoint GET /rest/api/3/permissionscheme/{schemeId}/permission\n@desc Get permission scheme grants\n@required {schemeId: int(int64) # The ID of the permission scheme.}\n@optional {expand: str # Use expand to include additional information in the response. This parameter accepts a comma-separated list. Note that permissions are always included when you specify any value. Expand options include:   *  `permissions` Returns all permission grants for each permission scheme.  *  `user` Returns information about the user who is granted the permission.  *  `group` Returns information about the group that is granted the permission.  *  `projectRole` Returns information about the project role granted the permission.  *  `field` Returns information about the custom field granted the permission.  *  `all` Returns all expandable information.}\n@returns(200) {expand: str, permissions: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the permission schemes is not found or the user does not have the necessary permission.}\n\n@endpoint POST /rest/api/3/permissionscheme/{schemeId}/permission\n@desc Create permission grant\n@required {schemeId: int(int64) # The ID of the permission scheme in which to create a new permission grant.}\n@optional {expand: str # Use expand to include additional information in the response. This parameter accepts a comma-separated list. Note that permissions are always included when you specify any value. Expand options include:   *  `permissions` Returns all permission grants for each permission scheme.  *  `user` Returns information about the user who is granted the permission.  *  `group` Returns information about the group that is granted the permission.  *  `projectRole` Returns information about the project role granted the permission.  *  `field` Returns information about the custom field granted the permission.  *  `all` Returns all expandable information., holder: any # The user or group being granted the permission. It consists of a `type`, a type-dependent `parameter` and a type-dependent `value`. See [Holder object](../api-group-permission-schemes/#holder-object) in *Get all permission schemes* for more information., id: int(int64) # The ID of the permission granted details., permission: str # The permission to grant. This permission can be one of the built-in permissions or a custom permission added by an app. See [Built-in permissions](../api-group-permission-schemes/#built-in-permissions) in *Get all permission schemes* for more information about the built-in permissions. See the [project permission](https://developer.atlassian.com/cloud/jira/platform/modules/project-permission/) and [global permission](https://developer.atlassian.com/cloud/jira/platform/modules/global-permission/) module documentation for more information about custom permissions., self: str(uri) # The URL of the permission granted details.}\n@returns(201) {holder: any, id: int(int64), permission: str, self: str(uri)} # Returned if the scheme permission is created.\n@errors {400: Returned if the value for expand is invalid or the same permission grant is present., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"holder\":{\"parameter\":\"jira-core-users\",\"type\":\"group\",\"value\":\"ca85fac0-d974-40ca-a615-7af99c48d24f\"},\"permission\":\"ADMINISTER_PROJECTS\"}\n\n@endpoint DELETE /rest/api/3/permissionscheme/{schemeId}/permission/{permissionId}\n@desc Delete permission scheme grant\n@required {schemeId: int(int64) # The ID of the permission scheme to delete the permission grant from., permissionId: int(int64) # The ID of the permission grant to delete.}\n@returns(204) Returned if the permission grant is deleted.\n@errors {400: Returned if permission grant with the provided ID is not found., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint GET /rest/api/3/permissionscheme/{schemeId}/permission/{permissionId}\n@desc Get permission scheme grant\n@required {schemeId: int(int64) # The ID of the permission scheme., permissionId: int(int64) # The ID of the permission grant.}\n@optional {expand: str # Use expand to include additional information in the response. This parameter accepts a comma-separated list. Note that permissions are always included when you specify any value. Expand options include:   *  `all` Returns all expandable information.  *  `field` Returns information about the custom field granted the permission.  *  `group` Returns information about the group that is granted the permission.  *  `permissions` Returns all permission grants for each permission scheme.  *  `projectRole` Returns information about the project role granted the permission.  *  `user` Returns information about the user who is granted the permission.}\n@returns(200) {holder: any, id: int(int64), permission: str, self: str(uri)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the permission scheme or permission grant is not found or the user does not have the necessary permission.}\n\n@endpoint GET /rest/api/3/plans/plan\n@desc Get plans paginated\n@optional {includeTrashed: bool=false # Whether to include trashed plans in the results., includeArchived: bool=false # Whether to include archived plans in the results., cursor: str= # The cursor to start from. If not provided, the first page will be returned., maxResults: int(int32)=50 # The maximum number of plans to return per page. The maximum value is 50. The default value is 50.}\n@returns(200) {cursor: str, last: bool, nextPageCursor: str, size: int(int32), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission.}\n\n@endpoint POST /rest/api/3/plans/plan\n@desc Create plan\n@required {issueSources: [map{type!: str, value!: int(int64)}] # The issue sources to include in the plan., name: str # The plan name., scheduling: any # The scheduling settings for the plan.}\n@optional {useGroupId: bool=false # Whether to accept group IDs instead of group names. Group names are deprecated., crossProjectReleases: [map{name!: str, releaseIds: [int(int64)]}] # The cross-project releases to include in the plan., customFields: [map{customFieldId!: int(int64), filter: bool}] # The custom fields for the plan., exclusionRules: any # The exclusion rules for the plan., leadAccountId: str # The account ID of the plan lead., permissions: [map{holder!: any, type!: str}] # The permissions for the plan.}\n@returns(201) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission.}\n@example_request {\"crossProjectReleases\":[{\"name\":\"AB and BC merge\",\"releaseIds\":[29,39]}],\"customFields\":[{\"customFieldId\":2335,\"filter\":true}],\"exclusionRules\":{\"issueIds\":[2,3],\"issueTypeIds\":[32,33],\"numberOfDaysToShowCompletedIssues\":50,\"releaseIds\":[42,43],\"workStatusCategoryIds\":[22,23],\"workStatusIds\":[12,13]},\"issueSources\":[{\"type\":\"Project\",\"value\":12},{\"type\":\"Board\",\"value\":462}],\"leadAccountId\":\"abc-12-rbji\",\"name\":\"ABC Quaterly plan\",\"permissions\":[{\"holder\":{\"type\":\"AccountId\",\"value\":\"234-tgj-343\"},\"type\":\"Edit\"}],\"scheduling\":{\"dependencies\":\"Sequential\",\"endDate\":{\"type\":\"DueDate\"},\"estimation\":\"Days\",\"inferredDates\":\"ReleaseDates\",\"startDate\":{\"type\":\"TargetStartDate\"}}}\n\n@endpoint GET /rest/api/3/plans/plan/{planId}\n@desc Get plan\n@required {planId: int(int64) # The ID of the plan.}\n@optional {useGroupId: bool=false # Whether to return group IDs instead of group names. Group names are deprecated.}\n@returns(200) {crossProjectReleases: [map], customFields: [map], exclusionRules: any, id: int(int64), issueSources: [map], lastSaved: str, leadAccountId: str, name: str, permissions: [map], scheduling: any, status: str} # Returned if the request is successful.\n@errors {401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan is not found.}\n\n@endpoint PUT /rest/api/3/plans/plan/{planId}\n@desc Update plan\n@required {planId: int(int64) # The ID of the plan.}\n@optional {useGroupId: bool=false # Whether to accept group IDs instead of group names. Group names are deprecated.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan is not found., 409: Returned if the plan is not active.}\n\n@endpoint PUT /rest/api/3/plans/plan/{planId}/archive\n@desc Archive plan\n@required {planId: int(int64) # The ID of the plan.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan is not found., 409: Returned if the plan is not active.}\n\n@endpoint POST /rest/api/3/plans/plan/{planId}/duplicate\n@desc Duplicate plan\n@required {planId: int(int64) # The ID of the plan., name: str # The plan name.}\n@returns(201) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan to duplicate is not found., 409: Returned if the plan to duplicate is not active.}\n@example_request {\"name\":\"Copied Plan\"}\n\n@endpoint GET /rest/api/3/plans/plan/{planId}/team\n@desc Get teams in plan paginated\n@required {planId: int(int64) # The ID of the plan.}\n@optional {cursor: str= # The cursor to start from. If not provided, the first page will be returned., maxResults: int(int32)=50 # The maximum number of plan teams to return per page. The maximum value is 50. The default value is 50.}\n@returns(200) {cursor: str, last: bool, nextPageCursor: str, size: int(int32), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan is not found.}\n\n@endpoint POST /rest/api/3/plans/plan/{planId}/team/atlassian\n@desc Add Atlassian team to plan\n@required {planId: int(int64) # The ID of the plan., id: str # The Atlassian team ID., planningStyle: str(Scrum/Kanban) # The planning style for the Atlassian team. This must be \"Scrum\" or \"Kanban\".}\n@optional {capacity: num(double) # The capacity for the Atlassian team., issueSourceId: int(int64) # The ID of the issue source for the Atlassian team., sprintLength: int(int64) # The sprint length for the Atlassian team.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan or Atlassian team is not found., 409: Returned if the plan is not active.}\n@example_request {\"capacity\":200,\"id\":\"AtlassianTeamId\",\"issueSourceId\":0,\"planningStyle\":\"Scrum\",\"sprintLength\":2}\n\n@endpoint DELETE /rest/api/3/plans/plan/{planId}/team/atlassian/{atlassianTeamId}\n@desc Remove Atlassian team from plan\n@required {planId: int(int64) # The ID of the plan., atlassianTeamId: str # The ID of the Atlassian team.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan or Atlassian team is not found, or the Atlassian team is not associated with the plan., 409: Returned if the plan is not active.}\n\n@endpoint GET /rest/api/3/plans/plan/{planId}/team/atlassian/{atlassianTeamId}\n@desc Get Atlassian team in plan\n@required {planId: int(int64) # The ID of the plan., atlassianTeamId: str # The ID of the Atlassian team.}\n@returns(200) {capacity: num(double), id: str, issueSourceId: int(int64), planningStyle: str, sprintLength: int(int64)} # Returned if the request is successful.\n@errors {401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan or Atlassian team is not found, or the Atlassian team is not associated with the plan., 409: Returned if the plan is not active.}\n\n@endpoint PUT /rest/api/3/plans/plan/{planId}/team/atlassian/{atlassianTeamId}\n@desc Update Atlassian team in plan\n@required {planId: int(int64) # The ID of the plan., atlassianTeamId: str # The ID of the Atlassian team.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan or Atlassian team is not found, or the Atlassian team is not associated with the plan., 409: Returned if the plan is not active.}\n\n@endpoint POST /rest/api/3/plans/plan/{planId}/team/planonly\n@desc Create plan-only team\n@required {planId: int(int64) # The ID of the plan., name: str # The plan-only team name., planningStyle: str(Scrum/Kanban) # The planning style for the plan-only team. This must be \"Scrum\" or \"Kanban\".}\n@optional {capacity: num(double) # The capacity for the plan-only team., issueSourceId: int(int64) # The ID of the issue source for the plan-only team., memberAccountIds: [str] # The account IDs of the plan-only team members., sprintLength: int(int64) # The sprint length for the plan-only team.}\n@returns(201) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan is not found., 409: Returned if the plan is not active.}\n@example_request {\"capacity\":200,\"issueSourceId\":0,\"memberAccountIds\":[\"member1AccountId\",\"member2AccountId\"],\"name\":\"Team1\",\"planningStyle\":\"Scrum\",\"sprintLength\":2}\n\n@endpoint DELETE /rest/api/3/plans/plan/{planId}/team/planonly/{planOnlyTeamId}\n@desc Delete plan-only team\n@required {planId: int(int64) # The ID of the plan., planOnlyTeamId: int(int64) # The ID of the plan-only team.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan or plan-only team is not found, or the plan-only team is not associated with the plan., 409: Returned if the plan is not active.}\n\n@endpoint GET /rest/api/3/plans/plan/{planId}/team/planonly/{planOnlyTeamId}\n@desc Get plan-only team\n@required {planId: int(int64) # The ID of the plan., planOnlyTeamId: int(int64) # The ID of the plan-only team.}\n@returns(200) {capacity: num(double), id: int(int64), issueSourceId: int(int64), memberAccountIds: [str], name: str, planningStyle: str, sprintLength: int(int64)} # Returned if the request is successful.\n@errors {401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan or plan-only team is not found, or the plan-only team is not associated with the plan., 409: Returned if the plan is not active.}\n\n@endpoint PUT /rest/api/3/plans/plan/{planId}/team/planonly/{planOnlyTeamId}\n@desc Update plan-only team\n@required {planId: int(int64) # The ID of the plan., planOnlyTeamId: int(int64) # The ID of the plan-only team.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan or plan-only team is not found, or the plan-only team is not associated with the plan., 409: Returned if the plan is not active.}\n\n@endpoint PUT /rest/api/3/plans/plan/{planId}/trash\n@desc Trash plan\n@required {planId: int(int64) # The ID of the plan.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the user is not logged in., 403: Returned if the site has no premium edition of Jira or if the user does not have the Administer Jira global permission., 404: Returned if the plan is not found., 409: Returned if the plan is not active.}\n\n@endpoint GET /rest/api/3/priority\n@desc Get priorities\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect.}\n\n@endpoint POST /rest/api/3/priority\n@desc Create priority\n@required {name: str # The name of the priority. Must be unique., statusColor: str # The status color of the priority in 3-digit or 6-digit hexadecimal format.}\n@optional {avatarId: int(int64) # The ID for the avatar for the priority. Either the iconUrl or avatarId must be defined, but not both. This parameter is nullable and will become mandatory once the iconUrl parameter is deprecated., description: str # The description of the priority., iconUrl: str(/images/icons/priorities/blocker.png//images/icons/priorities/critical.png//images/icons/priorities/high.png//images/icons/priorities/highest.png//images/icons/priorities/low.png//images/icons/priorities/lowest.png//images/icons/priorities/major.png//images/icons/priorities/medium.png//images/icons/priorities/minor.png//images/icons/priorities/trivial.png//images/icons/priorities/blocker_new.png//images/icons/priorities/critical_new.png//images/icons/priorities/high_new.png//images/icons/priorities/highest_new.png//images/icons/priorities/low_new.png//images/icons/priorities/lowest_new.png//images/icons/priorities/major_new.png//images/icons/priorities/medium_new.png//images/icons/priorities/minor_new.png//images/icons/priorities/trivial_new.png) # The URL of an icon for the priority. Accepted protocols are HTTP and HTTPS. Built in icons can also be used. Either the iconUrl or avatarId must be defined, but not both.}\n@returns(201) {id: str} # Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission.}\n@example_request {\"description\":\"My priority description\",\"iconUrl\":\"/images/icons/priorities/major.png\",\"name\":\"My new priority\",\"statusColor\":\"#ABCDEF\"}\n\n@endpoint PUT /rest/api/3/priority/default\n@desc Set default priority\n@required {id: str # The ID of the new default issue priority. Must be an existing ID or null. Setting this to null erases the default priority setting.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue priority isn't found.}\n@example_request {\"id\":\"3\"}\n\n@endpoint PUT /rest/api/3/priority/move\n@desc Move priorities\n@required {ids: [str] # The list of issue IDs to be reordered. Cannot contain duplicates nor after ID.}\n@optional {after: str # The ID of the priority. Required if `position` isn't provided., position: str # The position for issue priorities to be moved to. Required if `after` isn't provided.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue priority isn't found.}\n@example_request {\"after\":\"10003\",\"ids\":[\"10004\",\"10005\"]}\n\n@endpoint GET /rest/api/3/priority/search\n@desc Search priorities\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page., id: [str] # The list of priority IDs. To include multiple IDs, provide an ampersand-separated list. For example, `id=2&id=3`., projectId: [str] # The list of projects IDs. To include multiple IDs, provide an ampersand-separated list. For example, `projectId=10010&projectId=10111`., priorityName: str= # The name of priority to search for., onlyDefault: bool=false # Whether only the default priority is returned., expand: str= # Use `schemes` to return the associated priority schemes for each priority. Limited to returning first 15 priority schemes per priority.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint DELETE /rest/api/3/priority/{id}\n@desc Delete priority\n@required {id: str # The ID of the issue priority.}\n@errors {303: Returned if the request is successful., 400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue priority isn't found., 409: Returned if a task to delete the issue priority is already running.}\n\n@endpoint GET /rest/api/3/priority/{id}\n@desc Get priority\n@required {id: str # The ID of the issue priority.}\n@returns(200) {avatarId: int(int64), description: str, iconUrl: str, id: str, isDefault: bool, name: str, schemes: any, self: str, statusColor: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect., 404: Returned if the issue priority isn't found.}\n\n@endpoint PUT /rest/api/3/priority/{id}\n@desc Update priority\n@required {id: str # The ID of the issue priority.}\n@optional {avatarId: int(int64) # The ID for the avatar for the priority. This parameter is nullable and both iconUrl and avatarId cannot be defined., description: str # The description of the priority., iconUrl: str(/images/icons/priorities/blocker.png//images/icons/priorities/critical.png//images/icons/priorities/high.png//images/icons/priorities/highest.png//images/icons/priorities/low.png//images/icons/priorities/lowest.png//images/icons/priorities/major.png//images/icons/priorities/medium.png//images/icons/priorities/minor.png//images/icons/priorities/trivial.png//images/icons/priorities/blocker_new.png//images/icons/priorities/critical_new.png//images/icons/priorities/high_new.png//images/icons/priorities/highest_new.png//images/icons/priorities/low_new.png//images/icons/priorities/lowest_new.png//images/icons/priorities/major_new.png//images/icons/priorities/medium_new.png//images/icons/priorities/minor_new.png//images/icons/priorities/trivial_new.png) # The URL of an icon for the priority. Accepted protocols are HTTP and HTTPS. Built in icons can also be used. Both iconUrl and avatarId cannot be defined., name: str # The name of the priority. Must be unique., statusColor: str # The status color of the priority in 3-digit or 6-digit hexadecimal format.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue priority isn't found.}\n@example_request {\"description\":\"My updated priority description\",\"iconUrl\":\"/images/icons/priorities/minor.png\",\"name\":\"My updated priority\",\"statusColor\":\"#123456\"}\n\n@endpoint GET /rest/api/3/priorityscheme\n@desc Get priority schemes\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page., priorityId: [int(int64)] # A set of priority IDs to filter by. To include multiple IDs, provide an ampersand-separated list. For example, `priorityId=10000&priorityId=10001`., schemeId: [int(int64)] # A set of priority scheme IDs. To include multiple IDs, provide an ampersand-separated list. For example, `schemeId=10000&schemeId=10001`., schemeName: str= # The name of scheme to search for., onlyDefault: bool=false # Whether only the default priority is returned., orderBy: str(name/+name/-name)=+name # The ordering to return the priority schemes by., expand: str # A comma separated list of additional information to return. \"priorities\" will return priorities associated with the priority scheme. \"projects\" will return projects associated with the priority scheme. `expand=priorities,projects`.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect.}\n\n@endpoint POST /rest/api/3/priorityscheme\n@desc Create priority scheme\n@required {defaultPriorityId: int(int64) # The ID of the default priority for the priority scheme., name: str # The name of the priority scheme. Must be unique., priorityIds: [int(int64)] # The IDs of priorities in the scheme.}\n@optional {description: str # The description of the priority scheme., mappings: any # Instructions to migrate the priorities of issues.  `in` mappings are used to migrate the priorities of issues to priorities used within the priority scheme.  `out` mappings are used to migrate the priorities of issues to priorities not used within the priority scheme.   *  When **priorities** are **added** to the new priority scheme, no mapping needs to be provided as the new priorities are not used by any issues.  *  When **priorities** are **removed** from the new priority scheme, no mapping needs to be provided as the removed priorities are not used by any issues.  *  When **projects** are **added** to the priority scheme, the priorities of issues in those projects might need to be migrated to new priorities used by the priority scheme. This can occur when the current scheme does not use all the priorities in the project(s)' priority scheme(s).           *  An `in` mapping must be provided for each of these priorities.  *  When **projects** are **removed** from the priority scheme, no mapping needs to be provided as the removed projects are not using the priorities of the new priority scheme.  For more information on `in` and `out` mappings, see the child properties documentation for the `PriorityMapping` object below., projectIds: [int(int64)] # The IDs of projects that will use the priority scheme.}\n@returns(201) {id: str, task: any} # Returned if the request is completed.\n@returns(202) {id: str, task: any} # Returned if the request is accepted.\n@errors {400: Returned if the request isn't valid.  **Mappings Validation Errors**   *  ``The priorities with IDs [ID 1, ID 2, ...] require mapping. Please provide mappings in the 'in' mappings object, where these priorities are the keys with corresponding values.`` The listed priority ID(s) have not been provided as keys for ``in`` mappings but are required, add them to the mappings object., 401: Returned if the authentication credentials are incorrect., 403: Returned if the user doesn't have the necessary permissions., 409: Returned if an action with this priority scheme is still in progress.}\n@example_request {\"defaultPriorityId\":10001,\"description\":\"My priority scheme description\",\"mappings\":{\"in\":{\"10002\":10000,\"10005\":10001,\"10006\":10001,\"10008\":10003},\"out\":{}},\"name\":\"My new priority scheme\",\"priorityIds\":[10000,10001,10003],\"projectIds\":[10005,10006,10007]}\n\n@endpoint POST /rest/api/3/priorityscheme/mappings\n@desc Suggested priorities for mappings\n@optional {maxResults: int(int32) # The maximum number of results that could be on the page., priorities: any # The priority changes in the scheme., projects: any # The project changes in the scheme., schemeId: int(int64) # The id of the priority scheme., startAt: int(int64) # The index of the first item returned on the page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect.}\n@example_request {\"maxResults\":50,\"priorities\":{\"add\":[10001,10002],\"remove\":[10003]},\"projects\":{\"add\":[10021]},\"schemeId\":10005,\"startAt\":0}\n\n@endpoint GET /rest/api/3/priorityscheme/priorities/available\n@desc Get available priorities by priority scheme\n@required {schemeId: str # The priority scheme ID.}\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page., query: str= # The string to query priorities on by name., exclude: [str] # A list of priority IDs to exclude from the results.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect.}\n\n@endpoint DELETE /rest/api/3/priorityscheme/{schemeId}\n@desc Delete priority scheme\n@required {schemeId: int(int64) # The priority scheme ID.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permissions.}\n\n@endpoint PUT /rest/api/3/priorityscheme/{schemeId}\n@desc Update priority scheme\n@required {schemeId: int(int64) # The ID of the priority scheme.}\n@optional {defaultPriorityId: int(int64) # The default priority of the scheme., description: str # The description of the priority scheme., mappings: any # Instructions to migrate the priorities of issues.  `in` mappings are used to migrate the priorities of issues to priorities used within the priority scheme.  `out` mappings are used to migrate the priorities of issues to priorities not used within the priority scheme.   *  When **priorities** are **added** to the priority scheme, no mapping needs to be provided as the new priorities are not used by any issues.  *  When **priorities** are **removed** from the priority scheme, issues that are using those priorities must be migrated to new priorities used by the priority scheme.           *  An `in` mapping must be provided for each of these priorities.  *  When **projects** are **added** to the priority scheme, the priorities of issues in those projects might need to be migrated to new priorities used by the priority scheme. This can occur when the current scheme does not use all the priorities in the project(s)' priority scheme(s).           *  An `in` mapping must be provided for each of these priorities.  *  When **projects** are **removed** from the priority scheme, the priorities of issues in those projects might need to be migrated to new priorities within the **Default Priority Scheme** that are not used by the priority scheme. This can occur when the **Default Priority Scheme** does not use all the priorities within the current scheme.           *  An `out` mapping must be provided for each of these priorities.  For more information on `in` and `out` mappings, see the child properties documentation for the `PriorityMapping` object below., name: str # The name of the priority scheme. Must be unique., priorities: any # The priorities in the scheme., projects: any # The projects in the scheme.}\n@returns(202) {priorityScheme: map{default: bool, defaultPriorityId: str, description: str, id: str, isDefault: bool, name: str, priorities: any, projects: any, self: str}, task: any} # Returned if the request is accepted.\n@errors {400: Returned if the request isn't valid.  **Mappings Validation Errors**   *  ``The changes to priority schemes require mapping of priorities. Please provide a value for the 'in' mappings object.`` Priorities are being removed and/or projects are being added to the scheme, but ``in`` mappings are not provided.  *  ``The changes to priority schemes require mapping of priorities. Please provide a value for the 'out' mappings object.`` Projects are being removed from the scheme, but ``out`` mappings are not provided.  *  ``The priorities with IDs [ID 1, ID 2, ...] provided as keys for the 'in' mappings object do not exist. Please provide existing priority IDs.`` The listed priority ID(s) have been provided as keys for ``in`` mappings but do not exist. Please confirm the correct priority ID(s) have been provided, they should be priorities that exist on the Jira site which are used by projects being added to the current scheme, but are not in use by the current scheme.  *  ``The priorities with IDs [ID 1, ID 2, ...] provided as values for the 'in' mappings object do not exist. Please provide existing priority IDs used by the current priority scheme.`` The listed priority ID(s) have been provided as values for ``in`` mappings but do not exist. Please confirm the correct priority ID(s) have been provided, they should be priorities that exist on the Jira site and are in use by the current scheme.  *  ``The priorities with IDs [ID 1, ID 2, ...] provided as keys for the 'out' mappings object do not exist. Please provide existing priority IDs used by the current priority scheme.`` The listed priority ID(s) have been provided as keys for ``out`` mappings but are invalid. Please confirm the correct priority ID(s) have been provided, they should be priorities that exist on the Jira site and are in use by the current scheme.  *  ``The priorities with IDs [ID 1, ID 2, ...] provided as values for the 'out' mappings object do not exist. Please provide existing priority IDs used by the default scheme.`` The listed priority ID(s) have been provided as values for ``out`` mappings but are invalid. Please confirm the correct priority ID(s) have been provided, they should be priorities that exist on the Jira site and are in use by the Default Priority Scheme, but are not in use by the current scheme.  *  ``The priorities with IDs [ID 1, ID 2, ...] do not require mapping. Please remove these keys and their corresponding values from the 'in' mappings object.`` The listed priority ID(s) have been provided as keys for ``in`` mappings but are not required, they can be removed from the mappings object.  *  ``The priorities with IDs [ID 1, ID 2, ...] require mapping. Please provide mappings in the 'in' mappings object, where these priorities are the keys with corresponding values.`` The listed priority ID(s) have not been provided as keys for ``in`` mappings but are required, add them to the mappings object.  *  ``The priorities with IDs [ID 1, ID 2, ...] being mapped to are not in the current scheme. Please remove these values and their corresponding keys from the 'in' mappings object.`` The listed priority ID(s) have been provided as keys for ``in`` mappings but are not in use by the current scheme, they can be removed from the mappings object.  *  ``The priorities with IDs [ID 1, ID 2, ...] do not require mapping. Please remove these keys and their corresponding values from the 'out' mappings object.`` The listed priority ID(s) hve been provided as keys for ``out`` mappings but are not required, they can be removed from the mappings object.  *  ``The priorities with IDs [ID 1, ID 2, ...] require mapping. Please provide mappings in the 'out' mappings object, where these priorities are the keys with corresponding values.`` The listed priority ID(s) have not been provided as keys for ``out`` mappings but are required, add them to the mappings object.  *  ``The priorities with IDs [ID 1, ID 2, ...] being mapped to are not in the default scheme. Please remove these values and their corresponding keys from the 'out' mappings object.`` The listed priority ID(s) have been provided as keys for ``out`` mappings but are not in use by the Default Priority Scheme, they can be removed from the mappings object., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permissions., 409: Returned if an action with this priority scheme is still in progress.}\n@example_request {\"defaultPriorityId\":10001,\"description\":\"My priority scheme description\",\"mappings\":{\"in\":{\"10003\":10002,\"10004\":10001},\"out\":{\"10001\":10005,\"10002\":10006}},\"name\":\"My new priority scheme\",\"priorities\":{\"add\":{\"ids\":[10001,10002]},\"remove\":{\"ids\":[10003,10004]}},\"projects\":{\"add\":{\"ids\":[10101,10102]},\"remove\":{\"ids\":[10103,10104]}}}\n\n@endpoint GET /rest/api/3/priorityscheme/{schemeId}/priorities\n@desc Get priorities by priority scheme\n@required {schemeId: str # The priority scheme ID.}\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect.}\n\n@endpoint GET /rest/api/3/priorityscheme/{schemeId}/projects\n@desc Get projects by priority scheme\n@required {schemeId: str # The priority scheme ID.}\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page., projectId: [int(int64)] # The project IDs to filter by. For example, `projectId=10000&projectId=10001`., query: str= # The string to query projects on by name.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect.}\n\n@endpoint GET /rest/api/3/project\n@desc Get all projects\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expanded options include:   *  `description` Returns the project description.  *  `issueTypes` Returns all issue types associated with the project.  *  `lead` Returns information about the project lead.  *  `projectKeys` Returns all project keys associated with the project., recent: int(int32) # Returns the user's most recently accessed projects. You may specify the number of results to return up to a maximum of 20. If access is anonymous, then the recently accessed projects are based on the current HTTP session., properties: [str] # A list of project properties to return for the project. This parameter accepts a comma-separated list.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/project\n@desc Create project\n@required {key: str # Project keys must be unique and start with an uppercase letter followed by one or more uppercase alphanumeric characters. The maximum length is 10 characters., name: str # The name of the project.}\n@optional {assigneeType: str(PROJECT_LEAD/UNASSIGNED) # The default assignee when creating issues for this project., avatarId: int(int64) # An integer value for the project's avatar., categoryId: int(int64) # The ID of the project's category. A complete list of category IDs is found using the [Get all project categories](#api-rest-api-3-projectCategory-get) operation., description: str # A brief description of the project., fieldConfigurationScheme: int(int64) # Deprecated use [fieldScheme](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-field-schemes/#api-group-field-schemes) instead. The ID of the field configuration scheme for the project. Use the [Get all field configuration schemes](#api-rest-api-3-fieldconfigurationscheme-get) operation to get a list of field configuration scheme IDs. If you specify the field configuration scheme you cannot specify the project template key., fieldScheme: int(int64) # The ID of the field scheme for the project. Use the [Get field schemes](#api-rest-api-3-config-fieldschemes-get) operation to get a list of field scheme IDs. If you specify the field scheme you cannot specify the project template key., issueSecurityScheme: int(int64) # The ID of the issue security scheme for the project, which enables you to control who can and cannot view issues. Use the [Get issue security schemes](#api-rest-api-3-issuesecurityschemes-get) resource to get all issue security scheme IDs., issueTypeScheme: int(int64) # The ID of the issue type scheme for the project. Use the [Get all issue type schemes](#api-rest-api-3-issuetypescheme-get) operation to get a list of issue type scheme IDs. If you specify the issue type scheme you cannot specify the project template key., issueTypeScreenScheme: int(int64) # The ID of the issue type screen scheme for the project. Use the [Get all issue type screen schemes](#api-rest-api-3-issuetypescreenscheme-get) operation to get a list of issue type screen scheme IDs. If you specify the issue type screen scheme you cannot specify the project template key., lead: str # This parameter is deprecated because of privacy changes. Use `leadAccountId` instead. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. The user name of the project lead. Either `lead` or `leadAccountId` must be set when creating a project. Cannot be provided with `leadAccountId`., leadAccountId: str # The account ID of the project lead. Either `lead` or `leadAccountId` must be set when creating a project. Cannot be provided with `lead`., notificationScheme: int(int64) # The ID of the notification scheme for the project. Use the [Get notification schemes](#api-rest-api-3-notificationscheme-get) resource to get a list of notification scheme IDs., permissionScheme: int(int64) # The ID of the permission scheme for the project. Use the [Get all permission schemes](#api-rest-api-3-permissionscheme-get) resource to see a list of all permission scheme IDs., projectTemplateKey: str(com.pyxis.greenhopper.jira:gh-simplified-agility-kanban/com.pyxis.greenhopper.jira:gh-simplified-agility-scrum/com.pyxis.greenhopper.jira:gh-simplified-basic/com.pyxis.greenhopper.jira:gh-simplified-kanban-classic/com.pyxis.greenhopper.jira:gh-simplified-scrum-classic/com.pyxis.greenhopper.jira:gh-cross-team-template/com.pyxis.greenhopper.jira:gh-cross-team-planning-template/com.atlassian.servicedesk:simplified-it-service-management/com.atlassian.servicedesk:simplified-it-service-management-basic/com.atlassian.servicedesk:simplified-it-service-management-operations/com.atlassian.servicedesk:simplified-general-service-desk/com.atlassian.servicedesk:simplified-internal-service-desk/com.atlassian.servicedesk:simplified-external-service-desk/com.atlassian.servicedesk:simplified-hr-service-desk/com.atlassian.servicedesk:simplified-facilities-service-desk/com.atlassian.servicedesk:simplified-legal-service-desk/com.atlassian.servicedesk:simplified-marketing-service-desk/com.atlassian.servicedesk:simplified-finance-service-desk/com.atlassian.servicedesk:simplified-analytics-service-desk/com.atlassian.servicedesk:simplified-design-service-desk/com.atlassian.servicedesk:simplified-sales-service-desk/com.atlassian.servicedesk:simplified-halp-service-desk/com.atlassian.servicedesk:next-gen-it-service-desk/com.atlassian.servicedesk:next-gen-hr-service-desk/com.atlassian.servicedesk:next-gen-legal-service-desk/com.atlassian.servicedesk:next-gen-marketing-service-desk/com.atlassian.servicedesk:next-gen-facilities-service-desk/com.atlassian.servicedesk:next-gen-general-service-desk/com.atlassian.servicedesk:next-gen-analytics-service-desk/com.atlassian.servicedesk:next-gen-finance-service-desk/com.atlassian.servicedesk:next-gen-design-service-desk/com.atlassian.servicedesk:next-gen-sales-service-desk/com.atlassian.jira-core-project-templates:jira-core-simplified-content-management/com.atlassian.jira-core-project-templates:jira-core-simplified-document-approval/com.atlassian.jira-core-project-templates:jira-core-simplified-lead-tracking/com.atlassian.jira-core-project-templates:jira-core-simplified-process-control/com.atlassian.jira-core-project-templates:jira-core-simplified-procurement/com.atlassian.jira-core-project-templates:jira-core-simplified-project-management/com.atlassian.jira-core-project-templates:jira-core-simplified-recruitment/com.atlassian.jira-core-project-templates:jira-core-simplified-task-/com.atlassian.jcs:customer-service-management) # A predefined configuration for a project. The type of the `projectTemplateKey` must match with the type of the `projectTypeKey`., projectTypeKey: str(software/service_desk/business) # The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes), which defines the application-specific feature set. If you don't specify the project template you have to specify the project type., url: str # A link to information about this project, such as project documentation, workflowScheme: int(int64) # The ID of the workflow scheme for the project. Use the [Get all workflow schemes](#api-rest-api-3-workflowscheme-get) operation to get a list of workflow scheme IDs. If you specify the workflow scheme you cannot specify the project template key.}\n@returns(201) {id: int(int64), key: str, self: str(uri)} # Returned if the project is created.\n@errors {400: Returned if the request is not valid and the project could not be created., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to create projects.}\n@example_request {\"assigneeType\":\"PROJECT_LEAD\",\"avatarId\":10200,\"categoryId\":10120,\"description\":\"Cloud migration initiative\",\"issueSecurityScheme\":10001,\"key\":\"EX\",\"leadAccountId\":\"5b10a0effa615349cb016cd8\",\"name\":\"Example\",\"notificationScheme\":10021,\"permissionScheme\":10011,\"projectTemplateKey\":\"com.atlassian.jira-core-project-templates:jira-core-simplified-process-control\",\"projectTypeKey\":\"business\",\"url\":\"http://atlassian.com\"}\n\n@endpoint POST /rest/api/3/project-template\n@desc Create custom project\n@optional {details: map{accessLevel: str, additionalProperties: map, assigneeType: str, avatarId: int(int64), categoryId: int(int64), description: str, enableComponents: bool, key: str, language: str, leadAccountId: str, name: str, url: str} # Project Details, template: map{boards: map, field: map, issueType: map, notification: map, permissionScheme: map, project: map, role: map, scope: map, security: map, workflow: map} # The specific request object for creating a project with template.}\n@errors {303: The project creation task has been queued for execution}\n\n@endpoint PUT /rest/api/3/project-template/edit-template\n@desc Edit a custom project template\n@optional {templateDescription: str # The description of the template, templateGenerationOptions: map{enableScreenDelegatedAdminSupport: bool, enableWorkflowDelegatedAdminSupport: bool}, templateKey: str # The unique identifier of the template, templateName: str # The name of the template}\n@returns(200) 200 response\n\n@endpoint GET /rest/api/3/project-template/live-template\n@desc Gets a custom project template\n@optional {projectId: str # optional - The \\{@link String\\} containing the project key linked to the custom template to retrieve, templateKey: str # optional - The \\{@link String\\} containing the key of the custom template to retrieve}\n@returns(200) {archetype: map{realType: str, style: str, type: str}, defaultBoardView: str, description: str, liveTemplateProjectIdReference: int(int64), name: str, projectTemplateKey: map{key: str, uuid: str(uuid)}, snapshotTemplate: map, templateGenerationOptions: map{enableScreenDelegatedAdminSupport: bool, enableWorkflowDelegatedAdminSupport: bool}, type: str} # 200 response\n\n@endpoint DELETE /rest/api/3/project-template/remove-template\n@desc Deletes a custom project template\n@required {templateKey: str # The \\{@link String\\} containing the key of the custom template to remove}\n@returns(200) 200 response\n\n@endpoint POST /rest/api/3/project-template/save-template\n@desc Save a custom project template\n@optional {templateDescription: str # The description of the template, templateFromProjectRequest: map{projectId: int(int64), templateGenerationOptions: map, templateType: str} # The request details to generate template from a project, templateName: str # The name of the template}\n@returns(200) {projectTemplateKey: map{key: str, uuid: str(uuid)}} # 200 response\n\n@endpoint GET /rest/api/3/project/recent\n@desc Get recent projects\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expanded options include:   *  `description` Returns the project description.  *  `projectKeys` Returns all project keys associated with a project.  *  `lead` Returns information about the project lead.  *  `issueTypes` Returns all issue types associated with the project.  *  `url` Returns the URL associated with the project.  *  `permissions` Returns the permissions associated with the project.  *  `insight` EXPERIMENTAL. Returns the insight details of total issue count and last issue update time for the project.  *  `*` Returns the project with all available expand options., properties: [map] # EXPERIMENTAL. A list of project properties to return for the project. This parameter accepts a comma-separated list. Invalid property names are ignored.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/project/search\n@desc Get projects paginated\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page. Must be less than or equal to 100. If a value greater than 100 is provided, the `maxResults` parameter will default to 100., orderBy: str(category/-category/+category/key/-key/+key/name/-name/+name/owner/-owner/+owner/issueCount/-issueCount/+issueCount/lastIssueUpdatedDate/-lastIssueUpdatedDate/+lastIssueUpdatedDate/archivedDate/+archivedDate/-archivedDate/deletedDate/+deletedDate/-deletedDate)=key # [Order](#ordering) the results by a field.   *  `category` Sorts by project category. A complete list of category IDs is found using [Get all project categories](#api-rest-api-3-projectCategory-get).  *  `issueCount` Sorts by the total number of issues in each project.  *  `key` Sorts by project key.  *  `lastIssueUpdatedTime` Sorts by the last issue update time.  *  `name` Sorts by project name.  *  `owner` Sorts by project lead.  *  `archivedDate` EXPERIMENTAL. Sorts by project archived date.  *  `deletedDate` EXPERIMENTAL. Sorts by project deleted date., id: [int(int64)] # The project IDs to filter the results by. To include multiple IDs, provide an ampersand-separated list. For example, `id=10000&id=10001`. Up to 50 project IDs can be provided., keys: [str] # The project keys to filter the results by. To include multiple keys, provide an ampersand-separated list. For example, `keys=PA&keys=PB`. Up to 50 project keys can be provided., query: str # Filter the results using a literal string. Projects with a matching `key` or `name` are returned (case insensitive)., typeKey: str # Orders results by the [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes). This parameter accepts a comma-separated list. Valid values are `business`, `service_desk`, and `software`., categoryId: int(int64) # The ID of the project's category. A complete list of category IDs is found using the [Get all project categories](#api-rest-api-3-projectCategory-get) operation., action: str(view/browse/edit/create)=view # Filter results by projects for which the user can:   *  `view` the project, meaning that they have one of the following permissions:           *  *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project.      *  *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project.      *  *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).  *  `browse` the project, meaning that they have the *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project.  *  `edit` the project, meaning that they have one of the following permissions:           *  *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project.      *  *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).  *  `create` the project, meaning that they have the *Create issues* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project in which the issue is created., expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expanded options include:   *  `description` Returns the project description.  *  `projectKeys` Returns all project keys associated with a project.  *  `lead` Returns information about the project lead.  *  `issueTypes` Returns all issue types associated with the project.  *  `url` Returns the URL associated with the project.  *  `insight` EXPERIMENTAL. Returns the insight details of total issue count and last issue update time for the project., status: [str] # EXPERIMENTAL. Filter results by project status:   *  `live` Search live projects.  *  `archived` Search archived projects.  *  `deleted` Search deleted projects, those in the recycle bin., properties: [map] # EXPERIMENTAL. A list of project properties to return for the project. This parameter accepts a comma-separated list., propertyQuery: str # EXPERIMENTAL. A query string used to search properties. The query string cannot be specified using a JSON object. For example, to search for the value of `nested` from `{\"something\":{\"nested\":1,\"other\":2}}` use `[thepropertykey].something.nested=1`. Note that the propertyQuery key is enclosed in square brackets to enable searching where the propertyQuery key includes dot (.) or equals (=) characters. Note that `thepropertykey` is only returned when included in `properties`.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if no projects matching the search criteria are found.}\n\n@endpoint GET /rest/api/3/project/type\n@desc Get all project types\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect.}\n\n@endpoint GET /rest/api/3/project/type/accessible\n@desc Get licensed project types\n@returns(200) Returned if the request is successful.\n\n@endpoint GET /rest/api/3/project/type/{projectTypeKey}\n@desc Get project type by key\n@required {projectTypeKey: str(software/service_desk/business/product_discovery) # The key of the project type.}\n@returns(200) {color: str, descriptionI18nKey: str, formattedKey: str, icon: str, key: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect., 404: Returned if the project type is not found.}\n\n@endpoint GET /rest/api/3/project/type/{projectTypeKey}/accessible\n@desc Get accessible project type by key\n@required {projectTypeKey: str(software/service_desk/business/product_discovery) # The key of the project type.}\n@returns(200) {color: str, descriptionI18nKey: str, formattedKey: str, icon: str, key: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project type is not accessible to the user.}\n\n@endpoint DELETE /rest/api/3/project/{projectIdOrKey}\n@desc Delete project\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@optional {enableUndo: bool=true # Whether this project is placed in the Jira recycle bin where it will be available for restoration.}\n@returns(204) Returned if the project is deleted.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or the user does not have permission to delete it.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}\n@desc Get project\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Note that the project description, issue types, and project lead are included in all responses by default. Expand options include:   *  `description` The project description.  *  `issueTypes` The issue types associated with the project.  *  `lead` The project lead.  *  `projectKeys` All project keys associated with the project.  *  `issueTypeHierarchy` The project issue type hierarchy., properties: [str] # A list of project properties to return for the project. This parameter accepts a comma-separated list.}\n@returns(200) {archived: bool, archivedBy: any, archivedDate: str(date-time), assigneeType: str, avatarUrls: any, components: [map], deleted: bool, deletedBy: any, deletedDate: str(date-time), description: str, email: str, expand: str, favourite: bool, id: str, insight: any, isPrivate: bool, issueTypeHierarchy: any, issueTypes: [map], key: str, landingPageInfo: any, lead: any, name: str, permissions: any, projectCategory: any, projectTypeKey: str, properties: map, retentionTillDate: str(date-time), roles: map, self: str(uri), simplified: bool, style: str, url: str, uuid: str(uuid), versions: [map]} # Returned if successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or the user does not have permission to view it.}\n\n@endpoint PUT /rest/api/3/project/{projectIdOrKey}\n@desc Update project\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Note that the project description, issue types, and project lead are included in all responses by default. Expand options include:   *  `description` The project description.  *  `issueTypes` The issue types associated with the project.  *  `lead` The project lead.  *  `projectKeys` All project keys associated with the project., assigneeType: str(PROJECT_LEAD/UNASSIGNED) # The default assignee when creating issues for this project., avatarId: int(int64) # An integer value for the project's avatar., categoryId: int(int64) # The ID of the project's category. A complete list of category IDs is found using the [Get all project categories](#api-rest-api-3-projectCategory-get) operation. To remove the project category from the project, set the value to `-1.`, description: str # A brief description of the project., issueSecurityScheme: int(int64) # The ID of the issue security scheme for the project, which enables you to control who can and cannot view issues. Use the [Get issue security schemes](#api-rest-api-3-issuesecurityschemes-get) resource to get all issue security scheme IDs., key: str # Project keys must be unique and start with an uppercase letter followed by one or more uppercase alphanumeric characters. The maximum length is 10 characters., lead: str # This parameter is deprecated because of privacy changes. Use `leadAccountId` instead. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details. The user name of the project lead. Cannot be provided with `leadAccountId`., leadAccountId: str # The account ID of the project lead. Cannot be provided with `lead`., name: str # The name of the project., notificationScheme: int(int64) # The ID of the notification scheme for the project. Use the [Get notification schemes](#api-rest-api-3-notificationscheme-get) resource to get a list of notification scheme IDs., permissionScheme: int(int64) # The ID of the permission scheme for the project. Use the [Get all permission schemes](#api-rest-api-3-permissionscheme-get) resource to see a list of all permission scheme IDs., releasedProjectKeys: [str] # Previous project keys to be released from the current project. Released keys must belong to the current project and not contain the current project key, url: str # A link to information about this project, such as project documentation}\n@returns(200) {archived: bool, archivedBy: any, archivedDate: str(date-time), assigneeType: str, avatarUrls: any, components: [map], deleted: bool, deletedBy: any, deletedDate: str(date-time), description: str, email: str, expand: str, favourite: bool, id: str, insight: any, isPrivate: bool, issueTypeHierarchy: any, issueTypes: [map], key: str, landingPageInfo: any, lead: any, name: str, permissions: any, projectCategory: any, projectTypeKey: str, properties: map, retentionTillDate: str(date-time), roles: map, self: str(uri), simplified: bool, style: str, url: str, uuid: str(uuid), versions: [map]} # Returned if the project is updated.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if:   *  the user does not have the necessary permission to update project details.  *  the permission scheme is being changed and the Jira instance is Jira Core Free or Jira Software Free. Permission schemes cannot be changed on free plans., 404: Returned if the project is not found.}\n@example_request {\"assigneeType\":\"PROJECT_LEAD\",\"avatarId\":10200,\"categoryId\":10120,\"description\":\"Cloud migration initiative\",\"issueSecurityScheme\":10001,\"key\":\"EX\",\"leadAccountId\":\"5b10a0effa615349cb016cd8\",\"name\":\"Example\",\"notificationScheme\":10021,\"permissionScheme\":10011,\"url\":\"http://atlassian.com\"}\n\n@endpoint POST /rest/api/3/project/{projectIdOrKey}/archive\n@desc Archive project\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permissions., 404: Returned if the project is not found.}\n\n@endpoint PUT /rest/api/3/project/{projectIdOrKey}/avatar\n@desc Set project avatar\n@required {projectIdOrKey: str # The ID or (case-sensitive) key of the project., id: str # The ID of the avatar.}\n@optional {fileName: str # The file name of the avatar icon. Returned for system avatars., isDeletable: bool # Whether the avatar can be deleted., isSelected: bool # Whether the avatar is used in Jira. For example, shown as a project's avatar., isSystemAvatar: bool # Whether the avatar is a system avatar., owner: str # The owner of the avatar. For a system avatar the owner is null (and nothing is returned). For non-system avatars this is the appropriate identifier, such as the ID for a project or the account ID for a user., urls: map # The list of avatar icon URLs.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to administer the project., 404: Returned if the project or avatar is not found or the user does not have permission to view the project.}\n@example_request {\"id\":\"10010\"}\n\n@endpoint DELETE /rest/api/3/project/{projectIdOrKey}/avatar/{id}\n@desc Delete project avatar\n@required {projectIdOrKey: str # The project ID or (case-sensitive) key., id: int(int64) # The ID of the avatar.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the avatar is a system avatar or the user does not have permission to administer the project., 404: Returned if the project or avatar is not found or the user does not have permission to view the project.}\n\n@endpoint POST /rest/api/3/project/{projectIdOrKey}/avatar2\n@desc Load project avatar\n@required {projectIdOrKey: str # The ID or (case-sensitive) key of the project.}\n@optional {x: int(int32)=0 # The X coordinate of the top-left corner of the crop region., y: int(int32)=0 # The Y coordinate of the top-left corner of the crop region., size: int(int32)=0 # The length of each side of the crop region.}\n@returns(201) {fileName: str, id: str, isDeletable: bool, isSelected: bool, isSystemAvatar: bool, owner: str, urls: map} # Returned if the request is successful.\n@errors {400: Returned if:   *  an image isn't included in the request.  *  the image type is unsupported.  *  the crop parameters extend the crop area beyond the edge of the image., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to administer the project or an anonymous call is made to the operation., 404: Returned if the project is not found or the user does not have permission to view the project.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/avatars\n@desc Get all project avatars\n@required {projectIdOrKey: str # The ID or (case-sensitive) key of the project.}\n@returns(200) {custom: [map], system: [map]} # Returned if request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or the user does not have permission to view the project.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/classification-config\n@desc Get the classification configuration for a project\n@required {projectIdOrKey: str # The project ID or project key (case-sensitive).}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the user does not have the necessary permission., 404: Returned if the project is not found or the feature is disabled.}\n\n@endpoint DELETE /rest/api/3/project/{projectIdOrKey}/classification-level/default\n@desc Remove the default data classification level from a project\n@required {projectIdOrKey: str # The project ID or project key (case-sensitive).}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the user does not have the necessary permission., 404: Returned if the project is not found.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/classification-level/default\n@desc Get the default data classification level of a project\n@required {projectIdOrKey: str # The project ID or project key (case-sensitive).}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the user does not have the necessary permission., 404: Returned if the project is not found.}\n\n@endpoint PUT /rest/api/3/project/{projectIdOrKey}/classification-level/default\n@desc Update the default data classification level of a project\n@required {projectIdOrKey: str # The project ID or project key (case-sensitive)., id: str # The ID of the project classification.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the user does not have the necessary permission., 404: Returned if the project is not found.}\n@example_request {\"id\":\"ari:cloud:platform::classification-tag/dec24c48-5073-4c25-8fef-9d81a992c30c\"}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/component\n@desc Get project components paginated\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., orderBy: str(description/-description/+description/issueCount/-issueCount/+issueCount/lead/-lead/+lead/name/-name/+name) # [Order](#ordering) the results by a field:   *  `description` Sorts by the component description.  *  `issueCount` Sorts by the count of issues associated with the component.  *  `lead` Sorts by the user key of the component's project lead.  *  `name` Sorts by component name., componentSource: str(jira/compass/auto)=jira # The source of the components to return. Can be `jira` (default), `compass` or `auto`. When `auto` is specified, the API will return connected Compass components if the project is opted into Compass, otherwise it will return Jira components. Defaults to `jira`., query: str # Filter the results using a literal string. Components with a matching `name` or `description` are returned (case insensitive).}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or the user does not have permission to view it.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/components\n@desc Get project components\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@optional {componentSource: str(jira/compass/auto)=jira # The source of the components to return. Can be `jira` (default), `compass` or `auto`. When `auto` is specified, the API will return connected Compass components if the project is opted into Compass, otherwise it will return Jira components. Defaults to `jira`.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or the user does not have permission to view it.}\n\n@endpoint POST /rest/api/3/project/{projectIdOrKey}/delete\n@desc Delete project asynchronously\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@errors {303: Returned if the request is successful., 400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or the user does not have the necessary permission.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/features\n@desc Get project features\n@required {projectIdOrKey: str # The ID or (case-sensitive) key of the project.}\n@returns(200) {features: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the project is not found.}\n\n@endpoint PUT /rest/api/3/project/{projectIdOrKey}/features/{featureKey}\n@desc Set project feature state\n@required {projectIdOrKey: str # The ID or (case-sensitive) key of the project., featureKey: str # The key of the feature.}\n@optional {state: str(ENABLED/DISABLED/COMING_SOON) # The feature state.}\n@returns(200) {features: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the project or project feature is not found.}\n@example_request {\"state\":\"ENABLED\"}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/properties\n@desc Get project property keys\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@returns(200) {keys: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect., 403: Returned if the user does not have permission to view the project., 404: Returned if the project is not found.}\n\n@endpoint DELETE /rest/api/3/project/{projectIdOrKey}/properties/{propertyKey}\n@desc Delete project property\n@required {projectIdOrKey: str # The project ID or project key (case sensitive)., propertyKey: str # The project property key. Use [Get project property keys](#api-rest-api-3-project-projectIdOrKey-properties-get) to get a list of all project property keys.}\n@returns(204) Returned if the project property is deleted.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect., 403: Returned if the user does not have permission to administer the project., 404: Returned if the project or property is not found.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/properties/{propertyKey}\n@desc Get project property\n@required {projectIdOrKey: str # The project ID or project key (case sensitive)., propertyKey: str # The project property key. Use [Get project property keys](#api-rest-api-3-project-projectIdOrKey-properties-get) to get a list of all project property keys.}\n@returns(200) {key: str, value: any} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect., 403: Returned if the user does not have permission to view the project., 404: Returned if the project or property is not found.}\n\n@endpoint PUT /rest/api/3/project/{projectIdOrKey}/properties/{propertyKey}\n@desc Set project property\n@required {projectIdOrKey: str # The project ID or project key (case sensitive)., propertyKey: str # The key of the project property. The maximum length is 255 characters.}\n@returns(200) Returned if the project property is updated.\n@returns(201) Returned if the project property is created.\n@errors {400: Returned if the project key or id is invalid., 401: Returned if the authentication credentials are incorrect., 403: Returned if the user does not have permission to administer the project., 404: Returned if the project is not found.}\n@example_request {\"number\":5,\"string\":\"string-value\"}\n\n@endpoint POST /rest/api/3/project/{projectIdOrKey}/restore\n@desc Restore deleted or archived project\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@returns(200) {archived: bool, archivedBy: any, archivedDate: str(date-time), assigneeType: str, avatarUrls: any, components: [map], deleted: bool, deletedBy: any, deletedDate: str(date-time), description: str, email: str, expand: str, favourite: bool, id: str, insight: any, isPrivate: bool, issueTypeHierarchy: any, issueTypes: [map], key: str, landingPageInfo: any, lead: any, name: str, permissions: any, projectCategory: any, projectTypeKey: str, properties: map, retentionTillDate: str(date-time), roles: map, self: str(uri), simplified: bool, style: str, url: str, uuid: str(uuid), versions: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or the user does not have the necessary permission.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/role\n@desc Get project roles for project\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing or if the user lacks administrative permissions for the project., 404: Returned if the project is not found or or if the user does not have administrative permissions for the project.}\n\n@endpoint DELETE /rest/api/3/project/{projectIdOrKey}/role/{id}\n@desc Delete actors from project role\n@required {projectIdOrKey: str # The project ID or project key (case sensitive)., id: int(int64) # The ID of the project role. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@optional {user: str # The user account ID of the user to remove from the project role., group: str # The name of the group to remove from the project role. This parameter cannot be used with the `groupId` parameter. As a group's name can change, use of `groupId` is recommended., groupId: str # The ID of the group to remove from the project role. This parameter cannot be used with the `group` parameter.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 404: Returned if:   *  the project or project role is not found.  *  the calling user does not have administrative permission.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/role/{id}\n@desc Get project role for project\n@required {projectIdOrKey: str # The project ID or project key (case sensitive)., id: int(int64) # The ID of the project role. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@optional {excludeInactiveUsers: bool=false # Exclude inactive users.}\n@returns(200) {actors: [map], admin: bool, currentUserRole: bool, default: bool, description: str, id: int(int64), name: str, roleConfigurable: bool, scope: any, self: str(uri), translatedName: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the project or project role is not found.  *  the user does not have administrative permission.}\n\n@endpoint POST /rest/api/3/project/{projectIdOrKey}/role/{id}\n@desc Add actors to project role\n@required {projectIdOrKey: str # The project ID or project key (case sensitive)., id: int(int64) # The ID of the project role. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@optional {group: [str] # The name of the group to add. This parameter cannot be used with the `groupId` parameter. As a group's name can change, use of `groupId` is recommended., groupId: [str] # The ID of the group to add. This parameter cannot be used with the `group` parameter., user: [str] # The user account ID of the user to add.}\n@returns(200) {actors: [map], admin: bool, currentUserRole: bool, default: bool, description: str, id: int(int64), name: str, roleConfigurable: bool, scope: any, self: str(uri), translatedName: str} # Returned if the request is successful. The complete list of actors for the project is returned.  For example, the cURL request above adds a group, *jira-developers*. For the response below to be returned as a result of that request, the user *Mia Krystof* would have previously been added as a `user` actor for this project.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing or if the calling user lacks administrative permissions for the project., 404: Returned if:   *  the project is not found.  *  the user or group is not found.  *  the group or user is not active.}\n@example_request {\"groupId\":[\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"]}\n\n@endpoint PUT /rest/api/3/project/{projectIdOrKey}/role/{id}\n@desc Set actors for project role\n@required {projectIdOrKey: str # The project ID or project key (case sensitive)., id: int(int64) # The ID of the project role. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@optional {categorisedActors: map # The actors to add to the project role.  Add groups using:   *  `atlassian-group-role-actor` and a list of group names.  *  `atlassian-group-role-actor-id` and a list of group IDs.  As a group's name can change, use of `atlassian-group-role-actor-id` is recommended. For example, `\"atlassian-group-role-actor-id\":[\"eef79f81-0b89-4fca-a736-4be531a10869\",\"77f6ab39-e755-4570-a6ae-2d7a8df0bcb8\"]`.  Add users using `atlassian-user-role-actor` and a list of account IDs. For example, `\"atlassian-user-role-actor\":[\"12345678-9abc-def1-2345-6789abcdef12\", \"abcdef12-3456-789a-bcde-f123456789ab\"]`., id: int(int64) # The ID of the project role. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@returns(200) {actors: [map], admin: bool, currentUserRole: bool, default: bool, description: str, id: int(int64), name: str, roleConfigurable: bool, scope: any, self: str(uri), translatedName: str} # Returned if the request is successful. The complete list of actors for the project is returned.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing or if the calling user lacks administrative permissions for the project., 404: Returned if:   *  the project is not found.  *  a user or group is not found.  *  a group or user is not active.}\n@example_request {\"categorisedActors\":{\"atlassian-group-role-actor-id\":[\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"],\"atlassian-user-role-actor\":[\"12345678-9abc-def1-2345-6789abcdef12\"]}}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/roledetails\n@desc Get project role details\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@optional {currentMember: bool=false # Whether the roles should be filtered to include only those the user is assigned to., excludeConnectAddons: bool=false, excludeOtherServiceRoles: bool=false # Do not return the default JSM company-managed space from CSM spaces, or the default CSM roles from JSM spaces.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or if the user does not have the necessary permissions for the project.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/statuses\n@desc Get all statuses for project\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or the user does not have permission to view it.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/version\n@desc Get project versions paginated\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., orderBy: str(description/-description/+description/name/-name/+name/releaseDate/-releaseDate/+releaseDate/sequence/-sequence/+sequence/startDate/-startDate/+startDate) # [Order](#ordering) the results by a field:   *  `description` Sorts by version description.  *  `name` Sorts by version name.  *  `releaseDate` Sorts by release date, starting with the oldest date. Versions with no release date are listed last.  *  `sequence` Sorts by the order of appearance in the user interface.  *  `startDate` Sorts by start date, starting with the oldest date. Versions with no start date are listed last., query: str # Filter the results using a literal string. Versions with matching `name` or `description` are returned (case insensitive)., status: str # A list of status values used to filter the results by version status. This parameter accepts a comma-separated list. The status values are `released`, `unreleased`, and `archived`., expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `issuesstatus` Returns the number of issues in each status category for each version.  *  `operations` Returns actions that can be performed on the specified version.  *  `driver` Returns the Atlassian account ID of the version driver.  *  `approvers` Returns a list containing the approvers for this version.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {404: Returned if the project is not found or the user does not have permission to view it.}\n\n@endpoint GET /rest/api/3/project/{projectIdOrKey}/versions\n@desc Get project versions\n@required {projectIdOrKey: str # The project ID or project key (case sensitive).}\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts `operations`, which returns actions that can be performed on the version.}\n@returns(200) Returned if the request is successful.\n@errors {404: Returned if the project is not found or the user does not have permission to view it.}\n\n@endpoint GET /rest/api/3/project/{projectId}/email\n@desc Get project's sender email\n@required {projectId: int(int64) # The project ID.}\n@returns(200) {emailAddress: str, emailAddressStatus: [str]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to read project., 404: Returned if the project or project's sender email address is not found.}\n\n@endpoint PUT /rest/api/3/project/{projectId}/email\n@desc Set project's sender email\n@required {projectId: int(int64) # The project ID.}\n@optional {emailAddress: str # The email address., emailAddressStatus: [str] # When using a custom domain, the status of the email address.}\n@returns(204) Returned if the project's sender email address is successfully set.\n@errors {400: Returned if the request is not valid, if the email address is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to administer the project., 404: Returned if the project is not found.}\n@example_request {\"emailAddress\":\"jira@example.atlassian.net\"}\n\n@endpoint GET /rest/api/3/project/{projectId}/hierarchy\n@desc Get project issue type hierarchy\n@required {projectId: int(int64) # The ID of the project.}\n@returns(200) {hierarchy: [map], projectId: int(int64)} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or the user does not have the necessary permission.}\n\n@endpoint GET /rest/api/3/project/{projectKeyOrId}/issuesecuritylevelscheme\n@desc Get project issue security scheme\n@required {projectKeyOrId: str # The project ID or project key (case sensitive).}\n@returns(200) {defaultSecurityLevelId: int(int64), description: str, id: int(int64), levels: [map], name: str, self: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the project is visible to the user but the user doesn't have administrative permissions., 404: Returned if the project is not found or the user does not have permission to view it.}\n\n@endpoint GET /rest/api/3/project/{projectKeyOrId}/notificationscheme\n@desc Get project notification scheme\n@required {projectKeyOrId: str # The project ID or project key (case sensitive).}\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `all` Returns all expandable information  *  `field` Returns information about any custom fields assigned to receive an event  *  `group` Returns information about any groups assigned to receive an event  *  `notificationSchemeEvents` Returns a list of event associations. This list is returned for all expandable information  *  `projectRole` Returns information about any project roles assigned to receive an event  *  `user` Returns information about any users assigned to receive an event}\n@returns(200) {description: str, expand: str, id: int(int64), name: str, notificationSchemeEvents: [map], projects: [int(int64)], scope: any, self: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project is not found or the user is not an administrator.}\n\n@endpoint GET /rest/api/3/project/{projectKeyOrId}/permissionscheme\n@desc Get assigned permission scheme\n@required {projectKeyOrId: str # The project ID or project key (case sensitive).}\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Note that permissions are included when you specify any value. Expand options include:   *  `all` Returns all expandable information.  *  `field` Returns information about the custom field granted the permission.  *  `group` Returns information about the group that is granted the permission.  *  `permissions` Returns all permission grants for each permission scheme.  *  `projectRole` Returns information about the project role granted the permission.  *  `user` Returns information about the user who is granted the permission.}\n@returns(200) {description: str, expand: str, id: int(int64), name: str, permissions: [map], scope: any, self: str(uri)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have permission to view the project's configuration., 404: Returned if the project is not found or the user does not have permission to view the project.}\n\n@endpoint PUT /rest/api/3/project/{projectKeyOrId}/permissionscheme\n@desc Assign permission scheme\n@required {projectKeyOrId: str # The project ID or project key (case sensitive)., id: int(int64) # The ID of the permission scheme to associate with the project. Use the [Get all permission schemes](#api-rest-api-3-permissionscheme-get) resource to get a list of permission scheme IDs.}\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Note that permissions are included when you specify any value. Expand options include:   *  `all` Returns all expandable information.  *  `field` Returns information about the custom field granted the permission.  *  `group` Returns information about the group that is granted the permission.  *  `permissions` Returns all permission grants for each permission scheme.  *  `projectRole` Returns information about the project role granted the permission.  *  `user` Returns information about the user who is granted the permission.}\n@returns(200) {description: str, expand: str, id: int(int64), name: str, permissions: [map], scope: any, self: str(uri)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if:   *  the user does not have the necessary permission to edit the project's configuration.  *  the Jira instance is Jira Core Free or Jira Software Free. Permission schemes cannot be assigned to projects on free plans., 404: Returned if the project or permission scheme is not found.}\n@example_request {\"id\":10000}\n\n@endpoint GET /rest/api/3/project/{projectKeyOrId}/securitylevel\n@desc Get project issue security levels\n@required {projectKeyOrId: str # The project ID or project key (case sensitive).}\n@returns(200) {levels: [map]} # Returned if the request is successful.\n@errors {404: Returned if the project is not found or the user does not have permission to view it.}\n\n@endpoint GET /rest/api/3/projectCategory\n@desc Get all project categories\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/projectCategory\n@desc Create project category\n@optional {description: str # The description of the project category., id: str # The ID of the project category., name: str # The name of the project category. Required on create, optional on update., self: str(uri) # The URL of the project category.}\n@returns(201) {description: str, id: str, name: str, self: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if:   *  `name` is not provided or exceeds 255 characters.  *  `description` exceeds 1000 characters., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 409: Returned if the project category name is in use.}\n@example_request {\"description\":\"Created Project Category\",\"name\":\"CREATED\"}\n\n@endpoint DELETE /rest/api/3/projectCategory/{id}\n@desc Delete project category\n@required {id: int(int64) # ID of the project category to delete.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the project category is not found.}\n\n@endpoint GET /rest/api/3/projectCategory/{id}\n@desc Get project category by ID\n@required {id: int(int64) # The ID of the project category.}\n@returns(200) {description: str, id: str, name: str, self: str(uri)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project category is not found.}\n\n@endpoint PUT /rest/api/3/projectCategory/{id}\n@desc Update project category\n@required {id: int(int64)}\n@optional {description: str # The description of the project category., id: str # The ID of the project category., name: str # The name of the project category. Required on create, optional on update., self: str(uri) # The URL of the project category.}\n@returns(200) {description: str, id: str, name: str, self: str} # Returned if the request is successful.\n@errors {400: Returned if:   *  `name` has been modified and exceeds 255 characters.  *  `description` has been modified and exceeds 1000 characters., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the project category is not found.}\n@example_request {\"description\":\"Updated Project Category\",\"name\":\"UPDATED\"}\n\n@endpoint GET /rest/api/3/projects/fields\n@desc Get fields for projects\n@required {projectId: [int(int64)] # The IDs of projects to return fields for., workTypeId: [int(int64)] # The IDs of work types (issue types) to return fields for.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., fieldId: [str] # The IDs of fields to return. If not provided, all fields are returned.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request parameters are invalid., 401: Returned if authentication is missing., 403: Returned if the user does not have permission to view the projects or work types., 404: Returned if the endpoint is not enabled via feature flag.}\n\n@endpoint GET /rest/api/3/projectvalidate/key\n@desc Validate project key\n@optional {key: str # The project key.}\n@returns(200) {errorMessages: [str], errors: map, status: int(int32)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect.}\n\n@endpoint GET /rest/api/3/projectvalidate/validProjectKey\n@desc Get valid project key\n@optional {key: str # The project key.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect.}\n\n@endpoint GET /rest/api/3/projectvalidate/validProjectName\n@desc Get valid project name\n@required {name: str # The project name.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect., 404: Returned if a valid project name cannot be generated.}\n\n@endpoint POST /rest/api/3/redact\n@desc Redact\n@optional {redactions: [map{contentItem!: map, externalId!: str(uuid), reason!: str, redactionPosition!: map}]}\n@returns(202) Returned if the job submission is successful. The response contains the job id.\n@errors {400: Returned if the redaction request is invalid., 401: Returned if the user / app is not authorised to redact data, 403: Returned if the AGP subscription is not present.}\n\n@endpoint GET /rest/api/3/redact/status/{jobId}\n@desc Get redaction status\n@required {jobId: str # Redaction job id}\n@returns(200) {bulkRedactionResponse: map{results: [map]}, jobStatus: str} # Returned if the job status is successfully retrieved.\n@errors {403: Returned if the AGP subscription is not present., 404: Returned if the job id is not found.}\n\n@endpoint GET /rest/api/3/resolution\n@desc Get resolutions\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/resolution\n@desc Create resolution\n@required {name: str # The name of the resolution. Must be unique (case-insensitive).}\n@optional {description: str # The description of the resolution.}\n@returns(201) {id: str} # Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission.}\n@example_request {\"description\":\"My resolution description\",\"name\":\"My new resolution\"}\n\n@endpoint PUT /rest/api/3/resolution/default\n@desc Set default resolution\n@required {id: str # The ID of the new default issue resolution. Must be an existing ID or null. Setting this to null erases the default resolution setting.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue resolution isn't found.}\n@example_request {\"id\":\"3\"}\n\n@endpoint PUT /rest/api/3/resolution/move\n@desc Move resolutions\n@required {ids: [str] # The list of resolution IDs to be reordered. Cannot contain duplicates nor after ID.}\n@optional {after: str # The ID of the resolution. Required if `position` isn't provided., position: str # The position for issue resolutions to be moved to. Required if `after` isn't provided.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue resolution isn't found.}\n@example_request {\"after\":\"10002\",\"ids\":[\"10000\",\"10001\"]}\n\n@endpoint GET /rest/api/3/resolution/search\n@desc Search resolutions\n@optional {startAt: str=0 # The index of the first item to return in a page of results (page offset)., maxResults: str=50 # The maximum number of items to return per page., id: [str] # The list of resolutions IDs to be filtered out, onlyDefault: bool=false # When set to true, return default only, when IDs provided, if none of them is default, return empty page. Default value is false}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint DELETE /rest/api/3/resolution/{id}\n@desc Delete resolution\n@required {id: str # The ID of the issue resolution., replaceWith: str= # The ID of the issue resolution that will replace the currently selected resolution.}\n@errors {303: Returned if the request is successful., 400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue resolution isn't found., 409: Returned if a task to delete the issue resolution is already running.}\n\n@endpoint GET /rest/api/3/resolution/{id}\n@desc Get resolution\n@required {id: str # The ID of the issue resolution value.}\n@returns(200) {description: str, id: str, name: str, self: str(uri)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue resolution value is not found.}\n\n@endpoint PUT /rest/api/3/resolution/{id}\n@desc Update resolution\n@required {id: str # The ID of the issue resolution., name: str # The name of the resolution. Must be unique.}\n@optional {description: str # The description of the resolution.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request isn't valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user doesn't have the necessary permission., 404: Returned if the issue resolution isn't found.}\n@example_request {\"description\":\"My updated resolution description\",\"name\":\"My updated resolution\"}\n\n@endpoint GET /rest/api/3/role\n@desc Get all project roles\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have administrative permissions.}\n\n@endpoint POST /rest/api/3/role\n@desc Create project role\n@optional {description: str # A description of the project role. Required when fully updating a project role. Optional when creating or partially updating a project role., name: str # The name of the project role. Must be unique. Cannot begin or end with whitespace. The maximum length is 255 characters. Required when creating a project role. Optional when partially updating a project role.}\n@returns(200) {actors: [map], admin: bool, currentUserRole: bool, default: bool, description: str, id: int(int64), name: str, roleConfigurable: bool, scope: any, self: str(uri), translatedName: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid. The `name` cannot be empty or start or end with whitespace., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have administrative permissions., 409: Returned if a project role with the provided name already exists.}\n@example_request {\"description\":\"A project role that represents developers in a project\",\"name\":\"Developers\"}\n\n@endpoint DELETE /rest/api/3/role/{id}\n@desc Delete project role\n@required {id: int(int64) # The ID of the project role to delete. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@optional {swap: int(int64) # The ID of the project role that will replace the one being deleted. The swap will attempt to swap the role in schemes (notifications, permissions, issue security), workflows, worklogs and comments.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid or if the replacement project role is not found., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have administrative permissions., 404: Returned if the project role being deleted is not found., 409: Returned if the project role being deleted is in use and a replacement project role is not specified in the request.}\n\n@endpoint GET /rest/api/3/role/{id}\n@desc Get project role by ID\n@required {id: int(int64) # The ID of the project role. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@returns(200) {actors: [map], admin: bool, currentUserRole: bool, default: bool, description: str, id: int(int64), name: str, roleConfigurable: bool, scope: any, self: str(uri), translatedName: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have administrative permissions., 404: Returned if the project role is not found.}\n\n@endpoint POST /rest/api/3/role/{id}\n@desc Partial update project role\n@required {id: int(int64) # The ID of the project role. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@optional {description: str # A description of the project role. Required when fully updating a project role. Optional when creating or partially updating a project role., name: str # The name of the project role. Must be unique. Cannot begin or end with whitespace. The maximum length is 255 characters. Required when creating a project role. Optional when partially updating a project role.}\n@returns(200) {actors: [map], admin: bool, currentUserRole: bool, default: bool, description: str, id: int(int64), name: str, roleConfigurable: bool, scope: any, self: str(uri), translatedName: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have administrative permissions., 404: Returned if the project role is not found.}\n@example_request {\"description\":\"A project role that represents developers in a project\",\"name\":\"Developers\"}\n\n@endpoint PUT /rest/api/3/role/{id}\n@desc Fully update project role\n@required {id: int(int64) # The ID of the project role. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@optional {description: str # A description of the project role. Required when fully updating a project role. Optional when creating or partially updating a project role., name: str # The name of the project role. Must be unique. Cannot begin or end with whitespace. The maximum length is 255 characters. Required when creating a project role. Optional when partially updating a project role.}\n@returns(200) {actors: [map], admin: bool, currentUserRole: bool, default: bool, description: str, id: int(int64), name: str, roleConfigurable: bool, scope: any, self: str(uri), translatedName: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid. The `name` cannot be empty or start or end with whitespace., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have administrative permissions., 404: Returned if the project role is not found.}\n@example_request {\"description\":\"A project role that represents developers in a project\",\"name\":\"Developers\"}\n\n@endpoint DELETE /rest/api/3/role/{id}/actors\n@desc Delete default actors from project role\n@required {id: int(int64) # The ID of the project role. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@optional {user: str # The user account ID of the user to remove as a default actor., groupId: str # The group ID of the group to be removed as a default actor. This parameter cannot be used with the `group` parameter., group: str # The group name of the group to be removed as a default actor.This parameter cannot be used with the `groupId` parameter. As a group's name can change, use of `groupId` is recommended.}\n@returns(200) {actors: [map], admin: bool, currentUserRole: bool, default: bool, description: str, id: int(int64), name: str, roleConfigurable: bool, scope: any, self: str(uri), translatedName: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have administrative permissions., 404: Returned if the project role is not found.}\n\n@endpoint GET /rest/api/3/role/{id}/actors\n@desc Get default actors for project role\n@required {id: int(int64) # The ID of the project role. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@returns(200) {actors: [map], admin: bool, currentUserRole: bool, default: bool, description: str, id: int(int64), name: str, roleConfigurable: bool, scope: any, self: str(uri), translatedName: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have administrative permissions., 404: Returned if the project role is not found.}\n\n@endpoint POST /rest/api/3/role/{id}/actors\n@desc Add default actors to project role\n@required {id: int(int64) # The ID of the project role. Use [Get all project roles](#api-rest-api-3-role-get) to get a list of project role IDs.}\n@optional {group: [str] # The name of the group to add as a default actor. This parameter cannot be used with the `groupId` parameter. As a group's name can change,use of `groupId` is recommended. This parameter accepts a comma-separated list. For example, `\"group\":[\"project-admin\", \"jira-developers\"]`., groupId: [str] # The ID of the group to add as a default actor. This parameter cannot be used with the `group` parameter This parameter accepts a comma-separated list. For example, `\"groupId\":[\"77f6ab39-e755-4570-a6ae-2d7a8df0bcb8\", \"0c011f85-69ed-49c4-a801-3b18d0f771bc\"]`., user: [str] # The account IDs of the users to add as default actors. This parameter accepts a comma-separated list. For example, `\"user\":[\"5b10a2844c20165700ede21g\", \"5b109f2e9729b51b54dc274d\"]`.}\n@returns(200) {actors: [map], admin: bool, currentUserRole: bool, default: bool, description: str, id: int(int64), name: str, roleConfigurable: bool, scope: any, self: str(uri), translatedName: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have administrative permissions., 404: Returned if the project role is not found.}\n@example_request {\"user\":[\"admin\"]}\n\n@endpoint GET /rest/api/3/screens\n@desc Get screens\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=100 # The maximum number of items to return per page., id: [int(int64)] # The list of screen IDs. To include multiple IDs, provide an ampersand-separated list. For example, `id=10000&id=10001`., queryString: str= # String used to perform a case-insensitive partial match with screen name., scope: [str] # The scope filter string. To filter by multiple scope, provide an ampersand-separated list. For example, `scope=GLOBAL&scope=PROJECT`., orderBy: str(name/-name/+name/id/-id/+id) # [Order](#ordering) the results by a field:   *  `id` Sorts by screen ID.  *  `name` Sorts by screen name.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint POST /rest/api/3/screens\n@desc Create screen\n@required {name: str # The name of the screen. The name must be unique. The maximum length is 255 characters.}\n@optional {description: str # The description of the screen. The maximum length is 255 characters.}\n@returns(201) {description: str, id: int(int64), name: str, scope: any} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions.}\n@example_request {\"description\":\"Enables changes to resolution and linked issues.\",\"name\":\"Resolve Security Issue Screen\"}\n\n@endpoint POST /rest/api/3/screens/addToDefault/{fieldId}\n@desc Add field to default screen\n@required {fieldId: str # The ID of the field.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the field it not found or the field is already present.}\n\n@endpoint GET /rest/api/3/screens/tabs\n@desc Get bulk screen tabs\n@optional {screenId: [int(int64)] # The list of screen IDs. To include multiple screen IDs, provide an ampersand-separated list. For example, `screenId=10000&screenId=10001`., tabId: [int(int64)] # The list of tab IDs. To include multiple tab IDs, provide an ampersand-separated list. For example, `tabId=10000&tabId=10001`., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResult: int(int32)=100 # The maximum number of items to return per page. The maximum number is 100,}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the screen ID or the tab ID is empty., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint DELETE /rest/api/3/screens/{screenId}\n@desc Delete screen\n@required {screenId: int(int64) # The ID of the screen.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen is not found.}\n\n@endpoint PUT /rest/api/3/screens/{screenId}\n@desc Update screen\n@required {screenId: int(int64) # The ID of the screen.}\n@optional {description: str # The description of the screen. The maximum length is 255 characters., name: str # The name of the screen. The name must be unique. The maximum length is 255 characters.}\n@returns(200) {description: str, id: int(int64), name: str, scope: any} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen is not found.}\n@example_request {\"description\":\"Enables changes to resolution and linked issues for accessibility related issues.\",\"name\":\"Resolve Accessibility Issue Screen\"}\n\n@endpoint GET /rest/api/3/screens/{screenId}/availableFields\n@desc Get available screen fields\n@required {screenId: int(int64) # The ID of the screen.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen is not found.}\n\n@endpoint GET /rest/api/3/screens/{screenId}/tabs\n@desc Get all screen tabs\n@required {screenId: int(int64) # The ID of the screen.}\n@optional {projectKey: str # The key of the project.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the screen ID is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen is not found.}\n\n@endpoint POST /rest/api/3/screens/{screenId}/tabs\n@desc Create screen tab\n@required {screenId: int(int64) # The ID of the screen., name: str # The name of the screen tab. The maximum length is 255 characters.}\n@optional {id: int(int64) # The ID of the screen tab.}\n@returns(200) {id: int(int64), name: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen is not found.}\n@example_request {\"name\":\"Fields Tab\"}\n\n@endpoint DELETE /rest/api/3/screens/{screenId}/tabs/{tabId}\n@desc Delete screen tab\n@required {screenId: int(int64) # The ID of the screen., tabId: int(int64) # The ID of the screen tab.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen or screen tab is not found.}\n\n@endpoint PUT /rest/api/3/screens/{screenId}/tabs/{tabId}\n@desc Update screen tab\n@required {screenId: int(int64) # The ID of the screen., tabId: int(int64) # The ID of the screen tab., name: str # The name of the screen tab. The maximum length is 255 characters.}\n@optional {id: int(int64) # The ID of the screen tab.}\n@returns(200) {id: int(int64), name: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen or screen tab is not found.}\n\n@endpoint GET /rest/api/3/screens/{screenId}/tabs/{tabId}/fields\n@desc Get all screen tab fields\n@required {screenId: int(int64) # The ID of the screen., tabId: int(int64) # The ID of the screen tab.}\n@optional {projectKey: str # The key of the project.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen or screen tab is not found.}\n\n@endpoint POST /rest/api/3/screens/{screenId}/tabs/{tabId}/fields\n@desc Add screen tab field\n@required {screenId: int(int64) # The ID of the screen., tabId: int(int64) # The ID of the screen tab., fieldId: str # The ID of the field to add.}\n@returns(200) {id: str, name: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen, screen tab, or field is not found.}\n@example_request {\"fieldId\":\"summary\"}\n\n@endpoint DELETE /rest/api/3/screens/{screenId}/tabs/{tabId}/fields/{id}\n@desc Remove screen tab field\n@required {screenId: int(int64) # The ID of the screen., tabId: int(int64) # The ID of the screen tab., id: str # The ID of the field.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen, screen tab, or field is not found.}\n\n@endpoint POST /rest/api/3/screens/{screenId}/tabs/{tabId}/fields/{id}/move\n@desc Move screen tab field\n@required {screenId: int(int64) # The ID of the screen., tabId: int(int64) # The ID of the screen tab., id: str # The ID of the field.}\n@optional {after: str(uri) # The ID of the screen tab field after which to place the moved screen tab field. Required if `position` isn't provided., position: str(Earlier/Later/First/Last) # The named position to which the screen tab field should be moved. Required if `after` isn't provided.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen, screen tab, or field is not found or the field can't be moved to the requested position.}\n\n@endpoint POST /rest/api/3/screens/{screenId}/tabs/{tabId}/move/{pos}\n@desc Move screen tab\n@required {screenId: int(int64) # The ID of the screen., tabId: int(int64) # The ID of the screen tab., pos: int(int32) # The position of tab. The base index is 0.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen or screen tab is not found or the position is invalid.}\n\n@endpoint GET /rest/api/3/screenscheme\n@desc Get screen schemes\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=25 # The maximum number of items to return per page., id: [int(int64)] # The list of screen scheme IDs. To include multiple IDs, provide an ampersand-separated list. For example, `id=10000&id=10001`., expand: str= # Use [expand](#expansion) include additional information in the response. This parameter accepts `issueTypeScreenSchemes` that, for each screen schemes, returns information about the issue type screen scheme the screen scheme is assigned to., queryString: str= # String used to perform a case-insensitive partial match with screen scheme name., orderBy: str(name/-name/+name/id/-id/+id) # [Order](#ordering) the results by a field:   *  `id` Sorts by screen scheme ID.  *  `name` Sorts by screen scheme name.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint POST /rest/api/3/screenscheme\n@desc Create screen scheme\n@required {name: str # The name of the screen scheme. The name must be unique. The maximum length is 255 characters., screens: any # The IDs of the screens for the screen types of the screen scheme. Only screens used in classic projects are accepted.}\n@optional {description: str # The description of the screen scheme. The maximum length is 255 characters.}\n@returns(201) {id: int(int64)} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if a screen used as one of the screen types in the screen scheme is not found.}\n@example_request {\"description\":\"Manage employee data\",\"name\":\"Employee screen scheme\",\"screens\":{\"default\":10017,\"edit\":10019,\"view\":10020}}\n\n@endpoint DELETE /rest/api/3/screenscheme/{screenSchemeId}\n@desc Delete screen scheme\n@required {screenSchemeId: str # The ID of the screen scheme.}\n@returns(204) Returned if the screen scheme is deleted.\n@errors {400: Returned if the screen scheme is used in an issue type screen scheme., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the screen scheme is not found.}\n\n@endpoint PUT /rest/api/3/screenscheme/{screenSchemeId}\n@desc Update screen scheme\n@required {screenSchemeId: str # The ID of the screen scheme.}\n@optional {description: str # The description of the screen scheme. The maximum length is 255 characters., name: str # The name of the screen scheme. The name must be unique. The maximum length is 255 characters., screens: any # The IDs of the screens for the screen types of the screen scheme. Only screens used in classic projects are accepted.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the screen scheme or a screen used as one of the screen types is not found.}\n@example_request {\"name\":\"Employee screen scheme v2\",\"screens\":{\"create\":\"10019\",\"default\":\"10018\"}}\n\n@endpoint GET /rest/api/3/search\n@desc Currently being removed. Search for issues using JQL (GET)\n@optional {jql: str # The [JQL](https://confluence.atlassian.com/x/egORLQ) that defines the search. Note:   *  If no JQL expression is provided, all issues are returned.  *  `username` and `userkey` cannot be used as search terms due to privacy reasons. Use `accountId` instead.  *  If a user has hidden their email address in their user profile, partial matches of the email address will not find the user. An exact match is required., startAt: int(int32)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page. To manage page size, Jira may return fewer items per page where a large number of fields or properties are requested. The greatest number of items returned per page is achieved when requesting `id` or `key` only., validateQuery: str(strict/warn/none/true/false)=strict # Determines how to validate the JQL query and treat the validation results. Supported values are:   *  `strict` Returns a 400 response code if any errors are found, along with a list of all errors (and warnings).  *  `warn` Returns all errors as warnings.  *  `none` No validation is performed.  *  `true` *Deprecated* A legacy synonym for `strict`.  *  `false` *Deprecated* A legacy synonym for `warn`.  Note: If the JQL is not correctly formed a 400 response code is returned, regardless of the `validateQuery` value., fields: [str] # A list of fields to return for each issue, use it to retrieve a subset of fields. This parameter accepts a comma-separated list. Expand options include:   *  `*all` Returns all fields.  *  `*navigable` Returns navigable fields.  *  Any issue field, prefixed with a minus to exclude.  Examples:   *  `summary,comment` Returns only the summary and comments fields.  *  `-description` Returns all navigable (default) fields except description.  *  `*all,-comment` Returns all fields except comments.  This parameter may be specified multiple times. For example, `fields=field1,field2&fields=field3`.  Note: All navigable fields are returned by default. This differs from [GET issue](#api-rest-api-3-issue-issueIdOrKey-get) where the default is all fields., expand: str # Use [expand](#expansion) to include additional information about issues in the response. This parameter accepts a comma-separated list. Expand options include:   *  `renderedFields` Returns field values rendered in HTML format.  *  `names` Returns the display name of each field.  *  `schema` Returns the schema describing a field type.  *  `transitions` Returns all possible transitions for the issue.  *  `operations` Returns all possible operations for the issue.  *  `editmeta` Returns information about how each field can be edited.  *  `changelog` Returns a list of recent updates to an issue, sorted by date, starting from the most recent.  *  `versionedRepresentations` Instead of `fields`, returns `versionedRepresentations` a JSON array containing each version of a field's value, with the highest numbered item representing the most recent version., properties: [str] # A list of issue property keys for issue properties to include in the results. This parameter accepts a comma-separated list. Multiple properties can also be provided using an ampersand separated list. For example, `properties=prop1,prop2&properties=prop3`. A maximum of 5 issue property keys can be specified., fieldsByKeys: bool=false # Reference fields by their key (rather than ID)., failFast: bool=false # Whether to fail the request quickly in case of an error while loading fields for an issue. For `failFast=true`, if one field fails, the entire operation fails. For `failFast=false`, the operation will continue even if a field fails. It will return a valid response, but without values for the failed field(s).}\n@returns(200) {expand: str, issues: [map], maxResults: int(int32), names: map, schema: map, startAt: int(int32), total: int(int32), warningMessages: [str]} # Returned if the request is successful.\n@errors {400: Returned if the JQL query is invalid., 401: Returned if the authentication credentials are incorrect.}\n\n@endpoint POST /rest/api/3/search\n@desc Currently being removed. Search for issues using JQL (POST)\n@optional {expand: [str] # Use [expand](#expansion) to include additional information about issues in the response. Note that, unlike the majority of instances where `expand` is specified, `expand` is defined as a list of values. The expand options are:   *  `renderedFields` Returns field values rendered in HTML format.  *  `names` Returns the display name of each field.  *  `schema` Returns the schema describing a field type.  *  `transitions` Returns all possible transitions for the issue.  *  `operations` Returns all possible operations for the issue.  *  `editmeta` Returns information about how each field can be edited.  *  `changelog` Returns a list of recent updates to an issue, sorted by date, starting from the most recent.  *  `versionedRepresentations` Instead of `fields`, returns `versionedRepresentations` a JSON array containing each version of a field's value, with the highest numbered item representing the most recent version., fields: [str] # A list of fields to return for each issue, use it to retrieve a subset of fields. This parameter accepts a comma-separated list. Expand options include:   *  `*all` Returns all fields.  *  `*navigable` Returns navigable fields.  *  Any issue field, prefixed with a minus to exclude.  The default is `*navigable`.  Examples:   *  `summary,comment` Returns the summary and comments fields only.  *  `-description` Returns all navigable (default) fields except description.  *  `*all,-comment` Returns all fields except comments.  Multiple `fields` parameters can be included in a request.  Note: All navigable fields are returned by default. This differs from [GET issue](#api-rest-api-3-issue-issueIdOrKey-get) where the default is all fields., fieldsByKeys: bool # Reference fields by their key (rather than ID). The default is `false`., jql: str # A [JQL](https://confluence.atlassian.com/x/egORLQ) expression., maxResults: int(int32)=50 # The maximum number of items to return per page., properties: [str] # A list of up to 5 issue properties to include in the results. This parameter accepts a comma-separated list., startAt: int(int32) # The index of the first item to return in the page of results (page offset). The base index is `0`., validateQuery: str(strict/warn/none/true/false) # Determines how to validate the JQL query and treat the validation results. Supported values:   *  `strict` Returns a 400 response code if any errors are found, along with a list of all errors (and warnings).  *  `warn` Returns all errors as warnings.  *  `none` No validation is performed.  *  `true` *Deprecated* A legacy synonym for `strict`.  *  `false` *Deprecated* A legacy synonym for `warn`.  The default is `strict`.  Note: If the JQL is not correctly formed a 400 response code is returned, regardless of the `validateQuery` value.}\n@returns(200) {expand: str, issues: [map], maxResults: int(int32), names: map, schema: map, startAt: int(int32), total: int(int32), warningMessages: [str]} # Returned if the request is successful.\n@errors {400: Returned if the JQL query is invalid., 401: Returned if the authentication credentials are incorrect.}\n@example_request {\"expand\":[\"names\",\"schema\",\"operations\"],\"fields\":[\"summary\",\"status\",\"assignee\"],\"fieldsByKeys\":false,\"jql\":\"project = HSP\",\"maxResults\":15,\"startAt\":0}\n\n@endpoint POST /rest/api/3/search/approximate-count\n@desc Count issues using JQL\n@optional {jql: str # A [JQL](https://confluence.atlassian.com/x/egORLQ) expression. For performance reasons, this parameter requires a bounded query. A bounded query is a query with a search restriction.}\n@returns(200) {count: int(int64)} # Returned if the request is successful.\n@errors {400: Returned if the JQL query cannot be parsed., 401: Returned if the authentication credentials are incorrect.}\n@example_request {\"jql\":\"project = HSP\"}\n\n@endpoint GET /rest/api/3/search/jql\n@desc Search for issues using JQL enhanced search (GET)\n@optional {jql: str # A [JQL](https://confluence.atlassian.com/x/egORLQ) expression. For performance reasons, this parameter requires a bounded query. A bounded query is a query with a search restriction.   *  Example of an unbounded query: `order by key desc`.  *  Example of a bounded query: `assignee = currentUser() order by key`.  Additionally, `orderBy` clause can contain a maximum of 7 fields., nextPageToken: str # The token for a page to fetch that is not the first page. The first page has a `nextPageToken` of `null`. Use the `nextPageToken` to fetch the next page of issues.  Note: The `nextPageToken` field is **not included** in the response for the last page, indicating there is no next page., maxResults: int(int32)=50 # The maximum number of items to return per page. To manage page size, API may return fewer items per page where a large number of fields or properties are requested. The greatest number of items returned per page is achieved when requesting `id` or `key` only. It returns max 5000 issues., fields: [str] # A list of fields to return for each issue, use it to retrieve a subset of fields. This parameter accepts a comma-separated list. Expand options include:   *  `*all` Returns all fields.  *  `*navigable` Returns navigable fields.  *  `id` Returns only issue IDs.  *  Any issue field, prefixed with a minus to exclude.  The default is `id`.  Examples:   *  `summary,comment` Returns only the summary and comments fields only.  *  `-description` Returns all navigable (default) fields except description.  *  `*all,-comment` Returns all fields except comments.  Multiple `fields` parameters can be included in a request.  Note: By default, this resource returns IDs only. This differs from [GET issue](#api-rest-api-3-issue-issueIdOrKey-get) where the default is all fields., expand: str # Use [expand](#expansion) to include additional information about issues in the response. Note that, unlike the majority of instances where `expand` is specified, `expand` is defined as a comma-delimited string of values. The expand options are:   *  `renderedFields` Returns field values rendered in HTML format.  *  `names` Returns the display name of each field.  *  `schema` Returns the schema describing a field type.  *  `transitions` Returns all possible transitions for the issue.  *  `operations` Returns all possible operations for the issue.  *  `editmeta` Returns information about how each field can be edited.  *  `changelog` Returns a list of recent updates to an issue, sorted by date, starting from the most recent.  *  `versionedRepresentations` Instead of `fields`, returns `versionedRepresentations` a JSON array containing each version of a field's value, with the highest numbered item representing the most recent version.  Examples: `\"names,changelog\"` Returns the display name of each field as well as a list of recent updates to an issue., properties: [str] # A list of up to 5 issue properties to include in the results. This parameter accepts a comma-separated list., fieldsByKeys: bool=false # Reference fields by their key (rather than ID). The default is `false`., failFast: bool=false # Fail this request early if we can't retrieve all field data., reconcileIssues: [int(int64)] # Strong consistency issue ids to be reconciled with search results. Accepts max 50 ids. This list of ids should be consistent with each paginated request across different pages.}\n@returns(200) {isLast: bool, issues: [map], names: map, nextPageToken: str, schema: map} # Returned if the request is successful.\n@errors {400: Returned if the search request is invalid, 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/search/jql\n@desc Search for issues using JQL enhanced search (POST)\n@optional {expand: str # Use [expand](#expansion) to include additional information about issues in the response. Note that, unlike the majority of instances where `expand` is specified, `expand` is defined as a comma-delimited string of values. The expand options are:   *  `renderedFields` Returns field values rendered in HTML format.  *  `names` Returns the display name of each field.  *  `schema` Returns the schema describing a field type.  *  `transitions` Returns all possible transitions for the issue.  *  `operations` Returns all possible operations for the issue.  *  `editmeta` Returns information about how each field can be edited.  *  `changelog` Returns a list of recent updates to an issue, sorted by date, starting from the most recent.  *  `versionedRepresentations` Instead of `fields`, returns `versionedRepresentations` a JSON array containing each version of a field's value, with the highest numbered item representing the most recent version.  Examples: `\"names,changelog\"` Returns the display name of each field as well as a list of recent updates to an issue., fields: [str] # A list of fields to return for each issue. Use it to retrieve a subset of fields. This parameter accepts a comma-separated list. Expand options include:   *  `*all` Returns all fields.  *  `*navigable` Returns navigable fields.  *  `id` Returns only issue IDs.  *  Any issue field, prefixed with a dash to exclude.  The default is `id`.  Examples:   *  `summary,comment` Returns the summary and comments fields only.  *  `*all,-comment` Returns all fields except comments.  Multiple `fields` parameters can be included in a request.  Note: By default, this resource returns IDs only. This differs from [GET issue](#api-rest-api-3-issue-issueIdOrKey-get) where the default is all fields., fieldsByKeys: bool # Reference fields by their key (rather than ID). The default is `false`., jql: str # A [JQL](https://confluence.atlassian.com/x/egORLQ) expression. For performance reasons, this parameter requires a bounded query. A bounded query is a query with a search restriction.   *  Example of an unbounded query: `order by key desc`.  *  Example of a bounded query: `assignee = currentUser() order by key`.  Additionally, `orderBy` clause can contain a maximum of 7 fields., maxResults: int(int32)=50 # The maximum number of items to return per page. To manage page size, API may return fewer items per page where a large number of fields are requested. The greatest number of items returned per page is achieved when requesting `id` or `key` only. It returns max 5000 issues., nextPageToken: str # The token for a page to fetch that is not the first page. The first page has a `nextPageToken` of `null`. Use the `nextPageToken` to fetch the next page of issues., properties: [str] # A list of up to 5 issue properties to include in the results. This parameter accepts a comma-separated list., reconcileIssues: [int(int64)] # Strong consistency issue ids to be reconciled with search results. Accepts max 50 ids. This list of ids should be consistent with each paginated request across different pages.}\n@returns(200) {isLast: bool, issues: [map], names: map, nextPageToken: str, schema: map} # Returned if the request is successful.\n@errors {400: Returned if the search request is invalid, 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/securitylevel/{id}\n@desc Get issue security level\n@required {id: str # The ID of the issue security level.}\n@returns(200) {description: str, id: str, isDefault: bool, issueSecuritySchemeId: str, name: str, self: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect., 404: Returned if the issue security level is not found.}\n\n@endpoint GET /rest/api/3/serverInfo\n@desc Get Jira instance info\n@returns(200) {baseUrl: str, buildDate: str(date-time), buildNumber: int(int32), deploymentType: str, displayUrl: str, displayUrlConfluence: str, displayUrlServicedeskHelpCenter: str, healthChecks: [map], scmInfo: str, serverTime: str(date-time), serverTimeZone: str, serverTitle: str, version: str, versionNumbers: [int(int32)]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect.}\n\n@endpoint GET /rest/api/3/settings/columns\n@desc Get issue navigator default columns\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint PUT /rest/api/3/settings/columns\n@desc Set issue navigator default columns\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if invalid parameters are passed., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if a navigable field value is not found.}\n\n@endpoint GET /rest/api/3/status\n@desc Get all statuses\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/status/{idOrName}\n@desc Get status\n@required {idOrName: str # The ID or name of the status.}\n@returns(200) {description: str, iconUrl: str, id: str, name: str, scope: any, self: str, statusCategory: any} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the status is not found.  *  the status is not associated with a workflow.  *  the user does not have the required permissions.}\n\n@endpoint GET /rest/api/3/statuscategory\n@desc Get all status categories\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/statuscategory/{idOrKey}\n@desc Get status category\n@required {idOrKey: str # The ID or key of the status category.}\n@returns(200) {colorName: str, id: int(int64), key: str, name: str, self: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the status category is not found.}\n\n@endpoint DELETE /rest/api/3/statuses\n@desc Bulk delete Statuses\n@required {id: [str] # The list of status IDs. To include multiple IDs, provide an ampersand-separated list. For example, id=10000&id=10001.  Min items `1`, Max items `50`}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n\n@endpoint GET /rest/api/3/statuses\n@desc Bulk get statuses\n@required {id: [str] # The list of status IDs. To include multiple IDs, provide an ampersand-separated list. For example, id=10000&id=10001.  Min items `1`, Max items `50`}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n\n@endpoint POST /rest/api/3/statuses\n@desc Bulk create statuses\n@required {scope: map{project: map, type!: str} # The scope of the status., statuses: [map{description: str, name!: str, statusCategory!: str}] # Details of the statuses being created.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 409: Returned if another workflow configuration update task is ongoing.}\n@example_request {\"scope\":{\"project\":{\"id\":\"1\"},\"type\":\"PROJECT\"},\"statuses\":[{\"description\":\"The issue is resolved\",\"name\":\"Finished\",\"statusCategory\":\"DONE\"}]}\n\n@endpoint PUT /rest/api/3/statuses\n@desc Bulk update statuses\n@required {statuses: [map{description: str, id!: str, name!: str, statusCategory!: str}] # The list of statuses that will be updated.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 409: Returned if another workflow configuration update task is ongoing.}\n@example_request {\"statuses\":[{\"description\":\"The issue is resolved\",\"id\":\"1000\",\"name\":\"Finished\",\"statusCategory\":\"DONE\"}]}\n\n@endpoint GET /rest/api/3/statuses/byNames\n@desc Bulk get statuses by name\n@required {name: [str] # The list of status names. To include multiple names, provide an ampersand-separated list. For example, name=nameXX&name=nameYY.  Min items `1`, Max items `50`}\n@optional {projectId: str # The project the status is part of or null for global statuses.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n\n@endpoint GET /rest/api/3/statuses/search\n@desc Search statuses paginated\n@optional {projectId: str # The project the status is part of or null for global statuses., startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=200 # The maximum number of items to return per page., searchString: str # Term to match status names against or null to search for all statuses in the search scope., statusCategory: str # Category of the status to filter by. The supported values are: `TODO`, `IN_PROGRESS`, and `DONE`.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str, self: str, startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n\n@endpoint GET /rest/api/3/statuses/{statusId}/project/{projectId}/issueTypeUsages\n@desc Get issue type usages by status and project\n@required {statusId: str # The statusId to fetch issue type usages for, projectId: str # The projectId to fetch issue type usages for}\n@optional {nextPageToken: str # The cursor for pagination, maxResults: int(int32)=50 # The maximum number of results to return. Must be an integer between 1 and 200.}\n@returns(200) {issueTypes: map{nextPageToken: str, values: [map]}, projectId: str, statusId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 404: Returned if the status with the given ID does not exist.}\n\n@endpoint GET /rest/api/3/statuses/{statusId}/projectUsages\n@desc Get project usages by status\n@required {statusId: str # The statusId to fetch project usages for}\n@optional {nextPageToken: str # The cursor for pagination, maxResults: int(int32)=50 # The maximum number of results to return. Must be an integer between 1 and 200.}\n@returns(200) {projects: map{nextPageToken: str, values: [map]}, statusId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 404: Returned if the status with the given ID does not exist.}\n\n@endpoint GET /rest/api/3/statuses/{statusId}/workflowUsages\n@desc Get workflow usages by status\n@required {statusId: str # The statusId to fetch workflow usages for}\n@optional {nextPageToken: str # The cursor for pagination, maxResults: int(int32)=50 # The maximum number of results to return. Must be an integer between 1 and 200.}\n@returns(200) {statusId: str, workflows: map{nextPageToken: str, values: [map]}} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 404: Returned if the status with the given ID does not exist.}\n\n@endpoint GET /rest/api/3/task/{taskId}\n@desc Get task\n@required {taskId: str # The ID of the task.}\n@returns(200) {description: str, elapsedRuntime: int(int64), finished: int(int64), id: str, lastUpdate: int(int64), message: str, progress: int(int64), result: any, self: str(uri), started: int(int64), status: str, submitted: int(int64), submittedBy: int(int64)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the task is not found.}\n\n@endpoint POST /rest/api/3/task/{taskId}/cancel\n@desc Cancel task\n@required {taskId: str # The ID of the task.}\n@returns(202) Returned if the request is successful.\n@errors {400: Returned if cancellation of the task is not possible., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the task is not found.}\n\n@endpoint GET /rest/api/3/uiModifications\n@desc Get UI modifications\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., expand: str # Use expand to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `data` Returns UI modification data.  *  `contexts` Returns UI modification contexts.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the request is not from a Forge app.}\n\n@endpoint POST /rest/api/3/uiModifications\n@desc Create UI modification\n@required {name: str # The name of the UI modification. The maximum length is 255 characters.}\n@optional {contexts: [map{id: str, isAvailable: bool, issueTypeId: str, portalId: str, projectId: str, requestTypeId: str, viewType: str}] # List of contexts of the UI modification. The maximum number of contexts is 1000., data: str # The data of the UI modification. The maximum size of the data is 50000 characters., description: str # The description of the UI modification. The maximum length is 255 characters.}\n@returns(201) {id: str, self: str} # Returned if the UI modification is created.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the request is not from a Forge app., 404: Returned if a project, issue type, portal, or request type in the context are not found.}\n@example_request {\"contexts\":[{\"issueTypeId\":\"10000\",\"projectId\":\"10000\",\"viewType\":\"GIC\"},{\"issueTypeId\":\"10001\",\"projectId\":\"10000\",\"viewType\":\"IssueView\"},{\"issueTypeId\":\"10002\",\"projectId\":\"10000\",\"viewType\":\"IssueTransition\"},{\"issueTypeId\":\"10003\",\"projectId\":\"10000\",\"viewType\":null},{\"issueTypeId\":null,\"portalId\":\"1\",\"projectId\":null,\"requestTypeId\":\"10\",\"viewType\":\"JSMRequestCreate\"}],\"data\":\"{field: 'Story Points', config: {hidden: false}}\",\"description\":\"Reveals Story Points field when any Sprint is selected.\",\"name\":\"Reveal Story Points\"}\n\n@endpoint DELETE /rest/api/3/uiModifications/{uiModificationId}\n@desc Delete UI modification\n@required {uiModificationId: str # The ID of the UI modification.}\n@returns(204) Returned if the UI modification is deleted.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the request is not from a Forge app., 404: Returned if the UI modification is not found.}\n\n@endpoint PUT /rest/api/3/uiModifications/{uiModificationId}\n@desc Update UI modification\n@required {uiModificationId: str # The ID of the UI modification.}\n@optional {contexts: [map{id: str, isAvailable: bool, issueTypeId: str, portalId: str, projectId: str, requestTypeId: str, viewType: str}] # List of contexts of the UI modification. The maximum number of contexts is 1000. If provided, replaces all existing contexts., data: str # The data of the UI modification. The maximum size of the data is 50000 characters., description: str # The description of the UI modification. The maximum length is 255 characters., name: str # The name of the UI modification. The maximum length is 255 characters.}\n@returns(204) Returned if the UI modification is updated.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the request is not from a Forge app., 404: Returned if the UI modification, a project, issue type, portal, or request type in the context are not found.}\n@example_request {\"contexts\":[{\"issueTypeId\":\"10000\",\"projectId\":\"10000\",\"viewType\":\"GIC\"},{\"issueTypeId\":\"10001\",\"projectId\":\"10000\",\"viewType\":\"IssueView\"},{\"issueTypeId\":\"10002\",\"projectId\":\"10000\",\"viewType\":\"IssueTransition\"},{\"issueTypeId\":null,\"portalId\":\"5\",\"projectId\":null,\"requestTypeId\":\"100\",\"viewType\":\"JSMRequestCreate\"}],\"data\":\"{field: 'Story Points', config: {hidden: true}}\",\"name\":\"Updated Reveal Story Points\"}\n\n@endpoint GET /rest/api/3/universal_avatar/type/{type}/owner/{entityId}\n@desc Get avatars\n@required {type: str(project/issuetype/priority) # The avatar type., entityId: str # The ID of the item the avatar is associated with.}\n@returns(200) {custom: [map], system: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the avatar type is invalid, the associated item ID is missing, or the item is not found.}\n\n@endpoint POST /rest/api/3/universal_avatar/type/{type}/owner/{entityId}\n@desc Load avatar\n@required {type: str(project/issuetype/priority) # The avatar type., entityId: str # The ID of the item the avatar is associated with., size: int(int32)=0 # The length of each side of the crop region.}\n@optional {x: int(int32)=0 # The X coordinate of the top-left corner of the crop region., y: int(int32)=0 # The Y coordinate of the top-left corner of the crop region.}\n@returns(201) {fileName: str, id: str, isDeletable: bool, isSelected: bool, isSystemAvatar: bool, owner: str, urls: map} # Returned if the request is successful.\n@errors {400: Returned if:   *  an image isn't included in the request.  *  the image type is unsupported.  *  the crop parameters extend the crop area beyond the edge of the image., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permissions., 404: Returned if the avatar type is invalid, the associated item ID is missing, or the item is not found.}\n\n@endpoint DELETE /rest/api/3/universal_avatar/type/{type}/owner/{owningObjectId}/avatar/{id}\n@desc Delete avatar\n@required {type: str(project/issuetype/priority) # The avatar type., owningObjectId: str # The ID of the item the avatar is associated with., id: int(int64) # The ID of the avatar.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the user does not have permission to delete the avatar, the avatar is not deletable., 404: Returned if the avatar type, associated item ID, or avatar ID is invalid.}\n\n@endpoint GET /rest/api/3/universal_avatar/view/type/{type}\n@desc Get avatar image by type\n@required {type: str(issuetype/project/priority) # The icon type of the avatar.}\n@optional {size: str(xsmall/small/medium/large/xlarge) # The size of the avatar image. If not provided the default size is returned., format: str(png/svg) # The format to return the avatar image in. If not provided the original content format is returned.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect., 403: Returned if the user does not have the necessary permission., 404: Returned if an avatar is not found or an avatar matching the requested size is not found.}\n\n@endpoint GET /rest/api/3/universal_avatar/view/type/{type}/avatar/{id}\n@desc Get avatar image by ID\n@required {type: str(issuetype/project/priority) # The icon type of the avatar., id: int(int64) # The ID of the avatar.}\n@optional {size: str(xsmall/small/medium/large/xlarge) # The size of the avatar image. If not provided the default size is returned., format: str(png/svg) # The format to return the avatar image in. If not provided the original content format is returned.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect., 403: Returned if the user does not have the necessary permission., 404: Returned if an avatar is not found or an avatar matching the requested size is not found.}\n\n@endpoint GET /rest/api/3/universal_avatar/view/type/{type}/owner/{entityId}\n@desc Get avatar image by owner\n@required {type: str(issuetype/project/priority) # The icon type of the avatar., entityId: str # The ID of the project or issue type the avatar belongs to.}\n@optional {size: str(xsmall/small/medium/large/xlarge) # The size of the avatar image. If not provided the default size is returned., format: str(png/svg) # The format to return the avatar image in. If not provided the original content format is returned.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect., 403: Returned if the user does not have the necessary permission., 404: Returned if an avatar is not found or an avatar matching the requested size is not found.}\n\n@endpoint DELETE /rest/api/3/user\n@desc Delete user\n@required {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*.}\n@optional {username: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., key: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the user cannot be removed., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the user is not found.}\n\n@endpoint GET /rest/api/3/user\n@desc Get user\n@optional {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. Required., username: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide) for details., key: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide) for details., expand: str # Use [expand](#expansion) to include additional information about users in the response. This parameter accepts a comma-separated list. Expand options include:   *  `groups` includes all groups and nested groups to which the user belongs.  *  `applicationRoles` includes details of all the applications to which the user has access.}\n@returns(200) {accountId: str, accountType: str, active: bool, appType: str, applicationRoles: any, avatarUrls: any, displayName: str, emailAddress: str, expand: str, groups: any, guest: bool, key: str, locale: str, name: str, self: str(uri), timeZone: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the calling user does not have the *Browse users and groups* global permission., 404: Returned if the user is not found.}\n\n@endpoint POST /rest/api/3/user\n@desc Create user\n@required {emailAddress: str # The email address for the user., products: [str] # Products the new user has access to. Valid products are: jira-core, jira-servicedesk, jira-product-discovery, jira-software. To create a user without product access, set this field to be an empty array.}\n@optional {applicationKeys: [str] # Deprecated, do not use., displayName: str # This property is no longer available. If the user has an Atlassian account, their display name is not changed. If the user does not have an Atlassian account, they are sent an email asking them set up an account., key: str # This property is no longer available. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., name: str # This property is no longer available. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., password: str # This property is no longer available. If the user has an Atlassian account, their password is not changed. If the user does not have an Atlassian account, they are sent an email asking them set up an account., self: str # The URL of the user.}\n@returns(201) {accountId: str, accountType: str, active: bool, appType: str, applicationRoles: any, avatarUrls: any, displayName: str, emailAddress: str, expand: str, groups: any, guest: bool, key: str, locale: str, name: str, self: str(uri), timeZone: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid, the user already exists but does not have access to jira, or the number of licensed users is exceeded., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"emailAddress\":\"mia@atlassian.com\",\"products\":[\"jira-software\"]}\n\n@endpoint GET /rest/api/3/user/assignable/multiProjectSearch\n@desc Find users assignable to projects\n@required {projectKeys: str # A list of project keys (case sensitive). This parameter accepts a comma-separated list.}\n@optional {query: str # A query string that is matched against user attributes, such as `displayName` and `emailAddress`, to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*. Required, unless `accountId` is specified., username: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., accountId: str # A query string that is matched exactly against user `accountId`. Required, unless `query` is specified., startAt: int(int32)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if:   *  `projectKeys` is missing.  *  `query` or `accountId` is missing.  *  `query` and `accountId` are provided., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if one or more of the projects is not found., 429: Returned if the rate limit is exceeded. User search endpoints share a collective rate limit for the tenant, in addition to Jira's normal rate limiting you may receive a rate limit for user search. Please respect the Retry-After header.}\n\n@endpoint GET /rest/api/3/user/assignable/search\n@desc Find users assignable to issues\n@optional {query: str # A query string that is matched against user attributes, such as `displayName`, and `emailAddress`, to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*. Required, unless `username` or `accountId` is specified., sessionId: str # The sessionId of this request. SessionId is the same until the assignee is set., username: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., accountId: str # A query string that is matched exactly against user `accountId`. Required, unless `query` is specified., project: str # The project ID or project key (case sensitive). Required, unless `issueKey` or `issueId` is specified., issueKey: str # The key of the issue. Required, unless `issueId` or `project` is specified., issueId: str # The ID of the issue. Required, unless `issueKey` or `project` is specified., startAt: int(int32)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return. This operation may return less than the maximum number of items even if more are available. The operation fetches users up to the maximum and then, from the fetched users, returns only the users that can be assigned to the issue., actionDescriptorId: int(int32) # The ID of the transition., recommend: bool=false, accountType: [str], appType: [str]}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if:   *  None of `issueKey`, `issueId` or `project` is present.  *  `issueId` parameter is not valid.  *  `query` or `accountId` is missing.  *  `query` and `accountId` are provided., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the project, issue, or transition is not found., 429: Returned if the rate limit is exceeded. User search endpoints share a collective rate limit for the tenant, in addition to Jira's normal rate limiting you may receive a rate limit for user search. Please respect the Retry-After header.}\n\n@endpoint GET /rest/api/3/user/bulk\n@desc Bulk get users\n@required {accountId: [str] # The account ID of a user. To specify multiple users, pass multiple `accountId` parameters. For example, `accountId=5b10a2844c20165700ede21g&accountId=5b10ac8d82e05b22cc7d4ef5`.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=10 # The maximum number of items to return per page., username: [str] # This parameter is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., key: [str] # This parameter is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if `accountID` is missing., 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/api/3/user/bulk/migration\n@desc Get account IDs for users\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=10 # The maximum number of items to return per page., username: [str] # Username of a user. To specify multiple users, pass multiple copies of this parameter. For example, `username=fred&username=barney`. Required if `key` isn't provided. Cannot be provided if `key` is present., key: [str] # Key of a user. To specify multiple users, pass multiple copies of this parameter. For example, `key=fred&key=barney`. Required if `username` isn't provided. Cannot be provided if `username` is present.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if `key` or `username`, 401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint DELETE /rest/api/3/user/columns\n@desc Reset user default columns\n@optional {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*., username: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission or is not accessing their user record.}\n\n@endpoint GET /rest/api/3/user/columns\n@desc Get user default columns\n@optional {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*., username: str # This parameter is no longer available See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission or is not accessing their user record., 404: Returned if the requested user is not found.}\n\n@endpoint PUT /rest/api/3/user/columns\n@desc Set user default columns\n@optional {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission or is not accessing their user record., 404: Returned if the requested user is not found., 429: Returned if the rate limit is exceeded. User search endpoints share a collective rate limit for the tenant, in addition to Jira's normal rate limiting you may receive a rate limit for user search. Please respect the Retry-After header., 500: Returned if an invalid issue table column ID is sent.}\n\n@endpoint GET /rest/api/3/user/email\n@desc Get user email\n@required {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, `5b10ac8d82e05b22cc7d4ef5`.}\n@returns(200) {accountId: str, email: str} # Returned if the request is successful.\n@errors {400: Returned if the calling app is not approved to use this API., 401: Returned if the authentication credentials are incorrect or missing from the request (for example if a user is trying to access this API)., 404: Returned if a user with the given `accountId` doesn't exist, 503: Indicates the API is not currently enabled}\n\n@endpoint GET /rest/api/3/user/email/bulk\n@desc Get user email bulk\n@required {accountId: [str] # The account IDs of the users for which emails are required. An `accountId` is an identifier that uniquely identifies the user across all Atlassian products. For example, `5b10ac8d82e05b22cc7d4ef5`. Note, this should be treated as an opaque identifier (that is, do not assume any structure in the value).}\n@returns(200) {accountId: str, email: str} # Returned if the request is successful.\n@errors {400: Returned if the calling app is not approved to use this API., 401: Returned if the authentication credentials are incorrect, or missing from the request (for example if a user is trying to access this API)., 503: Indicates the API is not currently enabled.}\n\n@endpoint GET /rest/api/3/user/groups\n@desc Get user groups\n@required {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*.}\n@optional {username: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., key: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the calling user does not have the *Browse users and groups* global permission., 404: Returned if the user is not found.}\n\n@endpoint GET /rest/api/3/user/permission/search\n@desc Find users with permissions\n@required {permissions: str # A comma separated list of permissions. Permissions can be specified as any:   *  permission returned by [Get all permissions](#api-rest-api-3-permissions-get).  *  custom project permission added by Connect apps.  *  (deprecated) one of the following:           *  ASSIGNABLE\\_USER      *  ASSIGN\\_ISSUE      *  ATTACHMENT\\_DELETE\\_ALL      *  ATTACHMENT\\_DELETE\\_OWN      *  BROWSE      *  CLOSE\\_ISSUE      *  COMMENT\\_DELETE\\_ALL      *  COMMENT\\_DELETE\\_OWN      *  COMMENT\\_EDIT\\_ALL      *  COMMENT\\_EDIT\\_OWN      *  COMMENT\\_ISSUE      *  CREATE\\_ATTACHMENT      *  CREATE\\_ISSUE      *  DELETE\\_ISSUE      *  EDIT\\_ISSUE      *  LINK\\_ISSUE      *  MANAGE\\_WATCHER\\_LIST      *  MODIFY\\_REPORTER      *  MOVE\\_ISSUE      *  PROJECT\\_ADMIN      *  RESOLVE\\_ISSUE      *  SCHEDULE\\_ISSUE      *  SET\\_ISSUE\\_SECURITY      *  TRANSITION\\_ISSUE      *  VIEW\\_VERSION\\_CONTROL      *  VIEW\\_VOTERS\\_AND\\_WATCHERS      *  VIEW\\_WORKFLOW\\_READONLY      *  WORKLOG\\_DELETE\\_ALL      *  WORKLOG\\_DELETE\\_OWN      *  WORKLOG\\_EDIT\\_ALL      *  WORKLOG\\_EDIT\\_OWN      *  WORK\\_ISSUE}\n@optional {query: str # A query string that is matched against user attributes, such as `displayName` and `emailAddress`, to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*. Required, unless `accountId` is specified., username: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., accountId: str # A query string that is matched exactly against user `accountId`. Required, unless `query` is specified., issueKey: str # The issue key for the issue., projectKey: str # The project key for the project (case sensitive)., startAt: int(int32)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if:   *  `issueKey` or `projectKey` is missing.  *  `query` or `accountId` is missing.  *  `query` and `accountId` are provided.  *  `permissions` is empty or contains an invalid entry., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the issue or project is not found., 429: Returned if the rate limit is exceeded. User search endpoints share a collective rate limit for the tenant, in addition to Jira's normal rate limiting you may receive a rate limit for user search. Please respect the Retry-After header.}\n\n@endpoint GET /rest/api/3/user/picker\n@desc Find users for picker\n@required {query: str # A query string that is matched against user attributes, such as `displayName`, and `emailAddress`, to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*.}\n@optional {maxResults: int(int32)=50 # The maximum number of items to return. The total number of matched users is returned in `total`., showAvatar: bool=false # Include the URI to the user's avatar., exclude: [str] # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., excludeAccountIds: [str] # A list of account IDs to exclude from the search results. This parameter accepts a comma-separated list. Multiple account IDs can also be provided using an ampersand-separated list. For example, `excludeAccountIds=5b10a2844c20165700ede21g,5b10a0effa615349cb016cd8&excludeAccountIds=5b10ac8d82e05b22cc7d4ef5`. Cannot be provided with `exclude`., avatarSize: str, excludeConnectUsers: bool=false}\n@returns(200) {header: str, total: int(int32), users: [map]} # Returned if the request is successful.\n@errors {400: Returned if `exclude` and `excludeAccountIds` are provided., 401: Returned if the authentication credentials are incorrect or missing., 429: Returned if the rate limit is exceeded. User search endpoints share a collective rate limit for the tenant, in addition to Jira's normal rate limiting you may receive a rate limit for user search. Please respect the Retry-After header.}\n\n@endpoint GET /rest/api/3/user/properties\n@desc Get user property keys\n@optional {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*., userKey: str # This parameter is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., username: str # This parameter is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(200) {keys: [map]} # Returned if the request is successful.\n@errors {400: Returned if `accountId` is missing., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission or is not accessing their user record., 404: Returned if the user is not found.}\n\n@endpoint DELETE /rest/api/3/user/properties/{propertyKey}\n@desc Delete user property\n@required {propertyKey: str # The key of the user's property.}\n@optional {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*., userKey: str # This parameter is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., username: str # This parameter is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(204) Returned if the user property is deleted.\n@errors {400: Returned if `accountId` is missing., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission or is not accessing their user record., 404: Returned if the user or the property is not found.}\n\n@endpoint GET /rest/api/3/user/properties/{propertyKey}\n@desc Get user property\n@required {propertyKey: str # The key of the user's property.}\n@optional {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*., userKey: str # This parameter is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., username: str # This parameter is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(200) {key: str, value: any} # Returned if the request is successful.\n@errors {400: Returned if `accountId` is missing., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission or is not accessing their user record., 404: Returned if the user is not found.}\n\n@endpoint PUT /rest/api/3/user/properties/{propertyKey}\n@desc Set user property\n@required {propertyKey: str # The key of the user's property. The maximum length is 255 characters.}\n@optional {accountId: str # The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*., userKey: str # This parameter is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., username: str # This parameter is no longer available and will be removed from the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details.}\n@returns(200) Returned if the user property is updated.\n@returns(201) Returned if the user property is created.\n@errors {400: Returned if `accountId` is missing., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission or is not accessing their user record., 404: Returned if the user is not found., 405: Returned if the property key is not specified.}\n\n@endpoint GET /rest/api/3/user/search\n@desc Find users\n@optional {query: str # A query string that is matched against user attributes ( `displayName`, and `emailAddress`) to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*. Required, unless `accountId` or `property` is specified., username: str, accountId: str # A query string that is matched exactly against a user `accountId`. Required, unless `query` or `property` is specified., startAt: int(int32)=0 # The index of the first item to return in a page of filtered results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., property: str # A query string used to search properties. Property keys are specified by path, so property keys containing dot (.) or equals (=) characters cannot be used. The query string cannot be specified using a JSON object. Example: To search for the value of `nested` from `{\"something\":{\"nested\":1,\"other\":2}}` use `thepropertykey.something.nested=1`. Required, unless `accountId` or `query` is specified.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if:   *  `accountId`, `query` or `property` is missing.  *  `query` and `accountId` are provided.  *  `property` parameter is not valid., 401: Returned if the authentication credentials are incorrect or missing., 429: Returned if the rate limit is exceeded. User search endpoints share a collective rate limit for the tenant, in addition to Jira's normal rate limiting you may receive a rate limit for user search. Please respect the Retry-After header.}\n\n@endpoint GET /rest/api/3/user/search/query\n@desc Find users by query\n@required {query: str # The search query.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=100 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the query is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 408: Returned if the search is timed out.}\n\n@endpoint GET /rest/api/3/user/search/query/key\n@desc Find user keys by query\n@required {query: str # The search query.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResult: int(int32)=100 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the query is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 408: Returned if the search is timed out.}\n\n@endpoint GET /rest/api/3/user/viewissue/search\n@desc Find users with browse permission\n@optional {query: str # A query string that is matched against user attributes, such as `displayName` and `emailAddress`, to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *johnson@example.com*. Required, unless `accountId` is specified., username: str # This parameter is no longer available. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/) for details., accountId: str # A query string that is matched exactly against user `accountId`. Required, unless `query` is specified., issueKey: str # The issue key for the issue. Required, unless `projectKey` is specified., projectKey: str # The project key for the project (case sensitive). Required, unless `issueKey` is specified., startAt: int(int32)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if:   *  `issueKey` or `projectKey` is missing.  *  `query` or `accountId` is missing.  *  `query` and `accountId` are provided., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the issue or project is not found., 429: Returned if the rate limit is exceeded. User search endpoints share a collective rate limit for the tenant, in addition to Jira's normal rate limiting you may receive a rate limit for user search. Please respect the Retry-After header.}\n\n@endpoint GET /rest/api/3/users\n@desc Get all users default\n@optional {startAt: int(int32)=0 # The index of the first item to return., maxResults: int(int32)=50 # The maximum number of items to return (limited to 1000)., expand: str}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the user doesn't have the necessary permission., 409: Returned if the request takes longer than 10 seconds or is interrupted.}\n\n@endpoint GET /rest/api/3/users/search\n@desc Get all users\n@optional {startAt: int(int32)=0 # The index of the first item to return., maxResults: int(int32)=50 # The maximum number of items to return (limited to 1000)., expand: str}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the user doesn't have the necessary permission., 409: Returned if the request takes longer than 10 seconds or is interrupted.}\n\n@endpoint POST /rest/api/3/version\n@desc Create version\n@optional {approvers: [map{accountId: str, declineReason: str, description: str, status: str}] # If the expand option `approvers` is used, returns a list containing the approvers for this version., archived: bool # Indicates that the version is archived. Optional when creating or updating a version., description: str # The description of the version. Optional when creating or updating a version. The maximum size is 16,384 bytes., driver: str # The Atlassian account ID of the version driver. Optional when creating or updating a version. If the expand option `driver` is used, returns the Atlassian account ID of the driver., expand: str # Use [expand](em>#expansion) to include additional information about version in the response. This parameter accepts a comma-separated list. Expand options include:   *  `operations` Returns the list of operations available for this version.  *  `issuesstatus` Returns the count of issues in this version for each of the status categories *to do*, *in progress*, *done*, and *unmapped*. The *unmapped* property contains a count of issues with a status other than *to do*, *in progress*, and *done*.  *  `driver` Returns the Atlassian account ID of the version driver.  *  `approvers` Returns a list containing approvers for this version.  Optional for create and update., id: str # The ID of the version., issuesStatusForFixVersion: any # If the expand option `issuesstatus` is used, returns the count of issues in this version for each of the status categories *to do*, *in progress*, *done*, and *unmapped*. The *unmapped* property contains a count of issues with a status other than *to do*, *in progress*, and *done*., moveUnfixedIssuesTo: str(uri) # The URL of the self link to the version to which all unfixed issues are moved when a version is released. Not applicable when creating a version. Optional when updating a version., name: str # The unique name of the version. Required when creating a version. Optional when updating a version. The maximum length is 255 characters., operations: [map{href: str, iconClass: str, id: str, label: str, styleClass: str, title: str, weight: int(int32)}] # If the expand option `operations` is used, returns the list of operations available for this version., overdue: bool # Indicates that the version is overdue., project: str # Deprecated. Use `projectId`., projectId: int(int64) # The ID of the project to which this version is attached. Required when creating a version. Not applicable when updating a version., releaseDate: str(date) # The release date of the version. Expressed in ISO 8601 format (yyyy-mm-dd). Optional when creating or updating a version., released: bool # Indicates that the version is released. If the version is released a request to release again is ignored. Not applicable when creating a version. Optional when updating a version., self: str(uri) # The URL of the version., startDate: str(date) # The start date of the version. Expressed in ISO 8601 format (yyyy-mm-dd). Optional when creating or updating a version., userReleaseDate: str # The date on which work on this version is expected to finish, expressed in the instance's *Day/Month/Year Format* date format., userStartDate: str # The date on which work on this version is expected to start, expressed in the instance's *Day/Month/Year Format* date format.}\n@returns(201) {approvers: [map], archived: bool, description: str, driver: str, expand: str, id: str, issuesStatusForFixVersion: any, moveUnfixedIssuesTo: str(uri), name: str, operations: [map], overdue: bool, project: str, projectId: int(int64), releaseDate: str(date), released: bool, self: str(uri), startDate: str(date), userReleaseDate: str, userStartDate: str} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the project is not found.  *  the user does not have the required permissions.}\n@example_request {\"archived\":false,\"description\":\"An excellent version\",\"name\":\"New Version 1\",\"projectId\":10000,\"releaseDate\":\"2010-07-06\",\"released\":true}\n\n@endpoint DELETE /rest/api/3/version/{id}\n@desc Delete version\n@required {id: str # The ID of the version.}\n@optional {moveFixIssuesTo: str # The ID of the version to update `fixVersion` to when the field contains the deleted version. The replacement version must be in the same project as the version being deleted and cannot be the version being deleted., moveAffectedIssuesTo: str # The ID of the version to update `affectedVersion` to when the field contains the deleted version. The replacement version must be in the same project as the version being deleted and cannot be the version being deleted.}\n@returns(204) Returned if the version is deleted.\n@errors {400: Returned if the request is invalid., 401: Returned if:   *  the authentication credentials are incorrect.  *  the user does not have the required permissions., 404: Returned if the version is not found.}\n\n@endpoint GET /rest/api/3/version/{id}\n@desc Get version\n@required {id: str # The ID of the version.}\n@optional {expand: str # Use [expand](#expansion) to include additional information about version in the response. This parameter accepts a comma-separated list. Expand options include:   *  `operations` Returns the list of operations available for this version.  *  `issuesstatus` Returns the count of issues in this version for each of the status categories *to do*, *in progress*, *done*, and *unmapped*. The *unmapped* property represents the number of issues with a status other than *to do*, *in progress*, and *done*.  *  `driver` Returns the Atlassian account ID of the version driver.  *  `approvers` Returns a list containing the Atlassian account IDs of approvers for this version.}\n@returns(200) {approvers: [map], archived: bool, description: str, driver: str, expand: str, id: str, issuesStatusForFixVersion: any, moveUnfixedIssuesTo: str(uri), name: str, operations: [map], overdue: bool, project: str, projectId: int(int64), releaseDate: str(date), released: bool, self: str(uri), startDate: str(date), userReleaseDate: str, userStartDate: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the version is not found or the user does not have the necessary permission.}\n\n@endpoint PUT /rest/api/3/version/{id}\n@desc Update version\n@required {id: str # The ID of the version.}\n@optional {approvers: [map{accountId: str, declineReason: str, description: str, status: str}] # If the expand option `approvers` is used, returns a list containing the approvers for this version., archived: bool # Indicates that the version is archived. Optional when creating or updating a version., description: str # The description of the version. Optional when creating or updating a version. The maximum size is 16,384 bytes., driver: str # The Atlassian account ID of the version driver. Optional when creating or updating a version. If the expand option `driver` is used, returns the Atlassian account ID of the driver., expand: str # Use [expand](em>#expansion) to include additional information about version in the response. This parameter accepts a comma-separated list. Expand options include:   *  `operations` Returns the list of operations available for this version.  *  `issuesstatus` Returns the count of issues in this version for each of the status categories *to do*, *in progress*, *done*, and *unmapped*. The *unmapped* property contains a count of issues with a status other than *to do*, *in progress*, and *done*.  *  `driver` Returns the Atlassian account ID of the version driver.  *  `approvers` Returns a list containing approvers for this version.  Optional for create and update., id: str # The ID of the version., issuesStatusForFixVersion: any # If the expand option `issuesstatus` is used, returns the count of issues in this version for each of the status categories *to do*, *in progress*, *done*, and *unmapped*. The *unmapped* property contains a count of issues with a status other than *to do*, *in progress*, and *done*., moveUnfixedIssuesTo: str(uri) # The URL of the self link to the version to which all unfixed issues are moved when a version is released. Not applicable when creating a version. Optional when updating a version., name: str # The unique name of the version. Required when creating a version. Optional when updating a version. The maximum length is 255 characters., operations: [map{href: str, iconClass: str, id: str, label: str, styleClass: str, title: str, weight: int(int32)}] # If the expand option `operations` is used, returns the list of operations available for this version., overdue: bool # Indicates that the version is overdue., project: str # Deprecated. Use `projectId`., projectId: int(int64) # The ID of the project to which this version is attached. Required when creating a version. Not applicable when updating a version., releaseDate: str(date) # The release date of the version. Expressed in ISO 8601 format (yyyy-mm-dd). Optional when creating or updating a version., released: bool # Indicates that the version is released. If the version is released a request to release again is ignored. Not applicable when creating a version. Optional when updating a version., self: str(uri) # The URL of the version., startDate: str(date) # The start date of the version. Expressed in ISO 8601 format (yyyy-mm-dd). Optional when creating or updating a version., userReleaseDate: str # The date on which work on this version is expected to finish, expressed in the instance's *Day/Month/Year Format* date format., userStartDate: str # The date on which work on this version is expected to start, expressed in the instance's *Day/Month/Year Format* date format.}\n@returns(200) {approvers: [map], archived: bool, description: str, driver: str, expand: str, id: str, issuesStatusForFixVersion: any, moveUnfixedIssuesTo: str(uri), name: str, operations: [map], overdue: bool, project: str, projectId: int(int64), releaseDate: str(date), released: bool, self: str(uri), startDate: str(date), userReleaseDate: str, userStartDate: str} # Returned if the request is successful.\n@errors {400: Returned if:   *  the request is invalid.  *  the user does not have the required permissions., 401: Returned if the authentication credentials are incorrect., 404: Returned if the version is not found.}\n@example_request {\"archived\":false,\"description\":\"An excellent version\",\"id\":\"10000\",\"name\":\"New Version 1\",\"overdue\":true,\"projectId\":10000,\"releaseDate\":\"2010-07-06\",\"released\":true,\"self\":\"https://your-domain.atlassian.net/rest/api/~ver~/version/10000\",\"userReleaseDate\":\"6/Jul/2010\"}\n\n@endpoint PUT /rest/api/3/version/{id}/mergeto/{moveIssuesTo}\n@desc Merge versions\n@required {id: str # The ID of the version to delete., moveIssuesTo: str # The ID of the version to merge into.}\n@returns(204) Returned if the version is deleted.\n@errors {400: Returned if the request is invalid., 401: Returned if:   *  the authentication credentials are incorrect or missing.  *  the user does not have the required permissions., 404: Returned if the version to be deleted or the version to merge to are not found.}\n\n@endpoint POST /rest/api/3/version/{id}/move\n@desc Move version\n@required {id: str # The ID of the version to be moved.}\n@optional {after: str(uri) # The URL (self link) of the version after which to place the moved version. Cannot be used with `position`., position: str(Earlier/Later/First/Last) # An absolute position in which to place the moved version. Cannot be used with `after`.}\n@returns(200) {approvers: [map], archived: bool, description: str, driver: str, expand: str, id: str, issuesStatusForFixVersion: any, moveUnfixedIssuesTo: str(uri), name: str, operations: [map], overdue: bool, project: str, projectId: int(int64), releaseDate: str(date), released: bool, self: str(uri), startDate: str(date), userReleaseDate: str, userStartDate: str} # Returned if the request is successful.\n@errors {400: Returned if:   *  no body parameters are provided.  *  `after` and `position` are provided.  *  `position` is invalid., 401: Returned if:   *  the authentication credentials are incorrect or missing  *  the user does not have the required commissions., 404: Returned if the version or move after version are not found.}\n@example_request {\"after\":\"https://your-domain.atlassian.net/rest/api/~ver~/version/10000\"}\n\n@endpoint GET /rest/api/3/version/{id}/relatedIssueCounts\n@desc Get version's related issues count\n@required {id: str # The ID of the version.}\n@returns(200) {customFieldUsage: [map], issueCountWithCustomFieldsShowingVersion: int(int64), issuesAffectedCount: int(int64), issuesFixedCount: int(int64), self: str(uri)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect., 404: Returned if:   *  the version is not found.  *  the user does not have the required permissions.}\n\n@endpoint GET /rest/api/3/version/{id}/relatedwork\n@desc Get related work\n@required {id: str # The ID of the version.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the version is not found or the user does not have the necessary permission., 500: Returned if reading related work fails}\n\n@endpoint POST /rest/api/3/version/{id}/relatedwork\n@desc Create related work\n@required {id: str, category: str # The category of the related work}\n@optional {issueId: int(int64) # The ID of the issue associated with the related work (if there is one). Cannot be updated via the Rest API., relatedWorkId: str # The id of the related work. For the native release note related work item, this will be null, and Rest API does not support updating it., title: str # The title of the related work, url: str(uri) # The URL of the related work. Will be null for the native release note related work item, but is otherwise required.}\n@returns(201) {category: str, issueId: int(int64), relatedWorkId: str, title: str, url: str(uri)} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the version is not found.}\n@example_request {\"category\":\"Design\",\"title\":\"Design link\",\"url\":\"https://www.atlassian.com\"}\n\n@endpoint PUT /rest/api/3/version/{id}/relatedwork\n@desc Update related work\n@required {id: str # The ID of the version to update the related work on. For the related work id, pass it to the input JSON., category: str # The category of the related work}\n@optional {issueId: int(int64) # The ID of the issue associated with the related work (if there is one). Cannot be updated via the Rest API., relatedWorkId: str # The id of the related work. For the native release note related work item, this will be null, and Rest API does not support updating it., title: str # The title of the related work, url: str(uri) # The URL of the related work. Will be null for the native release note related work item, but is otherwise required.}\n@returns(200) {category: str, issueId: int(int64), relatedWorkId: str, title: str, url: str(uri)} # Returned if the request is successful together with updated related work.\n@errors {400: Returned if the request data is invalid, 401: Returned if the authentication credentials are incorrect., 403: Returned if the user does not have the required permissions., 404: Returned if the version or the related work is not found.}\n@example_request {\"category\":\"Design\",\"relatedWorkId\":\"fabcdef6-7878-1234-beaf-43211234abcd\",\"title\":\"Design link\",\"url\":\"https://www.atlassian.com\"}\n\n@endpoint POST /rest/api/3/version/{id}/removeAndSwap\n@desc Delete and replace version\n@required {id: str # The ID of the version.}\n@optional {customFieldReplacementList: [map{customFieldId: int(int64), moveTo: int(int64)}] # An array of custom field IDs (`customFieldId`) and version IDs (`moveTo`) to update when the fields contain the deleted version., moveAffectedIssuesTo: int(int64) # The ID of the version to update `affectedVersion` to when the field contains the deleted version., moveFixIssuesTo: int(int64) # The ID of the version to update `fixVersion` to when the field contains the deleted version.}\n@returns(204) Returned if the version is deleted.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the version to delete is not found.  *  the user does not have the required permissions.}\n\n@endpoint GET /rest/api/3/version/{id}/unresolvedIssueCount\n@desc Get version's unresolved issues count\n@required {id: str # The ID of the version.}\n@returns(200) {issuesCount: int(int64), issuesUnresolvedCount: int(int64), self: str(uri)} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if:   *  the version is not found.  *  the user does not have the required permissions.}\n\n@endpoint DELETE /rest/api/3/version/{versionId}/relatedwork/{relatedWorkId}\n@desc Delete related work\n@required {versionId: str # The ID of the version that the target related work belongs to., relatedWorkId: str # The ID of the related work to delete.}\n@returns(204) Returned if the related work is deleted.\n@errors {400: Returned if the request is invalid., 401: Returned if  the authentication credentials are incorrect., 403: Returned if the user does not have the required permissions., 404: Returned if the version/related work is not found.}\n\n@endpoint DELETE /rest/api/3/webhook\n@desc Delete webhooks by ID\n@required {webhookIds: [int(int64)] # A list of webhook IDs.}\n@returns(202) Returned if the request is successful.\n@errors {400: Returned if the list of webhook IDs is missing., 403: Returned if the caller isn't an app.}\n@example_request {\"webhookIds\":[10000,10001,10042]}\n\n@endpoint GET /rest/api/3/webhook\n@desc Get dynamic webhooks for app\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=100 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the caller isn't an app.}\n\n@endpoint POST /rest/api/3/webhook\n@desc Register dynamic webhooks\n@required {url: str # The URL that specifies where to send the webhooks. This URL must use the same base URL as the Connect app. Only a single URL per app is allowed to be registered., webhooks: [map{events!: [str], fieldIdsFilter: [str], issuePropertyKeysFilter: [str], jqlFilter!: str}] # A list of webhooks.}\n@returns(200) {webhookRegistrationResult: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the caller isn't an app.}\n@example_request {\"url\":\"https://your-app.example.com/webhook-received\",\"webhooks\":[{\"events\":[\"jira:issue_created\",\"jira:issue_updated\"],\"fieldIdsFilter\":[\"summary\",\"customfield_10029\"],\"jqlFilter\":\"project = PROJ\"},{\"events\":[\"jira:issue_deleted\"],\"jqlFilter\":\"project IN (PROJ, EXP) AND status = done\"},{\"events\":[\"issue_property_set\"],\"issuePropertyKeysFilter\":[\"my-issue-property-key\"],\"jqlFilter\":\"project = PROJ\"}]}\n\n@endpoint GET /rest/api/3/webhook/failed\n@desc Get failed webhooks\n@optional {maxResults: int(int32) # The maximum number of webhooks to return per page. If obeying the maxResults directive would result in records with the same failure time being split across pages, the directive is ignored and all records with the same failure time included on the page., after: int(int64) # The time after which any webhook failure must have occurred for the record to be returned, expressed as milliseconds since the UNIX epoch.}\n@returns(200) {maxResults: int(int32), next: str(uri), values: [map]} # Returned if the request is successful.\n@errors {400: 400 response, 403: Returned if the caller is not a Connect app.}\n\n@endpoint PUT /rest/api/3/webhook/refresh\n@desc Extend webhook life\n@required {webhookIds: [int(int64)] # A list of webhook IDs.}\n@returns(200) {expirationDate: int(int64)} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the caller isn't an app.}\n@example_request {\"webhookIds\":[10000,10001,10042]}\n\n@endpoint GET /rest/api/3/workflow\n@desc Get all workflows\n@optional {workflowName: str # The name of the workflow to be returned. Only one workflow can be specified.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the user does not have the necessary permission.}\n\n@endpoint POST /rest/api/3/workflow\n@desc Create workflow\n@required {name: str # The name of the workflow. The name must be unique. The maximum length is 255 characters. Characters can be separated by a whitespace but the name cannot start or end with a whitespace., statuses: [map{id!: str, properties: map}] # The statuses of the workflow. Any status that does not include a transition is added to the workflow without a transition., transitions: [map{description: str, from: [str], name!: str, properties: map, rules: any, screen: any, to!: str, type!: str}] # The transitions of the workflow. For the request to be valid, these transitions must:   *  include one *initial* transition.  *  not use the same name for a *global* and *directed* transition.  *  have a unique name for each *global* transition.  *  have a unique 'to' status for each *global* transition.  *  have unique names for each transition from a status.  *  not have a 'from' status on *initial* and *global* transitions.  *  have a 'from' status on *directed* transitions.  All the transition statuses must be included in `statuses`.}\n@optional {description: str # The description of the workflow. The maximum length is 1000 characters.}\n@returns(201) {entityId: str, name: str} # Returned if the workflow is created.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if one or more statuses is not found.}\n@example_request {\"description\":\"This is a workflow used for Stories and Tasks\",\"name\":\"Workflow 1\",\"statuses\":[{\"id\":\"1\",\"properties\":{\"jira.issue.editable\":\"false\"}},{\"id\":\"2\"},{\"id\":\"3\"}],\"transitions\":[{\"from\":[],\"name\":\"Created\",\"to\":\"1\",\"type\":\"initial\"},{\"from\":[\"1\"],\"name\":\"In progress\",\"properties\":{\"custom-property\":\"custom-value\"},\"rules\":{\"conditions\":{\"conditions\":[{\"type\":\"RemoteOnlyCondition\"},{\"configuration\":{\"groups\":[\"developers\",\"qa-testers\"]},\"type\":\"UserInAnyGroupCondition\"}],\"operator\":\"AND\"},\"postFunctions\":[{\"type\":\"AssignToCurrentUserFunction\"}]},\"screen\":{\"id\":\"10001\"},\"to\":\"2\",\"type\":\"directed\"},{\"name\":\"Completed\",\"rules\":{\"postFunctions\":[{\"configuration\":{\"fieldId\":\"assignee\"},\"type\":\"ClearFieldValuePostFunction\"}],\"validators\":[{\"configuration\":{\"parentStatuses\":[{\"id\":\"3\"}]},\"type\":\"ParentStatusValidator\"},{\"configuration\":{\"permissionKey\":\"ADMINISTER_PROJECTS\"},\"type\":\"PermissionValidator\"}]},\"to\":\"3\",\"type\":\"global\"}]}\n\n@endpoint POST /rest/api/3/workflow/history\n@desc Read workflow version from history\n@optional {version: int(int64), workflowId: str}\n@returns(200) {statuses: [map], workflows: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n@example_request {\"version\":4,\"workflowId\":\"c5ef565c-1b1e-427e-bc3b-e677b0dc027c\"}\n\n@endpoint POST /rest/api/3/workflow/history/list\n@desc List workflow history entries\n@optional {expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `includeIntermediateWorkflows` Includes intermediate workflow versions that are sometimes created during workflow updates or migrations. By default, these are omitted from the response., workflowId: str # The id of the workflow to read the history for.}\n@returns(200) {entries: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n@example_request {\"workflowId\":\"c5ef565c-1b1e-427e-bc3b-e677b0dc027c\"}\n\n@endpoint GET /rest/api/3/workflow/rule/config\n@desc Get workflow transition rule configurations\n@required {types: [str] # The types of the transition rules to return.}\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=10 # The maximum number of items to return per page., keys: [str] # The transition rule class keys, as defined in the Connect or the Forge app descriptor, of the transition rules to return., workflowNames: [str] # The list of workflow names to filter by., withTags: [str] # The list of `tags` to filter by., draft: bool # Whether draft or published workflows are returned. If not provided, both workflow types are returned., expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts `transition`, which, for each rule, returns information about the transition the rule is assigned to.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the caller is not a Connect or Forge app., 404: Returned if any transition rule type is not supported., 503: Returned if we encounter a problem while trying to access the required data.}\n\n@endpoint PUT /rest/api/3/workflow/rule/config\n@desc Update workflow transition rule configurations\n@required {workflows: [map{conditions: [map], postFunctions: [map], validators: [map], workflowId!: map}] # The list of workflows with transition rules to update.}\n@returns(200) {updateResults: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the caller is not a Connect or Forge app., 503: Returned if we encounter a problem while trying to access the required data.}\n@example_request {\"workflows\":[{\"conditions\":[{\"configuration\":{\"disabled\":false,\"tag\":\"Another tag\",\"value\":\"{ \\\"size\\\": \\\"medium\\\" }\"},\"id\":\"d663bd873d93-59f5-11e9-8647-b4d6cbdc\"}],\"postFunctions\":[{\"configuration\":{\"disabled\":false,\"tag\":\"Sample tag\",\"value\":\"{ \\\"color\\\": \\\"red\\\" }\"},\"id\":\"b4d6cbdc-59f5-11e9-8647-d663bd873d93\"}],\"validators\":[{\"configuration\":{\"disabled\":false,\"value\":\"{ \\\"shape\\\": \\\"square\\\" }\"},\"id\":\"11e9-59f5-b4d6cbdc-8647-d663bd873d93\"}],\"workflowId\":{\"draft\":false,\"name\":\"My Workflow name\"}}]}\n\n@endpoint PUT /rest/api/3/workflow/rule/config/delete\n@desc Delete workflow transition rule configurations\n@required {workflows: [map{workflowId!: map, workflowRuleIds!: [str]}] # The list of workflows with transition rules to delete.}\n@returns(200) {updateResults: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if the caller is not a Connect app.}\n@example_request {\"workflows\":[{\"workflowId\":{\"draft\":false,\"name\":\"Internal support workflow\"},\"workflowRuleIds\":[\"b4d6cbdc-59f5-11e9-8647-d663bd873d93\",\"d663bd873d93-59f5-11e9-8647-b4d6cbdc\",\"11e9-59f5-b4d6cbdc-8647-d663bd873d93\"]}]}\n\n@endpoint GET /rest/api/3/workflow/search\n@desc Get workflows paginated\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page., workflowName: [str] # The name of a workflow to return. To include multiple workflows, provide an ampersand-separated list. For example, `workflowName=name1&workflowName=name2`., expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `transitions` For each workflow, returns information about the transitions inside the workflow.  *  `transitions.rules` For each workflow transition, returns information about its rules. Transitions are included automatically if this expand is requested.  *  `transitions.properties` For each workflow transition, returns information about its properties. Transitions are included automatically if this expand is requested.  *  `statuses` For each workflow, returns information about the statuses inside the workflow.  *  `statuses.properties` For each workflow status, returns information about its properties. Statuses are included automatically if this expand is requested.  *  `default` For each workflow, returns information about whether this is the default workflow.  *  `schemes` For each workflow, returns information about the workflow schemes the workflow is assigned to.  *  `projects` For each workflow, returns information about the projects the workflow is assigned to, through workflow schemes.  *  `hasDraftWorkflow` For each workflow, returns information about whether the workflow has a draft version.  *  `operations` For each workflow, returns information about the actions that can be undertaken on the workflow., queryString: str # String used to perform a case-insensitive partial match with workflow name., orderBy: str(name/-name/+name/created/-created/+created/updated/+updated/-updated) # [Order](#ordering) the results by a field:   *  `name` Sorts by workflow name.  *  `created` Sorts by create time.  *  `updated` Sorts by update time., isActive: bool # Filters active and inactive workflows.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint DELETE /rest/api/3/workflow/transitions/{transitionId}/properties\n@desc Delete workflow transition property\n@required {transitionId: int(int64) # The ID of the transition. To get the ID, view the workflow in text mode in the Jira admin settings. The ID is shown next to the transition., key: str # The name of the transition property to delete, also known as the name of the property., workflowName: str # The name of the workflow that the transition belongs to.}\n@optional {workflowMode: str(live/draft) # The workflow status. Set to `live` for inactive workflows or `draft` for draft workflows. Active workflows cannot be edited.}\n@returns(200) 200 response\n@errors {304: Returned if no changes were made by the request. For example, trying to delete a property that cannot be found., 400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow transition is not found.}\n\n@endpoint GET /rest/api/3/workflow/transitions/{transitionId}/properties\n@desc Get workflow transition properties\n@required {transitionId: int(int64) # The ID of the transition. To get the ID, view the workflow in text mode in the Jira administration console. The ID is shown next to the transition., workflowName: str # The name of the workflow that the transition belongs to.}\n@optional {includeReservedKeys: bool=false # Some properties with keys that have the *jira.* prefix are reserved, which means they are not editable. To include these properties in the results, set this parameter to *true*., key: str # The key of the property being returned, also known as the name of the property. If this parameter is not specified, all properties on the transition are returned., workflowMode: str(live/draft)=live # The workflow status. Set to *live* for active and inactive workflows, or *draft* for draft workflows.}\n@returns(200) {id: str, key: str, value: str} # 200 response\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have admin permission, 404: Returned if the workflow transition or property is not found.}\n\n@endpoint POST /rest/api/3/workflow/transitions/{transitionId}/properties\n@desc Create workflow transition property\n@required {transitionId: int(int64) # The ID of the transition. To get the ID, view the workflow in text mode in the Jira admin settings. The ID is shown next to the transition., key: str # The key of the property being added, also known as the name of the property. Set this to the same value as the `key` defined in the request body., workflowName: str # The name of the workflow that the transition belongs to., value: str # The value of the transition property.}\n@optional {workflowMode: str(live/draft)=live # The workflow status. Set to *live* for inactive workflows or *draft* for draft workflows. Active workflows cannot be edited., id: str # The ID of the transition property., key: str # The key of the transition property. Also known as the name of the transition property.}\n@returns(200) {id: str, key: str, value: str} # 200 response\n@errors {400: Returned if a workflow property with the same key is present on the transition., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow transition is not found.}\n@example_request {\"value\":\"createissue\"}\n\n@endpoint PUT /rest/api/3/workflow/transitions/{transitionId}/properties\n@desc Update workflow transition property\n@required {transitionId: int(int64) # The ID of the transition. To get the ID, view the workflow in text mode in the Jira admin settings. The ID is shown next to the transition., key: str # The key of the property being updated, also known as the name of the property. Set this to the same value as the `key` defined in the request body., workflowName: str # The name of the workflow that the transition belongs to., value: str # The value of the transition property.}\n@optional {workflowMode: str(live/draft) # The workflow status. Set to `live` for inactive workflows or `draft` for draft workflows. Active workflows cannot be edited., id: str # The ID of the transition property., key: str # The key of the transition property. Also known as the name of the transition property.}\n@returns(200) {id: str, key: str, value: str} # 200 response\n@errors {304: Returned if no changes were made by the request. For example, attempting to update a property with its current value., 400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow transition is not found.}\n@example_request {\"value\":\"createissue\"}\n\n@endpoint DELETE /rest/api/3/workflow/{entityId}\n@desc Delete inactive workflow\n@required {entityId: str # The entity ID of the workflow.}\n@returns(204) Returned if the workflow is deleted.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the workflow is not found.}\n\n@endpoint GET /rest/api/3/workflow/{workflowId}/project/{projectId}/issueTypeUsages\n@desc Get issue types in a project that are using a given workflow\n@required {workflowId: str # The workflow ID, projectId: int(int64) # The project ID}\n@optional {nextPageToken: str # The cursor for pagination, maxResults: int(int32)=50 # The maximum number of results to return. Must be an integer between 1 and 200.}\n@returns(200) {issueTypes: map{nextPageToken: str, values: [map]}, projectId: str, workflowId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 404: Returned if the workflow with the given ID does not exist.}\n\n@endpoint GET /rest/api/3/workflow/{workflowId}/projectUsages\n@desc Get projects using a given workflow\n@required {workflowId: str # The workflow ID}\n@optional {nextPageToken: str # The cursor for pagination, maxResults: int(int32)=50 # The maximum number of results to return. Must be an integer between 1 and 200.}\n@returns(200) {projects: map{nextPageToken: str, values: [map]}, workflowId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 404: Returned if the workflow with the given ID does not exist.}\n\n@endpoint GET /rest/api/3/workflow/{workflowId}/workflowSchemes\n@desc Get workflow schemes which are using a given workflow\n@required {workflowId: str # The workflow ID}\n@optional {nextPageToken: str # The cursor for pagination, maxResults: int(int32)=50 # The maximum number of results to return. Must be an integer between 1 and 200.}\n@returns(200) {workflowId: str, workflowSchemes: map{nextPageToken: str, values: [map]}} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 404: Returned if the workflow with the given ID does not exist.}\n\n@endpoint POST /rest/api/3/workflows\n@desc Bulk get workflows\n@optional {projectAndIssueTypes: [map{issueTypeId!: str, projectId!: str}] # The list of projects and issue types to query., workflowIds: [str] # The list of workflow IDs to query., workflowNames: [str] # The list of workflow names to query.}\n@returns(200) {statuses: [map], workflows: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n@example_request {\"projectAndIssueTypes\":[],\"workflowIds\":[],\"workflowNames\":[\"Workflow 1\",\"Workflow 2\"]}\n\n@endpoint GET /rest/api/3/workflows/capabilities\n@desc Get available workflow capabilities\n@optional {workflowId: str, projectId: str, issueTypeId: str}\n@returns(200) {connectRules: [map], editorScope: str, forgeRules: [map], projectTypes: [str], systemRules: [map], triggerRules: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n\n@endpoint POST /rest/api/3/workflows/create\n@desc Bulk create workflows\n@optional {scope: map{project: map, type: str} # The scope of the workflow., statuses: [map{description: str, id: str, name!: str, statusCategory!: str, statusReference!: str}] # The statuses to associate with the workflows., workflows: [map{description: str, loopedTransitionContainerLayout: map, name!: str, startPointLayout: map, statuses!: [map], transitions!: [map]}] # The details of the workflows to create.}\n@returns(200) {statuses: [map], workflows: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 409: Returned if another workflow configuration update task is ongoing.}\n@example_request {\"scope\":{\"type\":\"GLOBAL\"},\"statuses\":[{\"description\":\"\",\"name\":\"To Do\",\"statusCategory\":\"TODO\",\"statusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\"},{\"description\":\"\",\"name\":\"In Progress\",\"statusCategory\":\"IN_PROGRESS\",\"statusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\"},{\"description\":\"\",\"name\":\"Done\",\"statusCategory\":\"DONE\",\"statusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\"}],\"workflows\":[{\"description\":\"\",\"name\":\"Software workflow 1\",\"startPointLayout\":{\"x\":-100.00030899047852,\"y\":-153.00020599365234},\"statuses\":[{\"layout\":{\"x\":114.99993896484375,\"y\":-16},\"properties\":{},\"statusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\"},{\"layout\":{\"x\":317.0000915527344,\"y\":-16},\"properties\":{},\"statusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\"},{\"layout\":{\"x\":508.000244140625,\"y\":-16},\"properties\":{},\"statusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\"}],\"transitions\":[{\"actions\":[],\"description\":\"\",\"id\":\"1\",\"links\":[],\"name\":\"Create\",\"properties\":{},\"toStatusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\",\"triggers\":[],\"type\":\"INITIAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\",\"id\":\"11\",\"links\":[],\"name\":\"To Do\",\"properties\":{},\"toStatusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\",\"triggers\":[],\"type\":\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\",\"id\":\"21\",\"links\":[],\"name\":\"In Progress\",\"properties\":{},\"toStatusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\",\"triggers\":[],\"type\":\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"Move a work item from in progress to done\",\"id\":\"31\",\"links\":[{\"fromPort\":0,\"fromStatusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\",\"toPort\":1}],\"name\":\"Done\",\"properties\":{},\"toStatusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\",\"triggers\":[],\"type\":\"DIRECTED\",\"validators\":[]}]}]}\n\n@endpoint POST /rest/api/3/workflows/create/validation\n@desc Validate create workflows\n@required {payload: map{scope: map, statuses: [map], workflows: [map]} # The create workflows payload.}\n@optional {validationOptions: map{levels: [str]} # The level of validation to return from the API. If no values are provided, the default would return `WARNING` and `ERROR` level validation results.}\n@returns(200) {errors: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n@example_request {\"payload\":{\"scope\":{\"type\":\"GLOBAL\"},\"statuses\":[{\"description\":\"\",\"name\":\"To Do\",\"statusCategory\":\"TODO\",\"statusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\"},{\"description\":\"\",\"name\":\"In Progress\",\"statusCategory\":\"IN_PROGRESS\",\"statusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\"},{\"description\":\"\",\"name\":\"Done\",\"statusCategory\":\"DONE\",\"statusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\"}],\"workflows\":[{\"description\":\"\",\"name\":\"Software workflow 1\",\"startPointLayout\":{\"x\":-100.00030899047852,\"y\":-153.00020599365234},\"statuses\":[{\"layout\":{\"x\":114.99993896484375,\"y\":-16},\"properties\":{},\"statusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\"},{\"layout\":{\"x\":317.0000915527344,\"y\":-16},\"properties\":{},\"statusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\"},{\"layout\":{\"x\":508.000244140625,\"y\":-16},\"properties\":{},\"statusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\"}],\"transitions\":[{\"actions\":[],\"description\":\"\",\"id\":\"1\",\"links\":[],\"name\":\"Create\",\"properties\":{},\"toStatusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\",\"triggers\":[],\"type\":\"INITIAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\",\"id\":\"11\",\"links\":[],\"name\":\"To Do\",\"properties\":{},\"toStatusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\",\"triggers\":[],\"type\":\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\",\"id\":\"21\",\"links\":[],\"name\":\"In Progress\",\"properties\":{},\"toStatusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\",\"triggers\":[],\"type\":\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"Move a work item from in progress to done\",\"id\":\"31\",\"links\":[{\"fromPort\":0,\"fromStatusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\",\"toPort\":1}],\"name\":\"Done\",\"properties\":{},\"toStatusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\",\"triggers\":[],\"type\":\"DIRECTED\",\"validators\":[]}]}]},\"validationOptions\":{\"levels\":[\"ERROR\",\"WARNING\"]}}\n\n@endpoint GET /rest/api/3/workflows/defaultEditor\n@desc Get the user's default workflow editor\n@returns(200) {value: str} # Returned if the request is successful.\n\n@endpoint POST /rest/api/3/workflows/preview\n@desc Preview workflow\n@required {projectId: str # The projectId parameter is required and will be used for permission checks. In addition, you must supply at least one of the following lookup terms: *workflowNames*, *workflowIds*, or *issueTypeIds*. The specified workflows must be associated with the given project.}\n@optional {issueTypeIds: [str] # The list of issue type IDs. At most 25 issue type IDs can be specified., workflowIds: [str] # The list of workflow IDs to be returned. At most 25 workflow IDs can be specified., workflowNames: [str] # The list of workflow names to be returned. At most 25 workflow names can be specified.}\n@returns(200) {statuses: [map], workflows: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 404: Returned if one or more previews are not found.}\n@example_request {\"issueTypeIds\":[],\"projectId\":\"10011\",\"workflowIds\":[\"3215e5cd-f09f-4c8a-921b-dca92bd1e9aa\",\"5f485405-a237-40e5-aeea-ad2c206cff95\"],\"workflowNames\":[]}\n\n@endpoint GET /rest/api/3/workflows/search\n@desc Search workflows\n@optional {startAt: int(int64) # The index of the first item to return in a page of results (page offset)., maxResults: int(int32) # The maximum number of items to return per page., expand: str # Use [expand](#expansion) to include additional information in the response. This parameter accepts a comma-separated list. Expand options include:   *  `values.transitions` Returns the transitions that each workflow is associated with., queryString: str # String used to perform a case-insensitive partial match with workflow name., orderBy: str # [Order](#ordering) the results by a field:   *  `name` Sorts by workflow name.  *  `created` Sorts by create time.  *  `updated` Sorts by update time., scope: str # The scope of the workflow. Global for company-managed projects and Project for team-managed projects., isActive: bool # Filters active and inactive workflows.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str, self: str, startAt: int(int64), statuses: [map], total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n\n@endpoint POST /rest/api/3/workflows/update\n@desc Bulk update workflows\n@optional {statuses: [map{description: str, id: str, name!: str, statusCategory!: str, statusReference!: str}] # The statuses to associate with the workflows., workflows: [map{defaultStatusMappings: [map], description: str, id!: str, loopedTransitionContainerLayout: map, startPointLayout: map, statusMappings: [map], statuses!: [map], transitions!: [map], version!: map}] # The details of the workflows to update.}\n@returns(200) {statuses: [map], taskId: str?, workflows: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 409: Returned if another workflow configuration update task is ongoing.}\n@example_request {\"statuses\":[{\"description\":\"\",\"name\":\"To Do\",\"statusCategory\":\"TODO\",\"statusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\"},{\"description\":\"\",\"name\":\"In Progress\",\"statusCategory\":\"IN_PROGRESS\",\"statusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\"},{\"description\":\"\",\"name\":\"Done\",\"statusCategory\":\"DONE\",\"statusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\"}],\"workflows\":[{\"defaultStatusMappings\":[{\"newStatusReference\":\"10011\",\"oldStatusReference\":\"10010\"}],\"description\":\"\",\"id\":\"10001\",\"startPointLayout\":{\"x\":-100.00030899047852,\"y\":-153.00020599365234},\"statusMappings\":[{\"issueTypeId\":\"10002\",\"projectId\":\"10003\",\"statusMigrations\":[{\"newStatusReference\":\"10011\",\"oldStatusReference\":\"10010\"}]}],\"statuses\":[{\"layout\":{\"x\":114.99993896484375,\"y\":-16},\"properties\":{},\"statusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\"},{\"layout\":{\"x\":317.0000915527344,\"y\":-16},\"properties\":{},\"statusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\"},{\"layout\":{\"x\":508.000244140625,\"y\":-16},\"properties\":{},\"statusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\"}],\"transitions\":[{\"actions\":[],\"description\":\"\",\"id\":\"1\",\"links\":[],\"name\":\"Create\",\"properties\":{},\"toStatusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\",\"triggers\":[],\"type\":\"INITIAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\",\"id\":\"11\",\"links\":[],\"name\":\"To Do\",\"properties\":{},\"toStatusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\",\"triggers\":[],\"type\":\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\",\"id\":\"21\",\"links\":[],\"name\":\"In Progress\",\"properties\":{},\"toStatusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\",\"triggers\":[],\"type\":\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"Move a work item from in progress to done\",\"id\":\"31\",\"links\":[{\"fromPort\":0,\"fromStatusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\",\"toPort\":1}],\"name\":\"Done\",\"properties\":{},\"toStatusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\",\"triggers\":[],\"type\":\"DIRECTED\",\"validators\":[]}],\"version\":{\"id\":\"6f6c988b-2590-4358-90c2-5f7960265592\",\"versionNumber\":1}}]}\n\n@endpoint POST /rest/api/3/workflows/update/validation\n@desc Validate update workflows\n@required {payload: map{statuses: [map], workflows: [map]} # The update workflows payload.}\n@optional {validationOptions: map{levels: [str]} # The level of validation to return from the API. If no values are provided, the default would return `WARNING` and `ERROR` level validation results.}\n@returns(200) {errors: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n@example_request {\"payload\":{\"statuses\":[{\"description\":\"\",\"name\":\"To Do\",\"statusCategory\":\"TODO\",\"statusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\"},{\"description\":\"\",\"name\":\"In Progress\",\"statusCategory\":\"IN_PROGRESS\",\"statusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\"},{\"description\":\"\",\"name\":\"Done\",\"statusCategory\":\"DONE\",\"statusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\"}],\"workflows\":[{\"defaultStatusMappings\":[{\"newStatusReference\":\"10011\",\"oldStatusReference\":\"10010\"}],\"description\":\"\",\"id\":\"10001\",\"startPointLayout\":{\"x\":-100.00030899047852,\"y\":-153.00020599365234},\"statusMappings\":[{\"issueTypeId\":\"10002\",\"projectId\":\"10003\",\"statusMigrations\":[{\"newStatusReference\":\"10011\",\"oldStatusReference\":\"10010\"}]}],\"statuses\":[{\"layout\":{\"x\":114.99993896484375,\"y\":-16},\"properties\":{},\"statusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\"},{\"layout\":{\"x\":317.0000915527344,\"y\":-16},\"properties\":{},\"statusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\"},{\"layout\":{\"x\":508.000244140625,\"y\":-16},\"properties\":{},\"statusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\"}],\"transitions\":[{\"actions\":[],\"description\":\"\",\"id\":\"1\",\"links\":[],\"name\":\"Create\",\"properties\":{},\"toStatusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\",\"triggers\":[],\"type\":\"INITIAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\",\"id\":\"11\",\"links\":[],\"name\":\"To Do\",\"properties\":{},\"toStatusReference\":\"f0b24de5-25e7-4fab-ab94-63d81db6c0c0\",\"triggers\":[],\"type\":\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\",\"id\":\"21\",\"links\":[],\"name\":\"In Progress\",\"properties\":{},\"toStatusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\",\"triggers\":[],\"type\":\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"Move a work item from in progress to done\",\"id\":\"31\",\"links\":[{\"fromPort\":0,\"fromStatusReference\":\"c7a35bf0-c127-4aa6-869f-4033730c61d8\",\"toPort\":1}],\"name\":\"Done\",\"properties\":{},\"toStatusReference\":\"6b3fc04d-3316-46c5-a257-65751aeb8849\",\"triggers\":[],\"type\":\"DIRECTED\",\"validators\":[]}],\"version\":{\"id\":\"6f6c988b-2590-4358-90c2-5f7960265592\",\"versionNumber\":1}}]},\"validationOptions\":{\"levels\":[\"ERROR\",\"WARNING\"]}}\n\n@endpoint GET /rest/api/3/workflowscheme\n@desc Get all workflow schemes\n@optional {startAt: int(int64)=0 # The index of the first item to return in a page of results (page offset)., maxResults: int(int32)=50 # The maximum number of items to return per page.}\n@returns(200) {isLast: bool, maxResults: int(int32), nextPage: str(uri), self: str(uri), startAt: int(int64), total: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint POST /rest/api/3/workflowscheme\n@desc Create workflow scheme\n@optional {defaultWorkflow: str # The name of the default workflow for the workflow scheme. The default workflow has *All Unassigned Issue Types* assigned to it in Jira. If `defaultWorkflow` is not specified when creating a workflow scheme, it is set to *Jira Workflow (jira)*., description: str # The description of the workflow scheme., draft: bool # Whether the workflow scheme is a draft or not., id: int(int64) # The ID of the workflow scheme., issueTypeMappings: map # The issue type to workflow mappings, where each mapping is an issue type ID and workflow name pair. Note that an issue type can only be mapped to one workflow in a workflow scheme., issueTypes: map # The issue types available in Jira., lastModified: str # The date-time that the draft workflow scheme was last modified. A modification is a change to the issue type-project mappings only. This property does not apply to non-draft workflows., lastModifiedUser: any # The user that last modified the draft workflow scheme. A modification is a change to the issue type-project mappings only. This property does not apply to non-draft workflows., name: str # The name of the workflow scheme. The name must be unique. The maximum length is 255 characters. Required when creating a workflow scheme., originalDefaultWorkflow: str # For draft workflow schemes, this property is the name of the default workflow for the original workflow scheme. The default workflow has *All Unassigned Issue Types* assigned to it in Jira., originalIssueTypeMappings: map # For draft workflow schemes, this property is the issue type to workflow mappings for the original workflow scheme, where each mapping is an issue type ID and workflow name pair. Note that an issue type can only be mapped to one workflow in a workflow scheme., self: str(uri), updateDraftIfNeeded: bool # Whether to create or update a draft workflow scheme when updating an active workflow scheme. An active workflow scheme is a workflow scheme that is used by at least one project. The following examples show how this property works:   *  Update an active workflow scheme with `updateDraftIfNeeded` set to `true`: If a draft workflow scheme exists, it is updated. Otherwise, a draft workflow scheme is created.  *  Update an active workflow scheme with `updateDraftIfNeeded` set to `false`: An error is returned, as active workflow schemes cannot be updated.  *  Update an inactive workflow scheme with `updateDraftIfNeeded` set to `true`: The workflow scheme is updated, as inactive workflow schemes do not require drafts to update.  Defaults to `false`.}\n@returns(201) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n@example_request {\"defaultWorkflow\":\"jira\",\"description\":\"The description of the example workflow scheme.\",\"issueTypeMappings\":{\"10000\":\"scrum workflow\",\"10001\":\"builds workflow\"},\"name\":\"Example workflow scheme\"}\n\n@endpoint GET /rest/api/3/workflowscheme/project\n@desc Get workflow scheme project associations\n@required {projectId: [int(int64)] # The ID of a project to return the workflow schemes for. To include multiple projects, provide an ampersand-Jim: oneseparated list. For example, `projectId=10000&projectId=10001`.}\n@returns(200) {values: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint PUT /rest/api/3/workflowscheme/project\n@desc Assign workflow scheme to project\n@required {projectId: str # The ID of the project.}\n@optional {workflowSchemeId: str # The ID of the workflow scheme. If the workflow scheme ID is `null`, the operation assigns the default workflow scheme.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the required permissions., 404: Returned if the workflow scheme or the project are not found.}\n@example_request {\"projectId\":\"10001\",\"workflowSchemeId\":\"10032\"}\n\n@endpoint POST /rest/api/3/workflowscheme/project/switch\n@desc Switch workflow scheme for project\n@optional {mappingsByIssueTypeOverride: [map{issueTypeId: str, statusMappings: [map]}] # The mappings for migrating issues from old statuses to new statuses when switching from one workflow scheme to another. This field is required if any statuses in the current project's workflows would no longer exist in the target workflow scheme. Each mapping defines how to update issues from an old status to the corresponding new status in the issue’s new workflow., projectId: str # The ID of the project to switch the workflow scheme for, targetSchemeId: str # The ID of the target workflow scheme to switch to}\n@errors {303: Returned if the request is successful and the task has been started., 400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 409: Returned if a conflicting task is already running.}\n@example_request {\"mappingsByIssueTypeOverride\":[{\"issueTypeId\":\"10000\",\"statusMappings\":[{\"newStatusId\":\"10003\",\"oldStatusId\":\"3\"},{\"newStatusId\":\"10009\",\"oldStatusId\":\"10\"}]},{\"issueTypeId\":\"10011\",\"statusMappings\":[{\"newStatusId\":\"10003\",\"oldStatusId\":\"3\"},{\"newStatusId\":\"10002\",\"oldStatusId\":\"10003\"}]}],\"projectId\":\"10001\",\"targetSchemeId\":\"10002\"}\n\n@endpoint POST /rest/api/3/workflowscheme/read\n@desc Bulk get workflow schemes\n@optional {projectIds: [str] # The list of project IDs to query., workflowSchemeIds: [str] # The list of workflow scheme IDs to query.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n@example_request {\"projectIds\":[\"10047\",\"10048\"],\"workflowSchemeIds\":[\"3e59db0f-ed6c-47ce-8d50-80c0c4572677\"]}\n\n@endpoint POST /rest/api/3/workflowscheme/update\n@desc Update workflow scheme\n@required {description: str # The new description for this workflow scheme., id: str # The ID of this workflow scheme., name: str # The new name for this workflow scheme., version: map{id: str, versionNumber: int(int64)} # The current version details of this workflow scheme.}\n@optional {defaultWorkflowId: str # The ID of the workflow for issue types without having a mapping defined in this workflow scheme. Only used in global-scoped workflow schemes. If the `defaultWorkflowId` isn't specified, this is set to *Jira Workflow (jira)*., statusMappingsByIssueTypeOverride: [map{issueTypeId: str, statusMappings: [map]}] # Overrides, for the selected issue types, any status mappings provided in `statusMappingsByWorkflows`. Status mappings are required when the new workflow for an issue type doesn't contain all statuses that the old workflow has. Status mappings can be provided by a combination of `statusMappingsByWorkflows` and `statusMappingsByIssueTypeOverride`., statusMappingsByWorkflows: [map{newWorkflowId!: str, oldWorkflowId!: str, statusMappings!: [map]}] # The status mappings by workflows. Status mappings are required when the new workflow for an issue type doesn't contain all statuses that the old workflow has. Status mappings can be provided by a combination of `statusMappingsByWorkflows` and `statusMappingsByIssueTypeOverride`., workflowsForIssueTypes: [map{issueTypeIds!: [str], workflowId!: str}] # Mappings from workflows to issue types.}\n@returns(200) Returned if the request is successful and there is no asynchronous task.\n@errors {303: Returned if the request is successful and there is an asynchronous task for the migrations., 400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 409: Returned if another workflow configuration update task is ongoing.}\n@example_request {\"defaultWorkflowId\":\"3e59db0f-ed6c-47ce-8d50-80c0c4572677\",\"description\":\"description\",\"id\":\"10000\",\"name\":\"name\",\"statusMappingsByIssueTypeOverride\":[{\"issueTypeId\":\"10001\",\"statusMappings\":[{\"newStatusId\":\"2\",\"oldStatusId\":\"1\"},{\"newStatusId\":\"4\",\"oldStatusId\":\"3\"}]},{\"issueTypeId\":\"10002\",\"statusMappings\":[{\"newStatusId\":\"4\",\"oldStatusId\":\"1\"},{\"newStatusId\":\"2\",\"oldStatusId\":\"3\"}]}],\"statusMappingsByWorkflows\":[{\"newWorkflowId\":\"3e59db0f-ed6c-47ce-8d50-80c0c4572677\",\"oldWorkflowId\":\"3e59db0f-ed6c-47ce-8d50-80c0c4572677\",\"statusMappings\":[{\"newStatusId\":\"2\",\"oldStatusId\":\"1\"},{\"newStatusId\":\"4\",\"oldStatusId\":\"3\"}]}],\"version\":{\"id\":\"527213fc-bc72-400f-aae0-df8d88db2c8a\",\"versionNumber\":1},\"workflowsForIssueTypes\":[{\"issueTypeIds\":[\"10000\",\"10003\"],\"workflowId\":\"3e59db0f-ed6c-47ce-8d50-80c0c4572677\"},{\"issueTypeIds\":[\"10001`\",\"10002\"],\"workflowId\":\"3f83dg2a-ns2n-56ab-9812-42h5j1461629\"}]}\n\n@endpoint POST /rest/api/3/workflowscheme/update/mappings\n@desc Get required status mappings for workflow scheme update\n@required {id: str # The ID of the workflow scheme., workflowsForIssueTypes: [map{issueTypeIds!: [str], workflowId!: str}] # The new workflow to issue type mappings for this workflow scheme.}\n@optional {defaultWorkflowId: str # The ID of the new default workflow for this workflow scheme. Only used in global-scoped workflow schemes. If it isn't specified, is set to *Jira Workflow (jira)*.}\n@returns(200) {statusMappingsByIssueTypes: [map], statusMappingsByWorkflows: [map], statuses: [map], statusesPerWorkflow: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation.}\n@example_request {\"defaultWorkflowId\":\"10010\",\"id\":\"10001\",\"workflowsForIssueTypes\":[{\"issueTypeIds\":[\"10010\",\"10011\"],\"workflowId\":\"10001\"}]}\n\n@endpoint DELETE /rest/api/3/workflowscheme/{id}\n@desc Delete workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme. Find this ID by editing the desired workflow scheme in Jira. The ID is shown in the URL as `schemeId`. For example, *schemeId=10301*.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the scheme is active., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme is not found.}\n\n@endpoint GET /rest/api/3/workflowscheme/{id}\n@desc Get workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme. Find this ID by editing the desired workflow scheme in Jira. The ID is shown in the URL as `schemeId`. For example, *schemeId=10301*.}\n@optional {returnDraftIfExists: bool=false # Returns the workflow scheme's draft rather than scheme itself, if set to true. If the workflow scheme does not have a draft, then the workflow scheme is returned.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme is not found.}\n\n@endpoint PUT /rest/api/3/workflowscheme/{id}\n@desc Classic update workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme. Find this ID by editing the desired workflow scheme in Jira. The ID is shown in the URL as `schemeId`. For example, *schemeId=10301*.}\n@optional {defaultWorkflow: str # The name of the default workflow for the workflow scheme. The default workflow has *All Unassigned Issue Types* assigned to it in Jira. If `defaultWorkflow` is not specified when creating a workflow scheme, it is set to *Jira Workflow (jira)*., description: str # The description of the workflow scheme., draft: bool # Whether the workflow scheme is a draft or not., id: int(int64) # The ID of the workflow scheme., issueTypeMappings: map # The issue type to workflow mappings, where each mapping is an issue type ID and workflow name pair. Note that an issue type can only be mapped to one workflow in a workflow scheme., issueTypes: map # The issue types available in Jira., lastModified: str # The date-time that the draft workflow scheme was last modified. A modification is a change to the issue type-project mappings only. This property does not apply to non-draft workflows., lastModifiedUser: any # The user that last modified the draft workflow scheme. A modification is a change to the issue type-project mappings only. This property does not apply to non-draft workflows., name: str # The name of the workflow scheme. The name must be unique. The maximum length is 255 characters. Required when creating a workflow scheme., originalDefaultWorkflow: str # For draft workflow schemes, this property is the name of the default workflow for the original workflow scheme. The default workflow has *All Unassigned Issue Types* assigned to it in Jira., originalIssueTypeMappings: map # For draft workflow schemes, this property is the issue type to workflow mappings for the original workflow scheme, where each mapping is an issue type ID and workflow name pair. Note that an issue type can only be mapped to one workflow in a workflow scheme., self: str(uri), updateDraftIfNeeded: bool # Whether to create or update a draft workflow scheme when updating an active workflow scheme. An active workflow scheme is a workflow scheme that is used by at least one project. The following examples show how this property works:   *  Update an active workflow scheme with `updateDraftIfNeeded` set to `true`: If a draft workflow scheme exists, it is updated. Otherwise, a draft workflow scheme is created.  *  Update an active workflow scheme with `updateDraftIfNeeded` set to `false`: An error is returned, as active workflow schemes cannot be updated.  *  Update an inactive workflow scheme with `updateDraftIfNeeded` set to `true`: The workflow scheme is updated, as inactive workflow schemes do not require drafts to update.  Defaults to `false`.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme is not found.}\n@example_request {\"defaultWorkflow\":\"jira\",\"description\":\"The description of the example workflow scheme.\",\"issueTypeMappings\":{\"10000\":\"scrum workflow\"},\"name\":\"Example workflow scheme\",\"updateDraftIfNeeded\":false}\n\n@endpoint POST /rest/api/3/workflowscheme/{id}/createdraft\n@desc Create draft workflow scheme\n@required {id: int(int64) # The ID of the active workflow scheme that the draft is created from.}\n@returns(201) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.}\n\n@endpoint DELETE /rest/api/3/workflowscheme/{id}/default\n@desc Delete default workflow\n@required {id: int(int64) # The ID of the workflow scheme.}\n@optional {updateDraftIfNeeded: bool # Set to true to create or update the draft of a workflow scheme and delete the mapping from the draft, when the workflow scheme cannot be edited. Defaults to `false`.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the workflow scheme cannot be edited and `updateDraftIfNeeded` is not `true`., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme is not found.}\n\n@endpoint GET /rest/api/3/workflowscheme/{id}/default\n@desc Get default workflow\n@required {id: int(int64) # The ID of the workflow scheme.}\n@optional {returnDraftIfExists: bool=false # Set to `true` to return the default workflow for the workflow scheme's draft rather than scheme itself. If the workflow scheme does not have a draft, then the default workflow for the workflow scheme is returned.}\n@returns(200) {updateDraftIfNeeded: bool, workflow: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme is not found.}\n\n@endpoint PUT /rest/api/3/workflowscheme/{id}/default\n@desc Update default workflow\n@required {id: int(int64) # The ID of the workflow scheme., workflow: str # The name of the workflow to set as the default workflow.}\n@optional {updateDraftIfNeeded: bool # Whether a draft workflow scheme is created or updated when updating an active workflow scheme. The draft is updated with the new default workflow. Defaults to `false`.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the workflow scheme cannot be edited and `updateDraftIfNeeded` is not `true`., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme is not found.}\n@example_request {\"updateDraftIfNeeded\":false,\"workflow\":\"jira\"}\n\n@endpoint DELETE /rest/api/3/workflowscheme/{id}/draft\n@desc Delete draft workflow scheme\n@required {id: int(int64) # The ID of the active workflow scheme that the draft was created from.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.., 404: Returned if:   *  the original active workflow scheme is not found.  *  the original active workflow scheme does not have a draft.}\n\n@endpoint GET /rest/api/3/workflowscheme/{id}/draft\n@desc Get draft workflow scheme\n@required {id: int(int64) # The ID of the active workflow scheme that the draft was created from.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if:   *  the original active workflow scheme is not found.  *  the original active workflow scheme does not have a draft.}\n\n@endpoint PUT /rest/api/3/workflowscheme/{id}/draft\n@desc Update draft workflow scheme\n@required {id: int(int64) # The ID of the active workflow scheme that the draft was created from.}\n@optional {defaultWorkflow: str # The name of the default workflow for the workflow scheme. The default workflow has *All Unassigned Issue Types* assigned to it in Jira. If `defaultWorkflow` is not specified when creating a workflow scheme, it is set to *Jira Workflow (jira)*., description: str # The description of the workflow scheme., draft: bool # Whether the workflow scheme is a draft or not., id: int(int64) # The ID of the workflow scheme., issueTypeMappings: map # The issue type to workflow mappings, where each mapping is an issue type ID and workflow name pair. Note that an issue type can only be mapped to one workflow in a workflow scheme., issueTypes: map # The issue types available in Jira., lastModified: str # The date-time that the draft workflow scheme was last modified. A modification is a change to the issue type-project mappings only. This property does not apply to non-draft workflows., lastModifiedUser: any # The user that last modified the draft workflow scheme. A modification is a change to the issue type-project mappings only. This property does not apply to non-draft workflows., name: str # The name of the workflow scheme. The name must be unique. The maximum length is 255 characters. Required when creating a workflow scheme., originalDefaultWorkflow: str # For draft workflow schemes, this property is the name of the default workflow for the original workflow scheme. The default workflow has *All Unassigned Issue Types* assigned to it in Jira., originalIssueTypeMappings: map # For draft workflow schemes, this property is the issue type to workflow mappings for the original workflow scheme, where each mapping is an issue type ID and workflow name pair. Note that an issue type can only be mapped to one workflow in a workflow scheme., self: str(uri), updateDraftIfNeeded: bool # Whether to create or update a draft workflow scheme when updating an active workflow scheme. An active workflow scheme is a workflow scheme that is used by at least one project. The following examples show how this property works:   *  Update an active workflow scheme with `updateDraftIfNeeded` set to `true`: If a draft workflow scheme exists, it is updated. Otherwise, a draft workflow scheme is created.  *  Update an active workflow scheme with `updateDraftIfNeeded` set to `false`: An error is returned, as active workflow schemes cannot be updated.  *  Update an inactive workflow scheme with `updateDraftIfNeeded` set to `true`: The workflow scheme is updated, as inactive workflow schemes do not require drafts to update.  Defaults to `false`.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if:   *  the original active workflow scheme is not found.  *  the original active workflow scheme does not have a draft.}\n@example_request {\"defaultWorkflow\":\"jira\",\"description\":\"The description of the example workflow scheme.\",\"issueTypeMappings\":{\"10000\":\"scrum workflow\"},\"name\":\"Example workflow scheme\",\"updateDraftIfNeeded\":false}\n\n@endpoint DELETE /rest/api/3/workflowscheme/{id}/draft/default\n@desc Delete draft default workflow\n@required {id: int(int64) # The ID of the workflow scheme that the draft belongs to.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if any of the following is true:   *  The workflow scheme is not found.  *  The workflow scheme does not have a draft.}\n\n@endpoint GET /rest/api/3/workflowscheme/{id}/draft/default\n@desc Get draft default workflow\n@required {id: int(int64) # The ID of the workflow scheme that the draft belongs to.}\n@returns(200) {updateDraftIfNeeded: bool, workflow: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission.., 404: Returned if any of the following is true:   *  The workflow scheme is not found.  *  The workflow scheme does not have a draft.}\n\n@endpoint PUT /rest/api/3/workflowscheme/{id}/draft/default\n@desc Update draft default workflow\n@required {id: int(int64) # The ID of the workflow scheme that the draft belongs to., workflow: str # The name of the workflow to set as the default workflow.}\n@optional {updateDraftIfNeeded: bool # Whether a draft workflow scheme is created or updated when updating an active workflow scheme. The draft is updated with the new default workflow. Defaults to `false`.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if any of the following is true:   *  The workflow scheme is not found.  *  The workflow scheme does not have a draft.}\n@example_request {\"updateDraftIfNeeded\":false,\"workflow\":\"jira\"}\n\n@endpoint DELETE /rest/api/3/workflowscheme/{id}/draft/issuetype/{issueType}\n@desc Delete workflow for issue type in draft workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme that the draft belongs to., issueType: str # The ID of the issue type.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme or issue type is not found.}\n\n@endpoint GET /rest/api/3/workflowscheme/{id}/draft/issuetype/{issueType}\n@desc Get workflow for issue type in draft workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme that the draft belongs to., issueType: str # The ID of the issue type.}\n@returns(200) {issueType: str, updateDraftIfNeeded: bool, workflow: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme or issue type is not found.}\n\n@endpoint PUT /rest/api/3/workflowscheme/{id}/draft/issuetype/{issueType}\n@desc Set workflow for issue type in draft workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme that the draft belongs to., issueType: str # The ID of the issue type.}\n@optional {issueType: str # The ID of the issue type. Not required if updating the issue type-workflow mapping., updateDraftIfNeeded: bool # Set to true to create or update the draft of a workflow scheme and update the mapping in the draft, when the workflow scheme cannot be edited. Defaults to `false`. Only applicable when updating the workflow-issue types mapping., workflow: str # The name of the workflow.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme or issue type is not found.}\n@example_request {\"issueType\":\"10000\",\"updateDraftIfNeeded\":false,\"workflow\":\"jira\"}\n\n@endpoint POST /rest/api/3/workflowscheme/{id}/draft/publish\n@desc Publish draft workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme that the draft belongs to.}\n@optional {validateOnly: bool=false # Whether the request only performs a validation., statusMappings: [map{issueTypeId!: str, newStatusId!: str, statusId!: str}] # Mappings of statuses to new statuses for issue types.}\n@returns(204) Returned if the request is only for validation and is successful.\n@errors {303: Returned if the request is successful., 400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if any of these are true:   *  The workflow scheme is not found.  *  The workflow scheme does not have a draft.  *  A new status in the draft workflow scheme is not found.}\n@example_request {\"statusMappings\":[{\"issueTypeId\":\"10001\",\"newStatusId\":\"1\",\"statusId\":\"3\"},{\"issueTypeId\":\"10001\",\"newStatusId\":\"2\",\"statusId\":\"2\"},{\"issueTypeId\":\"10002\",\"newStatusId\":\"10003\",\"statusId\":\"10005\"},{\"issueTypeId\":\"10003\",\"newStatusId\":\"1\",\"statusId\":\"4\"}]}\n\n@endpoint DELETE /rest/api/3/workflowscheme/{id}/draft/workflow\n@desc Delete issue types for workflow in draft workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme that the draft belongs to., workflowName: str # The name of the workflow.}\n@returns(200) Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if any of the following is true:   *  The workflow scheme is not found.  *  The workflow scheme does not have a draft.  *  The workflow is not found.  *  The workflow is not specified.}\n\n@endpoint GET /rest/api/3/workflowscheme/{id}/draft/workflow\n@desc Get issue types for workflows in draft workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme that the draft belongs to.}\n@optional {workflowName: str # The name of a workflow in the scheme. Limits the results to the workflow-issue type mapping for the specified workflow.}\n@returns(200) {defaultMapping: bool, issueTypes: [str], updateDraftIfNeeded: bool, workflow: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if either the workflow scheme or workflow (if specified) is not found. session.}\n\n@endpoint PUT /rest/api/3/workflowscheme/{id}/draft/workflow\n@desc Set issue types for workflow in workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme that the draft belongs to., workflowName: str # The name of the workflow.}\n@optional {defaultMapping: bool # Whether the workflow is the default workflow for the workflow scheme., issueTypes: [str] # The list of issue type IDs., updateDraftIfNeeded: bool # Whether a draft workflow scheme is created or updated when updating an active workflow scheme. The draft is updated with the new workflow-issue types mapping. Defaults to `false`., workflow: str # The name of the workflow. Optional if updating the workflow-issue types mapping.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if any of the following is true:   *  The workflow scheme is not found.  *  The workflow scheme does not have a draft.  *  The workflow is not found.  *  The workflow is not specified.}\n@example_request {\"issueTypes\":[\"10000\"],\"updateDraftIfNeeded\":true,\"workflow\":\"jira\"}\n\n@endpoint DELETE /rest/api/3/workflowscheme/{id}/issuetype/{issueType}\n@desc Delete workflow for issue type in workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme., issueType: str # The ID of the issue type.}\n@optional {updateDraftIfNeeded: bool=false # Set to true to create or update the draft of a workflow scheme and update the mapping in the draft, when the workflow scheme cannot be edited. Defaults to `false`.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the workflow cannot be edited and `updateDraftIfNeeded` is false., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme or issue type is not found.}\n\n@endpoint GET /rest/api/3/workflowscheme/{id}/issuetype/{issueType}\n@desc Get workflow for issue type in workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme., issueType: str # The ID of the issue type.}\n@optional {returnDraftIfExists: bool=false # Returns the mapping from the workflow scheme's draft rather than the workflow scheme, if set to true. If no draft exists, the mapping from the workflow scheme is returned.}\n@returns(200) {issueType: str, updateDraftIfNeeded: bool, workflow: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme or issue type is not found.}\n\n@endpoint PUT /rest/api/3/workflowscheme/{id}/issuetype/{issueType}\n@desc Set workflow for issue type in workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme., issueType: str # The ID of the issue type.}\n@optional {issueType: str # The ID of the issue type. Not required if updating the issue type-workflow mapping., updateDraftIfNeeded: bool # Set to true to create or update the draft of a workflow scheme and update the mapping in the draft, when the workflow scheme cannot be edited. Defaults to `false`. Only applicable when updating the workflow-issue types mapping., workflow: str # The name of the workflow.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the workflow cannot be edited and `updateDraftIfNeeded` is false., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if the workflow scheme or issue type is not found.}\n@example_request {\"issueType\":\"10000\",\"updateDraftIfNeeded\":false,\"workflow\":\"jira\"}\n\n@endpoint DELETE /rest/api/3/workflowscheme/{id}/workflow\n@desc Delete issue types for workflow in workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme., workflowName: str # The name of the workflow.}\n@optional {updateDraftIfNeeded: bool=false # Set to true to create or update the draft of a workflow scheme and delete the mapping from the draft, when the workflow scheme cannot be edited. Defaults to `false`.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the workflow cannot be edited and `updateDraftIfNeeded` is not true., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if any of the following is true:   *  The workflow scheme is not found.  *  The workflow is not found.  *  The workflow is not specified.}\n\n@endpoint GET /rest/api/3/workflowscheme/{id}/workflow\n@desc Get issue types for workflows in workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme.}\n@optional {workflowName: str # The name of a workflow in the scheme. Limits the results to the workflow-issue type mapping for the specified workflow., returnDraftIfExists: bool=false # Returns the mapping from the workflow scheme's draft rather than the workflow scheme, if set to true. If no draft exists, the mapping from the workflow scheme is returned.}\n@returns(200) {defaultMapping: bool, issueTypes: [str], updateDraftIfNeeded: bool, workflow: str} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if either the workflow scheme or workflow is not found.}\n\n@endpoint PUT /rest/api/3/workflowscheme/{id}/workflow\n@desc Set issue types for workflow in workflow scheme\n@required {id: int(int64) # The ID of the workflow scheme., workflowName: str # The name of the workflow.}\n@optional {defaultMapping: bool # Whether the workflow is the default workflow for the workflow scheme., issueTypes: [str] # The list of issue type IDs., updateDraftIfNeeded: bool # Whether a draft workflow scheme is created or updated when updating an active workflow scheme. The draft is updated with the new workflow-issue types mapping. Defaults to `false`., workflow: str # The name of the workflow. Optional if updating the workflow-issue types mapping.}\n@returns(200) {defaultWorkflow: str, description: str, draft: bool, id: int(int64), issueTypeMappings: map, issueTypes: map, lastModified: str, lastModifiedUser: any, name: str, originalDefaultWorkflow: str, originalIssueTypeMappings: map, self: str(uri), updateDraftIfNeeded: bool} # Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the user does not have the necessary permission., 404: Returned if any of the following is true:   *  The workflow scheme is not found.  *  The workflow is not found.  *  The workflow is not specified.}\n@example_request {\"issueTypes\":[\"10000\"],\"updateDraftIfNeeded\":true,\"workflow\":\"jira\"}\n\n@endpoint GET /rest/api/3/workflowscheme/{workflowSchemeId}/projectUsages\n@desc Get projects which are using a given workflow scheme\n@required {workflowSchemeId: str # The workflow scheme ID}\n@optional {nextPageToken: str # The cursor for pagination, maxResults: int(int32)=50 # The maximum number of results to return. Must be an integer between 1 and 200.}\n@returns(200) {projects: map{nextPageToken: str, values: [map]}, workflowSchemeId: str} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 401: Returned if the authentication credentials are incorrect or missing, or the caller doesn't have permissions to perform the operation., 404: Returned if the workflow scheme with the given ID does not exist.}\n\n@endpoint GET /rest/api/3/worklog/deleted\n@desc Get IDs of deleted worklogs\n@optional {since: int(int64)=0 # The date and time, as a UNIX timestamp in milliseconds, after which deleted worklogs are returned.}\n@returns(200) {lastPage: bool, nextPage: str(uri), self: str(uri), since: int(int64), until: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint POST /rest/api/3/worklog/list\n@desc Get worklogs\n@required {ids: [int(int64)] # A list of worklog IDs.}\n@optional {expand: str= # Use [expand](#expansion) to include additional information about worklogs in the response. This parameter accepts `properties` that returns the properties of each worklog.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request contains more than 1000 worklog IDs or is empty., 401: Returned if the authentication credentials are incorrect or missing.}\n@example_request {\"ids\":[1,2,5,10]}\n\n@endpoint GET /rest/api/3/worklog/updated\n@desc Get IDs of updated worklogs\n@optional {since: int(int64)=0 # The date and time, as a UNIX timestamp in milliseconds, after which updated worklogs are returned., expand: str= # Use [expand](#expansion) to include additional information about worklogs in the response. This parameter accepts `properties` that returns the properties of each worklog.}\n@returns(200) {lastPage: bool, nextPage: str(uri), self: str(uri), since: int(int64), until: int(int64), values: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint GET /rest/atlassian-connect/1/addons/{addonKey}/properties\n@desc Get app properties\n@required {addonKey: str # The key of the app, as defined in its descriptor.}\n@returns(200) {keys: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing.}\n\n@endpoint DELETE /rest/atlassian-connect/1/addons/{addonKey}/properties/{propertyKey}\n@desc Delete app property\n@required {addonKey: str # The key of the app, as defined in its descriptor., propertyKey: str # The key of the property.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the property key is longer than 127 characters., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the property key is reserved and read-only., 404: Returned if the property is not found or doesn't belong to the app.}\n\n@endpoint GET /rest/atlassian-connect/1/addons/{addonKey}/properties/{propertyKey}\n@desc Get app property\n@required {addonKey: str # The key of the app, as defined in its descriptor., propertyKey: str # The key of the property.}\n@returns(200) {key: str, value: any} # Returned if the request is successful.\n@errors {400: Returned if the property key is longer than 127 characters., 401: Returned if the authentication credentials are incorrect or missing., 404: Returned if the property is not found or doesn't belong to the app.}\n\n@endpoint PUT /rest/atlassian-connect/1/addons/{addonKey}/properties/{propertyKey}\n@desc Set app property\n@required {addonKey: str # The key of the app, as defined in its descriptor., propertyKey: str # The key of the property.}\n@returns(200) {message: str, statusCode: int} # Returned if the property is updated.\n@returns(201) {message: str, statusCode: int} # Returned is the property is created.\n@errors {400: Returned if:   * the property key is longer than 127 characters.   * the value is not valid JSON.   * the value is longer than 32768 characters., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the property key is reserved and read-only.}\n\n@endpoint DELETE /rest/atlassian-connect/1/app/module/dynamic\n@desc Remove modules\n@optional {moduleKey: [str] # The key of the module to remove. To include multiple module keys, provide multiple copies of this parameter. For example, `moduleKey=dynamic-attachment-entity-property&moduleKey=dynamic-select-field`. Nonexistent keys are ignored.}\n@returns(204) Returned if the request is successful.\n@errors {401: Returned if the call is not from a Connect app.}\n\n@endpoint GET /rest/atlassian-connect/1/app/module/dynamic\n@desc Get modules\n@returns(200) {modules: [map]} # Returned if the request is successful.\n@errors {401: Returned if the call is not from a Connect app.}\n\n@endpoint POST /rest/atlassian-connect/1/app/module/dynamic\n@desc Register modules\n@required {modules: [map] # A list of app modules in the same format as the `modules` property in the [app descriptor](https://developer.atlassian.com/cloud/jira/platform/app-descriptor/).}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if: * any of the provided modules is invalid. For example, required properties are missing. * any of the modules conflict with registered dynamic modules or modules defined in the app descriptor. For example, there are duplicate keys.  Details of the issues encountered are included in the error message., 401: Returned if the call is not from a Connect app.}\n\n@endpoint PUT /rest/atlassian-connect/1/migration/field\n@desc Bulk update custom field value\n@required {Atlassian-Transfer-Id: str(uuid) # The ID of the transfer.}\n@optional {updateValueList: [map{_type!: str, fieldID!: int, issueID!: int, number: num, optionID: str, richText: str, string: str, text: str}] # The list of custom field update details.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 403: Returned if: * the transfer ID is not found. * the authorisation credentials are incorrect or missing.}\n@example_request {\"updateValueList\":[{\"_type\":\"StringIssueField\",\"issueID\":10001,\"fieldID\":10076,\"string\":\"new string value\"},{\"_type\":\"TextIssueField\",\"issueID\":10002,\"fieldID\":10077,\"text\":\"new text value\"},{\"_type\":\"SingleSelectIssueField\",\"issueID\":10003,\"fieldID\":10078,\"optionID\":\"1\"},{\"_type\":\"MultiSelectIssueField\",\"issueID\":10004,\"fieldID\":10079,\"optionID\":\"2\"},{\"_type\":\"RichTextIssueField\",\"issueID\":10005,\"fieldID\":10080,\"richText\":\"new rich text value\"},{\"_type\":\"NumberIssueField\",\"issueID\":10006,\"fieldID\":10082,\"number\":54}]}\n\n@endpoint PUT /rest/atlassian-connect/1/migration/properties/{entityType}\n@desc Bulk update entity properties\n@required {Atlassian-Transfer-Id: str(uuid) # The app migration transfer ID., entityType: str(IssueProperty/CommentProperty/DashboardItemProperty/IssueTypeProperty/ProjectProperty/UserProperty/WorklogProperty/BoardProperty/SprintProperty) # The type indicating the object that contains the entity properties.}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 403: Returned if the authorisation credentials are incorrect or missing.}\n\n@endpoint POST /rest/atlassian-connect/1/migration/workflow/rule/search\n@desc Get workflow transition rule configurations\n@required {Atlassian-Transfer-Id: str(uuid) # The app migration transfer ID., ruleIds: [str(uuid)] # The list of workflow rule IDs., workflowEntityId: str(uuid) # The workflow ID.}\n@optional {expand: str # Use expand to include additional information in the response. This parameter accepts `transition` which, for each rule, returns information about the transition the rule is assigned to.}\n@returns(200) {invalidRules: [str(uuid)], validRules: [map], workflowEntityId: str(uuid)} # Returned if the request is successful.\n@errors {400: Returned if the request is not valid., 403: Returned if the authorisation credentials are incorrect or missing.}\n\n@endpoint GET /rest/atlassian-connect/1/migration/{connectKey}/{jiraIssueFieldsKey}/task\n@desc Get Connect issue field migration task\n@required {connectKey: str # The key of the Connect app that contains the Jira issue field being migrated., jiraIssueFieldsKey: str # The module key of the Connect issue field being migrated.}\n@returns(200) {description: str, elapsedRuntime: int(int64), finished: str(date-time), id: str, lastUpdate: str(date-time), message: str, progress: int(int64), result: any, self: str(uri), started: str(date-time), status: str, submitted: str(date-time), submittedBy: int(int64)} # Returned if the request is successful and a migration task is found.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if: * no migrated Forge module with the given key is found. * no ongoing migration task exists for the custom field.}\n\n@endpoint POST /rest/atlassian-connect/1/migration/{connectKey}/{jiraIssueFieldsKey}/task\n@desc Submit Connect issue field migration task\n@required {connectKey: str # The key of the Connect app that contains the Jira issue field being migrated., jiraIssueFieldsKey: str # The module key of the Connect issue field being migrated.}\n@returns(202) Returned if the migration task was submitted successfully.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 404: Returned if no migrated Forge module with the given key is found., 409: Returned if a migration task is already in progress for the field.}\n\n@endpoint GET /rest/atlassian-connect/1/service-registry\n@desc Retrieve the attributes of service registries\n@required {serviceIds: [str] # The ID of the services (the strings starting with \"b:\" need to be decoded in Base64).}\n@returns(200) Returned if the request is successful.\n@errors {400: Returned if the request is invalid., 401: The request needs to be authenticated., 403: The request isn't authorized., 500: The endpoint failed internally., 501: The endpoint isn't ready for receiving requests., 504: The upstream service is busy.}\n\n@endpoint GET /rest/forge/1/app/properties\n@desc Get app property keys (Forge)\n@returns(200) {keys: [map]} # Returned if the request is successful.\n@errors {401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the request isn't made directly by an app or if it's an impersonated request.}\n\n@endpoint DELETE /rest/forge/1/app/properties/{propertyKey}\n@desc Delete app property (Forge)\n@required {propertyKey: str # The key of the property.}\n@returns(204) Returned if the request is successful.\n@errors {400: Returned if the property key is longer than 127 characters., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the request isn't made directly by an app or if it's an impersonated request., 404: Returned if the property isn't found or doesn't belong to the app.}\n\n@endpoint GET /rest/forge/1/app/properties/{propertyKey}\n@desc Get app property (Forge)\n@required {propertyKey: str # The key of the property.}\n@returns(200) {key: str, value: any} # Returned if the request is successful.\n@errors {400: Returned if the property key is longer than 127 characters., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the request isn't made directly by an app or if it's an impersonated request., 404: Returned if the property isn't found or doesn't belong to the app.}\n\n@endpoint PUT /rest/forge/1/app/properties/{propertyKey}\n@desc Set app property (Forge)\n@required {propertyKey: str # The key of the property.}\n@returns(200) {message: str, statusCode: int} # Returned if the property is updated.\n@returns(201) {message: str, statusCode: int} # Returned is the property is created.\n@errors {400: Returned if:   * the property key is longer than 127 characters.   * the value isn't valid JSON.   * the value is longer than 32768 characters., 401: Returned if the authentication credentials are incorrect or missing., 403: Returned if the request isn't made directly by an app or if it's an impersonated request.}\n\n@endpoint POST /rest/internal/api/latest/worklog/bulk\n@desc Get worklogs by issue id and worklog id\n@optional {requests: [map{issueId: int(int64), worklogId: int(int64)}] # A list of issue and worklog ID pairs.}\n@returns(200) {worklogs: [map]} # Returned if the request is successful.\n@errors {400: Returned if the request contains more than 1000 worklog pairs, is empty, or has invalid format., 401: Returned if the authentication credentials are incorrect or missing., 500: Returned if there is an internal server error.}\n\n@end\n"}