components:
schemas:
ActorInputBean:
additionalProperties: false
properties:
group:
description: "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\"\
]`."
items:
type: "string"
type: "array"
groupId:
description: "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\"]`."
items:
type: "string"
type: "array"
user:
description: "The account IDs of the users to add as default actors. This\
\ parameter accepts a comma-separated list. For example, `\"user\":[\"\
5b10a2844c20165700ede21g\", \"5b109f2e9729b51b54dc274d\"]`."
items:
type: "string"
type: "array"
type: "object"
ActorsMap:
additionalProperties: false
properties:
group:
description: "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."
items:
type: "string"
type: "array"
groupId:
description: "The ID of the group to add. This parameter cannot be used\
\ with the `group` parameter."
items:
type: "string"
type: "array"
user:
description: "The user account ID of the user to add."
items:
type: "string"
type: "array"
type: "object"
AddFieldBean:
additionalProperties: false
properties:
fieldId:
description: "The ID of the field to add."
type: "string"
required:
- "fieldId"
type: "object"
AddGroupBean:
additionalProperties: true
properties:
name:
description: "The name of the group."
type: "string"
required:
- "name"
type: "object"
AddNotificationsDetails:
additionalProperties: true
description: "Details of notifications which should be added to the notification\
\ scheme."
properties:
notificationSchemeEvents:
description: "The list of notifications which should be added to the notification\
\ scheme."
items:
$ref: "#/components/schemas/NotificationSchemeEventDetails"
type: "array"
writeOnly: true
required:
- "notificationSchemeEvents"
type: "object"
AddSecuritySchemeLevelsRequestBean:
additionalProperties: false
properties:
levels:
description: "The list of scheme levels which should be added to the security\
\ scheme."
items:
$ref: "#/components/schemas/SecuritySchemeLevelBean"
type: "array"
writeOnly: true
type: "object"
AnnouncementBannerConfiguration:
additionalProperties: false
description: "Announcement banner configuration."
properties:
hashId:
description: "Hash of the banner data. The client detects updates by comparing\
\ hash IDs."
readOnly: true
type: "string"
isDismissible:
description: "Flag indicating if the announcement banner can be dismissed\
\ by the user."
readOnly: true
type: "boolean"
isEnabled:
description: "Flag indicating if the announcement banner is enabled or not."
readOnly: true
type: "boolean"
message:
description: "The text on the announcement banner."
readOnly: true
type: "string"
visibility:
description: "Visibility of the announcement banner."
enum:
- "PUBLIC"
- "PRIVATE"
readOnly: true
type: "string"
type: "object"
AnnouncementBannerConfigurationUpdate:
additionalProperties: false
description: "Configuration of the announcement banner."
properties:
isDismissible:
description: "Flag indicating if the announcement banner can be dismissed\
\ by the user."
type: "boolean"
isEnabled:
description: "Flag indicating if the announcement banner is enabled or not."
type: "boolean"
message:
description: "The text on the announcement banner."
type: "string"
visibility:
description: "Visibility of the announcement banner. Can be public or private."
type: "string"
type: "object"
writeOnly: true
AppWorkflowTransitionRule:
additionalProperties: false
description: "A workflow transition rule."
properties:
configuration:
$ref: "#/components/schemas/RuleConfiguration"
id:
description: "The ID of the transition rule."
type: "string"
key:
description: "The key of the rule, as defined in the Connect or the Forge\
\ app descriptor."
readOnly: true
type: "string"
transition:
allOf:
- $ref: "#/components/schemas/WorkflowTransition"
readOnly: true
required:
- "configuration"
- "id"
- "key"
type: "object"
Application:
additionalProperties: true
description: "The application the linked item is in."
properties:
name:
description: "The name of the application. Used in conjunction with the\
\ (remote) object icon title to display a tooltip for the link's icon.\
\ The tooltip takes the format \"\\[application name\\] icon title\".\
\ Blank items are excluded from the tooltip title. If both items are blank,\
\ the icon tooltop displays as \"Web Link\". Grouping and sorting of links\
\ may place links without an application name last."
type: "string"
type:
description: "The name-spaced type of the application, used by registered\
\ rendering apps."
type: "string"
type: "object"
ApplicationProperty:
additionalProperties: false
description: "Details of an application property."
properties:
allowedValues:
description: "The allowed values, if applicable."
items:
type: "string"
type: "array"
defaultValue:
description: "The default value of the application property."
type: "string"
desc:
description: "The description of the application property."
type: "string"
example:
type: "string"
id:
description: "The ID of the application property. The ID and key are the\
\ same."
type: "string"
key:
description: "The key of the application property. The ID and key are the\
\ same."
type: "string"
name:
description: "The name of the application property."
type: "string"
type:
description: "The data type of the application property."
type: "string"
value:
description: "The new value."
type: "string"
type: "object"
ApplicationRole:
additionalProperties: false
description: "Details of an application role."
properties:
defaultGroups:
description: "The groups that are granted default access for this application\
\ role. As a group's name can change, use of `defaultGroupsDetails` is\
\ recommended to identify a groups."
items:
type: "string"
type: "array"
uniqueItems: true
defaultGroupsDetails:
description: "The groups that are granted default access for this application\
\ role."
items:
$ref: "#/components/schemas/GroupName"
type: "array"
defined:
description: "Deprecated."
type: "boolean"
groupDetails:
description: "The groups associated with the application role."
items:
$ref: "#/components/schemas/GroupName"
type: "array"
groups:
description: "The groups associated with the application role. As a group's\
\ name can change, use of `groupDetails` is recommended to identify a\
\ groups."
items:
type: "string"
type: "array"
uniqueItems: true
hasUnlimitedSeats:
type: "boolean"
key:
description: "The key of the application role."
type: "string"
name:
description: "The display name of the application role."
type: "string"
numberOfSeats:
description: "The maximum count of users on your license."
format: "int32"
type: "integer"
platform:
description: "Indicates if the application role belongs to Jira platform\
\ (`jira-core`)."
type: "boolean"
remainingSeats:
description: "The count of users remaining on your license."
format: "int32"
type: "integer"
selectedByDefault:
description: "Determines whether this application role should be selected\
\ by default on user creation."
type: "boolean"
userCount:
description: "The number of users counting against your license."
format: "int32"
type: "integer"
userCountDescription:
description: "The [type of users](https://confluence.atlassian.com/x/lRW3Ng)\
\ being counted against your license."
type: "string"
type: "object"
ArchiveIssueAsyncRequest:
additionalProperties: false
properties:
jql:
type: "string"
type: "object"
ArchivedIssuesFilterRequest:
additionalProperties: true
description: "Details of a filter for exporting archived issues."
properties:
archivedBy:
description: "List archived issues archived by a specified account ID."
items:
type: "string"
type: "array"
archivedDateRange:
$ref: "#/components/schemas/DateRangeFilterRequest"
issueTypes:
description: "List archived issues with a specified issue type ID."
items:
type: "string"
type: "array"
projects:
description: "List archived issues with a specified project key."
items:
type: "string"
type: "array"
reporters:
description: "List archived issues where the reporter is a specified account\
\ ID."
items:
type: "string"
type: "array"
type: "object"
AssociateFieldConfigurationsWithIssueTypesRequest:
additionalProperties: false
description: "Details of a field configuration to issue type mappings."
properties:
mappings:
description: "Field configuration to issue type mappings."
items:
$ref: "#/components/schemas/FieldConfigurationToIssueTypeMapping"
type: "array"
uniqueItems: true
writeOnly: true
required:
- "mappings"
type: "object"
AssociateSecuritySchemeWithProjectDetails:
additionalProperties: false
description: "Issue security scheme, project, and remapping details."
properties:
oldToNewSecurityLevelMappings:
description: "The list of scheme levels which should be remapped to new\
\ levels of the issue security scheme."
items:
$ref: "#/components/schemas/OldToNewSecurityLevelMappingsBean"
type: "array"
writeOnly: true
projectId:
description: "The ID of the project."
type: "string"
writeOnly: true
schemeId:
description: "The ID of the issue security scheme. Providing null will clear\
\ the association with the issue security scheme."
type: "string"
writeOnly: true
required:
- "projectId"
- "schemeId"
type: "object"
AssociatedItemBean:
additionalProperties: false
description: "Details of an item associated with the changed record."
properties:
id:
description: "The ID of the associated record."
readOnly: true
type: "string"
name:
description: "The name of the associated record."
readOnly: true
type: "string"
parentId:
description: "The ID of the associated parent record."
readOnly: true
type: "string"
parentName:
description: "The name of the associated parent record."
readOnly: true
type: "string"
typeName:
description: "The type of the associated record."
readOnly: true
type: "string"
type: "object"
Attachment:
additionalProperties: true
description: "Details about an attachment."
properties:
author:
allOf:
- $ref: "#/components/schemas/UserDetails"
description: "Details of the user who added the attachment."
readOnly: true
content:
description: "The content of the attachment."
readOnly: true
type: "string"
created:
description: "The datetime the attachment was created."
format: "date-time"
readOnly: true
type: "string"
filename:
description: "The file name of the attachment."
readOnly: true
type: "string"
id:
description: "The ID of the attachment."
readOnly: true
type: "string"
mimeType:
description: "The MIME type of the attachment."
readOnly: true
type: "string"
self:
description: "The URL of the attachment details response."
readOnly: true
type: "string"
size:
description: "The size of the attachment."
format: "int64"
readOnly: true
type: "integer"
thumbnail:
description: "The URL of a thumbnail representing the attachment."
readOnly: true
type: "string"
type: "object"
AttachmentArchive:
additionalProperties: false
properties:
entries:
items:
$ref: "#/components/schemas/AttachmentArchiveEntry"
type: "array"
moreAvailable:
type: "boolean"
totalEntryCount:
format: "int32"
type: "integer"
totalNumberOfEntriesAvailable:
format: "int32"
type: "integer"
type: "object"
AttachmentArchiveEntry:
additionalProperties: false
properties:
abbreviatedName:
type: "string"
entryIndex:
format: "int64"
type: "integer"
mediaType:
type: "string"
name:
type: "string"
size:
format: "int64"
type: "integer"
type: "object"
AttachmentArchiveImpl:
additionalProperties: false
properties:
entries:
description: "The list of the items included in the archive."
items:
$ref: "#/components/schemas/AttachmentArchiveEntry"
type: "array"
totalEntryCount:
description: "The number of items in the archive."
format: "int32"
type: "integer"
type: "object"
AttachmentArchiveItemReadable:
additionalProperties: false
description: "Metadata for an item in an attachment archive."
properties:
index:
description: "The position of the item within the archive."
format: "int64"
readOnly: true
type: "integer"
label:
description: "The label for the archive item."
readOnly: true
type: "string"
mediaType:
description: "The MIME type of the archive item."
readOnly: true
type: "string"
path:
description: "The path of the archive item."
readOnly: true
type: "string"
size:
description: "The size of the archive item."
readOnly: true
type: "string"
type: "object"
AttachmentArchiveMetadataReadable:
additionalProperties: false
description: "Metadata for an archive (for example a zip) and its contents."
properties:
entries:
description: "The list of the items included in the archive."
items:
$ref: "#/components/schemas/AttachmentArchiveItemReadable"
readOnly: true
type: "array"
id:
description: "The ID of the attachment."
format: "int64"
readOnly: true
type: "integer"
mediaType:
description: "The MIME type of the attachment."
readOnly: true
type: "string"
name:
description: "The name of the archive file."
readOnly: true
type: "string"
totalEntryCount:
description: "The number of items included in the archive."
format: "int64"
readOnly: true
type: "integer"
type: "object"
AttachmentMetadata:
additionalProperties: false
description: "Metadata for an issue attachment."
properties:
author:
allOf:
- $ref: "#/components/schemas/User"
description: "Details of the user who attached the file."
readOnly: true
content:
description: "The URL of the attachment."
readOnly: true
type: "string"
created:
description: "The datetime the attachment was created."
format: "date-time"
readOnly: true
type: "string"
filename:
description: "The name of the attachment file."
readOnly: true
type: "string"
id:
description: "The ID of the attachment."
format: "int64"
readOnly: true
type: "integer"
mimeType:
description: "The MIME type of the attachment."
readOnly: true
type: "string"
properties:
additionalProperties:
readOnly: true
description: "Additional properties of the attachment."
readOnly: true
type: "object"
self:
description: "The URL of the attachment metadata details."
format: "uri"
readOnly: true
type: "string"
size:
description: "The size of the attachment."
format: "int64"
readOnly: true
type: "integer"
thumbnail:
description: "The URL of a thumbnail representing the attachment."
readOnly: true
type: "string"
type: "object"
xml:
name: "attachment"
AttachmentSettings:
additionalProperties: false
description: "Details of the instance's attachment settings."
properties:
enabled:
description: "Whether the ability to add attachments is enabled."
readOnly: true
type: "boolean"
uploadLimit:
description: "The maximum size of attachments permitted, in bytes."
format: "int64"
readOnly: true
type: "integer"
type: "object"
AuditRecordBean:
additionalProperties: false
description: "An audit record."
properties:
associatedItems:
description: "The list of items associated with the changed record."
items:
$ref: "#/components/schemas/AssociatedItemBean"
readOnly: true
type: "array"
authorKey:
description: "Deprecated, use `authorAccountId` instead. The key of the\
\ user who created the audit record."
readOnly: true
type: "string"
category:
description: "The category of the audit record. For a list of these categories,\
\ see the help article [Auditing in Jira applications](https://confluence.atlassian.com/x/noXKM)."
readOnly: true
type: "string"
changedValues:
description: "The list of values changed in the record event."
items:
$ref: "#/components/schemas/ChangedValueBean"
readOnly: true
type: "array"
created:
description: "The date and time on which the audit record was created."
format: "date-time"
readOnly: true
type: "string"
description:
description: "The description of the audit record."
readOnly: true
type: "string"
eventSource:
description: "The event the audit record originated from."
readOnly: true
type: "string"
id:
description: "The ID of the audit record."
format: "int64"
readOnly: true
type: "integer"
objectItem:
$ref: "#/components/schemas/AssociatedItemBean"
remoteAddress:
description: "The URL of the computer where the creation of the audit record\
\ was initiated."
readOnly: true
type: "string"
summary:
description: "The summary of the audit record."
readOnly: true
type: "string"
type: "object"
AuditRecords:
additionalProperties: false
description: "Container for a list of audit records."
properties:
limit:
description: "The requested or default limit on the number of audit items\
\ to be returned."
format: "int32"
readOnly: true
type: "integer"
offset:
description: "The number of audit items skipped before the first item in\
\ this list."
format: "int32"
readOnly: true
type: "integer"
records:
description: "The list of audit items."
items:
$ref: "#/components/schemas/AuditRecordBean"
readOnly: true
type: "array"
total:
description: "The total number of audit items returned."
format: "int64"
readOnly: true
type: "integer"
type: "object"
AutoCompleteSuggestion:
additionalProperties: false
description: "A field auto-complete suggestion."
properties:
displayName:
description: "The display name of a suggested item. If `fieldValue` or `predicateValue`\
\ are provided, the matching text is highlighted with the HTML bold tag."
type: "string"
value:
description: "The value of a suggested item."
type: "string"
type: "object"
AutoCompleteSuggestions:
additionalProperties: false
description: "The results from a JQL query."
properties:
results:
description: "The list of suggested item."
items:
$ref: "#/components/schemas/AutoCompleteSuggestion"
type: "array"
type: "object"
AvailableDashboardGadget:
additionalProperties: false
description: "The details of the available dashboard gadget."
properties:
moduleKey:
description: "The module key of the gadget type."
readOnly: true
type: "string"
title:
description: "The title of the gadget."
readOnly: true
type: "string"
uri:
description: "The URI of the gadget type."
readOnly: true
type: "string"
required:
- "title"
type: "object"
AvailableDashboardGadgetsResponse:
additionalProperties: false
description: "The list of available gadgets."
properties:
gadgets:
description: "The list of available gadgets."
items:
$ref: "#/components/schemas/AvailableDashboardGadget"
readOnly: true
type: "array"
required:
- "gadgets"
type: "object"
AvailableWorkflowConnectRule:
additionalProperties: false
description: "The Connect provided ecosystem rules available."
properties:
addonKey:
description: "The add-on providing the rule."
type: "string"
createUrl:
description: "The URL creation path segment defined in the Connect module."
type: "string"
description:
description: "The rule description."
type: "string"
editUrl:
description: "The URL edit path segment defined in the Connect module."
type: "string"
moduleKey:
description: "The module providing the rule."
type: "string"
name:
description: "The rule name."
type: "string"
ruleKey:
description: "The rule key."
type: "string"
ruleType:
description: "The rule type."
enum:
- "Condition"
- "Validator"
- "Function"
- "Screen"
type: "string"
viewUrl:
description: "The URL view path segment defined in the Connect module."
type: "string"
type: "object"
AvailableWorkflowForgeRule:
additionalProperties: false
description: "The Forge provided ecosystem rules available."
properties:
description:
description: "The rule description."
type: "string"
id:
description: "The unique ARI of the forge rule type."
type: "string"
name:
description: "The rule name."
type: "string"
ruleKey:
description: "The rule key."
type: "string"
ruleType:
description: "The rule type."
enum:
- "Condition"
- "Validator"
- "Function"
- "Screen"
type: "string"
type: "object"
AvailableWorkflowSystemRule:
additionalProperties: false
description: "The Atlassian provided system rules available."
properties:
description:
description: "The rule description."
type: "string"
incompatibleRuleKeys:
description: "List of rules that conflict with this one."
items:
description: "List of rules that conflict with this one."
type: "string"
type: "array"
isAvailableForInitialTransition:
description: "Whether the rule can be added added to an initial transition."
type: "boolean"
isVisible:
description: "Whether the rule is visible."
type: "boolean"
name:
description: "The rule name."
type: "string"
ruleKey:
description: "The rule key."
type: "string"
ruleType:
description: "The rule type."
enum:
- "Condition"
- "Validator"
- "Function"
- "Screen"
type: "string"
required:
- "description"
- "incompatibleRuleKeys"
- "isAvailableForInitialTransition"
- "isVisible"
- "name"
- "ruleKey"
- "ruleType"
type: "object"
AvailableWorkflowTriggerTypes:
additionalProperties: false
description: "The list of available trigger types."
properties:
description:
description: "The description of the trigger rule."
type: "string"
name:
description: "The name of the trigger rule."
type: "string"
type:
description: "The type identifier of trigger rule."
type: "string"
type: "object"
AvailableWorkflowTriggers:
additionalProperties: false
description: "The trigger rules available."
properties:
availableTypes:
description: "The list of available trigger types."
items:
$ref: "#/components/schemas/AvailableWorkflowTriggerTypes"
type: "array"
ruleKey:
description: "The rule key of the rule."
type: "string"
required:
- "availableTypes"
- "ruleKey"
type: "object"
Avatar:
additionalProperties: true
description: "Details of an avatar."
properties:
fileName:
description: "The file name of the avatar icon. Returned for system avatars."
readOnly: true
type: "string"
id:
description: "The ID of the avatar."
type: "string"
isDeletable:
description: "Whether the avatar can be deleted."
readOnly: true
type: "boolean"
isSelected:
description: "Whether the avatar is used in Jira. For example, shown as\
\ a project's avatar."
readOnly: true
type: "boolean"
isSystemAvatar:
description: "Whether the avatar is a system avatar."
readOnly: true
type: "boolean"
owner:
description: "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."
readOnly: true
type: "string"
urls:
additionalProperties:
format: "uri"
readOnly: true
type: "string"
description: "The list of avatar icon URLs."
readOnly: true
type: "object"
required:
- "id"
type: "object"
AvatarUrlsBean:
additionalProperties: false
properties:
"16x16":
description: "The URL of the item's 16x16 pixel avatar."
format: "uri"
type: "string"
"24x24":
description: "The URL of the item's 24x24 pixel avatar."
format: "uri"
type: "string"
"32x32":
description: "The URL of the item's 32x32 pixel avatar."
format: "uri"
type: "string"
"48x48":
description: "The URL of the item's 48x48 pixel avatar."
format: "uri"
type: "string"
type: "object"
Avatars:
additionalProperties: false
description: "Details about system and custom avatars."
properties:
custom:
description: "Custom avatars list."
items:
$ref: "#/components/schemas/Avatar"
readOnly: true
type: "array"
system:
description: "System avatars list."
items:
$ref: "#/components/schemas/Avatar"
readOnly: true
type: "array"
type: "object"
BulkChangeOwnerDetails:
additionalProperties: false
description: "Details for changing owners of shareable entities"
properties:
autofixName:
description: "Whether the name is fixed automatically if it's duplicated\
\ after changing owner."
type: "boolean"
newOwner:
description: "The account id of the new owner."
type: "string"
required:
- "autofixName"
- "newOwner"
type: "object"
BulkCustomFieldOptionCreateRequest:
additionalProperties: false
description: "Details of the options to create for a custom field."
properties:
options:
description: "Details of options to create."
items:
$ref: "#/components/schemas/CustomFieldOptionCreate"
type: "array"
type: "object"
writeOnly: true
BulkCustomFieldOptionUpdateRequest:
additionalProperties: false
description: "Details of the options to update for a custom field."
properties:
options:
description: "Details of the options to update."
items:
$ref: "#/components/schemas/CustomFieldOptionUpdate"
type: "array"
type: "object"
writeOnly: true
BulkEditActionError:
additionalProperties: false
description: "Errors of bulk edit action."
properties:
errorMessages:
description: "The error messages."
items:
type: "string"
type: "array"
errors:
additionalProperties:
type: "string"
description: "The errors."
type: "object"
required:
- "errorMessages"
- "errors"
type: "object"
BulkEditShareableEntityRequest:
additionalProperties: false
description: "Details of a request to bulk edit shareable entity."
properties:
action:
description: "Allowed action for bulk edit shareable entity"
enum:
- "changeOwner"
- "changePermission"
- "addPermission"
- "removePermission"
type: "string"
changeOwnerDetails:
allOf:
- $ref: "#/components/schemas/BulkChangeOwnerDetails"
description: "The details of change owner action."
entityIds:
description: "The id list of shareable entities to be changed."
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
extendAdminPermissions:
description: "Whether the actions are executed by users with Administer\
\ Jira global permission."
type: "boolean"
permissionDetails:
allOf:
- $ref: "#/components/schemas/PermissionDetails"
description: "The permission details to be changed."
required:
- "action"
- "entityIds"
type: "object"
BulkEditShareableEntityResponse:
additionalProperties: false
description: "Details of a request to bulk edit shareable entity."
properties:
action:
description: "Allowed action for bulk edit shareable entity"
enum:
- "changeOwner"
- "changePermission"
- "addPermission"
- "removePermission"
type: "string"
entityErrors:
additionalProperties:
$ref: "#/components/schemas/BulkEditActionError"
description: "The mapping dashboard id to errors if any."
type: "object"
required:
- "action"
type: "object"
BulkIssueIsWatching:
additionalProperties: false
description: "A container for the watch status of a list of issues."
properties:
issuesIsWatching:
additionalProperties:
readOnly: true
type: "boolean"
description: "The map of issue ID to boolean watch status."
readOnly: true
type: "object"
type: "object"
BulkIssuePropertyUpdateRequest:
additionalProperties: false
description: "Bulk issue property update request details."
properties:
expression:
description: "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."
type: "string"
filter:
allOf:
- $ref: "#/components/schemas/IssueFilterForBulkPropertySet"
description: "The bulk operation filter."
value:
description: "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."
type: "object"
BulkOperationErrorResult:
additionalProperties: false
properties:
elementErrors:
$ref: "#/components/schemas/ErrorCollection"
failedElementNumber:
format: "int32"
type: "integer"
status:
format: "int32"
type: "integer"
type: "object"
BulkPermissionGrants:
additionalProperties: false
description: "Details of global and project permissions granted to the user."
properties:
globalPermissions:
description: "List of permissions granted to the user."
items:
type: "string"
type: "array"
uniqueItems: true
projectPermissions:
description: "List of project permissions and the projects and issues those\
\ permissions provide access to."
items:
$ref: "#/components/schemas/BulkProjectPermissionGrants"
type: "array"
uniqueItems: true
required:
- "globalPermissions"
- "projectPermissions"
type: "object"
BulkPermissionsRequestBean:
additionalProperties: false
description: "Details of global permissions to look up and project permissions\
\ with associated projects and issues to look up."
properties:
accountId:
description: "The account ID of a user."
type: "string"
globalPermissions:
description: "Global permissions to look up."
items:
type: "string"
type: "array"
uniqueItems: true
projectPermissions:
description: "Project permissions with associated projects and issues to\
\ look up."
items:
$ref: "#/components/schemas/BulkProjectPermissions"
type: "array"
uniqueItems: true
type: "object"
BulkProjectPermissionGrants:
additionalProperties: false
description: "List of project permissions and the projects and issues those\
\ permissions grant access to."
properties:
issues:
description: "IDs of the issues the user has the permission for."
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
permission:
description: "A project permission,"
type: "string"
projects:
description: "IDs of the projects the user has the permission for."
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
required:
- "issues"
- "permission"
- "projects"
type: "object"
BulkProjectPermissions:
additionalProperties: false
description: "Details of project permissions and associated issues and projects\
\ to look up."
properties:
issues:
description: "List of issue IDs."
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
permissions:
description: "List of project permissions."
items:
type: "string"
type: "array"
uniqueItems: true
projects:
description: "List of project IDs."
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
required:
- "permissions"
type: "object"
ChangeDetails:
additionalProperties: false
description: "A change item."
properties:
field:
description: "The name of the field changed."
readOnly: true
type: "string"
fieldId:
description: "The ID of the field changed."
readOnly: true
type: "string"
fieldtype:
description: "The type of the field changed."
readOnly: true
type: "string"
from:
description: "The details of the original value."
readOnly: true
type: "string"
fromString:
description: "The details of the original value as a string."
readOnly: true
type: "string"
to:
description: "The details of the new value."
readOnly: true
type: "string"
toString:
description: "The details of the new value as a string."
readOnly: true
type: "string"
type: "object"
ChangeFilterOwner:
additionalProperties: false
description: "The account ID of the new owner."
properties:
accountId:
description: "The account ID of the new owner."
type: "string"
required:
- "accountId"
type: "object"
writeOnly: true
ChangedValueBean:
additionalProperties: false
description: "Details of names changed in the record event."
properties:
changedFrom:
description: "The value of the field before the change."
readOnly: true
type: "string"
changedTo:
description: "The value of the field after the change."
readOnly: true
type: "string"
fieldName:
description: "The name of the field changed."
readOnly: true
type: "string"
type: "object"
ChangedWorklog:
additionalProperties: false
description: "Details of a changed worklog."
properties:
properties:
description: "Details of properties associated with the change."
items:
$ref: "#/components/schemas/EntityProperty"
readOnly: true
type: "array"
updatedTime:
description: "The datetime of the change."
format: "int64"
readOnly: true
type: "integer"
worklogId:
description: "The ID of the worklog."
format: "int64"
readOnly: true
type: "integer"
type: "object"
ChangedWorklogs:
additionalProperties: false
description: "List of changed worklogs."
properties:
lastPage:
type: "boolean"
nextPage:
description: "The URL of the next list of changed worklogs."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of this changed worklogs list."
format: "uri"
readOnly: true
type: "string"
since:
description: "The datetime of the first worklog item in the list."
format: "int64"
readOnly: true
type: "integer"
until:
description: "The datetime of the last worklog item in the list."
format: "int64"
readOnly: true
type: "integer"
values:
description: "Changed worklog list."
items:
$ref: "#/components/schemas/ChangedWorklog"
readOnly: true
type: "array"
type: "object"
Changelog:
additionalProperties: false
description: "A log of changes made to issue fields. Changelogs related to workflow\
\ associations are currently being deprecated."
properties:
author:
allOf:
- $ref: "#/components/schemas/UserDetails"
description: "The user who made the change."
readOnly: true
created:
description: "The date on which the change took place."
format: "date-time"
readOnly: true
type: "string"
historyMetadata:
allOf:
- $ref: "#/components/schemas/HistoryMetadata"
description: "The history metadata associated with the changed."
readOnly: true
id:
description: "The ID of the changelog."
readOnly: true
type: "string"
items:
description: "The list of items changed."
items:
$ref: "#/components/schemas/ChangeDetails"
readOnly: true
type: "array"
type: "object"
ColumnItem:
additionalProperties: false
description: "Details of an issue navigator column item."
properties:
label:
description: "The issue navigator column label."
type: "string"
value:
description: "The issue navigator column value."
type: "string"
type: "object"
ColumnRequestBody:
additionalProperties: false
properties:
columns:
items:
type: "string"
type: "array"
type: "object"
Comment:
additionalProperties: true
description: "A comment."
properties:
author:
allOf:
- $ref: "#/components/schemas/UserDetails"
description: "The ID of the user who created the comment."
readOnly: true
body:
description: "The comment text."
type: "string"
created:
description: "The date and time at which the comment was created."
format: "date-time"
readOnly: true
type: "string"
id:
description: "The ID of the comment."
readOnly: true
type: "string"
jsdAuthorCanSeeRequest:
description: "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."
readOnly: true
type: "boolean"
jsdPublic:
description: "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."
readOnly: true
type: "boolean"
properties:
description: "A list of comment properties. Optional on create and update."
items:
$ref: "#/components/schemas/EntityProperty"
type: "array"
renderedBody:
description: "The rendered version of the comment."
readOnly: true
type: "string"
self:
description: "The URL of the comment."
readOnly: true
type: "string"
updateAuthor:
allOf:
- $ref: "#/components/schemas/UserDetails"
description: "The ID of the user who updated the comment last."
readOnly: true
updated:
description: "The date and time at which the comment was updated last."
format: "date-time"
readOnly: true
type: "string"
visibility:
allOf:
- $ref: "#/components/schemas/Visibility"
description: "The group or role to which this comment is visible. Optional\
\ on create and update."
type: "object"
ComponentIssuesCount:
additionalProperties: false
description: "Count of issues assigned to a component."
properties:
issueCount:
description: "The count of issues assigned to a component."
format: "int64"
readOnly: true
type: "integer"
self:
description: "The URL for this count of issues for a component."
format: "uri"
readOnly: true
type: "string"
type: "object"
xml:
name: "component"
ComponentJsonBean:
additionalProperties: true
properties:
ari:
type: "string"
description:
type: "string"
id:
type: "string"
metadata:
additionalProperties:
type: "string"
type: "object"
name:
type: "string"
self:
type: "string"
type: "object"
ComponentWithIssueCount:
additionalProperties: false
description: "Details about a component with a count of the issues it contains."
properties:
assignee:
allOf:
- $ref: "#/components/schemas/User"
description: "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:
description: "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.\
\ Takes the following values:\n\n * `PROJECT_LEAD` the assignee to any\
\ issues created with this component is nominally the lead for the project\
\ the component is in.\n * `COMPONENT_LEAD` the assignee to any issues\
\ created with this component is nominally the lead for the component.\n\
\ * `UNASSIGNED` an assignee is not set for issues created with this\
\ component.\n * `PROJECT_DEFAULT` the assignee to any issues created\
\ with this component is nominally the default assignee for the project\
\ that the component is in."
enum:
- "PROJECT_DEFAULT"
- "COMPONENT_LEAD"
- "PROJECT_LEAD"
- "UNASSIGNED"
readOnly: true
type: "string"
description:
description: "The description for the component."
readOnly: true
type: "string"
id:
description: "The unique identifier for the component."
readOnly: true
type: "string"
isAssigneeTypeValid:
description: "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."
readOnly: true
type: "boolean"
issueCount:
description: "Count of issues for the component."
format: "int64"
readOnly: true
type: "integer"
lead:
allOf:
- $ref: "#/components/schemas/User"
description: "The user details for the component's lead user."
name:
description: "The name for the component."
readOnly: true
type: "string"
project:
description: "The key of the project to which the component is assigned."
readOnly: true
type: "string"
projectId:
description: "Not used."
format: "int64"
readOnly: true
type: "integer"
realAssignee:
allOf:
- $ref: "#/components/schemas/User"
description: "The user assigned to issues created with this component, when\
\ `assigneeType` does not identify a valid assignee."
realAssigneeType:
description: "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:\n\n\
\ * `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.\n * `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.\n * `UNASSIGNED` when `assigneeType` is `UNASSIGNED`\
\ and Jira is configured to allow unassigned issues.\n * `PROJECT_DEFAULT`\
\ when none of the preceding cases are true."
enum:
- "PROJECT_DEFAULT"
- "COMPONENT_LEAD"
- "PROJECT_LEAD"
- "UNASSIGNED"
readOnly: true
type: "string"
self:
description: "The URL for this count of the issues contained in the component."
format: "uri"
readOnly: true
type: "string"
type: "object"
CompoundClause:
description: "A JQL query clause that consists of nested clauses. For example,\
\ `(labels in (urgent, blocker) OR lastCommentedBy = currentUser()). Note\
\ that, where nesting is not defined, the parser nests JQL clauses based on\
\ the operator precedence. For example, \"A OR B AND C\" is parsed as \"(A\
\ OR B) AND C\". See Setting the precedence of operators for more information\
\ about precedence in JQL queries.`"
properties:
clauses:
description: "The list of nested clauses."
items:
$ref: "#/components/schemas/JqlQueryClause"
type: "array"
operator:
description: "The operator between the clauses."
enum:
- "and"
- "or"
- "not"
type: "string"
required:
- "clauses"
- "operator"
type: "object"
ConditionGroupConfiguration:
additionalProperties: false
description: "The conditions group associated with the transition."
nullable: true
properties:
conditionGroups:
description: "The nested conditions of the condition group."
items:
$ref: "#/components/schemas/ConditionGroupConfiguration"
type: "array"
conditions:
description: "The rules for this condition."
items:
$ref: "#/components/schemas/WorkflowRuleConfiguration"
type: "array"
operation:
description: "Determines how the conditions in the group are evaluated.\
\ Accepts either `ANY` or `ALL`. If `ANY` is used, at least one condition\
\ in the group must be true for the group to evaluate to true. If `ALL`\
\ is used, all conditions in the group must be true for the group to evaluate\
\ to true."
enum:
- "ANY"
- "ALL"
type: "string"
type: "object"
ConditionGroupUpdate:
additionalProperties: false
description: "The conditions group associated with the transition."
nullable: true
properties:
conditionGroups:
description: "The nested conditions of the condition group."
items:
$ref: "#/components/schemas/ConditionGroupUpdate"
type: "array"
conditions:
description: "The rules for this condition."
items:
$ref: "#/components/schemas/WorkflowRuleConfiguration"
type: "array"
operation:
description: "Determines how the conditions in the group are evaluated.\
\ Accepts either `ANY` or `ALL`. If `ANY` is used, at least one condition\
\ in the group must be true for the group to evaluate to true. If `ALL`\
\ is used, all conditions in the group must be true for the group to evaluate\
\ to true."
enum:
- "ANY"
- "ALL"
type: "string"
required:
- "operation"
type: "object"
Configuration:
additionalProperties: false
description: "Details about the configuration of Jira."
properties:
attachmentsEnabled:
description: "Whether the ability to add attachments to issues is enabled."
readOnly: true
type: "boolean"
issueLinkingEnabled:
description: "Whether the ability to link issues is enabled."
readOnly: true
type: "boolean"
subTasksEnabled:
description: "Whether the ability to create subtasks for issues is enabled."
readOnly: true
type: "boolean"
timeTrackingConfiguration:
allOf:
- $ref: "#/components/schemas/TimeTrackingConfiguration"
description: "The configuration of time tracking."
readOnly: true
timeTrackingEnabled:
description: "Whether the ability to track time is enabled. This property\
\ is deprecated."
readOnly: true
type: "boolean"
unassignedIssuesAllowed:
description: "Whether the ability to create unassigned issues is enabled.\
\ See [Configuring Jira application options](https://confluence.atlassian.com/x/uYXKM)\
\ for details."
readOnly: true
type: "boolean"
votingEnabled:
description: "Whether the ability for users to vote on issues is enabled.\
\ See [Configuring Jira application options](https://confluence.atlassian.com/x/uYXKM)\
\ for details."
readOnly: true
type: "boolean"
watchingEnabled:
description: "Whether the ability for users to watch issues is enabled.\
\ See [Configuring Jira application options](https://confluence.atlassian.com/x/uYXKM)\
\ for details."
readOnly: true
type: "boolean"
type: "object"
ConnectCustomFieldValue:
description: "A list of custom field details."
properties:
_type:
description: "The type of custom field."
enum:
- "StringIssueField"
- "NumberIssueField"
- "RichTextIssueField"
- "SingleSelectIssueField"
- "MultiSelectIssueField"
- "TextIssueField"
type: "string"
writeOnly: true
fieldID:
description: "The custom field ID."
type: "integer"
writeOnly: true
issueID:
description: "The issue ID."
type: "integer"
writeOnly: true
number:
description: "The value of number type custom field when `_type` is `NumberIssueField`."
type: "number"
optionID:
description: "The value of single select and multiselect custom field type\
\ when `_type` is `SingleSelectIssueField` or `MultiSelectIssueField`."
type: "string"
richText:
description: "The value of richText type custom field when `_type` is `RichTextIssueField`."
type: "string"
string:
description: "The value of string type custom field when `_type` is `StringIssueField`."
type: "string"
text:
description: "The value of of text custom field type when `_type` is `TextIssueField`."
type: "string"
required:
- "_type"
- "fieldID"
- "issueID"
type: "object"
writeOnly: true
ConnectCustomFieldValues:
additionalProperties: false
description: "Details of updates for a custom field."
properties:
updateValueList:
description: "The list of custom field update details."
items:
$ref: "#/components/schemas/ConnectCustomFieldValue"
type: "array"
type: "object"
writeOnly: true
ConnectModule:
description: "A [Connect module](https://developer.atlassian.com/cloud/jira/platform/about-jira-modules/)\
\ in the same format as in the\n[app descriptor](https://developer.atlassian.com/cloud/jira/platform/app-descriptor/)."
example:
description:
value: "field with team"
type: "single_select"
extractions:
- path: "category"
type: "text"
name: "categoryName"
name:
value: "Team"
key: "team-field"
type: "object"
ConnectModules:
example:
jiraEntityProperties:
- keyConfigurations:
- extractions:
- objectName: "extension"
type: "text"
alias: "attachmentExtension"
propertyKey: "attachment"
entityType: "issue"
name:
value: "Attachment Index Document"
key: "dynamic-attachment-entity-property"
jiraIssueFields:
- description:
value: "A dynamically added single-select field"
type: "single_select"
extractions:
- path: "category"
type: "text"
name: "categoryName"
name:
value: "Dynamic single select"
key: "dynamic-select-field"
properties:
modules:
description: "A list of app modules in the same format as the `modules`\
\ property in the\n[app descriptor](https://developer.atlassian.com/cloud/jira/platform/app-descriptor/)."
items:
$ref: "#/components/schemas/ConnectModule"
type: "array"
required:
- "modules"
type: "object"
ConnectWorkflowTransitionRule:
description: "A workflow transition rule."
properties:
configuration:
$ref: "#/components/schemas/RuleConfiguration"
id:
description: "The ID of the transition rule."
example: "123"
type: "string"
key:
description: "The key of the rule, as defined in the Connect app descriptor."
example: "WorkflowKey"
type: "string"
transition:
$ref: "#/components/schemas/WorkflowTransition"
required:
- "configuration"
- "id"
- "key"
type: "object"
ContainerForProjectFeatures:
additionalProperties: false
description: "The list of features on a project."
properties:
features:
description: "The project features."
items:
$ref: "#/components/schemas/ProjectFeature"
type: "array"
type: "object"
ContainerForRegisteredWebhooks:
additionalProperties: false
description: "Container for a list of registered webhooks. Webhook details are\
\ returned in the same order as the request."
properties:
webhookRegistrationResult:
description: "A list of registered webhooks."
items:
$ref: "#/components/schemas/RegisteredWebhook"
type: "array"
type: "object"
ContainerForWebhookIDs:
additionalProperties: false
description: "Container for a list of webhook IDs."
properties:
webhookIds:
description: "A list of webhook IDs."
items:
description: "A list of webhook IDs."
format: "int64"
type: "integer"
type: "array"
required:
- "webhookIds"
type: "object"
ContainerOfWorkflowSchemeAssociations:
additionalProperties: false
description: "A container for a list of workflow schemes together with the projects\
\ they are associated with."
properties:
values:
description: "A list of workflow schemes together with projects they are\
\ associated with."
items:
$ref: "#/components/schemas/WorkflowSchemeAssociations"
type: "array"
required:
- "values"
type: "object"
Context:
additionalProperties: false
description: "A context."
properties:
id:
description: "The ID of the context."
format: "int64"
readOnly: true
type: "integer"
name:
description: "The name of the context."
readOnly: true
type: "string"
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "The scope of the context."
type: "object"
ContextForProjectAndIssueType:
additionalProperties: false
description: "The project and issue type mapping with a matching custom field\
\ context."
properties:
contextId:
description: "The ID of the custom field context."
type: "string"
issueTypeId:
description: "The ID of the issue type."
type: "string"
projectId:
description: "The ID of the project."
type: "string"
required:
- "contextId"
- "issueTypeId"
- "projectId"
type: "object"
ContextualConfiguration:
additionalProperties: false
description: "Details of the contextual configuration for a custom field."
properties:
configuration:
description: "The field configuration."
fieldContextId:
description: "The ID of the field context the configuration is associated\
\ with."
readOnly: true
type: "string"
id:
description: "The ID of the configuration."
type: "string"
schema:
description: "The field value schema."
required:
- "fieldContextId"
- "id"
type: "object"
ConvertedJQLQueries:
additionalProperties: false
description: "The converted JQL queries."
properties:
queriesWithUnknownUsers:
description: "List of queries containing user information that could not\
\ be mapped to an existing user"
items:
$ref: "#/components/schemas/JQLQueryWithUnknownUsers"
type: "array"
queryStrings:
description: "The list of converted query strings with account IDs in place\
\ of user identifiers."
items:
type: "string"
type: "array"
type: "object"
CreateCustomFieldContext:
additionalProperties: false
description: "The details of a created custom field context."
properties:
description:
description: "The description of the context."
type: "string"
id:
description: "The ID of the context."
readOnly: true
type: "string"
issueTypeIds:
description: "The list of issue types IDs for the context. If the list is\
\ empty, the context refers to all issue types."
items:
type: "string"
type: "array"
name:
description: "The name of the context."
type: "string"
projectIds:
description: "The list of project IDs associated with the context. If the\
\ list is empty, the context is global."
items:
type: "string"
type: "array"
required:
- "name"
type: "object"
CreateIssueSecuritySchemeDetails:
additionalProperties: true
description: "Issue security scheme and it's details"
properties:
description:
description: "The description of the issue security scheme."
maxLength: 255
type: "string"
writeOnly: true
levels:
description: "The list of scheme levels which should be added to the security\
\ scheme."
items:
$ref: "#/components/schemas/SecuritySchemeLevelBean"
type: "array"
writeOnly: true
name:
description: "The name of the issue security scheme. Must be unique (case-insensitive)."
maxLength: 60
type: "string"
writeOnly: true
required:
- "name"
type: "object"
CreateNotificationSchemeDetails:
additionalProperties: true
description: "Details of an notification scheme."
properties:
description:
description: "The description of the notification scheme."
maxLength: 4000
type: "string"
writeOnly: true
name:
description: "The name of the notification scheme. Must be unique (case-insensitive)."
maxLength: 255
type: "string"
writeOnly: true
notificationSchemeEvents:
description: "The list of notifications which should be added to the notification\
\ scheme."
items:
$ref: "#/components/schemas/NotificationSchemeEventDetails"
type: "array"
writeOnly: true
required:
- "name"
type: "object"
CreatePriorityDetails:
additionalProperties: true
description: "Details of an issue priority."
properties:
description:
description: "The description of the priority."
maxLength: 255
type: "string"
writeOnly: true
iconUrl:
description: "The URL of an icon for the priority. Accepted protocols are\
\ HTTP and HTTPS. Built in icons can also be used."
enum:
- "/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"
maxLength: 255
type: "string"
writeOnly: true
name:
description: "The name of the priority. Must be unique."
maxLength: 60
type: "string"
writeOnly: true
statusColor:
description: "The status color of the priority in 3-digit or 6-digit hexadecimal\
\ format."
type: "string"
writeOnly: true
required:
- "name"
- "statusColor"
type: "object"
CreateProjectDetails:
additionalProperties: false
description: "Details about the project."
properties:
assigneeType:
description: "The default assignee when creating issues for this project."
enum:
- "PROJECT_LEAD"
- "UNASSIGNED"
type: "string"
avatarId:
description: "An integer value for the project's avatar."
format: "int64"
type: "integer"
categoryId:
description: "The ID of the project's category. A complete list of category\
\ IDs is found using the [Get all project categories](#api-rest-api-2-projectCategory-get)\
\ operation."
format: "int64"
type: "integer"
description:
description: "A brief description of the project."
type: "string"
fieldConfigurationScheme:
description: "The ID of the field configuration scheme for the project.\
\ Use the [Get all field configuration schemes](#api-rest-api-2-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."
format: "int64"
type: "integer"
issueSecurityScheme:
description: "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-2-issuesecurityschemes-get) resource\
\ to get all issue security scheme IDs."
format: "int64"
type: "integer"
issueTypeScheme:
description: "The ID of the issue type scheme for the project. Use the [Get\
\ all issue type schemes](#api-rest-api-2-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."
format: "int64"
type: "integer"
issueTypeScreenScheme:
description: "The ID of the issue type screen scheme for the project. Use\
\ the [Get all issue type screen schemes](#api-rest-api-2-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."
format: "int64"
type: "integer"
key:
description: "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."
type: "string"
lead:
description: "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`."
type: "string"
leadAccountId:
description: "The account ID of the project lead. Either `lead` or `leadAccountId`\
\ must be set when creating a project. Cannot be provided with `lead`."
maxLength: 128
type: "string"
name:
description: "The name of the project."
type: "string"
notificationScheme:
description: "The ID of the notification scheme for the project. Use the\
\ [Get notification schemes](#api-rest-api-2-notificationscheme-get) resource\
\ to get a list of notification scheme IDs."
format: "int64"
type: "integer"
permissionScheme:
description: "The ID of the permission scheme for the project. Use the [Get\
\ all permission schemes](#api-rest-api-2-permissionscheme-get) resource\
\ to see a list of all permission scheme IDs."
format: "int64"
type: "integer"
projectTemplateKey:
description: "A predefined configuration for a project. The type of the\
\ `projectTemplateKey` must match with the type of the `projectTypeKey`."
enum:
- "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-general-service-desk"
- "com.atlassian.servicedesk:simplified-general-service-desk-it"
- "com.atlassian.servicedesk:simplified-general-service-desk-business"
- "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:simplified-blank-project-it"
- "com.atlassian.servicedesk:simplified-blank-project-business"
- "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-general-it-service-desk"
- "com.atlassian.servicedesk:next-gen-general-business-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-"
type: "string"
projectTypeKey:
description: "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."
enum:
- "software"
- "service_desk"
- "business"
type: "string"
url:
description: "A link to information about this project, such as project\
\ documentation"
type: "string"
workflowScheme:
description: "The ID of the workflow scheme for the project. Use the [Get\
\ all workflow schemes](#api-rest-api-2-workflowscheme-get) operation\
\ to get a list of workflow scheme IDs. If you specify the workflow scheme\
\ you cannot specify the project template key."
format: "int64"
type: "integer"
required:
- "key"
- "name"
type: "object"
CreateResolutionDetails:
additionalProperties: true
description: "Details of an issue resolution."
properties:
description:
description: "The description of the resolution."
maxLength: 255
type: "string"
writeOnly: true
name:
description: "The name of the resolution. Must be unique (case-insensitive)."
maxLength: 60
type: "string"
writeOnly: true
required:
- "name"
type: "object"
CreateUiModificationDetails:
additionalProperties: false
description: "The details of a UI modification."
properties:
contexts:
description: "List of contexts of the UI modification. The maximum number\
\ of contexts is 1000."
items:
$ref: "#/components/schemas/UiModificationContextDetails"
type: "array"
writeOnly: true
data:
description: "The data of the UI modification. The maximum size of the data\
\ is 50000 characters."
type: "string"
writeOnly: true
description:
description: "The description of the UI modification. The maximum length\
\ is 255 characters."
type: "string"
writeOnly: true
name:
description: "The name of the UI modification. The maximum length is 255\
\ characters."
type: "string"
writeOnly: true
required:
- "name"
type: "object"
CreateUpdateRoleRequestBean:
additionalProperties: false
properties:
description:
description: "A description of the project role. Required when fully updating\
\ a project role. Optional when creating or partially updating a project\
\ role."
type: "string"
name:
description: "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."
type: "string"
type: "object"
CreateWorkflowCondition:
additionalProperties: false
description: "A workflow transition condition."
properties:
conditions:
description: "The list of workflow conditions."
items:
$ref: "#/components/schemas/CreateWorkflowCondition"
type: "array"
configuration:
additionalProperties:
description: "EXPERIMENTAL. The configuration of the transition rule."
description: "EXPERIMENTAL. The configuration of the transition rule."
type: "object"
operator:
description: "The compound condition operator."
enum:
- "AND"
- "OR"
type: "string"
type:
description: "The type of the transition rule."
type: "string"
type: "object"
CreateWorkflowDetails:
additionalProperties: false
description: "The details of a workflow."
properties:
description:
description: "The description of the workflow. The maximum length is 1000\
\ characters."
type: "string"
name:
description: "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."
type: "string"
statuses:
description: "The statuses of the workflow. Any status that does not include\
\ a transition is added to the workflow without a transition."
items:
$ref: "#/components/schemas/CreateWorkflowStatusDetails"
type: "array"
uniqueItems: true
transitions:
description: "The transitions of the workflow. For the request to be valid,\
\ these transitions must:\n\n * include one *initial* transition.\n *\
\ not use the same name for a *global* and *directed* transition.\n *\
\ have a unique name for each *global* transition.\n * have a unique\
\ 'to' status for each *global* transition.\n * have unique names for\
\ each transition from a status.\n * not have a 'from' status on *initial*\
\ and *global* transitions.\n * have a 'from' status on *directed* transitions.\n\
\nAll the transition statuses must be included in `statuses`."
items:
$ref: "#/components/schemas/CreateWorkflowTransitionDetails"
type: "array"
required:
- "name"
- "statuses"
- "transitions"
type: "object"
writeOnly: true
CreateWorkflowStatusDetails:
additionalProperties: false
description: "The details of a transition status."
properties:
id:
description: "The ID of the status."
type: "string"
properties:
additionalProperties:
type: "string"
description: "The properties of the status."
type: "object"
required:
- "id"
type: "object"
writeOnly: true
CreateWorkflowTransitionDetails:
additionalProperties: false
description: "The details of a workflow transition."
properties:
description:
description: "The description of the transition. The maximum length is 1000\
\ characters."
type: "string"
from:
description: "The statuses the transition can start from."
items:
type: "string"
type: "array"
name:
description: "The name of the transition. The maximum length is 60 characters."
type: "string"
properties:
additionalProperties:
type: "string"
description: "The properties of the transition."
type: "object"
rules:
allOf:
- $ref: "#/components/schemas/CreateWorkflowTransitionRulesDetails"
description: "The rules of the transition."
screen:
allOf:
- $ref: "#/components/schemas/CreateWorkflowTransitionScreenDetails"
description: "The screen of the transition."
to:
description: "The status the transition goes to."
type: "string"
type:
description: "The type of the transition."
enum:
- "global"
- "initial"
- "directed"
type: "string"
required:
- "name"
- "to"
- "type"
type: "object"
writeOnly: true
CreateWorkflowTransitionRule:
additionalProperties: false
description: "A workflow transition rule."
properties:
configuration:
additionalProperties:
description: "EXPERIMENTAL. The configuration of the transition rule."
description: "EXPERIMENTAL. The configuration of the transition rule."
type: "object"
type:
description: "The type of the transition rule."
type: "string"
required:
- "type"
type: "object"
CreateWorkflowTransitionRulesDetails:
additionalProperties: false
description: "The details of a workflow transition rules."
properties:
conditions:
allOf:
- $ref: "#/components/schemas/CreateWorkflowCondition"
description: "The workflow conditions."
postFunctions:
description: "The workflow post functions.\n\n**Note:** The default post\
\ functions are always added to the *initial* transition, as in:\n\n \
\ \"postFunctions\": [\n {\n \"type\": \"IssueCreateFunction\"\
\n },\n {\n \"type\": \"IssueReindexFunction\"\
\n },\n {\n \"type\": \"FireIssueEventFunction\"\
,\n \"configuration\": {\n \"event\": {\n \
\ \"id\": \"1\",\n \"name\": \"issue_created\"\
\n }\n }\n }\n ]\n\n**Note:** The\
\ default post functions are always added to the *global* and *directed*\
\ transitions, as in:\n\n \"postFunctions\": [\n {\n \
\ \"type\": \"UpdateIssueStatusFunction\"\n },\n {\n\
\ \"type\": \"CreateCommentFunction\"\n },\n \
\ {\n \"type\": \"GenerateChangeHistoryFunction\"\n \
\ },\n {\n \"type\": \"IssueReindexFunction\"\n \
\ },\n {\n \"type\": \"FireIssueEventFunction\",\n\
\ \"configuration\": {\n \"event\": {\n \
\ \"id\": \"13\",\n \"name\": \"issue_generic\"\
\n }\n }\n }\n ]"
items:
$ref: "#/components/schemas/CreateWorkflowTransitionRule"
type: "array"
validators:
description: "The workflow validators.\n\n**Note:** The default permission\
\ validator is always added to the *initial* transition, as in:\n\n \
\ \"validators\": [\n {\n \"type\": \"PermissionValidator\"\
,\n \"configuration\": {\n \"permissionKey\"\
: \"CREATE_ISSUES\"\n }\n }\n ]"
items:
$ref: "#/components/schemas/CreateWorkflowTransitionRule"
type: "array"
type: "object"
writeOnly: true
CreateWorkflowTransitionScreenDetails:
additionalProperties: false
description: "The details of a transition screen."
properties:
id:
description: "The ID of the screen."
type: "string"
required:
- "id"
type: "object"
writeOnly: true
CreatedIssue:
additionalProperties: false
description: "Details about a created issue or subtask."
properties:
id:
description: "The ID of the created issue or subtask."
readOnly: true
type: "string"
key:
description: "The key of the created issue or subtask."
readOnly: true
type: "string"
self:
description: "The URL of the created issue or subtask."
readOnly: true
type: "string"
transition:
allOf:
- $ref: "#/components/schemas/NestedResponse"
description: "The response code and messages related to any requested transition."
readOnly: true
watchers:
allOf:
- $ref: "#/components/schemas/NestedResponse"
description: "The response code and messages related to any requested watchers."
readOnly: true
type: "object"
CreatedIssues:
additionalProperties: false
description: "Details about the issues created and the errors for requests that\
\ failed."
properties:
errors:
description: "Error details for failed issue creation requests."
items:
$ref: "#/components/schemas/BulkOperationErrorResult"
readOnly: true
type: "array"
issues:
description: "Details of the issues created."
items:
$ref: "#/components/schemas/CreatedIssue"
readOnly: true
type: "array"
type: "object"
CustomContextVariable:
additionalProperties: false
discriminator:
mapping:
issue: "#/components/schemas/IssueContextVariable"
json: "#/components/schemas/JsonContextVariable"
user: "#/components/schemas/UserContextVariable"
propertyName: "type"
oneOf:
- $ref: "#/components/schemas/UserContextVariable"
- $ref: "#/components/schemas/IssueContextVariable"
- $ref: "#/components/schemas/JsonContextVariable"
properties:
type:
description: "Type of custom context variable."
type: "string"
required:
- "type"
type: "object"
CustomFieldConfigurations:
additionalProperties: false
description: "Details of configurations for a custom field."
properties:
configurations:
description: "The list of custom field configuration details."
items:
$ref: "#/components/schemas/ContextualConfiguration"
maxItems: 1000
minItems: 1
type: "array"
uniqueItems: true
required:
- "configurations"
type: "object"
writeOnly: true
CustomFieldContext:
additionalProperties: false
description: "The details of a custom field context."
properties:
description:
description: "The description of the context."
type: "string"
id:
description: "The ID of the context."
type: "string"
isAnyIssueType:
description: "Whether the context apply to all issue types."
type: "boolean"
isGlobalContext:
description: "Whether the context is global."
type: "boolean"
name:
description: "The name of the context."
type: "string"
required:
- "description"
- "id"
- "isAnyIssueType"
- "isGlobalContext"
- "name"
type: "object"
CustomFieldContextDefaultValue:
additionalProperties: false
discriminator:
mapping:
datepicker: "#/components/schemas/CustomFieldContextDefaultValueDate"
datetimepicker: "#/components/schemas/CustomFieldContextDefaultValueDateTime"
float: "#/components/schemas/CustomFieldContextDefaultValueFloat"
forge.datetime: "#/components/schemas/CustomFieldContextDefaultValueForgeDateTimeField"
forge.group: "#/components/schemas/CustomFieldContextDefaultValueForgeGroupField"
forge.group.list: "#/components/schemas/CustomFieldContextDefaultValueForgeMultiGroupField"
forge.number: "#/components/schemas/CustomFieldContextDefaultValueForgeNumberField"
forge.object: "#/components/schemas/CustomFieldContextDefaultValueForgeObjectField"
forge.string: "#/components/schemas/CustomFieldContextDefaultValueForgeStringField"
forge.string.list: "#/components/schemas/CustomFieldContextDefaultValueForgeMultiStringField"
forge.user: "#/components/schemas/CustomFieldContextDefaultValueForgeUserField"
forge.user.list: "#/components/schemas/CustomFieldContextDefaultValueForgeMultiUserField"
grouppicker.multiple: "#/components/schemas/CustomFieldContextDefaultValueMultipleGroupPicker"
grouppicker.single: "#/components/schemas/CustomFieldContextDefaultValueSingleGroupPicker"
labels: "#/components/schemas/CustomFieldContextDefaultValueLabels"
multi.user.select: "#/components/schemas/CustomFieldContextDefaultValueMultiUserPicker"
option.cascading: "#/components/schemas/CustomFieldContextDefaultValueCascadingOption"
option.multiple: "#/components/schemas/CustomFieldContextDefaultValueMultipleOption"
option.single: "#/components/schemas/CustomFieldContextDefaultValueSingleOption"
project: "#/components/schemas/CustomFieldContextDefaultValueProject"
readonly: "#/components/schemas/CustomFieldContextDefaultValueReadOnly"
single.user.select: "#/components/schemas/CustomFieldContextSingleUserPickerDefaults"
textarea: "#/components/schemas/CustomFieldContextDefaultValueTextArea"
textfield: "#/components/schemas/CustomFieldContextDefaultValueTextField"
url: "#/components/schemas/CustomFieldContextDefaultValueURL"
version.multiple: "#/components/schemas/CustomFieldContextDefaultValueMultipleVersionPicker"
version.single: "#/components/schemas/CustomFieldContextDefaultValueSingleVersionPicker"
propertyName: "type"
oneOf:
- $ref: "#/components/schemas/CustomFieldContextDefaultValueCascadingOption"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueMultipleOption"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueSingleOption"
- $ref: "#/components/schemas/CustomFieldContextSingleUserPickerDefaults"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueMultiUserPicker"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueSingleGroupPicker"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueMultipleGroupPicker"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueDate"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueDateTime"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueURL"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueProject"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueFloat"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueLabels"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueTextField"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueTextArea"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueReadOnly"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueSingleVersionPicker"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueMultipleVersionPicker"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueForgeStringField"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueForgeMultiStringField"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueForgeObjectField"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueForgeDateTimeField"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueForgeGroupField"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueForgeMultiGroupField"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueForgeNumberField"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueForgeUserField"
- $ref: "#/components/schemas/CustomFieldContextDefaultValueForgeMultiUserField"
type: "object"
CustomFieldContextDefaultValueCascadingOption:
description: "The default value for a cascading select custom field."
properties:
cascadingOptionId:
description: "The ID of the default cascading option."
type: "string"
contextId:
description: "The ID of the context."
type: "string"
optionId:
description: "The ID of the default option."
type: "string"
type:
type: "string"
required:
- "contextId"
- "optionId"
- "type"
type: "object"
CustomFieldContextDefaultValueDate:
description: "The default value for a Date custom field."
properties:
date:
description: "The default date in ISO format. Ignored if `useCurrent` is\
\ true."
type: "string"
type:
type: "string"
useCurrent:
default: false
description: "Whether to use the current date."
type: "boolean"
required:
- "type"
type: "object"
CustomFieldContextDefaultValueDateTime:
description: "The default value for a date time custom field."
properties:
dateTime:
description: "The default date-time in ISO format. Ignored if `useCurrent`\
\ is true."
type: "string"
type:
type: "string"
useCurrent:
default: false
description: "Whether to use the current date."
type: "boolean"
required:
- "type"
type: "object"
CustomFieldContextDefaultValueFloat:
description: "Default value for a float (number) custom field."
properties:
number:
description: "The default floating-point number."
format: "double"
type: "number"
type:
type: "string"
required:
- "number"
- "type"
type: "object"
CustomFieldContextDefaultValueForgeDateTimeField:
description: "The default value for a Forge date time custom field."
properties:
contextId:
description: "The ID of the context."
type: "string"
dateTime:
description: "The default date-time in ISO format. Ignored if `useCurrent`\
\ is true."
type: "string"
type:
type: "string"
useCurrent:
default: false
description: "Whether to use the current date."
type: "boolean"
required:
- "contextId"
- "type"
type: "object"
CustomFieldContextDefaultValueForgeGroupField:
description: "The default value for a Forge group custom field."
properties:
contextId:
description: "The ID of the context."
type: "string"
groupId:
description: "The ID of the the default group."
type: "string"
type:
type: "string"
required:
- "contextId"
- "groupId"
- "type"
type: "object"
CustomFieldContextDefaultValueForgeMultiGroupField:
description: "The default value for a Forge collection of groups custom field."
properties:
contextId:
description: "The ID of the context."
type: "string"
groupIds:
description: "The IDs of the default groups."
items:
description: "The IDs of the default groups."
type: "string"
type: "array"
uniqueItems: true
type:
type: "string"
required:
- "contextId"
- "groupIds"
- "type"
type: "object"
CustomFieldContextDefaultValueForgeMultiStringField:
description: "The default text for a Forge collection of strings custom field."
properties:
type:
type: "string"
values:
description: "List of string values. The maximum length for a value is 254\
\ characters."
items:
description: "List of string values. The maximum length for a value is\
\ 254 characters."
type: "string"
type: "array"
required:
- "type"
type: "object"
CustomFieldContextDefaultValueForgeMultiUserField:
description: "Defaults for a Forge collection of users custom field."
properties:
accountIds:
description: "The IDs of the default users."
items:
description: "The IDs of the default users."
type: "string"
type: "array"
contextId:
description: "The ID of the context."
type: "string"
type:
type: "string"
required:
- "accountIds"
- "contextId"
- "type"
type: "object"
CustomFieldContextDefaultValueForgeNumberField:
description: "Default value for a Forge number custom field."
properties:
contextId:
description: "The ID of the context."
type: "string"
number:
description: "The default floating-point number."
format: "double"
type: "number"
type:
type: "string"
required:
- "contextId"
- "number"
- "type"
type: "object"
CustomFieldContextDefaultValueForgeObjectField:
description: "The default value for a Forge object custom field."
properties:
object:
description: "The default JSON object."
type: "object"
type:
type: "string"
required:
- "type"
type: "object"
CustomFieldContextDefaultValueForgeStringField:
description: "The default text for a Forge string custom field."
properties:
contextId:
description: "The ID of the context."
type: "string"
text:
description: "The default text. The maximum length is 254 characters."
type: "string"
type:
type: "string"
required:
- "contextId"
- "type"
type: "object"
CustomFieldContextDefaultValueForgeUserField:
description: "Defaults for a Forge user custom field."
properties:
accountId:
description: "The ID of the default user."
type: "string"
contextId:
description: "The ID of the context."
type: "string"
type:
type: "string"
userFilter:
$ref: "#/components/schemas/UserFilter"
required:
- "accountId"
- "contextId"
- "type"
- "userFilter"
type: "object"
CustomFieldContextDefaultValueLabels:
description: "Default value for a labels custom field."
properties:
labels:
description: "The default labels value."
items:
description: "The default labels value."
type: "string"
type: "array"
type:
type: "string"
required:
- "labels"
- "type"
type: "object"
CustomFieldContextDefaultValueMultiUserPicker:
description: "The default value for a User Picker (multiple) custom field."
properties:
accountIds:
description: "The IDs of the default users."
items:
description: "The IDs of the default users."
type: "string"
type: "array"
contextId:
description: "The ID of the context."
type: "string"
type:
type: "string"
required:
- "accountIds"
- "contextId"
- "type"
type: "object"
CustomFieldContextDefaultValueMultipleGroupPicker:
description: "The default value for a multiple group picker custom field."
properties:
contextId:
description: "The ID of the context."
type: "string"
groupIds:
description: "The IDs of the default groups."
items:
description: "The IDs of the default groups."
type: "string"
type: "array"
uniqueItems: true
type:
type: "string"
required:
- "contextId"
- "groupIds"
- "type"
type: "object"
CustomFieldContextDefaultValueMultipleOption:
description: "The default value for a multi-select custom field."
properties:
contextId:
description: "The ID of the context."
type: "string"
optionIds:
description: "The list of IDs of the default options."
items:
description: "The list of IDs of the default options."
type: "string"
type: "array"
type:
type: "string"
required:
- "contextId"
- "optionIds"
- "type"
type: "object"
CustomFieldContextDefaultValueMultipleVersionPicker:
description: "The default value for a multiple version picker custom field."
properties:
type:
type: "string"
versionIds:
description: "The IDs of the default versions."
items:
description: "The IDs of the default versions."
type: "string"
type: "array"
uniqueItems: true
versionOrder:
description: "The order the pickable versions are displayed in. If not provided,\
\ the released-first order is used. Available version orders are `\"releasedFirst\"\
` and `\"unreleasedFirst\"`."
type: "string"
required:
- "type"
- "versionIds"
type: "object"
CustomFieldContextDefaultValueProject:
description: "The default value for a project custom field."
properties:
contextId:
description: "The ID of the context."
type: "string"
projectId:
description: "The ID of the default project."
type: "string"
type:
type: "string"
required:
- "contextId"
- "projectId"
- "type"
type: "object"
CustomFieldContextDefaultValueReadOnly:
description: "The default text for a read only custom field."
properties:
text:
description: "The default text. The maximum length is 255 characters."
type: "string"
type:
type: "string"
required:
- "type"
type: "object"
CustomFieldContextDefaultValueSingleGroupPicker:
description: "The default value for a group picker custom field."
properties:
contextId:
description: "The ID of the context."
type: "string"
groupId:
description: "The ID of the the default group."
type: "string"
type:
type: "string"
required:
- "contextId"
- "groupId"
- "type"
type: "object"
CustomFieldContextDefaultValueSingleOption:
description: "The default value for a single select custom field."
properties:
contextId:
description: "The ID of the context."
type: "string"
optionId:
description: "The ID of the default option."
type: "string"
type:
type: "string"
required:
- "contextId"
- "optionId"
- "type"
type: "object"
CustomFieldContextDefaultValueSingleVersionPicker:
description: "The default value for a version picker custom field."
properties:
type:
type: "string"
versionId:
description: "The ID of the default version."
type: "string"
versionOrder:
description: "The order the pickable versions are displayed in. If not provided,\
\ the released-first order is used. Available version orders are `\"releasedFirst\"\
` and `\"unreleasedFirst\"`."
type: "string"
required:
- "type"
- "versionId"
type: "object"
CustomFieldContextDefaultValueTextArea:
description: "The default text for a text area custom field."
properties:
text:
description: "The default text. The maximum length is 32767 characters."
type: "string"
type:
type: "string"
required:
- "type"
type: "object"
CustomFieldContextDefaultValueTextField:
description: "The default text for a text custom field."
properties:
text:
description: "The default text. The maximum length is 254 characters."
type: "string"
type:
type: "string"
required:
- "type"
type: "object"
CustomFieldContextDefaultValueURL:
description: "The default value for a URL custom field."
properties:
contextId:
description: "The ID of the context."
type: "string"
type:
type: "string"
url:
description: "The default URL."
type: "string"
required:
- "contextId"
- "type"
- "url"
type: "object"
CustomFieldContextDefaultValueUpdate:
additionalProperties: false
description: "Default values to update."
properties:
defaultValues:
items:
$ref: "#/components/schemas/CustomFieldContextDefaultValue"
type: "array"
type: "object"
CustomFieldContextOption:
additionalProperties: false
description: "Details of the custom field options for a context."
properties:
disabled:
description: "Whether the option is disabled."
type: "boolean"
id:
description: "The ID of the custom field option."
type: "string"
optionId:
description: "For cascading options, the ID of the custom field option containing\
\ the cascading option."
type: "string"
value:
description: "The value of the custom field option."
type: "string"
required:
- "disabled"
- "id"
- "value"
type: "object"
CustomFieldContextProjectMapping:
additionalProperties: false
description: "Details of a context to project association."
properties:
contextId:
description: "The ID of the context."
readOnly: true
type: "string"
isGlobalContext:
description: "Whether context is global."
readOnly: true
type: "boolean"
projectId:
description: "The ID of the project."
readOnly: true
type: "string"
required:
- "contextId"
type: "object"
CustomFieldContextSingleUserPickerDefaults:
description: "Defaults for a User Picker (single) custom field."
properties:
accountId:
description: "The ID of the default user."
type: "string"
contextId:
description: "The ID of the context."
type: "string"
type:
type: "string"
userFilter:
$ref: "#/components/schemas/UserFilter"
required:
- "accountId"
- "contextId"
- "type"
- "userFilter"
type: "object"
CustomFieldContextUpdateDetails:
additionalProperties: false
description: "Details of a custom field context."
properties:
description:
description: "The description of the custom field context. The maximum length\
\ is 255 characters."
type: "string"
writeOnly: true
name:
description: "The name of the custom field context. The name must be unique.\
\ The maximum length is 255 characters."
type: "string"
writeOnly: true
type: "object"
CustomFieldCreatedContextOptionsList:
additionalProperties: false
description: "A list of custom field options for a context."
properties:
options:
description: "The created custom field options."
items:
$ref: "#/components/schemas/CustomFieldContextOption"
type: "array"
type: "object"
CustomFieldDefinitionJsonBean:
additionalProperties: false
properties:
description:
description: "The description of the custom field, which is displayed in\
\ Jira."
type: "string"
name:
description: "The name of the custom field, which is displayed in Jira.\
\ This is not the unique identifier."
type: "string"
searcherKey:
description: "The searcher defines the way the field is searched in Jira.\
\ For example, *com.atlassian.jira.plugin.system.customfieldtypes:grouppickersearcher*.\
\ \nThe 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):\n\n * `cascadingselect`: `cascadingselectsearcher`\n\
\ * `datepicker`: `daterange`\n * `datetime`: `datetimerange`\n * `float`:\
\ `exactnumber` or `numberrange`\n * `grouppicker`: `grouppickersearcher`\n\
\ * `importid`: `exactnumber` or `numberrange`\n * `labels`: `labelsearcher`\n\
\ * `multicheckboxes`: `multiselectsearcher`\n * `multigrouppicker`:\
\ `multiselectsearcher`\n * `multiselect`: `multiselectsearcher`\n *\
\ `multiuserpicker`: `userpickergroupsearcher`\n * `multiversion`: `versionsearcher`\n\
\ * `project`: `projectsearcher`\n * `radiobuttons`: `multiselectsearcher`\n\
\ * `readonlyfield`: `textsearcher`\n * `select`: `multiselectsearcher`\n\
\ * `textarea`: `textsearcher`\n * `textfield`: `textsearcher`\n * \
\ `url`: `exacttextsearcher`\n * `userpicker`: `userpickergroupsearcher`\n\
\ * `version`: `versionsearcher`\n\nIf 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."
enum:
- "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"
type: "string"
type:
description: "The type of the custom field. These built-in custom field\
\ types are available:\n\n * `cascadingselect`: Enables values to be\
\ selected from two levels of select lists (value: `com.atlassian.jira.plugin.system.customfieldtypes:cascadingselect`)\n\
\ * `datepicker`: Stores a date using a picker control (value: `com.atlassian.jira.plugin.system.customfieldtypes:datepicker`)\n\
\ * `datetime`: Stores a date with a time component (value: `com.atlassian.jira.plugin.system.customfieldtypes:datetime`)\n\
\ * `float`: Stores and validates a numeric (floating point) input (value:\
\ `com.atlassian.jira.plugin.system.customfieldtypes:float`)\n * `grouppicker`:\
\ Stores a user group using a picker control (value: `com.atlassian.jira.plugin.system.customfieldtypes:grouppicker`)\n\
\ * `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`)\n\
\ * `labels`: Stores labels (value: `com.atlassian.jira.plugin.system.customfieldtypes:labels`)\n\
\ * `multicheckboxes`: Stores multiple values using checkboxes (value:\
\ ``)\n * `multigrouppicker`: Stores multiple user groups using a picker\
\ control (value: ``)\n * `multiselect`: Stores multiple values using\
\ a select list (value: `com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes`)\n\
\ * `multiuserpicker`: Stores multiple users using a picker control (value:\
\ `com.atlassian.jira.plugin.system.customfieldtypes:multigrouppicker`)\n\
\ * `multiversion`: Stores multiple versions from the versions available\
\ in a project using a picker control (value: `com.atlassian.jira.plugin.system.customfieldtypes:multiversion`)\n\
\ * `project`: Stores a project from a list of projects that the user\
\ is permitted to view (value: `com.atlassian.jira.plugin.system.customfieldtypes:project`)\n\
\ * `radiobuttons`: Stores a value using radio buttons (value: `com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons`)\n\
\ * `readonlyfield`: Stores a read-only text value, which can only be\
\ populated via the API (value: `com.atlassian.jira.plugin.system.customfieldtypes:readonlyfield`)\n\
\ * `select`: Stores a value from a configurable list of options (value:\
\ `com.atlassian.jira.plugin.system.customfieldtypes:select`)\n * `textarea`:\
\ Stores a long text string using a multiline text area (value: `com.atlassian.jira.plugin.system.customfieldtypes:textarea`)\n\
\ * `textfield`: Stores a text string using a single-line text box (value:\
\ `com.atlassian.jira.plugin.system.customfieldtypes:textfield`)\n * \
\ `url`: Stores a URL (value: `com.atlassian.jira.plugin.system.customfieldtypes:url`)\n\
\ * `userpicker`: Stores a user using a picker control (value: `com.atlassian.jira.plugin.system.customfieldtypes:userpicker`)\n\
\ * `version`: Stores a version using a picker control (value: `com.atlassian.jira.plugin.system.customfieldtypes:version`)\n\
\nTo 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`."
type: "string"
required:
- "name"
- "type"
type: "object"
CustomFieldOption:
additionalProperties: false
description: "Details of a custom option for a field."
properties:
self:
description: "The URL of these custom field option details."
format: "uri"
readOnly: true
type: "string"
value:
description: "The value of the custom field option."
readOnly: true
type: "string"
type: "object"
xml:
name: "customFieldOption"
CustomFieldOptionCreate:
additionalProperties: false
description: "Details of a custom field option to create."
properties:
disabled:
description: "Whether the option is disabled."
type: "boolean"
optionId:
description: "For cascading options, the ID of the custom field object containing\
\ the cascading option."
type: "string"
value:
description: "The value of the custom field option."
type: "string"
required:
- "value"
type: "object"
CustomFieldOptionUpdate:
additionalProperties: false
description: "Details of a custom field option for a context."
properties:
disabled:
description: "Whether the option is disabled."
type: "boolean"
id:
description: "The ID of the custom field option."
type: "string"
value:
description: "The value of the custom field option."
type: "string"
required:
- "id"
type: "object"
CustomFieldReplacement:
additionalProperties: false
description: "Details about the replacement for a deleted version."
properties:
customFieldId:
description: "The ID of the custom field in which to replace the version\
\ number."
format: "int64"
type: "integer"
moveTo:
description: "The version number to use as a replacement for the deleted\
\ version."
format: "int64"
type: "integer"
type: "object"
CustomFieldUpdatedContextOptionsList:
additionalProperties: false
description: "A list of custom field options for a context."
properties:
options:
description: "The updated custom field options."
items:
$ref: "#/components/schemas/CustomFieldOptionUpdate"
type: "array"
type: "object"
CustomFieldValueUpdate:
additionalProperties: false
description: "A list of issue IDs and the value to update a custom field to."
properties:
issueIds:
description: "The list of issue IDs."
items:
format: "int64"
type: "integer"
writeOnly: true
type: "array"
writeOnly: true
value:
description: "The value for the custom field. The value must be compatible\
\ with the [custom field type](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field/#data-types)\
\ as follows:\n\n * `string` the value must be a string.\n * `number`\
\ the value must be a number.\n * `datetime` the value must be a string\
\ that represents a date in the ISO format or the simplified extended\
\ ISO format. For example, `\"2023-01-18T12:00:00-03:00\"` or `\"2023-01-18T12:00:00.000Z\"\
`. However, the milliseconds part is ignored.\n * `user` the value must\
\ be an object that contains the `accountId` field.\n * `group` the value\
\ must be an object that contains the group `name` or `groupId` field.\
\ Because group names can change, we recommend using `groupId`.\n\nA list\
\ of appropriate values must be provided if the field is of the `list`\
\ [collection type](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field/#collection-types)."
required:
- "issueIds"
- "value"
type: "object"
writeOnly: true
CustomFieldValueUpdateDetails:
additionalProperties: false
description: "Details of updates for a custom field."
properties:
updates:
description: "The list of custom field update details."
items:
$ref: "#/components/schemas/CustomFieldValueUpdate"
type: "array"
type: "object"
writeOnly: true
Dashboard:
additionalProperties: false
description: "Details of a dashboard."
properties:
automaticRefreshMs:
description: "The automatic refresh interval for the dashboard in milliseconds."
format: "int32"
readOnly: true
type: "integer"
description:
type: "string"
editPermissions:
description: "The details of any edit share permissions for the dashboard."
items:
$ref: "#/components/schemas/SharePermission"
readOnly: true
type: "array"
id:
description: "The ID of the dashboard."
readOnly: true
type: "string"
isFavourite:
description: "Whether the dashboard is selected as a favorite by the user."
readOnly: true
type: "boolean"
isWritable:
description: "Whether the current user has permission to edit the dashboard."
readOnly: true
type: "boolean"
name:
description: "The name of the dashboard."
readOnly: true
type: "string"
owner:
allOf:
- $ref: "#/components/schemas/UserBean"
description: "The owner of the dashboard."
readOnly: true
popularity:
description: "The number of users who have this dashboard as a favorite."
format: "int64"
readOnly: true
type: "integer"
rank:
description: "The rank of this dashboard."
format: "int32"
readOnly: true
type: "integer"
self:
description: "The URL of these dashboard details."
format: "uri"
readOnly: true
type: "string"
sharePermissions:
description: "The details of any view share permissions for the dashboard."
items:
$ref: "#/components/schemas/SharePermission"
readOnly: true
type: "array"
systemDashboard:
description: "Whether the current dashboard is system dashboard."
readOnly: true
type: "boolean"
view:
description: "The URL of the dashboard."
readOnly: true
type: "string"
type: "object"
DashboardDetails:
additionalProperties: false
description: "Details of a dashboard."
properties:
description:
description: "The description of the dashboard."
type: "string"
editPermissions:
description: "The edit permissions for the dashboard."
items:
$ref: "#/components/schemas/SharePermission"
type: "array"
name:
description: "The name of the dashboard."
type: "string"
sharePermissions:
description: "The share permissions for the dashboard."
items:
$ref: "#/components/schemas/SharePermission"
type: "array"
required:
- "editPermissions"
- "name"
- "sharePermissions"
type: "object"
DashboardGadget:
additionalProperties: false
description: "Details of a gadget."
properties:
color:
description: "The color of the gadget. Should be one of `blue`, `red`, `yellow`,\
\ `green`, `cyan`, `purple`, `gray`, or `white`."
enum:
- "blue"
- "red"
- "yellow"
- "green"
- "cyan"
- "purple"
- "gray"
- "white"
readOnly: true
type: "string"
id:
description: "The ID of the gadget instance."
format: "int64"
readOnly: true
type: "integer"
moduleKey:
description: "The module key of the gadget type."
readOnly: true
type: "string"
position:
allOf:
- $ref: "#/components/schemas/DashboardGadgetPosition"
description: "The position of the gadget."
readOnly: true
title:
description: "The title of the gadget."
readOnly: true
type: "string"
uri:
description: "The URI of the gadget type."
readOnly: true
type: "string"
required:
- "color"
- "id"
- "position"
- "title"
type: "object"
DashboardGadgetPosition:
additionalProperties: false
description: "Details of a gadget position."
properties:
The column position of the gadget.:
format: "int32"
type: "integer"
The row position of the gadget.:
format: "int32"
type: "integer"
required:
- "The column position of the gadget."
- "The row position of the gadget."
type: "object"
writeOnly: true
DashboardGadgetResponse:
additionalProperties: false
description: "The list of gadgets on the dashboard."
properties:
gadgets:
description: "The list of gadgets."
items:
$ref: "#/components/schemas/DashboardGadget"
readOnly: true
type: "array"
required:
- "gadgets"
type: "object"
DashboardGadgetSettings:
additionalProperties: false
description: "Details of the settings for a dashboard gadget."
properties:
color:
description: "The color of the gadget. Should be one of `blue`, `red`, `yellow`,\
\ `green`, `cyan`, `purple`, `gray`, or `white`."
type: "string"
writeOnly: true
ignoreUriAndModuleKeyValidation:
description: "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."
type: "boolean"
writeOnly: true
moduleKey:
description: "The module key of the gadget type. Can't be provided with\
\ `uri`."
type: "string"
writeOnly: true
position:
allOf:
- $ref: "#/components/schemas/DashboardGadgetPosition"
description: "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:
description: "The title of the gadget."
type: "string"
writeOnly: true
uri:
description: "The URI of the gadget type. Can't be provided with `moduleKey`."
type: "string"
writeOnly: true
type: "object"
DashboardGadgetUpdateRequest:
additionalProperties: false
description: "The details of the gadget to update."
properties:
color:
description: "The color of the gadget. Should be one of `blue`, `red`, `yellow`,\
\ `green`, `cyan`, `purple`, `gray`, or `white`."
type: "string"
writeOnly: true
position:
allOf:
- $ref: "#/components/schemas/DashboardGadgetPosition"
description: "The position of the gadget."
title:
description: "The title of the gadget."
type: "string"
writeOnly: true
type: "object"
DataClassificationLevelsBean:
additionalProperties: false
description: "The data classification."
properties:
classifications:
description: "The data classifications."
items:
$ref: "#/components/schemas/DataClassificationTagBean"
type: "array"
type: "object"
DataClassificationTagBean:
additionalProperties: false
description: "The data classification."
properties:
color:
description: "The color of the data classification object."
type: "string"
description:
description: "The description of the data classification object."
type: "string"
guideline:
description: "The guideline of the data classification object."
type: "string"
id:
description: "The ID of the data classification object."
type: "string"
name:
description: "The name of the data classification object."
type: "string"
rank:
description: "The rank of the data classification object."
format: "int32"
type: "integer"
status:
description: "The status of the data classification object."
type: "string"
required:
- "id"
- "status"
type: "object"
DateRangeFilterRequest:
additionalProperties: false
description: "List issues archived within a specified date range."
properties:
dateAfter:
description: "List issues archived after a specified date, passed in the\
\ YYYY-MM-DD format."
type: "string"
dateBefore:
description: "List issues archived before a specified date provided in the\
\ YYYY-MM-DD format."
type: "string"
required:
- "dateAfter"
- "dateBefore"
type: "object"
DefaultLevelValue:
additionalProperties: true
description: "Details of scheme and new default level."
maxLength: 1000
properties:
defaultLevelId:
description: "The ID of the issue security level to set as default for the\
\ specified scheme. Providing null will reset the default level."
type: "string"
writeOnly: true
issueSecuritySchemeId:
description: "The ID of the issue security scheme to set default level for."
type: "string"
writeOnly: true
required:
- "defaultLevelId"
- "issueSecuritySchemeId"
type: "object"
writeOnly: true
DefaultShareScope:
additionalProperties: false
description: "Details of the scope of the default sharing for new filters and\
\ dashboards."
properties:
scope:
description: "The scope of the default sharing for new filters and dashboards:\n\
\n * `AUTHENTICATED` Shared with all logged-in users.\n * `GLOBAL` Shared\
\ with all logged-in users. This shows as `AUTHENTICATED` in the response.\n\
\ * `PRIVATE` Not shared with any users."
enum:
- "GLOBAL"
- "AUTHENTICATED"
- "PRIVATE"
type: "string"
required:
- "scope"
type: "object"
xml:
name: "defaultShareScope"
DefaultWorkflow:
additionalProperties: false
description: "Details about the default workflow."
properties:
updateDraftIfNeeded:
description: "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`."
type: "boolean"
workflow:
description: "The name of the workflow to set as the default workflow."
type: "string"
required:
- "workflow"
type: "object"
DeleteAndReplaceVersionBean:
additionalProperties: false
properties:
customFieldReplacementList:
description: "An array of custom field IDs (`customFieldId`) and version\
\ IDs (`moveTo`) to update when the fields contain the deleted version."
items:
$ref: "#/components/schemas/CustomFieldReplacement"
type: "array"
moveAffectedIssuesTo:
description: "The ID of the version to update `affectedVersion` to when\
\ the field contains the deleted version."
format: "int64"
type: "integer"
moveFixIssuesTo:
description: "The ID of the version to update `fixVersion` to when the field\
\ contains the deleted version."
format: "int64"
type: "integer"
type: "object"
DeprecatedWorkflow:
additionalProperties: false
description: "Details about a workflow."
properties:
default:
type: "boolean"
description:
description: "The description of the workflow."
readOnly: true
type: "string"
lastModifiedDate:
description: "The datetime the workflow was last modified."
readOnly: true
type: "string"
lastModifiedUser:
description: "This property is no longer available and will be removed from\
\ the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/)\
\ for details."
readOnly: true
type: "string"
lastModifiedUserAccountId:
description: "The account ID of the user that last modified the workflow."
readOnly: true
type: "string"
name:
description: "The name of the workflow."
readOnly: true
type: "string"
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "The scope where this workflow applies"
readOnly: true
steps:
description: "The number of steps included in the workflow."
format: "int32"
readOnly: true
type: "integer"
type: "object"
DetailedErrorCollection:
additionalProperties: false
properties:
details:
additionalProperties: {}
description: "Map of objects representing additional details for an error"
type: "object"
errorMessages:
description: "The list of error messages produced by this operation. For\
\ example, \"input parameter 'key' must be provided\""
items:
type: "string"
type: "array"
errors:
additionalProperties:
type: "string"
description: "The list of errors by parameter returned by the operation.\
\ For example,\"projectKey\": \"Project keys must start with an uppercase\
\ letter, followed by one or more uppercase alphanumeric characters.\""
type: "object"
type: "object"
DocumentVersion:
additionalProperties: false
description: "The current version details of this workflow scheme."
properties:
id:
description: "The version UUID."
type: "string"
versionNumber:
description: "The version number."
format: "int64"
type: "integer"
required:
- "id"
- "versionNumber"
type: "object"
EntityProperty:
additionalProperties: false
description: "An entity property, for more information see [Entity properties](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/)."
properties:
key:
description: "The key of the property. Required on create and update."
type: "string"
value:
description: "The value of the property. Required on create and update."
type: "object"
EntityPropertyDetails:
properties:
entityId:
description: "The entity property ID."
example: 123
type: "number"
key:
description: "The entity property key."
example: "mykey"
type: "string"
value:
description: "The new value of the entity property."
example: "newValue"
type: "string"
required:
- "entityId"
- "key"
- "value"
type: "object"
Error:
additionalProperties: false
properties:
count:
format: "int64"
type: "integer"
issueIdsOrKeys:
items:
type: "string"
type: "array"
uniqueItems: true
message:
type: "string"
type: "object"
ErrorCollection:
additionalProperties: false
description: "Error messages from an operation."
properties:
errorMessages:
description: "The list of error messages produced by this operation. For\
\ example, \"input parameter 'key' must be provided\""
items:
type: "string"
type: "array"
errors:
additionalProperties:
type: "string"
description: "The list of errors by parameter returned by the operation.\
\ For example,\"projectKey\": \"Project keys must start with an uppercase\
\ letter, followed by one or more uppercase alphanumeric characters.\""
type: "object"
status:
format: "int32"
type: "integer"
type: "object"
ErrorCollections:
additionalProperties: false
type: "object"
ErrorMessage:
additionalProperties: false
example:
message: "The request is not from a Connect app."
properties:
message:
description: "The error message."
type: "string"
required:
- "message"
type: "object"
Errors:
additionalProperties: false
properties:
issueIsSubtask:
$ref: "#/components/schemas/Error"
issuesInArchivedProjects:
$ref: "#/components/schemas/Error"
issuesInUnlicensedProjects:
$ref: "#/components/schemas/Error"
issuesNotFound:
$ref: "#/components/schemas/Error"
type: "object"
EventNotification:
additionalProperties: false
description: "Details about a notification associated with an event."
properties:
emailAddress:
description: "The email address."
type: "string"
expand:
description: "Expand options that include additional event notification\
\ details in the response."
type: "string"
field:
allOf:
- $ref: "#/components/schemas/FieldDetails"
description: "The custom user or group field."
group:
allOf:
- $ref: "#/components/schemas/GroupName"
description: "The specified group."
id:
description: "The ID of the notification."
format: "int64"
type: "integer"
notificationType:
description: "Identifies the recipients of the notification."
enum:
- "CurrentAssignee"
- "Reporter"
- "CurrentUser"
- "ProjectLead"
- "ComponentLead"
- "User"
- "Group"
- "ProjectRole"
- "EmailAddress"
- "AllWatchers"
- "UserCustomField"
- "GroupCustomField"
type: "string"
parameter:
description: "As a group's name can change, use of `recipient` is recommended.\
\ The identifier associated with the `notificationType` value that defines\
\ the receiver of the notification, where the receiver isn't implied by\
\ `notificationType` value. So, when `notificationType` is:\n\n * `User`\
\ The `parameter` is the user account ID.\n * `Group` The `parameter`\
\ is the group name.\n * `ProjectRole` The `parameter` is the project\
\ role ID.\n * `UserCustomField` The `parameter` is the ID of the custom\
\ field.\n * `GroupCustomField` The `parameter` is the ID of the custom\
\ field."
type: "string"
projectRole:
allOf:
- $ref: "#/components/schemas/ProjectRole"
description: "The specified project role."
recipient:
description: "The identifier associated with the `notificationType` value\
\ that defines the receiver of the notification, where the receiver isn't\
\ implied by the `notificationType` value. So, when `notificationType`\
\ is:\n\n * `User`, `recipient` is the user account ID.\n * `Group`,\
\ `recipient` is the group ID.\n * `ProjectRole`, `recipient` is the\
\ project role ID.\n * `UserCustomField`, `recipient` is the ID of the\
\ custom field.\n * `GroupCustomField`, `recipient` is the ID of the\
\ custom field."
type: "string"
user:
allOf:
- $ref: "#/components/schemas/UserDetails"
description: "The specified user."
type: "object"
ExpandPrioritySchemeBean:
additionalProperties: false
description: "A priority scheme with less fields to be used in for an API expand\
\ response."
properties:
id:
description: "The ID of the priority scheme."
readOnly: true
type: "string"
name:
description: "The name of the priority scheme."
readOnly: true
type: "string"
self:
description: "The URL of the priority scheme."
readOnly: true
type: "string"
type: "object"
ExpandPrioritySchemePage:
additionalProperties: true
properties:
maxResults:
format: "int32"
type: "integer"
startAt:
format: "int64"
type: "integer"
total:
format: "int64"
type: "integer"
type: "object"
ExportArchivedIssuesTaskProgressResponse:
additionalProperties: false
description: "The response for status request for a running/completed export\
\ task."
properties:
fileUrl:
type: "string"
payload:
type: "string"
progress:
format: "int64"
type: "integer"
status:
type: "string"
submittedTime:
format: "date-time"
type: "string"
taskId:
type: "string"
type: "object"
FailedWebhook:
additionalProperties: false
description: "Details about a failed webhook."
properties:
body:
description: "The webhook body."
type: "string"
failureTime:
description: "The time the webhook was added to the list of failed webhooks\
\ (that is, the time of the last failed retry)."
format: "int64"
type: "integer"
id:
description: "The webhook ID, as sent in the `X-Atlassian-Webhook-Identifier`\
\ header with the webhook."
type: "string"
url:
description: "The original webhook destination."
type: "string"
required:
- "failureTime"
- "id"
- "url"
type: "object"
FailedWebhooks:
additionalProperties: false
description: "A page of failed webhooks."
properties:
maxResults:
description: "The maximum number of items on the page. If the list of values\
\ is shorter than this number, then there are no more pages."
format: "int32"
type: "integer"
next:
description: "The URL to the next page of results. Present only if the request\
\ returned at least one result.The next page may be empty at the time\
\ of receiving the response, but new failed webhooks may appear in time.\
\ You can save the URL to the next page and query for new results periodically\
\ (for example, every hour)."
format: "uri"
type: "string"
values:
description: "The list of webhooks."
items:
$ref: "#/components/schemas/FailedWebhook"
type: "array"
required:
- "maxResults"
- "values"
type: "object"
Field:
additionalProperties: false
description: "Details of a field."
properties:
contextsCount:
description: "Number of contexts where the field is used."
format: "int64"
type: "integer"
description:
description: "The description of the field."
type: "string"
id:
description: "The ID of the field."
type: "string"
isLocked:
description: "Whether the field is locked."
type: "boolean"
isUnscreenable:
description: "Whether the field is shown on screen or not."
type: "boolean"
key:
description: "The key of the field."
type: "string"
lastUsed:
$ref: "#/components/schemas/FieldLastUsed"
name:
description: "The name of the field."
type: "string"
projectsCount:
description: "Number of projects where the field is used."
format: "int64"
type: "integer"
schema:
$ref: "#/components/schemas/JsonTypeBean"
screensCount:
description: "Number of screens where the field is used."
format: "int64"
type: "integer"
searcherKey:
description: "The searcher key of the field. Returned for custom fields."
type: "string"
required:
- "id"
- "name"
- "schema"
type: "object"
FieldChangedClause:
description: "A clause that asserts whether a field was changed. For example,\
\ `status CHANGED AFTER startOfMonth(-1M)`.See [CHANGED](https://confluence.atlassian.com/x/dgiiLQ#Advancedsearching-operatorsreference-CHANGEDCHANGED)\
\ for more information about the CHANGED operator."
properties:
field:
$ref: "#/components/schemas/JqlQueryField"
operator:
description: "The operator applied to the field."
enum:
- "changed"
type: "string"
predicates:
description: "The list of time predicates."
items:
$ref: "#/components/schemas/JqlQueryClauseTimePredicate"
type: "array"
required:
- "field"
- "operator"
- "predicates"
type: "object"
FieldConfiguration:
additionalProperties: false
description: "Details of a field configuration."
properties:
description:
description: "The description of the field configuration."
type: "string"
id:
description: "The ID of the field configuration."
format: "int64"
type: "integer"
isDefault:
description: "Whether the field configuration is the default."
type: "boolean"
name:
description: "The name of the field configuration."
type: "string"
required:
- "description"
- "id"
- "name"
type: "object"
FieldConfigurationDetails:
additionalProperties: false
description: "Details of a field configuration."
properties:
description:
description: "The description of the field configuration."
maxLength: 255
type: "string"
writeOnly: true
name:
description: "The name of the field configuration. Must be unique."
maxLength: 255
type: "string"
writeOnly: true
required:
- "name"
type: "object"
FieldConfigurationIssueTypeItem:
additionalProperties: false
description: "The field configuration for an issue type."
properties:
fieldConfigurationId:
description: "The ID of the field configuration."
type: "string"
fieldConfigurationSchemeId:
description: "The ID of the field configuration scheme."
type: "string"
issueTypeId:
description: "The ID of the issue type or *default*. When set to *default*\
\ this field configuration issue type item applies to all issue types\
\ without a field configuration."
type: "string"
required:
- "fieldConfigurationId"
- "fieldConfigurationSchemeId"
- "issueTypeId"
type: "object"
FieldConfigurationItem:
additionalProperties: false
description: "A field within a field configuration."
properties:
description:
description: "The description of the field within the field configuration."
type: "string"
id:
description: "The ID of the field within the field configuration."
type: "string"
isHidden:
description: "Whether the field is hidden in the field configuration."
type: "boolean"
isRequired:
description: "Whether the field is required in the field configuration."
type: "boolean"
renderer:
description: "The renderer type for the field within the field configuration."
type: "string"
required:
- "id"
type: "object"
FieldConfigurationItemsDetails:
additionalProperties: false
description: "Details of field configuration items."
properties:
fieldConfigurationItems:
description: "Details of fields in a field configuration."
items:
$ref: "#/components/schemas/FieldConfigurationItem"
type: "array"
writeOnly: true
required:
- "fieldConfigurationItems"
type: "object"
FieldConfigurationScheme:
additionalProperties: false
description: "Details of a field configuration scheme."
properties:
description:
description: "The description of the field configuration scheme."
type: "string"
id:
description: "The ID of the field configuration scheme."
type: "string"
name:
description: "The name of the field configuration scheme."
type: "string"
required:
- "id"
- "name"
type: "object"
FieldConfigurationSchemeProjectAssociation:
additionalProperties: false
description: "Associated field configuration scheme and project."
properties:
fieldConfigurationSchemeId:
description: "The ID of the field configuration scheme. If the field configuration\
\ scheme ID is `null`, the operation assigns the default field configuration\
\ scheme."
type: "string"
writeOnly: true
projectId:
description: "The ID of the project."
type: "string"
writeOnly: true
required:
- "projectId"
type: "object"
FieldConfigurationSchemeProjects:
additionalProperties: false
description: "Project list with assigned field configuration schema."
properties:
fieldConfigurationScheme:
$ref: "#/components/schemas/FieldConfigurationScheme"
projectIds:
description: "The IDs of projects using the field configuration scheme."
items:
description: "The IDs of projects using the field configuration scheme."
type: "string"
type: "array"
required:
- "projectIds"
type: "object"
FieldConfigurationToIssueTypeMapping:
additionalProperties: false
description: "The field configuration to issue type mapping."
properties:
fieldConfigurationId:
description: "The ID of the field configuration."
type: "string"
writeOnly: true
issueTypeId:
description: "The ID of the issue type or *default*. When set to *default*\
\ this field configuration issue type item applies to all issue types\
\ without a field configuration. An issue type can be included only once\
\ in a request."
type: "string"
writeOnly: true
required:
- "fieldConfigurationId"
- "issueTypeId"
type: "object"
writeOnly: true
FieldCreateMetadata:
additionalProperties: false
description: "The metadata describing an issue field for createmeta."
properties:
allowedValues:
description: "The list of values allowed in the field."
items:
readOnly: true
readOnly: true
type: "array"
autoCompleteUrl:
description: "The URL that can be used to automatically complete the field."
readOnly: true
type: "string"
configuration:
additionalProperties:
readOnly: true
description: "The configuration properties."
readOnly: true
type: "object"
defaultValue:
description: "The default value of the field."
readOnly: true
fieldId:
description: "The field id."
readOnly: true
type: "string"
hasDefaultValue:
description: "Whether the field has a default value."
readOnly: true
type: "boolean"
key:
description: "The key of the field."
readOnly: true
type: "string"
name:
description: "The name of the field."
readOnly: true
type: "string"
operations:
description: "The list of operations that can be performed on the field."
items:
readOnly: true
type: "string"
readOnly: true
type: "array"
required:
description: "Whether the field is required."
readOnly: true
type: "boolean"
schema:
allOf:
- $ref: "#/components/schemas/JsonTypeBean"
description: "The data type of the field."
readOnly: true
required:
- "fieldId"
- "key"
- "name"
- "operations"
- "required"
- "schema"
type: "object"
xml:
name: "availableField"
FieldDetails:
additionalProperties: false
description: "Details about a field."
properties:
clauseNames:
description: "The names that can be used to reference the field in an advanced\
\ search. For more information, see [Advanced searching - fields reference](https://confluence.atlassian.com/x/gwORLQ)."
items:
type: "string"
type: "array"
uniqueItems: true
custom:
description: "Whether the field is a custom field."
type: "boolean"
id:
description: "The ID of the field."
type: "string"
key:
description: "The key of the field."
type: "string"
name:
description: "The name of the field."
type: "string"
navigable:
description: "Whether the field can be used as a column on the issue navigator."
type: "boolean"
orderable:
description: "Whether the content of the field can be used to order lists."
type: "boolean"
schema:
allOf:
- $ref: "#/components/schemas/JsonTypeBean"
description: "The data schema for the field."
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "The scope of the field."
searchable:
description: "Whether the content of the field can be searched."
type: "boolean"
type: "object"
xml:
name: "field"
FieldLastUsed:
additionalProperties: false
description: "Information about the most recent use of a field."
properties:
type:
description: "Last used value type:\n\n * *TRACKED*: field is tracked and\
\ a last used date is available.\n * *NOT\\_TRACKED*: field is not tracked,\
\ last used date is not available.\n * *NO\\_INFORMATION*: field is tracked,\
\ but no last used date is available."
enum:
- "TRACKED"
- "NOT_TRACKED"
- "NO_INFORMATION"
type: "string"
value:
description: "The date when the value of the field last changed."
format: "date-time"
type: "string"
type: "object"
FieldMetadata:
additionalProperties: false
description: "The metadata describing an issue field."
properties:
allowedValues:
description: "The list of values allowed in the field."
items:
readOnly: true
readOnly: true
type: "array"
autoCompleteUrl:
description: "The URL that can be used to automatically complete the field."
readOnly: true
type: "string"
configuration:
additionalProperties:
readOnly: true
description: "The configuration properties."
readOnly: true
type: "object"
defaultValue:
description: "The default value of the field."
readOnly: true
hasDefaultValue:
description: "Whether the field has a default value."
readOnly: true
type: "boolean"
key:
description: "The key of the field."
readOnly: true
type: "string"
name:
description: "The name of the field."
readOnly: true
type: "string"
operations:
description: "The list of operations that can be performed on the field."
items:
readOnly: true
type: "string"
readOnly: true
type: "array"
required:
description: "Whether the field is required."
readOnly: true
type: "boolean"
schema:
allOf:
- $ref: "#/components/schemas/JsonTypeBean"
description: "The data type of the field."
readOnly: true
required:
- "key"
- "name"
- "operations"
- "required"
- "schema"
type: "object"
xml:
name: "availableField"
FieldReferenceData:
additionalProperties: false
description: "Details of a field that can be used in advanced searches."
properties:
auto:
description: "Whether the field provide auto-complete suggestions."
enum:
- "true"
- "false"
type: "string"
cfid:
description: "If the item is a custom field, the ID of the custom field."
type: "string"
deprecated:
description: "Whether this field has been deprecated."
enum:
- "true"
- "false"
type: "string"
deprecatedSearcherKey:
description: "The searcher key of the field, only passed when the field\
\ is deprecated."
type: "string"
displayName:
description: "The display name contains the following:\n\n * for system\
\ fields, the field name. For example, `Summary`.\n * for collapsed custom\
\ fields, the field name followed by a hyphen and then the field name\
\ and field type. For example, `Component - Component[Dropdown]`.\n *\
\ for other custom fields, the field name followed by a hyphen and then\
\ the custom field ID. For example, `Component - cf[10061]`."
type: "string"
operators:
description: "The valid search operators for the field."
items:
type: "string"
type: "array"
orderable:
description: "Whether the field can be used in a query's `ORDER BY` clause."
enum:
- "true"
- "false"
type: "string"
searchable:
description: "Whether the content of this field can be searched."
enum:
- "true"
- "false"
type: "string"
types:
description: "The data types of items in the field."
items:
type: "string"
type: "array"
value:
description: "The field identifier."
type: "string"
type: "object"
FieldUpdateOperation:
additionalProperties: false
description: "Details of an operation to perform on a field."
properties:
add:
description: "The value to add to the field."
example: "triaged"
copy:
description: "The field value to copy from another issue."
example:
issuelinks:
sourceIssues:
- key: "FP-5"
edit:
description: "The value to edit in the field."
example:
originalEstimate: "1w 1d"
remainingEstimate: "4d"
remove:
description: "The value to removed from the field."
example: "blocker"
set:
description: "The value to set in the field."
example: "A new summary"
type: "object"
FieldValueClause:
description: "A clause that asserts the current value of a field. For example,\
\ `summary ~ test`."
properties:
field:
$ref: "#/components/schemas/JqlQueryField"
operand:
$ref: "#/components/schemas/JqlQueryClauseOperand"
operator:
description: "The operator between the field and operand."
enum:
- "="
- "!="
- ">"
- "<"
- ">="
- "<="
- "in"
- "not in"
- "~"
- "~="
- "is"
- "is not"
type: "string"
required:
- "field"
- "operand"
- "operator"
type: "object"
FieldWasClause:
description: "A clause that asserts a previous value of a field. For example,\
\ `status WAS \"Resolved\" BY currentUser() BEFORE \"2019/02/02\"`. See [WAS](https://confluence.atlassian.com/x/dgiiLQ#Advancedsearching-operatorsreference-WASWAS)\
\ for more information about the WAS operator."
properties:
field:
$ref: "#/components/schemas/JqlQueryField"
operand:
$ref: "#/components/schemas/JqlQueryClauseOperand"
operator:
description: "The operator between the field and operand."
enum:
- "was"
- "was in"
- "was not in"
- "was not"
type: "string"
predicates:
description: "The list of time predicates."
items:
$ref: "#/components/schemas/JqlQueryClauseTimePredicate"
type: "array"
required:
- "field"
- "operand"
- "operator"
- "predicates"
type: "object"
Fields:
additionalProperties: false
description: "Key fields from the linked issue."
properties:
assignee:
allOf:
- $ref: "#/components/schemas/UserDetails"
description: "The assignee of the linked issue."
readOnly: true
issueType:
allOf:
- $ref: "#/components/schemas/IssueTypeDetails"
description: "The type of the linked issue."
readOnly: true
issuetype:
description: "The type of the linked issue."
$ref: "#/components/schemas/IssueTypeDetails"
priority:
allOf:
- $ref: "#/components/schemas/Priority"
description: "The priority of the linked issue."
readOnly: true
status:
allOf:
- $ref: "#/components/schemas/StatusDetails"
description: "The status of the linked issue."
readOnly: true
summary:
description: "The summary description of the linked issue."
readOnly: true
type: "string"
timetracking:
allOf:
- $ref: "#/components/schemas/TimeTrackingDetails"
description: "The time tracking of the linked issue."
readOnly: true
type: "object"
Filter:
additionalProperties: false
description: "Details about a filter."
properties:
approximateLastUsed:
description: "\\[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."
format: "date-time"
readOnly: true
type: "string"
description:
description: "A description of the filter."
type: "string"
editPermissions:
description: "The groups and projects that can edit the filter."
items:
$ref: "#/components/schemas/SharePermission"
type: "array"
favourite:
description: "Whether the filter is selected as a favorite."
type: "boolean"
favouritedCount:
description: "The count of how many users have selected this filter as a\
\ favorite, including the filter owner."
format: "int64"
readOnly: true
type: "integer"
id:
description: "The unique identifier for the filter."
readOnly: true
type: "string"
jql:
description: "The JQL query for the filter. For example, *project = SSP\
\ AND issuetype = Bug*."
type: "string"
name:
description: "The name of the filter. Must be unique."
type: "string"
owner:
allOf:
- $ref: "#/components/schemas/User"
description: "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."
readOnly: true
searchUrl:
description: "A URL to view the filter results in Jira, using the [Search\
\ for issues using JQL](#api-rest-api-2-filter-search-get) operation with\
\ the filter's JQL string to return the filter results. For example, *https://your-domain.atlassian.net/rest/api/2/search?jql=project+%3D+SSP+AND+issuetype+%3D+Bug*."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the filter."
format: "uri"
readOnly: true
type: "string"
sharePermissions:
description: "The groups and projects that the filter is shared with."
items:
$ref: "#/components/schemas/SharePermission"
type: "array"
sharedUsers:
allOf:
- $ref: "#/components/schemas/UserList"
description: "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."
readOnly: true
subscriptions:
allOf:
- $ref: "#/components/schemas/FilterSubscriptionsList"
description: "A paginated list of the users that are subscribed to the filter."
readOnly: true
viewUrl:
description: "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*."
format: "uri"
readOnly: true
type: "string"
required:
- "name"
type: "object"
xml:
name: "filter"
FilterDetails:
additionalProperties: false
description: "Details of a filter."
properties:
approximateLastUsed:
description: "\\[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."
format: "date-time"
readOnly: true
type: "string"
description:
description: "The description of the filter."
type: "string"
editPermissions:
description: "The groups and projects that can edit the filter. This can\
\ be specified when updating a filter, but not when creating a filter."
items:
$ref: "#/components/schemas/SharePermission"
type: "array"
expand:
description: "Expand options that include additional filter details in the\
\ response."
readOnly: true
type: "string"
xml:
attribute: true
favourite:
description: "Whether the filter is selected as a favorite by any users,\
\ not including the filter owner."
readOnly: true
type: "boolean"
favouritedCount:
description: "The count of how many users have selected this filter as a\
\ favorite, including the filter owner."
format: "int64"
readOnly: true
type: "integer"
id:
description: "The unique identifier for the filter."
readOnly: true
type: "string"
jql:
description: "The JQL query for the filter. For example, *project = SSP\
\ AND issuetype = Bug*."
readOnly: true
type: "string"
name:
description: "The name of the filter."
type: "string"
owner:
allOf:
- $ref: "#/components/schemas/User"
description: "The user who owns the filter. Defaults to the creator of the\
\ filter, however, Jira administrators can change the owner of a shared\
\ filter in the admin settings."
readOnly: true
searchUrl:
description: "A URL to view the filter results in Jira, using the [Search\
\ for issues using JQL](#api-rest-api-2-filter-search-get) operation with\
\ the filter's JQL string to return the filter results. For example, *https://your-domain.atlassian.net/rest/api/2/search?jql=project+%3D+SSP+AND+issuetype+%3D+Bug*."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the filter."
format: "uri"
readOnly: true
type: "string"
sharePermissions:
description: "The groups and projects that the filter is shared with. This\
\ can be specified when updating a filter, but not when creating a filter."
items:
$ref: "#/components/schemas/SharePermission"
type: "array"
subscriptions:
description: "The users that are subscribed to the filter."
items:
$ref: "#/components/schemas/FilterSubscription"
readOnly: true
type: "array"
viewUrl:
description: "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*."
format: "uri"
readOnly: true
type: "string"
required:
- "name"
type: "object"
FilterSubscription:
additionalProperties: false
description: "Details of a user or group subscribing to a filter."
properties:
group:
allOf:
- $ref: "#/components/schemas/GroupName"
description: "The group subscribing to filter."
readOnly: true
id:
description: "The ID of the filter subscription."
format: "int64"
readOnly: true
type: "integer"
user:
allOf:
- $ref: "#/components/schemas/User"
description: "The user subscribing to filter."
readOnly: true
type: "object"
FilterSubscriptionsList:
additionalProperties: false
description: "A paginated list of subscriptions to a filter."
properties:
end-index:
description: "The index of the last item returned on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
name: "end-index"
items:
description: "The list of items."
items:
$ref: "#/components/schemas/FilterSubscription"
readOnly: true
type: "array"
max-results:
description: "The maximum number of results that could be on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
name: "max-results"
size:
description: "The number of items on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
start-index:
description: "The index of the first item returned on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
name: "start-index"
type: "object"
FoundGroup:
additionalProperties: false
description: "A group found in a search."
properties:
groupId:
description: "The ID of the group, which uniquely identifies the group across\
\ all Atlassian products. For example, *952d12c3-5b5b-4d04-bb32-44d383afc4b2*."
type: "string"
html:
description: "The group name with the matched query string highlighted with\
\ the HTML bold tag."
type: "string"
labels:
items:
$ref: "#/components/schemas/GroupLabel"
type: "array"
name:
description: "The name of the group. The name of a group is mutable, to\
\ reliably identify a group use ``groupId`.`"
type: "string"
type: "object"
xml:
name: "group"
FoundGroups:
additionalProperties: false
description: "The list of groups found in a search, including header text (Showing\
\ X of Y matching groups) and total of matched groups."
properties:
groups:
items:
$ref: "#/components/schemas/FoundGroup"
type: "array"
header:
description: "Header text indicating the number of groups in the response\
\ and the total number of groups found in the search."
type: "string"
total:
description: "The total number of groups found in the search."
format: "int32"
type: "integer"
type: "object"
xml:
name: "groupsuggestions"
FoundUsers:
additionalProperties: false
description: "The list of users found in a search, including header text (Showing\
\ X of Y matching users) and total of matched users."
properties:
header:
description: "Header text indicating the number of users in the response\
\ and the total number of users found in the search."
type: "string"
total:
description: "The total number of users found in the search."
format: "int32"
type: "integer"
users:
items:
$ref: "#/components/schemas/UserPickerUser"
type: "array"
type: "object"
FoundUsersAndGroups:
additionalProperties: false
description: "List of users and groups found in a search."
properties:
groups:
$ref: "#/components/schemas/FoundGroups"
users:
$ref: "#/components/schemas/FoundUsers"
type: "object"
FunctionOperand:
description: "An operand that is a function. See [Advanced searching - functions\
\ reference](https://confluence.atlassian.com/x/dwiiLQ) for more information\
\ about JQL functions."
properties:
arguments:
description: "The list of function arguments."
items:
type: "string"
type: "array"
encodedOperand:
description: "Encoded operand, which can be used directly in a JQL query."
type: "string"
function:
description: "The name of the function."
type: "string"
required:
- "arguments"
- "function"
type: "object"
FunctionReferenceData:
additionalProperties: false
description: "Details of functions that can be used in advanced searches."
properties:
displayName:
description: "The display name of the function."
type: "string"
isList:
description: "Whether the function can take a list of arguments."
enum:
- "true"
- "false"
type: "string"
supportsListAndSingleValueOperators:
description: "Whether the function supports both single and list value operators."
enum:
- "true"
- "false"
type: "string"
types:
description: "The data types returned by the function."
items:
type: "string"
type: "array"
value:
description: "The function identifier."
type: "string"
type: "object"
GlobalScopeBean:
additionalProperties: false
properties:
attributes:
description: "Defines the behavior of the option in the global context.If\
\ notSelectable is set, the option cannot be set as the field's value.\
\ This is useful for archiving an option that has previously been selected\
\ but shouldn't be used anymore.If defaultValue is set, the option is\
\ selected by default."
items:
enum:
- "notSelectable"
- "defaultValue"
type: "string"
type: "array"
uniqueItems: true
type: "object"
Group:
additionalProperties: false
properties:
expand:
description: "Expand options that include additional group details in the\
\ response."
readOnly: true
type: "string"
xml:
attribute: true
groupId:
description: "The ID of the group, which uniquely identifies the group across\
\ all Atlassian products. For example, *952d12c3-5b5b-4d04-bb32-44d383afc4b2*."
nullable: true
type: "string"
name:
description: "The name of group."
type: "string"
self:
description: "The URL for these group details."
format: "uri"
readOnly: true
type: "string"
users:
allOf:
- $ref: "#/components/schemas/PagedListUserDetailsApplicationUser"
description: "A paginated list of the users that are members of the group.\
\ A maximum of 50 users is returned in the list, to access additional\
\ users append `[start-index:end-index]` to the expand request. For example,\
\ to access the next 50 users, use`?expand=users[51:100]`."
readOnly: true
type: "object"
GroupDetails:
additionalProperties: false
description: "Details about a group."
properties:
groupId:
description: "The ID of the group, which uniquely identifies the group across\
\ all Atlassian products. For example, *952d12c3-5b5b-4d04-bb32-44d383afc4b2*."
nullable: true
type: "string"
name:
description: "The name of the group."
type: "string"
type: "object"
GroupLabel:
additionalProperties: false
description: "A group label."
properties:
text:
description: "The group label name."
type: "string"
title:
description: "The title of the group label."
type: "string"
type:
description: "The type of the group label."
enum:
- "ADMIN"
- "SINGLE"
- "MULTIPLE"
type: "string"
type: "object"
xml:
name: "grouplabel"
GroupName:
additionalProperties: false
description: "Details about a group."
properties:
groupId:
description: "The ID of the group, which uniquely identifies the group across\
\ all Atlassian products. For example, *952d12c3-5b5b-4d04-bb32-44d383afc4b2*."
nullable: true
type: "string"
name:
description: "The name of group."
type: "string"
self:
description: "The URL for these group details."
format: "uri"
readOnly: true
type: "string"
type: "object"
HealthCheckResult:
additionalProperties: false
description: "Jira instance health check results. Deprecated and no longer returned."
properties:
description:
description: "The description of the Jira health check item."
type: "string"
name:
description: "The name of the Jira health check item."
type: "string"
passed:
description: "Whether the Jira health check item passed or failed."
type: "boolean"
type: "object"
Hierarchy:
additionalProperties: false
description: "The project issue type hierarchy."
properties:
baseLevelId:
description: "The ID of the base level. This property is deprecated, see\
\ [Change notice: Removing hierarchy level IDs from next-gen APIs](https://developer.atlassian.com/cloud/jira/platform/change-notice-removing-hierarchy-level-ids-from-next-gen-apis/)."
format: "int64"
type: "integer"
levels:
description: "Details about the hierarchy level."
items:
$ref: "#/components/schemas/SimplifiedHierarchyLevel"
readOnly: true
type: "array"
type: "object"
xml:
name: "hierarchy"
HistoryMetadata:
additionalProperties: true
description: "Details of issue history metadata."
properties:
activityDescription:
description: "The activity described in the history record."
type: "string"
activityDescriptionKey:
description: "The key of the activity described in the history record."
type: "string"
actor:
allOf:
- $ref: "#/components/schemas/HistoryMetadataParticipant"
description: "Details of the user whose action created the history record."
cause:
allOf:
- $ref: "#/components/schemas/HistoryMetadataParticipant"
description: "Details of the cause that triggered the creation the history\
\ record."
description:
description: "The description of the history record."
type: "string"
descriptionKey:
description: "The description key of the history record."
type: "string"
emailDescription:
description: "The description of the email address associated the history\
\ record."
type: "string"
emailDescriptionKey:
description: "The description key of the email address associated the history\
\ record."
type: "string"
extraData:
additionalProperties:
type: "string"
description: "Additional arbitrary information about the history record."
type: "object"
generator:
allOf:
- $ref: "#/components/schemas/HistoryMetadataParticipant"
description: "Details of the system that generated the history record."
type:
description: "The type of the history record."
type: "string"
type: "object"
HistoryMetadataParticipant:
additionalProperties: true
description: "Details of user or system associated with a issue history metadata\
\ item."
properties:
avatarUrl:
description: "The URL to an avatar for the user or system associated with\
\ a history record."
type: "string"
displayName:
description: "The display name of the user or system associated with a history\
\ record."
type: "string"
displayNameKey:
description: "The key of the display name of the user or system associated\
\ with a history record."
type: "string"
id:
description: "The ID of the user or system associated with a history record."
type: "string"
type:
description: "The type of the user or system associated with a history record."
type: "string"
url:
description: "The URL of the user or system associated with a history record."
type: "string"
type: "object"
Icon:
additionalProperties: true
description: "An icon. If no icon is defined:\n\n * for a status icon, no status\
\ icon displays in Jira.\n * for the remote object icon, the default link\
\ icon displays in Jira."
properties:
link:
description: "The URL of the tooltip, used only for a status icon. If not\
\ set, the status icon in Jira is not clickable."
type: "string"
title:
description: "The title of the icon. This is used as follows:\n\n * For\
\ a status icon it is used as a tooltip on the icon. If not set, the status\
\ icon doesn't display a tooltip in Jira.\n * For the remote object icon\
\ it is used in conjunction with the application name to display a tooltip\
\ for the link's icon. The tooltip takes the format \"\\[application name\\\
] icon title\". Blank itemsare excluded from the tooltip title. If both\
\ items are blank, the icon tooltop displays as \"Web Link\"."
type: "string"
url16x16:
description: "The URL of an icon that displays at 16x16 pixel in Jira."
type: "string"
type: "object"
IconBean:
additionalProperties: false
description: "An icon."
properties:
link:
description: "The URL of the tooltip, used only for a status icon."
type: "string"
title:
description: "The title of the icon, for use as a tooltip on the icon."
type: "string"
url16x16:
description: "The URL of a 16x16 pixel icon."
type: "string"
type: "object"
xml:
name: "icon"
IdBean:
additionalProperties: false
properties:
id:
description: "The ID of the permission scheme to associate with the project.\
\ Use the [Get all permission schemes](#api-rest-api-2-permissionscheme-get)\
\ resource to get a list of permission scheme IDs."
format: "int64"
type: "integer"
required:
- "id"
type: "object"
IdOrKeyBean:
additionalProperties: false
properties:
id:
description: "The ID of the referenced item."
format: "int64"
type: "integer"
key:
description: "The key of the referenced item."
type: "string"
type: "object"
IdSearchRequestBean:
additionalProperties: false
properties:
jql:
description: "A [JQL](https://confluence.atlassian.com/x/egORLQ) expression.\
\ Order by clauses are not allowed."
type: "string"
maxResults:
default: 1000
description: "The maximum number of items to return per page."
format: "int32"
type: "integer"
nextPageToken:
description: "The continuation token to fetch the next page. This token\
\ is provided by the response of this endpoint."
type: "string"
type: "object"
IdSearchResults:
additionalProperties: false
description: "Result of your JQL search. Returns a list of issue IDs and a token\
\ to fetch the next page if one exists."
properties:
issueIds:
description: "The list of issue IDs found by the search."
items:
format: "int64"
readOnly: true
type: "integer"
readOnly: true
type: "array"
nextPageToken:
description: "Continuation token to fetch the next page. If this result\
\ represents the last or the only page this token will be null."
readOnly: true
type: "string"
type: "object"
IncludedFields:
additionalProperties: false
properties:
actuallyIncluded:
items:
type: "string"
type: "array"
uniqueItems: true
excluded:
items:
type: "string"
type: "array"
uniqueItems: true
included:
items:
type: "string"
type: "array"
uniqueItems: true
type: "object"
InputStreamSource:
additionalProperties: false
properties:
inputStream:
type: "object"
type: "object"
IssueArchivalSyncRequest:
additionalProperties: false
description: "List of Issue Ids Or Keys that are to be archived or unarchived"
properties:
issueIdsOrKeys:
items:
type: "string"
type: "array"
type: "object"
IssueArchivalSyncResponse:
additionalProperties: false
description: "Number of archived/unarchived issues and list of errors that occurred\
\ during the action, if any."
properties:
errors:
$ref: "#/components/schemas/Errors"
numberOfIssuesUpdated:
format: "int64"
type: "integer"
type: "object"
IssueBean:
additionalProperties: false
description: "Details about an issue."
properties:
changelog:
allOf:
- $ref: "#/components/schemas/PageOfChangelogs"
description: "Details of changelogs associated with the issue."
readOnly: true
editmeta:
allOf:
- $ref: "#/components/schemas/IssueUpdateMetadata"
description: "The metadata for the fields on the issue that can be amended."
readOnly: true
expand:
description: "Expand options that include additional issue details in the\
\ response."
readOnly: true
type: "string"
xml:
attribute: true
fields:
additionalProperties: {}
type: "object"
fieldsToInclude:
$ref: "#/components/schemas/IncludedFields"
id:
description: "The ID of the issue."
readOnly: true
type: "string"
key:
description: "The key of the issue."
readOnly: true
type: "string"
names:
additionalProperties:
readOnly: true
type: "string"
description: "The ID and name of each field present on the issue."
readOnly: true
type: "object"
operations:
allOf:
- $ref: "#/components/schemas/Operations"
description: "The operations that can be performed on the issue."
readOnly: true
properties:
additionalProperties:
readOnly: true
description: "Details of the issue properties identified in the request."
readOnly: true
type: "object"
renderedFields:
additionalProperties:
readOnly: true
description: "The rendered value of each field present on the issue."
readOnly: true
type: "object"
schema:
additionalProperties:
$ref: "#/components/schemas/JsonTypeBean"
description: "The schema describing each field present on the issue."
readOnly: true
type: "object"
self:
description: "The URL of the issue details."
format: "uri"
readOnly: true
type: "string"
transitions:
description: "The transitions that can be performed on the issue."
items:
$ref: "#/components/schemas/IssueTransition"
readOnly: true
type: "array"
versionedRepresentations:
additionalProperties:
additionalProperties:
readOnly: true
readOnly: true
type: "object"
description: "The versions of each field on the issue."
readOnly: true
type: "object"
type: "object"
xml:
name: "issue"
IssueChangelogIds:
additionalProperties: false
description: "A list of changelog IDs."
properties:
changelogIds:
description: "The list of changelog IDs."
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
required:
- "changelogIds"
type: "object"
IssueCommentListRequestBean:
additionalProperties: false
properties:
ids:
description: "The list of comment IDs. A maximum of 1000 IDs can be specified."
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
required:
- "ids"
type: "object"
IssueContextVariable:
description: "An [issue](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#issue)\
\ specified by ID or key. All the fields of the issue object are available\
\ in the Jira expression."
properties:
id:
description: "The issue ID."
format: "int64"
type: "integer"
key:
description: "The issue key."
type: "string"
type:
description: "Type of custom context variable."
type: "string"
required:
- "type"
type: "object"
IssueCreateMetadata:
additionalProperties: false
description: "The wrapper for the issue creation metadata for a list of projects."
properties:
expand:
description: "Expand options that include additional project details in\
\ the response."
readOnly: true
type: "string"
xml:
attribute: true
projects:
description: "List of projects and their issue creation metadata."
items:
$ref: "#/components/schemas/ProjectIssueCreateMetadata"
readOnly: true
type: "array"
type: "object"
IssueEntityProperties:
additionalProperties: false
description: "Lists of issues and entity properties. See [Entity properties](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/)\
\ for more information."
properties:
entitiesIds:
description: "A list of entity property IDs."
items:
format: "int64"
type: "integer"
maxItems: 10000
minItems: 1
type: "array"
uniqueItems: true
properties:
additionalProperties:
$ref: "#/components/schemas/JsonNode"
description: "A list of entity property keys and values."
maxProperties: 10
minProperties: 1
type: "object"
type: "object"
IssueEntityPropertiesForMultiUpdate:
additionalProperties: false
description: "An issue ID with entity property values. See [Entity properties](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/)\
\ for more information."
maxProperties: 100
minProperties: 1
properties:
issueID:
description: "The ID of the issue."
format: "int64"
type: "integer"
properties:
additionalProperties:
$ref: "#/components/schemas/JsonNode"
description: "Entity properties to set on the issue. The maximum length\
\ of an issue property value is 32768 characters."
maxProperties: 10
minProperties: 1
type: "object"
type: "object"
IssueEvent:
additionalProperties: false
description: "Details about an issue event."
properties:
id:
description: "The ID of the event."
format: "int64"
readOnly: true
type: "integer"
name:
description: "The name of the event."
readOnly: true
type: "string"
type: "object"
IssueFieldOption:
additionalProperties: false
description: "Details of the options for a select list issue field."
properties:
config:
$ref: "#/components/schemas/IssueFieldOptionConfiguration"
id:
description: "The unique identifier for the option. This is only unique\
\ within the select field's set of options."
format: "int64"
type: "integer"
properties:
additionalProperties: {}
description: "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."
type: "object"
value:
description: "The option's name, which is displayed in Jira."
type: "string"
required:
- "id"
- "value"
type: "object"
IssueFieldOptionConfiguration:
additionalProperties: false
description: "Details of the projects the option is available in."
properties:
attributes:
description: "DEPRECATED"
items:
enum:
- "notSelectable"
- "defaultValue"
type: "string"
type: "array"
uniqueItems: true
scope:
allOf:
- $ref: "#/components/schemas/IssueFieldOptionScopeBean"
description: "Defines the projects that the option is available in. If the\
\ scope is not defined, then the option is available in all projects."
type: "object"
IssueFieldOptionCreateBean:
additionalProperties: true
properties:
config:
$ref: "#/components/schemas/IssueFieldOptionConfiguration"
properties:
additionalProperties: {}
description: "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."
type: "object"
value:
description: "The option's name, which is displayed in Jira."
type: "string"
required:
- "value"
type: "object"
IssueFieldOptionScopeBean:
additionalProperties: false
properties:
global:
allOf:
- $ref: "#/components/schemas/GlobalScopeBean"
description: "Defines the behavior of the option within the global context.\
\ If this property is set, even if set to an empty object, then the option\
\ is available in all projects."
projects:
description: "DEPRECATED"
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
projects2:
description: "Defines the projects in which the option is available and\
\ the behavior of the option within each project. Specify one object per\
\ project. The behavior of the option in a project context overrides the\
\ behavior in the global context."
items:
$ref: "#/components/schemas/ProjectScopeBean"
type: "array"
uniqueItems: true
type: "object"
IssueFilterForBulkPropertyDelete:
additionalProperties: false
description: "Bulk operation filter details."
properties:
currentValue:
description: "The value of properties to perform the bulk operation on."
entityIds:
description: "List of issues to perform the bulk delete operation on."
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
type: "object"
IssueFilterForBulkPropertySet:
additionalProperties: false
description: "Bulk operation filter details."
properties:
currentValue:
description: "The value of properties to perform the bulk operation on."
entityIds:
description: "List of issues to perform the bulk operation on."
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
hasProperty:
description: "Whether the bulk operation occurs only when the property is\
\ present on or absent from an issue."
type: "boolean"
type: "object"
IssueLimitReportRequest:
additionalProperties: false
properties:
issuesApproachingLimitParams:
additionalProperties:
format: "int32"
type: "integer"
description: "A list of fields and their respective approaching limit threshold.\
\ Required for querying issues approaching limits. Optional for querying\
\ issues breaching limits. Accepted fields are: `comment`, `worklog`,\
\ `attachment`, `remoteIssueLinks`, and `issuelinks`. Example: `{\"issuesApproachingLimitParams\"\
: {\"comment\": 4500, \"attachment\": 1800}}`"
type: "object"
type: "object"
IssueLimitReportResponseBean:
additionalProperties: false
properties:
issuesApproachingLimit:
additionalProperties:
additionalProperties:
format: "int64"
type: "integer"
type: "object"
description: "A list of ids of issues approaching the limit, and their field\
\ count"
type: "object"
issuesBreachingLimit:
additionalProperties:
additionalProperties:
format: "int64"
type: "integer"
type: "object"
description: "A list of ids of issues breaching the limit, and their field\
\ count"
type: "object"
limits:
additionalProperties:
format: "int32"
type: "integer"
description: "The fields and their defined limits"
type: "object"
type: "object"
IssueLink:
additionalProperties: false
description: "Details of a link between issues."
properties:
id:
description: "The ID of the issue link."
readOnly: true
type: "string"
inwardIssue:
allOf:
- $ref: "#/components/schemas/LinkedIssue"
description: "Provides details about the linked issue. If presenting this\
\ link in a user interface, use the `inward` field of the issue link type\
\ to label the link."
outwardIssue:
allOf:
- $ref: "#/components/schemas/LinkedIssue"
description: "Provides details about the linked issue. If presenting this\
\ link in a user interface, use the `outward` field of the issue link\
\ type to label the link."
self:
description: "The URL of the issue link."
format: "uri"
readOnly: true
type: "string"
type:
allOf:
- $ref: "#/components/schemas/IssueLinkType"
description: "The type of link between the issues."
required:
- "inwardIssue"
- "outwardIssue"
- "type"
type: "object"
xml:
name: "issueLinks"
IssueLinkType:
additionalProperties: false
description: "This object is used as follows:\n\n * In the [ issueLink](#api-rest-api-2-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-2-issueLinkType-get).\n\
\ * In the [ issueLinkType](#api-rest-api-2-issueLinkType-post) resource\
\ it defines and reports on issue link types."
properties:
id:
description: "The ID of the issue link type and is used as follows:\n\n\
\ * In the [ issueLink](#api-rest-api-2-issueLink-post) resource it is\
\ the type of issue link. Required on create when `name` isn't provided.\
\ Otherwise, read only.\n * In the [ issueLinkType](#api-rest-api-2-issueLinkType-post)\
\ resource it is read only."
type: "string"
inward:
description: "The description of the issue link type inward link and is\
\ used as follows:\n\n * In the [ issueLink](#api-rest-api-2-issueLink-post)\
\ resource it is read only.\n * In the [ issueLinkType](#api-rest-api-2-issueLinkType-post)\
\ resource it is required on create and optional on update. Otherwise,\
\ read only."
type: "string"
name:
description: "The name of the issue link type and is used as follows:\n\n\
\ * In the [ issueLink](#api-rest-api-2-issueLink-post) resource it is\
\ the type of issue link. Required on create when `id` isn't provided.\
\ Otherwise, read only.\n * In the [ issueLinkType](#api-rest-api-2-issueLinkType-post)\
\ resource it is required on create and optional on update. Otherwise,\
\ read only."
type: "string"
outward:
description: "The description of the issue link type outward link and is\
\ used as follows:\n\n * In the [ issueLink](#api-rest-api-2-issueLink-post)\
\ resource it is read only.\n * In the [ issueLinkType](#api-rest-api-2-issueLinkType-post)\
\ resource it is required on create and optional on update. Otherwise,\
\ read only."
type: "string"
self:
description: "The URL of the issue link type. Read only."
format: "uri"
readOnly: true
type: "string"
type: "object"
IssueLinkTypes:
additionalProperties: false
description: "A list of issue link type beans."
properties:
issueLinkTypes:
description: "The issue link type bean."
items:
$ref: "#/components/schemas/IssueLinkType"
readOnly: true
type: "array"
xml:
name: "issueLinkTypes"
type: "object"
xml:
name: "issueLinkTypes"
IssueList:
additionalProperties: false
description: "A list of issue IDs."
properties:
issueIds:
description: "The list of issue IDs."
items:
type: "string"
type: "array"
required:
- "issueIds"
type: "object"
IssueMatches:
additionalProperties: false
description: "A list of matched issues or errors for each JQL query, in the\
\ order the JQL queries were passed."
properties:
matches:
items:
$ref: "#/components/schemas/IssueMatchesForJQL"
type: "array"
required:
- "matches"
type: "object"
IssueMatchesForJQL:
additionalProperties: false
description: "A list of the issues matched to a JQL query or details of errors\
\ encountered during matching."
properties:
errors:
description: "A list of errors."
items:
description: "A list of errors."
type: "string"
type: "array"
uniqueItems: true
matchedIssues:
description: "A list of issue IDs."
items:
description: "A list of issue IDs."
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
required:
- "errors"
- "matchedIssues"
type: "object"
IssuePickerSuggestions:
additionalProperties: false
description: "A list of issues suggested for use in auto-completion."
properties:
sections:
description: "A list of issues for an issue type suggested for use in auto-completion."
items:
$ref: "#/components/schemas/IssuePickerSuggestionsIssueType"
readOnly: true
type: "array"
type: "object"
IssuePickerSuggestionsIssueType:
additionalProperties: false
description: "A type of issue suggested for use in auto-completion."
properties:
id:
description: "The ID of the type of issues suggested for use in auto-completion."
readOnly: true
type: "string"
issues:
description: "A list of issues suggested for use in auto-completion."
items:
$ref: "#/components/schemas/SuggestedIssue"
readOnly: true
type: "array"
label:
description: "The label of the type of issues suggested for use in auto-completion."
readOnly: true
type: "string"
msg:
description: "If no issue suggestions are found, returns a message indicating\
\ no suggestions were found,"
readOnly: true
type: "string"
sub:
description: "If issue suggestions are found, returns a message indicating\
\ the number of issues suggestions found and returned."
readOnly: true
type: "string"
type: "object"
IssueSecurityLevelMember:
additionalProperties: false
description: "Issue security level member."
properties:
holder:
allOf:
- $ref: "#/components/schemas/PermissionHolder"
description: "The user or group being granted the permission. It consists\
\ of a `type` and a type-dependent `parameter`. See [Holder object](../api-group-permission-schemes/#holder-object)\
\ in *Get all permission schemes* for more information."
id:
description: "The ID of the issue security level member."
format: "int64"
type: "integer"
issueSecurityLevelId:
description: "The ID of the issue security level."
format: "int64"
type: "integer"
managed:
type: "boolean"
writeOnly: true
required:
- "holder"
- "id"
- "issueSecurityLevelId"
type: "object"
IssueSecuritySchemeToProjectMapping:
additionalProperties: true
description: "Details about an project using security scheme mapping."
properties:
issueSecuritySchemeId:
readOnly: true
type: "string"
projectId:
readOnly: true
type: "string"
type: "object"
IssueTransition:
additionalProperties: true
description: "Details of an issue transition."
properties:
expand:
description: "Expand options that include additional transition details\
\ in the response."
readOnly: true
type: "string"
fields:
additionalProperties:
$ref: "#/components/schemas/FieldMetadata"
description: "Details of the fields associated with the issue transition\
\ screen. Use this information to populate `fields` and `update` in a\
\ transition request."
readOnly: true
type: "object"
hasScreen:
description: "Whether there is a screen associated with the issue transition."
readOnly: true
type: "boolean"
id:
description: "The ID of the issue transition. Required when specifying a\
\ transition to undertake."
type: "string"
isAvailable:
description: "Whether the transition is available to be performed."
readOnly: true
type: "boolean"
isConditional:
description: "Whether the issue has to meet criteria before the issue transition\
\ is applied."
readOnly: true
type: "boolean"
isGlobal:
description: "Whether the issue transition is global, that is, the transition\
\ is applied to issues regardless of their status."
readOnly: true
type: "boolean"
isInitial:
description: "Whether this is the initial issue transition for the workflow."
readOnly: true
type: "boolean"
looped:
type: "boolean"
name:
description: "The name of the issue transition."
readOnly: true
type: "string"
to:
allOf:
- $ref: "#/components/schemas/StatusDetails"
description: "Details of the issue status after the transition."
readOnly: true
type: "object"
IssueTypeCreateBean:
additionalProperties: false
properties:
description:
description: "The description of the issue type."
type: "string"
hierarchyLevel:
description: "The hierarchy level of the issue type. Use:\n\n * `-1` for\
\ Subtask.\n * `0` for Base.\n\nDefaults to `0`."
format: "int32"
type: "integer"
name:
description: "The unique name for the issue type. The maximum length is\
\ 60 characters."
type: "string"
type:
description: "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.\n\nWhether the issue type is `subtype` or `standard`. Defaults\
\ to `standard`."
enum:
- "subtask"
- "standard"
type: "string"
required:
- "name"
type: "object"
IssueTypeDetails:
additionalProperties: false
description: "Details about an issue type."
properties:
avatarId:
description: "The ID of the issue type's avatar."
format: "int64"
readOnly: true
type: "integer"
description:
description: "The description of the issue type."
readOnly: true
type: "string"
entityId:
description: "Unique ID for next-gen projects."
format: "uuid"
readOnly: true
type: "string"
hierarchyLevel:
description: "Hierarchy level of the issue type."
format: "int32"
readOnly: true
type: "integer"
iconUrl:
description: "The URL of the issue type's avatar."
readOnly: true
type: "string"
id:
description: "The ID of the issue type."
readOnly: true
type: "string"
name:
description: "The name of the issue type."
readOnly: true
type: "string"
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "Details of the next-gen projects the issue type is available\
\ in."
readOnly: true
self:
description: "The URL of these issue type details."
readOnly: true
type: "string"
subtask:
description: "Whether this issue type is used to create subtasks."
readOnly: true
type: "boolean"
type: "object"
IssueTypeIds:
additionalProperties: false
description: "The list of issue type IDs."
properties:
issueTypeIds:
description: "The list of issue type IDs."
items:
type: "string"
writeOnly: true
type: "array"
writeOnly: true
required:
- "issueTypeIds"
type: "object"
IssueTypeIdsToRemove:
additionalProperties: false
description: "The list of issue type IDs to be removed from the field configuration\
\ scheme."
properties:
issueTypeIds:
description: "The list of issue type IDs. Must contain unique values not\
\ longer than 255 characters and not be empty. Maximum of 100 IDs."
items:
type: "string"
type: "array"
required:
- "issueTypeIds"
type: "object"
IssueTypeInfo:
additionalProperties: false
description: "Details of an issue type."
properties:
avatarId:
description: "The avatar of the issue type."
format: "int64"
readOnly: true
type: "integer"
id:
description: "The ID of the issue type."
format: "int64"
readOnly: true
type: "integer"
name:
description: "The name of the issue type."
readOnly: true
type: "string"
type: "object"
IssueTypeIssueCreateMetadata:
additionalProperties: false
description: "Details of the issue creation metadata for an issue type."
properties:
avatarId:
description: "The ID of the issue type's avatar."
format: "int64"
readOnly: true
type: "integer"
description:
description: "The description of the issue type."
readOnly: true
type: "string"
entityId:
description: "Unique ID for next-gen projects."
format: "uuid"
readOnly: true
type: "string"
expand:
description: "Expand options that include additional issue type metadata\
\ details in the response."
readOnly: true
type: "string"
xml:
attribute: true
fields:
additionalProperties:
$ref: "#/components/schemas/FieldMetadata"
description: "List of the fields available when creating an issue for the\
\ issue type."
readOnly: true
type: "object"
hierarchyLevel:
description: "Hierarchy level of the issue type."
format: "int32"
readOnly: true
type: "integer"
iconUrl:
description: "The URL of the issue type's avatar."
readOnly: true
type: "string"
id:
description: "The ID of the issue type."
readOnly: true
type: "string"
name:
description: "The name of the issue type."
readOnly: true
type: "string"
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "Details of the next-gen projects the issue type is available\
\ in."
readOnly: true
self:
description: "The URL of these issue type details."
readOnly: true
type: "string"
subtask:
description: "Whether this issue type is used to create subtasks."
readOnly: true
type: "boolean"
type: "object"
IssueTypeScheme:
additionalProperties: false
description: "Details of an issue type scheme."
properties:
defaultIssueTypeId:
description: "The ID of the default issue type of the issue type scheme."
type: "string"
description:
description: "The description of the issue type scheme."
type: "string"
id:
description: "The ID of the issue type scheme."
type: "string"
isDefault:
description: "Whether the issue type scheme is the default."
type: "boolean"
name:
description: "The name of the issue type scheme."
type: "string"
required:
- "id"
- "name"
type: "object"
IssueTypeSchemeDetails:
additionalProperties: false
description: "Details of an issue type scheme and its associated issue types."
properties:
defaultIssueTypeId:
description: "The ID of the default issue type of the issue type scheme.\
\ This ID must be included in `issueTypeIds`."
type: "string"
writeOnly: true
description:
description: "The description of the issue type scheme. The maximum length\
\ is 4000 characters."
type: "string"
writeOnly: true
issueTypeIds:
description: "The list of issue types IDs of the issue type scheme. At least\
\ one standard issue type ID is required."
items:
type: "string"
writeOnly: true
type: "array"
writeOnly: true
name:
description: "The name of the issue type scheme. The name must be unique.\
\ The maximum length is 255 characters."
type: "string"
writeOnly: true
required:
- "issueTypeIds"
- "name"
type: "object"
IssueTypeSchemeID:
additionalProperties: false
description: "The ID of an issue type scheme."
properties:
issueTypeSchemeId:
description: "The ID of the issue type scheme."
readOnly: true
type: "string"
required:
- "issueTypeSchemeId"
type: "object"
IssueTypeSchemeMapping:
additionalProperties: false
description: "Issue type scheme item."
properties:
issueTypeId:
description: "The ID of the issue type."
type: "string"
issueTypeSchemeId:
description: "The ID of the issue type scheme."
type: "string"
required:
- "issueTypeId"
- "issueTypeSchemeId"
type: "object"
IssueTypeSchemeProjectAssociation:
additionalProperties: false
description: "Details of the association between an issue type scheme and project."
properties:
issueTypeSchemeId:
description: "The ID of the issue type scheme."
type: "string"
writeOnly: true
projectId:
description: "The ID of the project."
type: "string"
writeOnly: true
required:
- "issueTypeSchemeId"
- "projectId"
type: "object"
IssueTypeSchemeProjects:
additionalProperties: false
description: "Issue type scheme with a list of the projects that use it."
properties:
issueTypeScheme:
allOf:
- $ref: "#/components/schemas/IssueTypeScheme"
description: "Details of an issue type scheme."
projectIds:
description: "The IDs of the projects using the issue type scheme."
items:
type: "string"
type: "array"
required:
- "issueTypeScheme"
- "projectIds"
type: "object"
IssueTypeSchemeUpdateDetails:
additionalProperties: false
description: "Details of the name, description, and default issue type for an\
\ issue type scheme."
properties:
defaultIssueTypeId:
description: "The ID of the default issue type of the issue type scheme."
type: "string"
writeOnly: true
description:
description: "The description of the issue type scheme. The maximum length\
\ is 4000 characters."
type: "string"
writeOnly: true
name:
description: "The name of the issue type scheme. The name must be unique.\
\ The maximum length is 255 characters."
type: "string"
writeOnly: true
type: "object"
IssueTypeScreenScheme:
additionalProperties: false
description: "Details of an issue type screen scheme."
properties:
description:
description: "The description of the issue type screen scheme."
type: "string"
id:
description: "The ID of the issue type screen scheme."
type: "string"
name:
description: "The name of the issue type screen scheme."
type: "string"
required:
- "id"
- "name"
type: "object"
IssueTypeScreenSchemeDetails:
additionalProperties: false
description: "The details of an issue type screen scheme."
properties:
description:
description: "The description of the issue type screen scheme. The maximum\
\ length is 255 characters."
type: "string"
writeOnly: true
issueTypeMappings:
description: "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."
items:
$ref: "#/components/schemas/IssueTypeScreenSchemeMapping"
type: "array"
writeOnly: true
name:
description: "The name of the issue type screen scheme. The name must be\
\ unique. The maximum length is 255 characters."
type: "string"
writeOnly: true
required:
- "issueTypeMappings"
- "name"
type: "object"
IssueTypeScreenSchemeId:
additionalProperties: false
description: "The ID of an issue type screen scheme."
properties:
id:
description: "The ID of the issue type screen scheme."
readOnly: true
type: "string"
required:
- "id"
type: "object"
IssueTypeScreenSchemeItem:
additionalProperties: false
description: "The screen scheme for an issue type."
properties:
issueTypeId:
description: "The ID of the issue type or *default*. Only issue types used\
\ in classic projects are accepted. When creating an issue screen scheme,\
\ an entry for *default* must be provided and defines the mapping for\
\ all issue types without a screen scheme. Otherwise, a *default* entry\
\ can't be provided."
type: "string"
issueTypeScreenSchemeId:
description: "The ID of the issue type screen scheme."
type: "string"
screenSchemeId:
description: "The ID of the screen scheme."
type: "string"
required:
- "issueTypeId"
- "issueTypeScreenSchemeId"
- "screenSchemeId"
type: "object"
IssueTypeScreenSchemeMapping:
additionalProperties: false
description: "The IDs of the screen schemes for the issue type IDs."
properties:
issueTypeId:
description: "The ID of the issue type or *default*. Only issue types used\
\ in classic projects are accepted. An entry for *default* must be provided\
\ and defines the mapping for all issue types without a screen scheme."
type: "string"
writeOnly: true
screenSchemeId:
description: "The ID of the screen scheme. Only screen schemes used in classic\
\ projects are accepted."
type: "string"
writeOnly: true
required:
- "issueTypeId"
- "screenSchemeId"
type: "object"
writeOnly: true
IssueTypeScreenSchemeMappingDetails:
additionalProperties: false
description: "A list of issue type screen scheme mappings."
properties:
issueTypeMappings:
description: "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."
items:
$ref: "#/components/schemas/IssueTypeScreenSchemeMapping"
type: "array"
writeOnly: true
required:
- "issueTypeMappings"
type: "object"
IssueTypeScreenSchemeProjectAssociation:
additionalProperties: false
description: "Associated issue type screen scheme and project."
properties:
issueTypeScreenSchemeId:
description: "The ID of the issue type screen scheme."
type: "string"
writeOnly: true
projectId:
description: "The ID of the project."
type: "string"
writeOnly: true
type: "object"
IssueTypeScreenSchemeUpdateDetails:
additionalProperties: false
description: "Details of an issue type screen scheme."
properties:
description:
description: "The description of the issue type screen scheme. The maximum\
\ length is 255 characters."
type: "string"
writeOnly: true
name:
description: "The name of the issue type screen scheme. The name must be\
\ unique. The maximum length is 255 characters."
type: "string"
writeOnly: true
type: "object"
IssueTypeScreenSchemesProjects:
additionalProperties: false
description: "Issue type screen scheme with a list of the projects that use\
\ it."
properties:
issueTypeScreenScheme:
allOf:
- $ref: "#/components/schemas/IssueTypeScreenScheme"
description: "Details of an issue type screen scheme."
projectIds:
description: "The IDs of the projects using the issue type screen scheme."
items:
type: "string"
type: "array"
required:
- "issueTypeScreenScheme"
- "projectIds"
type: "object"
IssueTypeToContextMapping:
additionalProperties: false
description: "Mapping of an issue type to a context."
properties:
contextId:
description: "The ID of the context."
type: "string"
isAnyIssueType:
description: "Whether the context is mapped to any issue type."
type: "boolean"
issueTypeId:
description: "The ID of the issue type."
type: "string"
required:
- "contextId"
type: "object"
IssueTypeUpdateBean:
additionalProperties: false
properties:
avatarId:
description: "The ID of an issue type avatar."
format: "int64"
type: "integer"
description:
description: "The description of the issue type."
type: "string"
name:
description: "The unique name for the issue type. The maximum length is\
\ 60 characters."
type: "string"
type: "object"
IssueTypeWithStatus:
additionalProperties: false
description: "Status details for an issue type."
properties:
id:
description: "The ID of the issue type."
readOnly: true
type: "string"
name:
description: "The name of the issue type."
readOnly: true
type: "string"
self:
description: "The URL of the issue type's status details."
readOnly: true
type: "string"
statuses:
description: "List of status details for the issue type."
items:
$ref: "#/components/schemas/StatusDetails"
readOnly: true
type: "array"
subtask:
description: "Whether this issue type represents subtasks."
readOnly: true
type: "boolean"
required:
- "id"
- "name"
- "self"
- "statuses"
- "subtask"
type: "object"
IssueTypeWorkflowMapping:
additionalProperties: false
description: "Details about the mapping between an issue type and a workflow."
properties:
issueType:
description: "The ID of the issue type. Not required if updating the issue\
\ type-workflow mapping."
type: "string"
updateDraftIfNeeded:
description: "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."
type: "boolean"
workflow:
description: "The name of the workflow."
type: "string"
type: "object"
IssueTypesWorkflowMapping:
additionalProperties: false
description: "Details about the mapping between issue types and a workflow."
properties:
defaultMapping:
description: "Whether the workflow is the default workflow for the workflow\
\ scheme."
type: "boolean"
issueTypes:
description: "The list of issue type IDs."
items:
type: "string"
type: "array"
updateDraftIfNeeded:
description: "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`."
type: "boolean"
workflow:
description: "The name of the workflow. Optional if updating the workflow-issue\
\ types mapping."
type: "string"
type: "object"
IssueUpdateDetails:
additionalProperties: true
description: "Details of an issue update request."
properties:
fields:
additionalProperties: {}
description: "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`."
type: "object"
historyMetadata:
allOf:
- $ref: "#/components/schemas/HistoryMetadata"
description: "Additional issue history details."
properties:
description: "Details of issue properties to be add or update."
items:
$ref: "#/components/schemas/EntityProperty"
type: "array"
transition:
allOf:
- $ref: "#/components/schemas/IssueTransition"
description: "Details of a transition. Required when performing a transition,\
\ optional when creating or editing an issue."
update:
additionalProperties:
items:
$ref: "#/components/schemas/FieldUpdateOperation"
type: "array"
description: "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`."
type: "object"
type: "object"
IssueUpdateMetadata:
description: "A list of editable field details."
properties:
fields:
additionalProperties:
$ref: "#/components/schemas/FieldMetadata"
readOnly: true
type: "object"
type: "object"
IssuesAndJQLQueries:
additionalProperties: false
description: "List of issues and JQL queries."
properties:
issueIds:
description: "A list of issue IDs."
items:
description: "A list of issue IDs."
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
jqls:
description: "A list of JQL queries."
items:
description: "A list of JQL queries."
type: "string"
type: "array"
required:
- "issueIds"
- "jqls"
type: "object"
IssuesJqlMetaDataBean:
additionalProperties: false
description: "The description of the page of issues loaded by the provided JQL\
\ query."
properties:
count:
description: "The number of issues that were loaded in this evaluation."
format: "int32"
type: "integer"
maxResults:
description: "The maximum number of issues that could be loaded in this\
\ evaluation."
format: "int32"
type: "integer"
startAt:
description: "The index of the first issue."
format: "int64"
type: "integer"
totalCount:
description: "The total number of issues the JQL returned."
format: "int64"
type: "integer"
validationWarnings:
description: "Any warnings related to the JQL query. Present only if the\
\ validation mode was set to `warn`."
items:
type: "string"
type: "array"
required:
- "count"
- "maxResults"
- "startAt"
- "totalCount"
type: "object"
IssuesMetaBean:
additionalProperties: false
description: "Meta data describing the `issues` context variable."
properties:
jql:
$ref: "#/components/schemas/IssuesJqlMetaDataBean"
type: "object"
IssuesUpdateBean:
additionalProperties: true
properties:
issueUpdates:
items:
$ref: "#/components/schemas/IssueUpdateDetails"
type: "array"
type: "object"
JQLPersonalDataMigrationRequest:
additionalProperties: false
description: "The JQL queries to be converted."
properties:
queryStrings:
description: "A list of queries with user identifiers. Maximum of 100 queries."
items:
type: "string"
type: "array"
type: "object"
JQLQueryWithUnknownUsers:
additionalProperties: false
description: "JQL queries that contained users that could not be found"
properties:
convertedQuery:
description: "The converted query, with accountIDs instead of user identifiers,\
\ or 'unknown' for users that could not be found"
type: "string"
originalQuery:
description: "The original query, for reference"
type: "string"
type: "object"
JQLReferenceData:
additionalProperties: false
description: "Lists of JQL reference data."
properties:
jqlReservedWords:
description: "List of JQL query reserved words."
items:
type: "string"
type: "array"
visibleFieldNames:
description: "List of fields usable in JQL queries."
items:
$ref: "#/components/schemas/FieldReferenceData"
type: "array"
visibleFunctionNames:
description: "List of functions usable in JQL queries."
items:
$ref: "#/components/schemas/FunctionReferenceData"
type: "array"
type: "object"
JexpIssues:
additionalProperties: false
description: "The JQL specifying the issues available in the evaluated Jira\
\ expression under the `issues` context variable."
properties:
jql:
allOf:
- $ref: "#/components/schemas/JexpJqlIssues"
description: "The JQL query that specifies the set of issues available in\
\ the Jira expression."
type: "object"
JexpJqlIssues:
additionalProperties: false
description: "The JQL specifying the issues available in the evaluated Jira\
\ expression under the `issues` context variable. Not all issues returned\
\ by the JQL query are loaded, only those described by the `startAt` and `maxResults`\
\ properties. To determine whether it is necessary to iterate to ensure all\
\ the issues returned by the JQL query are evaluated, inspect `meta.issues.jql.count`\
\ in the response."
properties:
maxResults:
description: "The maximum number of issues to return from the JQL query.\
\ Inspect `meta.issues.jql.maxResults` in the response to ensure the maximum\
\ value has not been exceeded."
format: "int32"
type: "integer"
query:
description: "The JQL query."
type: "string"
startAt:
description: "The index of the first issue to return from the JQL query."
format: "int64"
type: "integer"
validation:
default: "strict"
description: "Determines how to validate the JQL query and treat the validation\
\ results."
enum:
- "strict"
- "warn"
- "none"
type: "string"
type: "object"
JiraExpressionAnalysis:
additionalProperties: false
description: "Details about the analysed Jira expression."
properties:
complexity:
$ref: "#/components/schemas/JiraExpressionComplexity"
errors:
description: "A list of validation errors. Not included if the expression\
\ is valid."
items:
$ref: "#/components/schemas/JiraExpressionValidationError"
type: "array"
expression:
description: "The analysed expression."
type: "string"
type:
description: "EXPERIMENTAL. The inferred type of the expression."
type: "string"
valid:
description: "Whether the expression is valid and the interpreter will evaluate\
\ it. Note that the expression may fail at runtime (for example, if it\
\ executes too many expensive operations)."
type: "boolean"
required:
- "expression"
- "valid"
type: "object"
JiraExpressionComplexity:
additionalProperties: false
description: "Details about the complexity of the analysed Jira expression."
properties:
expensiveOperations:
description: "Information that can be used to determine how many [expensive\
\ operations](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/#expensive-operations)\
\ the evaluation of the expression will perform. This information may\
\ be a formula or number. For example:\n\n * `issues.map(i => i.comments)`\
\ performs as many expensive operations as there are issues on the issues\
\ list. So this parameter returns `N`, where `N` is the size of issue\
\ list.\n * `new Issue(10010).comments` gets comments for one issue,\
\ so its complexity is `2` (`1` to retrieve issue 10010 from the database\
\ plus `1` to get its comments)."
type: "string"
variables:
additionalProperties:
description: "Variables used in the formula, mapped to the parts of the\
\ expression they refer to."
type: "string"
description: "Variables used in the formula, mapped to the parts of the\
\ expression they refer to."
type: "object"
required:
- "expensiveOperations"
type: "object"
JiraExpressionEvalContextBean:
additionalProperties: false
properties:
board:
description: "The ID of the board that is available under the `board` variable\
\ when evaluating the expression."
format: "int64"
type: "integer"
custom:
description: "Custom context variables and their types. These variable types\
\ are available for use in a custom context:\n\n * `user`: A [user](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#user)\
\ specified as an Atlassian account ID.\n * `issue`: An [issue](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#issue)\
\ specified by ID or key. All the fields of the issue object are available\
\ in the Jira expression.\n * `json`: A JSON object containing custom\
\ content.\n * `list`: A JSON list of `user`, `issue`, or `json` variable\
\ types."
items:
$ref: "#/components/schemas/CustomContextVariable"
type: "array"
customerRequest:
description: "The ID of the customer request that is available under the\
\ `customerRequest` variable when evaluating the expression. This is the\
\ same as the ID of the underlying Jira issue, but the customer request\
\ context variable will have a different type."
format: "int64"
type: "integer"
issue:
allOf:
- $ref: "#/components/schemas/IdOrKeyBean"
description: "The issue that is available under the `issue` variable when\
\ evaluating the expression."
issues:
allOf:
- $ref: "#/components/schemas/JexpIssues"
description: "The collection of issues that is available under the `issues`\
\ variable when evaluating the expression."
project:
allOf:
- $ref: "#/components/schemas/IdOrKeyBean"
description: "The project that is available under the `project` variable\
\ when evaluating the expression."
serviceDesk:
description: "The ID of the service desk that is available under the `serviceDesk`\
\ variable when evaluating the expression."
format: "int64"
type: "integer"
sprint:
description: "The ID of the sprint that is available under the `sprint`\
\ variable when evaluating the expression."
format: "int64"
type: "integer"
type: "object"
JiraExpressionEvalRequestBean:
additionalProperties: false
properties:
context:
allOf:
- $ref: "#/components/schemas/JiraExpressionEvalContextBean"
description: "The context in which the Jira expression is evaluated."
expression:
description: "The Jira expression to evaluate."
example: "{ key: issue.key, type: issue.issueType.name, links: issue.links.map(link\
\ => link.linkedIssue.id) }"
type: "string"
required:
- "expression"
type: "object"
JiraExpressionEvaluationMetaDataBean:
additionalProperties: false
properties:
complexity:
allOf:
- $ref: "#/components/schemas/JiraExpressionsComplexityBean"
description: "Contains information about the expression complexity. For\
\ example, the number of steps it took to evaluate the expression."
issues:
allOf:
- $ref: "#/components/schemas/IssuesMetaBean"
description: "Contains information about the `issues` variable in the context.\
\ For example, is the issues were loaded with JQL, information about the\
\ page will be included here."
type: "object"
JiraExpressionForAnalysis:
additionalProperties: false
description: "Details of Jira expressions for analysis."
properties:
contextVariables:
additionalProperties:
description: "Context variables and their types. The type checker assumes\
\ that common 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."
type: "string"
description: "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."
type: "object"
expressions:
description: "The list of Jira expressions to analyse."
example: "issues.map(issue => issue.properties['property_key'])"
items:
description: "The list of Jira expressions to analyse."
example: "issues.map(issue => issue.properties['property_key'])"
type: "string"
type: "array"
required:
- "expressions"
type: "object"
JiraExpressionResult:
additionalProperties: false
description: "The result of evaluating a Jira expression."
properties:
meta:
allOf:
- $ref: "#/components/schemas/JiraExpressionEvaluationMetaDataBean"
description: "Contains various characteristics of the performed expression\
\ evaluation."
value:
description: "The value of the evaluated expression. It may be a primitive\
\ JSON value or a Jira REST API object. (Some expressions do not produce\
\ any meaningful results—for example, an expression that returns a lambda\
\ function—if that's the case a simple string representation is returned.\
\ These string representations should not be relied upon and may change\
\ without notice.)"
required:
- "value"
type: "object"
JiraExpressionValidationError:
additionalProperties: false
description: "Details about syntax and type errors. The error details apply\
\ to the entire expression, unless the object includes:\n\n * `line` and\
\ `column`\n * `expression`"
properties:
column:
description: "The text column in which the error occurred."
format: "int32"
type: "integer"
expression:
description: "The part of the expression in which the error occurred."
type: "string"
line:
description: "The text line in which the error occurred."
format: "int32"
type: "integer"
message:
description: "Details about the error."
example: "!, -, typeof, (, IDENTIFIER, null, true, false, NUMBER, STRING,\
\ TEMPLATE_LITERAL, new, [ or { expected, > encountered."
type: "string"
type:
description: "The error type."
enum:
- "syntax"
- "type"
- "other"
type: "string"
required:
- "message"
- "type"
type: "object"
JiraExpressionsAnalysis:
additionalProperties: false
description: "Details about the analysed Jira expression."
properties:
results:
description: "The results of Jira expressions analysis."
items:
$ref: "#/components/schemas/JiraExpressionAnalysis"
type: "array"
required:
- "results"
type: "object"
JiraExpressionsComplexityBean:
additionalProperties: false
properties:
beans:
allOf:
- $ref: "#/components/schemas/JiraExpressionsComplexityValueBean"
description: "The number of Jira REST API beans returned in the response."
expensiveOperations:
allOf:
- $ref: "#/components/schemas/JiraExpressionsComplexityValueBean"
description: "The number of expensive operations executed while evaluating\
\ the expression. Expensive operations are those that load additional\
\ data, such as entity properties, comments, or custom fields."
primitiveValues:
allOf:
- $ref: "#/components/schemas/JiraExpressionsComplexityValueBean"
description: "The number of primitive values returned in the response."
steps:
allOf:
- $ref: "#/components/schemas/JiraExpressionsComplexityValueBean"
description: "The number of steps it took to evaluate the expression, where\
\ a step is a high-level operation performed by the expression. A step\
\ is an operation such as arithmetic, accessing a property, accessing\
\ a context variable, or calling a function."
required:
- "beans"
- "expensiveOperations"
- "primitiveValues"
- "steps"
type: "object"
JiraExpressionsComplexityValueBean:
additionalProperties: false
properties:
limit:
description: "The maximum allowed complexity. The evaluation will fail if\
\ this value is exceeded."
format: "int32"
type: "integer"
value:
description: "The complexity value of the current expression."
format: "int32"
type: "integer"
required:
- "limit"
- "value"
type: "object"
JiraStatus:
additionalProperties: false
description: "Details of a status."
properties:
description:
description: "The description of the status."
type: "string"
id:
description: "The ID of the status."
type: "string"
name:
description: "The name of the status."
type: "string"
scope:
$ref: "#/components/schemas/StatusScope"
statusCategory:
description: "The category of the status."
enum:
- "TODO"
- "IN_PROGRESS"
- "DONE"
type: "string"
usages:
description: "Projects and issue types where the status is used. Only available\
\ if the `usages` expand is requested."
items:
$ref: "#/components/schemas/ProjectIssueTypes"
type: "array"
uniqueItems: true
workflowUsages:
description: "The workflows that use this status. Only available if the\
\ `workflowUsages` expand is requested."
items:
$ref: "#/components/schemas/WorkflowUsages"
type: "array"
uniqueItems: true
type: "object"
JiraWorkflow:
additionalProperties: false
description: "Details of a workflow."
properties:
description:
description: "The description of the workflow."
type: "string"
id:
description: "The ID of the workflow."
type: "string"
isEditable:
description: "Indicates if the workflow can be edited."
type: "boolean"
name:
description: "The name of the workflow."
type: "string"
scope:
$ref: "#/components/schemas/WorkflowScope"
startPointLayout:
$ref: "#/components/schemas/WorkflowLayout"
statuses:
description: "The statuses referenced in this workflow."
items:
$ref: "#/components/schemas/WorkflowReferenceStatus"
type: "array"
uniqueItems: true
taskId:
description: "If there is a current [asynchronous task](#async-operations)\
\ operation for this workflow."
nullable: true
type: "string"
transitions:
description: "The transitions of the workflow."
items:
$ref: "#/components/schemas/WorkflowTransitions"
type: "array"
uniqueItems: true
usages:
description: "Use the optional `workflows.usages` expand to get additional\
\ information about the projects and issue types associated with the requested\
\ workflows."
items:
$ref: "#/components/schemas/ProjectIssueTypes"
type: "array"
uniqueItems: true
version:
$ref: "#/components/schemas/DocumentVersion"
type: "object"
JiraWorkflowStatus:
additionalProperties: false
description: "Details of a status."
properties:
description:
description: "The description of the status."
type: "string"
id:
description: "The ID of the status."
type: "string"
name:
description: "The name of the status."
type: "string"
scope:
$ref: "#/components/schemas/WorkflowScope"
statusCategory:
description: "The category of the status."
enum:
- "TODO"
- "IN_PROGRESS"
- "DONE"
type: "string"
statusReference:
description: "The reference of the status."
type: "string"
usages:
description: "The `statuses.usages` expand is an optional parameter that\
\ can be used when reading and updating statuses in Jira. It provides\
\ additional information about the projects and issue types associated\
\ with the requested statuses."
items:
$ref: "#/components/schemas/ProjectIssueTypes"
type: "array"
uniqueItems: true
type: "object"
JqlFunctionPrecomputationBean:
additionalProperties: false
description: "Jql function precomputation."
properties:
arguments:
description: "The list of arguments function was invoked with."
items:
readOnly: true
type: "string"
readOnly: true
type: "array"
created:
description: "The timestamp of the precomputation creation."
format: "date-time"
readOnly: true
type: "string"
error:
description: "The error message to be displayed to the user."
readOnly: true
type: "string"
field:
description: "The field the function was executed against."
readOnly: true
type: "string"
functionKey:
description: "The function key."
readOnly: true
type: "string"
functionName:
description: "The name of the function."
readOnly: true
type: "string"
id:
description: "The id of the precomputation."
readOnly: true
type: "string"
operator:
description: "The operator in context of which function was executed."
readOnly: true
type: "string"
updated:
description: "The timestamp of the precomputation last update."
format: "date-time"
readOnly: true
type: "string"
used:
description: "The timestamp of the precomputation last usage."
format: "date-time"
readOnly: true
type: "string"
value:
description: "The JQL fragment stored as the precomputation."
readOnly: true
type: "string"
type: "object"
JqlFunctionPrecomputationUpdateBean:
additionalProperties: false
description: "Precomputation id and its new value."
properties:
error:
description: "The error message to be displayed to the user if the given\
\ function clause is no longer valid during recalculation of the precomputation."
type: "string"
writeOnly: true
id:
description: "The id of the precomputation to update."
type: "string"
writeOnly: true
value:
description: "The new value of the precomputation."
type: "string"
writeOnly: true
required:
- "id"
type: "object"
writeOnly: true
JqlFunctionPrecomputationUpdateRequestBean:
additionalProperties: false
description: "List of pairs (id and value) for precomputation updates."
properties:
values:
items:
$ref: "#/components/schemas/JqlFunctionPrecomputationUpdateBean"
type: "array"
type: "object"
writeOnly: true
JqlQueriesToParse:
additionalProperties: false
description: "A list of JQL queries to parse."
properties:
queries:
description: "A list of queries to parse."
items:
minLength: 1
type: "string"
minLength: 1
type: "array"
required:
- "queries"
type: "object"
writeOnly: true
JqlQueriesToSanitize:
additionalProperties: false
description: "The list of JQL queries to sanitize for the given account IDs."
properties:
queries:
description: "The list of JQL queries to sanitize. Must contain unique values.\
\ Maximum of 20 queries."
items:
$ref: "#/components/schemas/JqlQueryToSanitize"
type: "array"
required:
- "queries"
type: "object"
writeOnly: true
JqlQuery:
additionalProperties: false
description: "A parsed JQL query."
properties:
orderBy:
$ref: "#/components/schemas/JqlQueryOrderByClause"
where:
$ref: "#/components/schemas/JqlQueryClause"
type: "object"
JqlQueryClause:
additionalProperties: false
anyOf:
- $ref: "#/components/schemas/CompoundClause"
- $ref: "#/components/schemas/FieldValueClause"
- $ref: "#/components/schemas/FieldWasClause"
- $ref: "#/components/schemas/FieldChangedClause"
description: "A JQL query clause."
type: "object"
JqlQueryClauseOperand:
anyOf:
- $ref: "#/components/schemas/ListOperand"
- $ref: "#/components/schemas/ValueOperand"
- $ref: "#/components/schemas/FunctionOperand"
- $ref: "#/components/schemas/KeywordOperand"
description: "Details of an operand in a JQL clause."
type: "object"
JqlQueryClauseTimePredicate:
description: "A time predicate for a temporal JQL clause."
properties:
operand:
$ref: "#/components/schemas/JqlQueryClauseOperand"
operator:
description: "The operator between the field and the operand."
enum:
- "before"
- "after"
- "from"
- "to"
- "on"
- "during"
- "by"
type: "string"
required:
- "operand"
- "operator"
type: "object"
JqlQueryField:
additionalProperties: false
description: "A field used in a JQL query. See [Advanced searching - fields\
\ reference](https://confluence.atlassian.com/x/dAiiLQ) for more information\
\ about fields in JQL queries."
properties:
encodedName:
description: "The encoded name of the field, which can be used directly\
\ in a JQL query."
type: "string"
name:
description: "The name of the field."
type: "string"
property:
description: "When the field refers to a value in an entity property, details\
\ of the entity property value."
items:
$ref: "#/components/schemas/JqlQueryFieldEntityProperty"
type: "array"
required:
- "name"
type: "object"
JqlQueryFieldEntityProperty:
description: "Details of an entity property."
properties:
entity:
description: "The object on which the property is set."
example: "issue"
type: "string"
key:
description: "The key of the property."
example: "stats"
type: "string"
path:
description: "The path in the property value to query."
example: "comments.count"
type: "string"
type:
description: "The type of the property value extraction. Not available if\
\ the extraction for the property is not registered on the instance with\
\ the [Entity property](https://developer.atlassian.com/cloud/jira/platform/modules/entity-property/)\
\ module."
enum:
- "number"
- "string"
- "text"
- "date"
- "user"
example: "number"
type: "string"
required:
- "entity"
- "key"
- "path"
type: "object"
JqlQueryOrderByClause:
additionalProperties: false
description: "Details of the order-by JQL clause."
properties:
fields:
description: "The list of order-by clause fields and their ordering directives."
items:
$ref: "#/components/schemas/JqlQueryOrderByClauseElement"
type: "array"
required:
- "fields"
type: "object"
JqlQueryOrderByClauseElement:
additionalProperties: false
description: "An element of the order-by JQL clause."
properties:
direction:
description: "The direction in which to order the results."
enum:
- "asc"
- "desc"
type: "string"
field:
$ref: "#/components/schemas/JqlQueryField"
required:
- "field"
type: "object"
JqlQueryToSanitize:
additionalProperties: false
description: "The JQL query to sanitize for the account ID. If the account ID\
\ is null, sanitizing is performed for an anonymous user."
properties:
accountId:
description: "The account ID of the user, which uniquely identifies the\
\ user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
maxLength: 128
nullable: true
type: "string"
query:
description: "The query to sanitize."
type: "string"
required:
- "query"
type: "object"
writeOnly: true
JqlQueryUnitaryOperand:
anyOf:
- $ref: "#/components/schemas/ValueOperand"
- $ref: "#/components/schemas/FunctionOperand"
- $ref: "#/components/schemas/KeywordOperand"
description: "An operand that can be part of a list operand."
type: "object"
JsonContextVariable:
description: "A JSON object with custom content."
properties:
type:
description: "Type of custom context variable."
type: "string"
value:
description: "A JSON object containing custom content."
type: "object"
required:
- "type"
type: "object"
JsonNode:
additionalProperties: false
maxProperties: 10
minProperties: 1
properties:
array:
type: "boolean"
bigDecimal:
type: "boolean"
bigInteger:
type: "boolean"
bigIntegerValue:
type: "integer"
binary:
type: "boolean"
binaryValue:
items:
format: "byte"
type: "string"
type: "array"
boolean:
type: "boolean"
booleanValue:
type: "boolean"
containerNode:
type: "boolean"
decimalValue:
type: "number"
double:
type: "boolean"
doubleValue:
format: "double"
type: "number"
elements:
type: "object"
fieldNames:
type: "object"
fields:
type: "object"
floatingPointNumber:
type: "boolean"
int:
type: "boolean"
intValue:
format: "int32"
type: "integer"
integralNumber:
type: "boolean"
long:
type: "boolean"
longValue:
format: "int64"
type: "integer"
missingNode:
type: "boolean"
"null":
type: "boolean"
number:
type: "boolean"
numberType:
enum:
- "INT"
- "LONG"
- "BIG_INTEGER"
- "FLOAT"
- "DOUBLE"
- "BIG_DECIMAL"
type: "string"
numberValue:
type: "number"
object:
type: "boolean"
pojo:
type: "boolean"
textValue:
type: "string"
textual:
type: "boolean"
valueAsBoolean:
type: "boolean"
valueAsDouble:
format: "double"
type: "number"
valueAsInt:
format: "int32"
type: "integer"
valueAsLong:
format: "int64"
type: "integer"
valueAsText:
type: "string"
valueNode:
type: "boolean"
type: "object"
JsonTypeBean:
additionalProperties: false
description: "The schema of a field."
properties:
configuration:
additionalProperties:
readOnly: true
description: "If the field is a custom field, the configuration of the field."
readOnly: true
type: "object"
custom:
description: "If the field is a custom field, the URI of the field."
readOnly: true
type: "string"
customId:
description: "If the field is a custom field, the custom ID of the field."
format: "int64"
readOnly: true
type: "integer"
items:
description: "When the data type is an array, the name of the field items\
\ within the array."
readOnly: true
type: "string"
system:
description: "If the field is a system field, the name of the field."
readOnly: true
type: "string"
type:
description: "The data type of the field."
readOnly: true
type: "string"
required:
- "type"
type: "object"
KeywordOperand:
description: "An operand that is a JQL keyword. See [Advanced searching - keywords\
\ reference](https://confluence.atlassian.com/jiracorecloud/advanced-searching-keywords-reference-765593717.html#Advancedsearching-keywordsreference-EMPTYEMPTY)\
\ for more information about operand keywords."
properties:
keyword:
description: "The keyword that is the operand value."
enum:
- "empty"
type: "string"
required:
- "keyword"
type: "object"
LegacyJackson1ListAttachment:
items:
$ref: "#/components/schemas/Attachment"
type: "array"
LegacyJackson1ListColumnItem:
items:
$ref: "#/components/schemas/ColumnItem"
type: "array"
LegacyJackson1ListIssueEvent:
items:
$ref: "#/components/schemas/IssueEvent"
type: "array"
LegacyJackson1ListIssueTypeWithStatus:
items:
$ref: "#/components/schemas/IssueTypeWithStatus"
type: "array"
LegacyJackson1ListProject:
items:
$ref: "#/components/schemas/Project"
type: "array"
LegacyJackson1ListProjectComponent:
items:
$ref: "#/components/schemas/ProjectComponent"
type: "array"
LegacyJackson1ListProjectRoleDetails:
items:
$ref: "#/components/schemas/ProjectRoleDetails"
type: "array"
LegacyJackson1ListProjectType:
items:
$ref: "#/components/schemas/ProjectType"
type: "array"
LegacyJackson1ListUserMigrationBean:
items:
$ref: "#/components/schemas/UserMigrationBean"
type: "array"
LegacyJackson1ListVersion:
items:
$ref: "#/components/schemas/Version"
type: "array"
LegacyJackson1ListWorklog:
items:
$ref: "#/components/schemas/Worklog"
type: "array"
License:
additionalProperties: false
description: "Details about a license for the Jira instance."
properties:
applications:
description: "The applications under this license."
items:
$ref: "#/components/schemas/LicensedApplication"
readOnly: true
type: "array"
required:
- "applications"
type: "object"
LicenseMetric:
additionalProperties: false
description: "A metric that provides insight into the active licence details"
properties:
key:
description: "The key of a specific license metric."
type: "string"
value:
description: "The calculated value of a licence metric linked to the key.\
\ An example licence metric is the approximate number of user accounts."
type: "string"
type: "object"
LicensedApplication:
additionalProperties: false
description: "Details about a licensed Jira application."
properties:
id:
description: "The ID of the application."
readOnly: true
type: "string"
plan:
description: "The licensing plan."
enum:
- "UNLICENSED"
- "FREE"
- "PAID"
readOnly: true
type: "string"
required:
- "id"
- "plan"
type: "object"
LinkGroup:
additionalProperties: false
description: "Details a link group, which defines issue operations."
properties:
groups:
items:
$ref: "#/components/schemas/LinkGroup"
type: "array"
header:
$ref: "#/components/schemas/SimpleLink"
id:
type: "string"
links:
items:
$ref: "#/components/schemas/SimpleLink"
type: "array"
styleClass:
type: "string"
weight:
format: "int32"
type: "integer"
type: "object"
LinkIssueRequestJsonBean:
additionalProperties: false
properties:
comment:
$ref: "#/components/schemas/Comment"
inwardIssue:
$ref: "#/components/schemas/LinkedIssue"
outwardIssue:
$ref: "#/components/schemas/LinkedIssue"
type:
$ref: "#/components/schemas/IssueLinkType"
required:
- "inwardIssue"
- "outwardIssue"
- "type"
type: "object"
LinkedIssue:
additionalProperties: false
description: "The ID or key of a linked issue."
properties:
fields:
allOf:
- $ref: "#/components/schemas/Fields"
description: "The fields associated with the issue."
readOnly: true
id:
description: "The ID of an issue. Required if `key` isn't provided."
type: "string"
key:
description: "The key of an issue. Required if `id` isn't provided."
type: "string"
self:
description: "The URL of the issue."
format: "uri"
readOnly: true
type: "string"
type: "object"
ListOperand:
description: "An operand that is a list of values."
properties:
encodedOperand:
description: "Encoded operand, which can be used directly in a JQL query."
type: "string"
values:
description: "The list of operand values."
items:
$ref: "#/components/schemas/JqlQueryUnitaryOperand"
minLength: 1
type: "array"
required:
- "values"
type: "object"
ListWrapperCallbackApplicationRole:
additionalProperties: false
type: "object"
ListWrapperCallbackGroupName:
additionalProperties: false
type: "object"
Locale:
additionalProperties: false
description: "Details of a locale."
properties:
locale:
description: "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."
type: "string"
type: "object"
MappingsByIssueTypeOverride:
additionalProperties: false
description: "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`."
properties:
issueTypeId:
description: "The ID of the issue type for this mapping."
type: "string"
statusMappings:
description: "The list of status mappings."
items:
$ref: "#/components/schemas/WorkflowAssociationStatusMapping"
type: "array"
required:
- "issueTypeId"
- "statusMappings"
type: "object"
MappingsByWorkflow:
additionalProperties: false
description: "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`."
properties:
newWorkflowId:
description: "The ID of the new workflow."
type: "string"
oldWorkflowId:
description: "The ID of the old workflow."
type: "string"
statusMappings:
description: "The list of status mappings."
items:
$ref: "#/components/schemas/WorkflowAssociationStatusMapping"
type: "array"
required:
- "newWorkflowId"
- "oldWorkflowId"
- "statusMappings"
type: "object"
MoveFieldBean:
additionalProperties: false
properties:
after:
description: "The ID of the screen tab field after which to place the moved\
\ screen tab field. Required if `position` isn't provided."
format: "uri"
type: "string"
position:
description: "The named position to which the screen tab field should be\
\ moved. Required if `after` isn't provided."
enum:
- "Earlier"
- "Later"
- "First"
- "Last"
type: "string"
type: "object"
MultiIssueEntityProperties:
additionalProperties: false
description: "A list of issues and their respective properties to set or update.\
\ See [Entity properties](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/)\
\ for more information."
properties:
issues:
description: "A list of issue IDs and their respective properties."
items:
$ref: "#/components/schemas/IssueEntityPropertiesForMultiUpdate"
maxProperties: 100
minProperties: 1
type: "array"
type: "object"
MultipartFile:
additionalProperties: false
properties:
bytes:
items:
format: "byte"
type: "string"
type: "array"
contentType:
type: "string"
empty:
type: "boolean"
inputStream:
type: "object"
name:
type: "string"
originalFilename:
type: "string"
resource:
$ref: "#/components/schemas/Resource"
size:
format: "int64"
type: "integer"
type: "object"
MultipleCustomFieldValuesUpdate:
additionalProperties: false
description: "A custom field and its new value with a list of issue to update."
properties:
customField:
description: "The ID or key of the custom field. For example, `customfield_10010`."
type: "string"
writeOnly: true
issueIds:
description: "The list of issue IDs."
items:
format: "int64"
type: "integer"
writeOnly: true
type: "array"
writeOnly: true
value:
description: "The value for the custom field. The value must be compatible\
\ with the [custom field type](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field/#data-types)\
\ as follows:\n\n * `string` the value must be a string.\n * `number`\
\ the value must be a number.\n * `datetime` the value must be a string\
\ that represents a date in the ISO format or the simplified extended\
\ ISO format. For example, `\"2023-01-18T12:00:00-03:00\"` or `\"2023-01-18T12:00:00.000Z\"\
`. However, the milliseconds part is ignored.\n * `user` the value must\
\ be an object that contains the `accountId` field.\n * `group` the value\
\ must be an object that contains the group `name` or `groupId` field.\
\ Because group names can change, we recommend using `groupId`.\n\nA list\
\ of appropriate values must be provided if the field is of the `list`\
\ [collection type](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field/#collection-types)."
required:
- "customField"
- "issueIds"
- "value"
type: "object"
writeOnly: true
MultipleCustomFieldValuesUpdateDetails:
additionalProperties: false
description: "List of updates for a custom fields."
properties:
updates:
items:
$ref: "#/components/schemas/MultipleCustomFieldValuesUpdate"
type: "array"
type: "object"
writeOnly: true
NestedResponse:
additionalProperties: false
properties:
errorCollection:
$ref: "#/components/schemas/ErrorCollection"
status:
format: "int32"
type: "integer"
warningCollection:
$ref: "#/components/schemas/WarningCollection"
type: "object"
NewUserDetails:
additionalProperties: true
description: "The user details."
properties:
applicationKeys:
description: "Deprecated, do not use."
items:
type: "string"
type: "array"
displayName:
description: "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."
type: "string"
emailAddress:
description: "The email address for the user."
type: "string"
key:
description: "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."
type: "string"
name:
description: "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."
type: "string"
password:
description: "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."
type: "string"
products:
description: "Products the new user has access to. Valid products are: jira-core,\
\ jira-servicedesk, jira-product-discovery, jira-software. If left empty,\
\ the user will get default product access. To create a user without product\
\ access, set this field to be an empty array."
items:
type: "string"
type: "array"
uniqueItems: true
self:
description: "The URL of the user."
readOnly: true
type: "string"
required:
- "emailAddress"
type: "object"
Notification:
additionalProperties: true
description: "Details about a notification."
properties:
htmlBody:
description: "The HTML body of the email notification for the issue."
type: "string"
restrict:
allOf:
- $ref: "#/components/schemas/NotificationRecipientsRestrictions"
description: "Restricts the notifications to users with the specified permissions."
subject:
description: "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."
type: "string"
textBody:
description: "The plain text body of the email notification for the issue."
type: "string"
to:
allOf:
- $ref: "#/components/schemas/NotificationRecipients"
description: "The recipients of the email notification for the issue."
type: "object"
NotificationEvent:
additionalProperties: false
description: "Details about a notification event."
properties:
description:
description: "The description of the event."
type: "string"
id:
description: "The ID of the event. The event can be a [Jira system event](https://confluence.atlassian.com/x/8YdKLg#Creatinganotificationscheme-eventsEvents)\
\ or a [custom event](https://confluence.atlassian.com/x/AIlKLg)."
format: "int64"
type: "integer"
name:
description: "The name of the event."
type: "string"
templateEvent:
allOf:
- $ref: "#/components/schemas/NotificationEvent"
description: "The template of the event. Only custom events configured by\
\ Jira administrators have template."
type: "object"
NotificationRecipients:
additionalProperties: true
description: "Details of the users and groups to receive the notification."
properties:
assignee:
description: "Whether the notification should be sent to the issue's assignees."
type: "boolean"
groupIds:
description: "List of groupIds to receive the notification."
items:
type: "string"
type: "array"
groups:
description: "List of groups to receive the notification."
items:
$ref: "#/components/schemas/GroupName"
type: "array"
reporter:
description: "Whether the notification should be sent to the issue's reporter."
type: "boolean"
users:
description: "List of users to receive the notification."
items:
$ref: "#/components/schemas/UserDetails"
type: "array"
voters:
description: "Whether the notification should be sent to the issue's voters."
type: "boolean"
watchers:
description: "Whether the notification should be sent to the issue's watchers."
type: "boolean"
type: "object"
NotificationRecipientsRestrictions:
additionalProperties: false
description: "Details of the group membership or permissions needed to receive\
\ the notification."
properties:
groupIds:
description: "List of groupId memberships required to receive the notification."
items:
type: "string"
type: "array"
groups:
description: "List of group memberships required to receive the notification."
items:
$ref: "#/components/schemas/GroupName"
type: "array"
permissions:
description: "List of permissions required to receive the notification."
items:
$ref: "#/components/schemas/RestrictedPermission"
type: "array"
type: "object"
NotificationScheme:
additionalProperties: false
description: "Details about a notification scheme."
properties:
description:
description: "The description of the notification scheme."
type: "string"
expand:
description: "Expand options that include additional notification scheme\
\ details in the response."
type: "string"
id:
description: "The ID of the notification scheme."
format: "int64"
type: "integer"
name:
description: "The name of the notification scheme."
type: "string"
notificationSchemeEvents:
description: "The notification events and associated recipients."
items:
$ref: "#/components/schemas/NotificationSchemeEvent"
type: "array"
projects:
description: "The list of project IDs associated with the notification scheme."
items:
format: "int64"
type: "integer"
type: "array"
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "The scope of the notification scheme."
self:
type: "string"
type: "object"
NotificationSchemeAndProjectMappingJsonBean:
additionalProperties: false
properties:
notificationSchemeId:
type: "string"
projectId:
type: "string"
type: "object"
NotificationSchemeEvent:
additionalProperties: false
description: "Details about a notification scheme event."
properties:
event:
$ref: "#/components/schemas/NotificationEvent"
notifications:
items:
$ref: "#/components/schemas/EventNotification"
type: "array"
type: "object"
NotificationSchemeEventDetails:
additionalProperties: true
description: "Details of a notification scheme event."
properties:
event:
allOf:
- $ref: "#/components/schemas/NotificationSchemeEventTypeId"
description: "The ID of the event."
notifications:
description: "The list of notifications mapped to a specified event."
items:
$ref: "#/components/schemas/NotificationSchemeNotificationDetails"
maxLength: 255
type: "array"
writeOnly: true
required:
- "event"
- "notifications"
type: "object"
writeOnly: true
NotificationSchemeEventTypeId:
additionalProperties: true
description: "The ID of an event that is being mapped to notifications."
properties:
id:
description: "The ID of the notification scheme event."
type: "string"
writeOnly: true
required:
- "id"
type: "object"
writeOnly: true
NotificationSchemeId:
additionalProperties: true
description: "The ID of a notification scheme."
properties:
id:
description: "The ID of a notification scheme."
readOnly: true
type: "string"
required:
- "id"
type: "object"
NotificationSchemeNotificationDetails:
additionalProperties: true
description: "Details of a notification within a notification scheme."
maxLength: 255
properties:
notificationType:
description: "The notification type, e.g `CurrentAssignee`, `Group`, `EmailAddress`."
type: "string"
writeOnly: true
parameter:
description: "The value corresponding to the specified notification type."
type: "string"
writeOnly: true
required:
- "notificationType"
type: "object"
writeOnly: true
OldToNewSecurityLevelMappingsBean:
additionalProperties: false
properties:
newLevelId:
description: "The new issue security level ID. Providing null will clear\
\ the assigned old level from issues."
type: "string"
writeOnly: true
oldLevelId:
description: "The old issue security level ID. Providing null will remap\
\ all issues without any assigned levels."
type: "string"
writeOnly: true
required:
- "newLevelId"
- "oldLevelId"
type: "object"
writeOnly: true
OperationMessage:
additionalProperties: false
example:
message: "An example message."
statusCode: 200
properties:
message:
description: "The human-readable message that describes the result."
type: "string"
statusCode:
description: "The status code of the response."
type: "integer"
required:
- "message"
- "statusCode"
type: "object"
Operations:
additionalProperties: true
description: "Details of the operations that can be performed on the issue."
properties:
linkGroups:
description: "Details of the link groups defining issue operations."
items:
$ref: "#/components/schemas/LinkGroup"
readOnly: true
type: "array"
type: "object"
OrderOfCustomFieldOptions:
additionalProperties: false
description: "An ordered list of custom field option IDs and information on\
\ where to move them."
properties:
after:
description: "The ID of the custom field option or cascading option to place\
\ the moved options after. Required if `position` isn't provided."
type: "string"
writeOnly: true
customFieldOptionIds:
description: "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."
items:
type: "string"
writeOnly: true
type: "array"
writeOnly: true
position:
description: "The position the custom field options should be moved to.\
\ Required if `after` isn't provided."
enum:
- "First"
- "Last"
type: "string"
writeOnly: true
required:
- "customFieldOptionIds"
type: "object"
OrderOfIssueTypes:
additionalProperties: false
description: "An ordered list of issue type IDs and information about where\
\ to move them."
properties:
after:
description: "The ID of the issue type to place the moved issue types after.\
\ Required if `position` isn't provided."
type: "string"
writeOnly: true
issueTypeIds:
description: "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."
items:
type: "string"
writeOnly: true
type: "array"
writeOnly: true
position:
description: "The position the issue types should be moved to. Required\
\ if `after` isn't provided."
enum:
- "First"
- "Last"
type: "string"
writeOnly: true
required:
- "issueTypeIds"
type: "object"
PageBean2ComponentJsonBean:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/ComponentJsonBean"
readOnly: true
type: "array"
type: "object"
PageBeanChangelog:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/Changelog"
readOnly: true
type: "array"
type: "object"
PageBeanComment:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/Comment"
readOnly: true
type: "array"
type: "object"
PageBeanComponentWithIssueCount:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/ComponentWithIssueCount"
readOnly: true
type: "array"
type: "object"
PageBeanContext:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/Context"
readOnly: true
type: "array"
type: "object"
PageBeanContextForProjectAndIssueType:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/ContextForProjectAndIssueType"
readOnly: true
type: "array"
type: "object"
PageBeanContextualConfiguration:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/ContextualConfiguration"
readOnly: true
type: "array"
type: "object"
PageBeanCustomFieldContext:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/CustomFieldContext"
readOnly: true
type: "array"
type: "object"
PageBeanCustomFieldContextDefaultValue:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/CustomFieldContextDefaultValue"
readOnly: true
type: "array"
type: "object"
PageBeanCustomFieldContextOption:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/CustomFieldContextOption"
readOnly: true
type: "array"
type: "object"
PageBeanCustomFieldContextProjectMapping:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/CustomFieldContextProjectMapping"
readOnly: true
type: "array"
type: "object"
PageBeanDashboard:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/Dashboard"
readOnly: true
type: "array"
type: "object"
PageBeanField:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/Field"
readOnly: true
type: "array"
type: "object"
PageBeanFieldConfigurationDetails:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/FieldConfigurationDetails"
readOnly: true
type: "array"
type: "object"
PageBeanFieldConfigurationIssueTypeItem:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/FieldConfigurationIssueTypeItem"
readOnly: true
type: "array"
type: "object"
PageBeanFieldConfigurationItem:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/FieldConfigurationItem"
readOnly: true
type: "array"
type: "object"
PageBeanFieldConfigurationScheme:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/FieldConfigurationScheme"
readOnly: true
type: "array"
type: "object"
PageBeanFieldConfigurationSchemeProjects:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/FieldConfigurationSchemeProjects"
readOnly: true
type: "array"
type: "object"
PageBeanFilterDetails:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/FilterDetails"
readOnly: true
type: "array"
type: "object"
PageBeanGroupDetails:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/GroupDetails"
readOnly: true
type: "array"
type: "object"
PageBeanIssueFieldOption:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/IssueFieldOption"
readOnly: true
type: "array"
type: "object"
PageBeanIssueSecurityLevelMember:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/IssueSecurityLevelMember"
readOnly: true
type: "array"
type: "object"
PageBeanIssueSecuritySchemeToProjectMapping:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/IssueSecuritySchemeToProjectMapping"
readOnly: true
type: "array"
type: "object"
PageBeanIssueTypeScheme:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/IssueTypeScheme"
readOnly: true
type: "array"
type: "object"
PageBeanIssueTypeSchemeMapping:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/IssueTypeSchemeMapping"
readOnly: true
type: "array"
type: "object"
PageBeanIssueTypeSchemeProjects:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/IssueTypeSchemeProjects"
readOnly: true
type: "array"
type: "object"
PageBeanIssueTypeScreenScheme:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/IssueTypeScreenScheme"
readOnly: true
type: "array"
type: "object"
PageBeanIssueTypeScreenSchemeItem:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/IssueTypeScreenSchemeItem"
readOnly: true
type: "array"
type: "object"
PageBeanIssueTypeScreenSchemesProjects:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/IssueTypeScreenSchemesProjects"
readOnly: true
type: "array"
type: "object"
PageBeanIssueTypeToContextMapping:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/IssueTypeToContextMapping"
readOnly: true
type: "array"
type: "object"
PageBeanJqlFunctionPrecomputationBean:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/JqlFunctionPrecomputationBean"
readOnly: true
type: "array"
type: "object"
PageBeanNotificationScheme:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/NotificationScheme"
readOnly: true
type: "array"
type: "object"
PageBeanNotificationSchemeAndProjectMappingJsonBean:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/NotificationSchemeAndProjectMappingJsonBean"
readOnly: true
type: "array"
type: "object"
PageBeanPriority:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/Priority"
readOnly: true
type: "array"
type: "object"
PageBeanProject:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/Project"
readOnly: true
type: "array"
type: "object"
PageBeanProjectDetails:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/ProjectDetails"
readOnly: true
type: "array"
type: "object"
PageBeanResolutionJsonBean:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/ResolutionJsonBean"
readOnly: true
type: "array"
type: "object"
PageBeanScreen:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/Screen"
readOnly: true
type: "array"
type: "object"
PageBeanScreenScheme:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/ScreenScheme"
readOnly: true
type: "array"
type: "object"
PageBeanScreenWithTab:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/ScreenWithTab"
readOnly: true
type: "array"
type: "object"
PageBeanSecurityLevel:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/SecurityLevel"
readOnly: true
type: "array"
type: "object"
PageBeanSecurityLevelMember:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/SecurityLevelMember"
readOnly: true
type: "array"
type: "object"
PageBeanSecuritySchemeWithProjects:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/SecuritySchemeWithProjects"
readOnly: true
type: "array"
type: "object"
PageBeanString:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
readOnly: true
type: "string"
readOnly: true
type: "array"
type: "object"
PageBeanUiModificationDetails:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/UiModificationDetails"
readOnly: true
type: "array"
type: "object"
PageBeanUser:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/User"
readOnly: true
type: "array"
type: "object"
PageBeanUserDetails:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/UserDetails"
readOnly: true
type: "array"
type: "object"
PageBeanUserKey:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/UserKey"
readOnly: true
type: "array"
type: "object"
PageBeanVersion:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/Version"
readOnly: true
type: "array"
type: "object"
PageBeanWebhook:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/Webhook"
readOnly: true
type: "array"
type: "object"
PageBeanWorkflow:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/Workflow"
readOnly: true
type: "array"
type: "object"
PageBeanWorkflowScheme:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/WorkflowScheme"
readOnly: true
type: "array"
type: "object"
PageBeanWorkflowTransitionRules:
additionalProperties: false
description: "A page of items."
properties:
isLast:
description: "Whether this is the last page."
readOnly: true
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
nextPage:
description: "If there is another page of results, the URL of the next page."
format: "uri"
readOnly: true
type: "string"
self:
description: "The URL of the page."
format: "uri"
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/WorkflowTransitionRules"
readOnly: true
type: "array"
type: "object"
PageOfChangelogs:
additionalProperties: false
description: "A page of changelogs."
properties:
histories:
description: "The list of changelogs."
items:
$ref: "#/components/schemas/Changelog"
readOnly: true
type: "array"
maxResults:
description: "The maximum number of results that could be on the page."
format: "int32"
readOnly: true
type: "integer"
startAt:
description: "The index of the first item returned on the page."
format: "int32"
readOnly: true
type: "integer"
total:
description: "The number of results on the page."
format: "int32"
readOnly: true
type: "integer"
type: "object"
PageOfComments:
additionalProperties: true
description: "A page of comments."
properties:
comments:
description: "The list of comments."
items:
$ref: "#/components/schemas/Comment"
readOnly: true
type: "array"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
readOnly: true
type: "integer"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The number of items returned."
format: "int64"
readOnly: true
type: "integer"
type: "object"
PageOfCreateMetaIssueTypeWithField:
additionalProperties: true
description: "A page of CreateMetaIssueType with Field."
properties:
fields:
description: "The collection of FieldCreateMetaBeans."
items:
$ref: "#/components/schemas/FieldCreateMetadata"
readOnly: true
type: "array"
maxResults:
description: "The maximum number of items to return per page."
format: "int32"
readOnly: true
type: "integer"
results:
items:
$ref: "#/components/schemas/FieldCreateMetadata"
type: "array"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The total number of items in all pages."
format: "int64"
readOnly: true
type: "integer"
type: "object"
PageOfCreateMetaIssueTypes:
additionalProperties: true
description: "A page of CreateMetaIssueTypes."
properties:
createMetaIssueType:
items:
$ref: "#/components/schemas/IssueTypeIssueCreateMetadata"
type: "array"
writeOnly: true
issueTypes:
description: "The list of CreateMetaIssueType."
items:
$ref: "#/components/schemas/IssueTypeIssueCreateMetadata"
readOnly: true
type: "array"
maxResults:
description: "The maximum number of items to return per page."
format: "int32"
readOnly: true
type: "integer"
startAt:
description: "The index of the first item returned."
format: "int64"
readOnly: true
type: "integer"
total:
description: "The total number of items in all pages."
format: "int64"
readOnly: true
type: "integer"
type: "object"
PageOfDashboards:
additionalProperties: false
description: "A page containing dashboard details."
properties:
dashboards:
description: "List of dashboards."
items:
$ref: "#/components/schemas/Dashboard"
readOnly: true
type: "array"
maxResults:
description: "The maximum number of results that could be on the page."
format: "int32"
readOnly: true
type: "integer"
next:
description: "The URL of the next page of results, if any."
readOnly: true
type: "string"
prev:
description: "The URL of the previous page of results, if any."
readOnly: true
type: "string"
startAt:
description: "The index of the first item returned on the page."
format: "int32"
readOnly: true
type: "integer"
total:
description: "The number of results on the page."
format: "int32"
readOnly: true
type: "integer"
type: "object"
PageOfStatuses:
additionalProperties: false
properties:
isLast:
description: "Whether this is the last page."
type: "boolean"
maxResults:
description: "The maximum number of items that could be returned."
format: "int32"
type: "integer"
nextPage:
description: "The URL of the next page of results, if any."
type: "string"
self:
description: "The URL of this page."
type: "string"
startAt:
description: "The index of the first item returned on the page."
format: "int64"
type: "integer"
total:
description: "Number of items that satisfy the search."
format: "int64"
type: "integer"
values:
description: "The list of items."
items:
$ref: "#/components/schemas/JiraStatus"
type: "array"
type: "object"
PageOfWorklogs:
additionalProperties: true
description: "Paginated list of worklog details"
properties:
maxResults:
description: "The maximum number of results that could be on the page."
format: "int32"
readOnly: true
type: "integer"
startAt:
description: "The index of the first item returned on the page."
format: "int32"
readOnly: true
type: "integer"
total:
description: "The number of results on the page."
format: "int32"
readOnly: true
type: "integer"
worklogs:
description: "List of worklogs."
items:
$ref: "#/components/schemas/Worklog"
readOnly: true
type: "array"
type: "object"
PagedListUserDetailsApplicationUser:
additionalProperties: false
description: "A paged list. To access additional details append `[start-index:end-index]`\
\ to the expand request. For example, `?expand=sharedUsers[10:40]` returns\
\ a list starting at item 10 and finishing at item 40."
properties:
end-index:
description: "The index of the last item returned on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
name: "end-index"
items:
description: "The list of items."
items:
$ref: "#/components/schemas/UserDetails"
readOnly: true
type: "array"
max-results:
description: "The maximum number of results that could be on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
name: "max-results"
size:
description: "The number of items on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
start-index:
description: "The index of the first item returned on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
name: "start-index"
type: "object"
PaginatedResponseComment:
additionalProperties: false
properties:
maxResults:
format: "int32"
type: "integer"
results:
items:
$ref: "#/components/schemas/Comment"
type: "array"
startAt:
format: "int64"
type: "integer"
total:
format: "int64"
type: "integer"
type: "object"
PaginatedResponseFieldCreateMetadata:
additionalProperties: false
properties:
maxResults:
format: "int32"
type: "integer"
results:
items:
$ref: "#/components/schemas/FieldCreateMetadata"
type: "array"
startAt:
format: "int64"
type: "integer"
total:
format: "int64"
type: "integer"
type: "object"
PaginatedResponseIssueTypeIssueCreateMetadata:
additionalProperties: false
properties:
maxResults:
format: "int32"
type: "integer"
results:
items:
$ref: "#/components/schemas/IssueTypeIssueCreateMetadata"
type: "array"
startAt:
format: "int64"
type: "integer"
total:
format: "int64"
type: "integer"
type: "object"
ParsedJqlQueries:
additionalProperties: false
description: "A list of parsed JQL queries."
properties:
queries:
description: "A list of parsed JQL queries."
items:
$ref: "#/components/schemas/ParsedJqlQuery"
minLength: 1
type: "array"
required:
- "queries"
type: "object"
ParsedJqlQuery:
additionalProperties: false
description: "Details of a parsed JQL query."
minLength: 1
properties:
errors:
description: "The list of syntax or validation errors."
items:
type: "string"
type: "array"
uniqueItems: true
query:
description: "The JQL query that was parsed and validated."
type: "string"
structure:
allOf:
- $ref: "#/components/schemas/JqlQuery"
description: "The syntax tree of the query. Empty if the query was invalid."
required:
- "query"
type: "object"
PermissionDetails:
additionalProperties: false
description: "Details for permissions of shareable entities"
properties:
editPermissions:
description: "The edit permissions for the shareable entities."
items:
$ref: "#/components/schemas/SharePermission"
type: "array"
sharePermissions:
description: "The share permissions for the shareable entities."
items:
$ref: "#/components/schemas/SharePermission"
type: "array"
required:
- "editPermissions"
- "sharePermissions"
type: "object"
PermissionGrant:
additionalProperties: true
description: "Details about a permission granted to a user or group."
properties:
holder:
allOf:
- $ref: "#/components/schemas/PermissionHolder"
description: "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:
description: "The ID of the permission granted details."
format: "int64"
readOnly: true
type: "integer"
permission:
description: "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."
type: "string"
self:
description: "The URL of the permission granted details."
format: "uri"
readOnly: true
type: "string"
type: "object"
PermissionGrants:
additionalProperties: false
description: "List of permission grants."
properties:
expand:
description: "Expand options that include additional permission grant details\
\ in the response."
readOnly: true
type: "string"
permissions:
description: "Permission grants list."
items:
$ref: "#/components/schemas/PermissionGrant"
readOnly: true
type: "array"
type: "object"
PermissionHolder:
additionalProperties: false
description: "Details of a user, group, field, or project role that holds a\
\ permission. See [Holder object](../api-group-permission-schemes/#holder-object)\
\ in *Get all permission schemes* for more information."
properties:
expand:
description: "Expand options that include additional permission holder details\
\ in the response."
readOnly: true
type: "string"
parameter:
description: "As a group's name can change, use of `value` is recommended.\
\ The identifier associated withthe `type` value that defines the holder\
\ of the permission."
type: "string"
type:
description: "The type of permission holder."
type: "string"
value:
description: "The identifier associated with the `type` value that defines\
\ the holder of the permission."
type: "string"
required:
- "type"
type: "object"
PermissionScheme:
additionalProperties: true
description: "Details of a permission scheme."
properties:
description:
description: "A description for the permission scheme."
type: "string"
expand:
description: "The expand options available for the permission scheme."
readOnly: true
type: "string"
id:
description: "The ID of the permission scheme."
format: "int64"
readOnly: true
type: "integer"
name:
description: "The name of the permission scheme. Must be unique."
type: "string"
permissions:
description: "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."
items:
$ref: "#/components/schemas/PermissionGrant"
type: "array"
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "The scope of the permission scheme."
self:
description: "The URL of the permission scheme."
format: "uri"
readOnly: true
type: "string"
required:
- "name"
type: "object"
PermissionSchemes:
additionalProperties: false
description: "List of all permission schemes."
properties:
permissionSchemes:
description: "Permission schemes list."
items:
$ref: "#/components/schemas/PermissionScheme"
readOnly: true
type: "array"
type: "object"
Permissions:
additionalProperties: false
description: "Details about permissions."
properties:
permissions:
additionalProperties:
$ref: "#/components/schemas/UserPermission"
description: "List of permissions."
readOnly: true
type: "object"
type: "object"
PermissionsKeysBean:
additionalProperties: false
properties:
permissions:
description: "A list of permission keys."
items:
type: "string"
type: "array"
required:
- "permissions"
type: "object"
PermittedProjects:
additionalProperties: false
description: "A list of projects in which a user is granted permissions."
properties:
projects:
description: "A list of projects."
items:
$ref: "#/components/schemas/ProjectIdentifierBean"
readOnly: true
type: "array"
type: "object"
Priority:
additionalProperties: true
description: "An issue priority."
properties:
description:
description: "The description of the issue priority."
type: "string"
iconUrl:
description: "The URL of the icon for the issue priority."
type: "string"
id:
description: "The ID of the issue priority."
type: "string"
isDefault:
description: "Whether this priority is the default."
type: "boolean"
name:
description: "The name of the issue priority."
type: "string"
schemes:
allOf:
- $ref: "#/components/schemas/ExpandPrioritySchemePage"
description: "Priority schemes associated with the issue priority."
self:
description: "The URL of the issue priority."
type: "string"
statusColor:
description: "The color used to indicate the issue priority."
type: "string"
type: "object"
PriorityId:
additionalProperties: true
description: "The ID of an issue priority."
properties:
id:
description: "The ID of the issue priority."
readOnly: true
type: "string"
required:
- "id"
type: "object"
Project:
additionalProperties: false
description: "Details about a project."
properties:
archived:
description: "Whether the project is archived."
readOnly: true
type: "boolean"
archivedBy:
allOf:
- $ref: "#/components/schemas/User"
description: "The user who archived the project."
readOnly: true
archivedDate:
description: "The date when the project was archived."
format: "date-time"
readOnly: true
type: "string"
assigneeType:
description: "The default assignee when creating issues for this project."
enum:
- "PROJECT_LEAD"
- "UNASSIGNED"
readOnly: true
type: "string"
avatarUrls:
allOf:
- $ref: "#/components/schemas/AvatarUrlsBean"
description: "The URLs of the project's avatars."
readOnly: true
components:
description: "List of the components contained in the project."
items:
$ref: "#/components/schemas/ProjectComponent"
readOnly: true
type: "array"
deleted:
description: "Whether the project is marked as deleted."
readOnly: true
type: "boolean"
deletedBy:
allOf:
- $ref: "#/components/schemas/User"
description: "The user who marked the project as deleted."
readOnly: true
deletedDate:
description: "The date when the project was marked as deleted."
format: "date-time"
readOnly: true
type: "string"
description:
description: "A brief description of the project."
readOnly: true
type: "string"
email:
description: "An email address associated with the project."
type: "string"
expand:
description: "Expand options that include additional project details in\
\ the response."
readOnly: true
type: "string"
xml:
attribute: true
favourite:
description: "Whether the project is selected as a favorite."
type: "boolean"
id:
description: "The ID of the project."
type: "string"
insight:
allOf:
- $ref: "#/components/schemas/ProjectInsight"
description: "Insights about the project."
readOnly: true
isPrivate:
description: "Whether the project is private from the user's perspective.\
\ This means the user can't see the project or any associated issues."
readOnly: true
type: "boolean"
issueTypeHierarchy:
allOf:
- $ref: "#/components/schemas/Hierarchy"
description: "The issue type hierarchy for the project."
readOnly: true
issueTypes:
description: "List of the issue types available in the project."
items:
$ref: "#/components/schemas/IssueTypeDetails"
readOnly: true
type: "array"
key:
description: "The key of the project."
readOnly: true
type: "string"
landingPageInfo:
allOf:
- $ref: "#/components/schemas/ProjectLandingPageInfo"
description: "The project landing page info."
readOnly: true
lead:
allOf:
- $ref: "#/components/schemas/User"
description: "The username of the project lead."
readOnly: true
name:
description: "The name of the project."
readOnly: true
type: "string"
permissions:
allOf:
- $ref: "#/components/schemas/ProjectPermissions"
description: "User permissions on the project"
readOnly: true
projectCategory:
allOf:
- $ref: "#/components/schemas/ProjectCategory"
description: "The category the project belongs to."
readOnly: true
projectTypeKey:
description: "The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes)\
\ of the project."
enum:
- "software"
- "service_desk"
- "business"
readOnly: true
type: "string"
properties:
additionalProperties:
readOnly: true
description: "Map of project properties"
readOnly: true
type: "object"
retentionTillDate:
description: "The date when the project is deleted permanently."
format: "date-time"
readOnly: true
type: "string"
roles:
additionalProperties:
format: "uri"
readOnly: true
type: "string"
description: "The name and self URL for each role defined in the project.\
\ For more information, see [Create project role](#api-rest-api-2-role-post)."
readOnly: true
type: "object"
self:
description: "The URL of the project details."
format: "uri"
readOnly: true
type: "string"
simplified:
description: "Whether the project is simplified."
readOnly: true
type: "boolean"
style:
description: "The type of the project."
enum:
- "classic"
- "next-gen"
readOnly: true
type: "string"
url:
description: "A link to information about this project, such as project\
\ documentation."
readOnly: true
type: "string"
uuid:
description: "Unique ID for next-gen projects."
format: "uuid"
readOnly: true
type: "string"
versions:
description: "The versions defined in the project. For more information,\
\ see [Create version](#api-rest-api-2-version-post)."
items:
$ref: "#/components/schemas/Version"
readOnly: true
type: "array"
type: "object"
xml:
name: "project"
ProjectAndIssueTypePair:
additionalProperties: false
description: "A project and issueType ID pair that identifies a status mapping."
properties:
issueTypeId:
description: "The ID of the issue type."
type: "string"
projectId:
description: "The ID of the project."
type: "string"
required:
- "issueTypeId"
- "projectId"
type: "object"
ProjectAvatars:
additionalProperties: false
description: "List of project avatars."
properties:
custom:
description: "List of avatars added to Jira. These avatars may be deleted."
items:
$ref: "#/components/schemas/Avatar"
readOnly: true
type: "array"
system:
description: "List of avatars included with Jira. These avatars cannot be\
\ deleted."
items:
$ref: "#/components/schemas/Avatar"
readOnly: true
type: "array"
type: "object"
ProjectCategory:
additionalProperties: false
description: "A project category."
properties:
description:
description: "The description of the project category."
type: "string"
id:
description: "The ID of the project category."
readOnly: true
type: "string"
name:
description: "The name of the project category. Required on create, optional\
\ on update."
type: "string"
self:
description: "The URL of the project category."
format: "uri"
readOnly: true
type: "string"
type: "object"
ProjectComponent:
additionalProperties: false
description: "Details about a project component."
properties:
ari:
description: "Compass component's ID. Can't be updated. Not required for\
\ creating a Project Component."
readOnly: true
type: "string"
assignee:
allOf:
- $ref: "#/components/schemas/User"
description: "The details of the user associated with `assigneeType`, if\
\ any. See `realAssignee` for details of the user assigned to issues created\
\ with this component."
readOnly: true
assigneeType:
description: "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:\n\n * `PROJECT_LEAD` the assignee to\
\ any issues created with this component is nominally the lead for the\
\ project the component is in.\n * `COMPONENT_LEAD` the assignee to any\
\ issues created with this component is nominally the lead for the component.\n\
\ * `UNASSIGNED` an assignee is not set for issues created with this\
\ component.\n * `PROJECT_DEFAULT` the assignee to any issues created\
\ with this component is nominally the default assignee for the project\
\ that the component is in.\n\nDefault value: `PROJECT_DEFAULT`. \nOptional\
\ when creating or updating a component."
enum:
- "PROJECT_DEFAULT"
- "COMPONENT_LEAD"
- "PROJECT_LEAD"
- "UNASSIGNED"
type: "string"
description:
description: "The description for the component. Optional when creating\
\ or updating a component."
type: "string"
id:
description: "The unique identifier for the component."
readOnly: true
type: "string"
isAssigneeTypeValid:
description: "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."
readOnly: true
type: "boolean"
lead:
allOf:
- $ref: "#/components/schemas/User"
description: "The user details for the component's lead user."
readOnly: true
leadAccountId:
description: "The accountId of the component's lead user. The accountId\
\ uniquely identifies the user across all Atlassian products. For example,\
\ *5b10ac8d82e05b22cc7d4ef5*."
maxLength: 128
type: "string"
writeOnly: true
leadUserName:
description: "This property is no longer available and will be removed from\
\ the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/)\
\ for details."
type: "string"
metadata:
additionalProperties:
readOnly: true
type: "string"
description: "Compass component's metadata. Can't be updated. Not required\
\ for creating a Project Component."
readOnly: true
type: "object"
name:
description: "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."
type: "string"
project:
description: "The key of the project the component is assigned to. Required\
\ when creating a component. Can't be updated."
type: "string"
projectId:
description: "The ID of the project the component is assigned to."
format: "int64"
readOnly: true
type: "integer"
realAssignee:
allOf:
- $ref: "#/components/schemas/User"
description: "The user assigned to issues created with this component, when\
\ `assigneeType` does not identify a valid assignee."
readOnly: true
realAssigneeType:
description: "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:\n\n\
\ * `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.\n * `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.\n * `UNASSIGNED` when `assigneeType` is `UNASSIGNED`\
\ and Jira is configured to allow unassigned issues.\n * `PROJECT_DEFAULT`\
\ when none of the preceding cases are true."
enum:
- "PROJECT_DEFAULT"
- "COMPONENT_LEAD"
- "PROJECT_LEAD"
- "UNASSIGNED"
readOnly: true
type: "string"
self:
description: "The URL of the component."
format: "uri"
readOnly: true
type: "string"
type: "object"
xml:
name: "component"
ProjectDataPolicies:
additionalProperties: false
description: "Details about data policies for a list of projects."
properties:
projectDataPolicies:
description: "List of projects with data policies."
items:
$ref: "#/components/schemas/ProjectWithDataPolicy"
readOnly: true
type: "array"
type: "object"
ProjectDataPolicy:
additionalProperties: false
description: "Details about data policy."
properties:
anyContentBlocked:
description: "Whether the project contains any content inaccessible to the\
\ requesting application."
readOnly: true
type: "boolean"
type: "object"
ProjectDetails:
additionalProperties: false
description: "Details about a project."
properties:
avatarUrls:
allOf:
- $ref: "#/components/schemas/AvatarUrlsBean"
description: "The URLs of the project's avatars."
readOnly: true
id:
description: "The ID of the project."
type: "string"
key:
description: "The key of the project."
readOnly: true
type: "string"
name:
description: "The name of the project."
readOnly: true
type: "string"
projectCategory:
allOf:
- $ref: "#/components/schemas/UpdatedProjectCategory"
description: "The category the project belongs to."
readOnly: true
projectTypeKey:
description: "The [project type](https://confluence.atlassian.com/x/GwiiLQ#Jiraapplicationsoverview-Productfeaturesandprojecttypes)\
\ of the project."
enum:
- "software"
- "service_desk"
- "business"
readOnly: true
type: "string"
self:
description: "The URL of the project details."
readOnly: true
type: "string"
simplified:
description: "Whether or not the project is simplified."
readOnly: true
type: "boolean"
type: "object"
ProjectEmailAddress:
additionalProperties: false
description: "A project's sender email address."
properties:
emailAddress:
description: "The email address."
type: "string"
emailAddressStatus:
description: "When using a custom domain, the status of the email address."
items:
type: "string"
type: "array"
type: "object"
ProjectFeature:
additionalProperties: false
description: "Details of a project feature."
properties:
feature:
description: "The key of the feature."
type: "string"
imageUri:
description: "URI for the image representing the feature."
type: "string"
localisedDescription:
description: "Localized display description for the feature."
type: "string"
localisedName:
description: "Localized display name for the feature."
type: "string"
prerequisites:
description: "List of keys of the features required to enable the feature."
items:
type: "string"
type: "array"
projectId:
description: "The ID of the project."
format: "int64"
type: "integer"
state:
description: "The state of the feature. When updating the state of a feature,\
\ only ENABLED and DISABLED are supported. Responses can contain all values"
enum:
- "ENABLED"
- "DISABLED"
- "COMING_SOON"
type: "string"
toggleLocked:
description: "Whether the state of the feature can be updated."
type: "boolean"
type: "object"
ProjectFeatureState:
additionalProperties: false
description: "Details of the feature state."
properties:
state:
description: "The feature state."
enum:
- "ENABLED"
- "DISABLED"
- "COMING_SOON"
type: "string"
type: "object"
ProjectId:
additionalProperties: false
description: "Project ID details."
nullable: true
properties:
id:
description: "The ID of the project."
type: "string"
required:
- "id"
type: "object"
ProjectIdentifierBean:
additionalProperties: false
description: "The identifiers for a project."
properties:
id:
description: "The ID of the project."
format: "int64"
readOnly: true
type: "integer"
key:
description: "The key of the project."
readOnly: true
type: "string"
type: "object"
ProjectIdentifiers:
additionalProperties: false
description: "Identifiers for a project."
properties:
id:
description: "The ID of the created project."
format: "int64"
readOnly: true
type: "integer"
key:
description: "The key of the created project."
readOnly: true
type: "string"
self:
description: "The URL of the created project."
format: "uri"
readOnly: true
type: "string"
required:
- "id"
- "key"
- "self"
type: "object"
ProjectIds:
additionalProperties: false
description: "A list of project IDs."
properties:
projectIds:
description: "The IDs of projects."
items:
type: "string"
writeOnly: true
type: "array"
writeOnly: true
required:
- "projectIds"
type: "object"
ProjectInsight:
additionalProperties: false
description: "Additional details about a project."
properties:
lastIssueUpdateTime:
description: "The last issue update time."
format: "date-time"
readOnly: true
type: "string"
totalIssueCount:
description: "Total issue count."
format: "int64"
readOnly: true
type: "integer"
type: "object"
ProjectIssueCreateMetadata:
additionalProperties: false
description: "Details of the issue creation metadata for a project."
properties:
avatarUrls:
allOf:
- $ref: "#/components/schemas/AvatarUrlsBean"
description: "List of the project's avatars, returning the avatar size and\
\ associated URL."
readOnly: true
expand:
description: "Expand options that include additional project issue create\
\ metadata details in the response."
readOnly: true
type: "string"
xml:
attribute: true
id:
description: "The ID of the project."
readOnly: true
type: "string"
issuetypes:
description: "List of the issue types supported by the project."
items:
$ref: "#/components/schemas/IssueTypeIssueCreateMetadata"
readOnly: true
type: "array"
key:
description: "The key of the project."
readOnly: true
type: "string"
name:
description: "The name of the project."
readOnly: true
type: "string"
self:
description: "The URL of the project."
readOnly: true
type: "string"
type: "object"
ProjectIssueSecurityLevels:
additionalProperties: false
description: "List of issue level security items in a project."
properties:
levels:
description: "Issue level security items list."
items:
$ref: "#/components/schemas/SecurityLevel"
readOnly: true
type: "array"
required:
- "levels"
type: "object"
ProjectIssueTypeHierarchy:
additionalProperties: false
description: "The hierarchy of issue types within a project."
properties:
hierarchy:
description: "Details of an issue type hierarchy level."
items:
$ref: "#/components/schemas/ProjectIssueTypesHierarchyLevel"
readOnly: true
type: "array"
projectId:
description: "The ID of the project."
format: "int64"
readOnly: true
type: "integer"
type: "object"
ProjectIssueTypeMapping:
additionalProperties: false
description: "The project and issue type mapping."
properties:
issueTypeId:
description: "The ID of the issue type."
type: "string"
writeOnly: true
projectId:
description: "The ID of the project."
type: "string"
writeOnly: true
required:
- "issueTypeId"
- "projectId"
type: "object"
writeOnly: true
ProjectIssueTypeMappings:
additionalProperties: false
description: "The project and issue type mappings."
properties:
mappings:
description: "The project and issue type mappings."
items:
$ref: "#/components/schemas/ProjectIssueTypeMapping"
type: "array"
writeOnly: true
required:
- "mappings"
type: "object"
ProjectIssueTypes:
additionalProperties: false
description: "Use the optional `workflows.usages` expand to get additional information\
\ about the projects and issue types associated with the requested workflows."
properties:
issueTypes:
description: "IDs of the issue types"
items:
description: "IDs of the issue types"
nullable: true
type: "string"
nullable: true
type: "array"
uniqueItems: true
project:
$ref: "#/components/schemas/ProjectId"
type: "object"
ProjectIssueTypesHierarchyLevel:
additionalProperties: false
description: "Details of an issue type hierarchy level."
properties:
entityId:
description: "The ID of the issue type hierarchy level. This property is\
\ deprecated, see [Change notice: Removing hierarchy level IDs from next-gen\
\ APIs](https://developer.atlassian.com/cloud/jira/platform/change-notice-removing-hierarchy-level-ids-from-next-gen-apis/)."
format: "uuid"
readOnly: true
type: "string"
issueTypes:
description: "The list of issue types in the hierarchy level."
items:
$ref: "#/components/schemas/IssueTypeInfo"
readOnly: true
type: "array"
level:
description: "The level of the issue type hierarchy level."
format: "int32"
readOnly: true
type: "integer"
name:
description: "The name of the issue type hierarchy level."
readOnly: true
type: "string"
type: "object"
ProjectLandingPageInfo:
additionalProperties: false
properties:
attributes:
additionalProperties:
type: "string"
type: "object"
boardId:
format: "int64"
type: "integer"
boardName:
type: "string"
projectKey:
type: "string"
projectType:
type: "string"
queueCategory:
type: "string"
queueId:
format: "int64"
type: "integer"
queueName:
type: "string"
simpleBoard:
type: "boolean"
simplified:
type: "boolean"
url:
type: "string"
type: "object"
ProjectPermissions:
additionalProperties: false
description: "Permissions which a user has on a project."
properties:
canEdit:
description: "Whether the logged user can edit the project."
readOnly: true
type: "boolean"
type: "object"
ProjectRole:
additionalProperties: false
description: "Details about the roles in a project."
properties:
actors:
description: "The list of users who act in this role."
items:
$ref: "#/components/schemas/RoleActor"
readOnly: true
type: "array"
admin:
description: "Whether this role is the admin role for the project."
readOnly: true
type: "boolean"
currentUserRole:
description: "Whether the calling user is part of this role."
type: "boolean"
default:
description: "Whether this role is the default role for the project"
readOnly: true
type: "boolean"
description:
description: "The description of the project role."
readOnly: true
type: "string"
id:
description: "The ID of the project role."
format: "int64"
readOnly: true
type: "integer"
name:
description: "The name of the project role."
type: "string"
roleConfigurable:
description: "Whether the roles are configurable for this project."
readOnly: true
type: "boolean"
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "The scope of the role. Indicated for roles associated with\
\ [next-gen projects](https://confluence.atlassian.com/x/loMyO)."
readOnly: true
self:
description: "The URL the project role details."
format: "uri"
readOnly: true
type: "string"
translatedName:
description: "The translated name of the project role."
type: "string"
type: "object"
ProjectRoleActorsUpdateBean:
additionalProperties: false
properties:
categorisedActors:
additionalProperties:
items:
type: "string"
type: "array"
description: "The actors to add to the project role.\n\nAdd groups using:\n\
\n * `atlassian-group-role-actor` and a list of group names.\n * `atlassian-group-role-actor-id`\
\ and a list of group IDs.\n\nAs 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\"\
]`.\n\nAdd 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\"]`."
type: "object"
id:
description: "The ID of the project role. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
format: "int64"
readOnly: true
type: "integer"
type: "object"
xml:
name: "actor"
ProjectRoleDetails:
additionalProperties: false
description: "Details about a project role."
properties:
admin:
description: "Whether this role is the admin role for the project."
readOnly: true
type: "boolean"
default:
description: "Whether this role is the default role for the project."
readOnly: true
type: "boolean"
description:
description: "The description of the project role."
readOnly: true
type: "string"
id:
description: "The ID of the project role."
format: "int64"
readOnly: true
type: "integer"
name:
description: "The name of the project role."
type: "string"
roleConfigurable:
description: "Whether the roles are configurable for this project."
readOnly: true
type: "boolean"
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "The scope of the role. Indicated for roles associated with\
\ [next-gen projects](https://confluence.atlassian.com/x/loMyO)."
readOnly: true
self:
description: "The URL the project role details."
format: "uri"
readOnly: true
type: "string"
translatedName:
description: "The translated name of the project role."
type: "string"
type: "object"
ProjectRoleGroup:
additionalProperties: false
description: "Details of the group associated with the role."
properties:
displayName:
description: "The display name of the group."
type: "string"
groupId:
description: "The ID of the group."
type: "string"
name:
description: "The name of the group. As a group's name can change, use of\
\ `groupId` is recommended to identify the group."
type: "string"
type: "object"
ProjectRoleUser:
additionalProperties: false
description: "Details of the user associated with the role."
properties:
accountId:
description: "The account ID of the user, which uniquely identifies the\
\ user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*.\
\ Returns *unknown* if the record is deleted and corrupted, for example,\
\ as the result of a server import."
maxLength: 128
readOnly: true
type: "string"
type: "object"
ProjectScopeBean:
additionalProperties: false
properties:
attributes:
description: "Defines the behavior of the option in the project.If notSelectable\
\ is set, the option cannot be set as the field's value. This is useful\
\ for archiving an option that has previously been selected but shouldn't\
\ be used anymore.If defaultValue is set, the option is selected by default."
items:
enum:
- "notSelectable"
- "defaultValue"
type: "string"
type: "array"
uniqueItems: true
id:
description: "The ID of the project that the option's behavior applies to."
format: "int64"
type: "integer"
type: "object"
ProjectType:
additionalProperties: false
description: "Details about a project type."
properties:
color:
description: "The color of the project type."
readOnly: true
type: "string"
descriptionI18nKey:
description: "The key of the project type's description."
readOnly: true
type: "string"
formattedKey:
description: "The formatted key of the project type."
readOnly: true
type: "string"
icon:
description: "The icon of the project type."
readOnly: true
type: "string"
key:
description: "The key of the project type."
readOnly: true
type: "string"
type: "object"
ProjectWithDataPolicy:
additionalProperties: false
description: "Details about data policies for a project."
properties:
dataPolicy:
allOf:
- $ref: "#/components/schemas/ProjectDataPolicy"
description: "Data policy."
readOnly: true
id:
description: "The project ID."
format: "int64"
readOnly: true
type: "integer"
type: "object"
PropertyKey:
additionalProperties: false
description: "Property key details."
properties:
key:
description: "The key of the property."
readOnly: true
type: "string"
self:
description: "The URL of the property."
readOnly: true
type: "string"
type: "object"
PropertyKeys:
additionalProperties: false
description: "List of property keys."
properties:
keys:
description: "Property key details."
items:
$ref: "#/components/schemas/PropertyKey"
readOnly: true
type: "array"
type: "object"
PublishDraftWorkflowScheme:
additionalProperties: false
description: "Details about the status mappings for publishing a draft workflow\
\ scheme."
properties:
statusMappings:
description: "Mappings of statuses to new statuses for issue types."
items:
$ref: "#/components/schemas/StatusMapping"
type: "array"
uniqueItems: true
type: "object"
PublishedWorkflowId:
additionalProperties: false
description: "Properties that identify a published workflow."
properties:
entityId:
description: "The entity ID of the workflow."
type: "string"
name:
description: "The name of the workflow."
type: "string"
required:
- "name"
type: "object"
RegisteredWebhook:
additionalProperties: false
description: "ID of a registered webhook or error messages explaining why a\
\ webhook wasn't registered."
properties:
createdWebhookId:
description: "The ID of the webhook. Returned if the webhook is created."
format: "int64"
type: "integer"
errors:
description: "Error messages specifying why the webhook creation failed."
items:
description: "Error messages specifying why the webhook creation failed."
type: "string"
type: "array"
type: "object"
RemoteIssueLink:
additionalProperties: false
description: "Details of an issue remote link."
properties:
application:
allOf:
- $ref: "#/components/schemas/Application"
description: "Details of the remote application the linked item is in."
globalId:
description: "The global ID of the link, such as the ID of the item on the\
\ remote system."
type: "string"
id:
description: "The ID of the link."
format: "int64"
type: "integer"
object:
allOf:
- $ref: "#/components/schemas/RemoteObject"
description: "Details of the item linked to."
relationship:
description: "Description of the relationship between the issue and the\
\ linked item."
type: "string"
self:
description: "The URL of the link."
format: "uri"
type: "string"
type: "object"
RemoteIssueLinkIdentifies:
additionalProperties: false
description: "Details of the identifiers for a created or updated remote issue\
\ link."
properties:
id:
description: "The ID of the remote issue link, such as the ID of the item\
\ on the remote system."
format: "int64"
readOnly: true
type: "integer"
xml:
attribute: true
self:
description: "The URL of the remote issue link."
readOnly: true
type: "string"
xml:
attribute: true
type: "object"
RemoteIssueLinkRequest:
additionalProperties: true
description: "Details of a remote issue link."
properties:
application:
allOf:
- $ref: "#/components/schemas/Application"
description: "Details of the remote application the linked item is in. For\
\ example, trello."
globalId:
description: "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`.\n\nSetting\
\ 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.\n\nThe maximum length is 255 characters."
type: "string"
object:
allOf:
- $ref: "#/components/schemas/RemoteObject"
description: "Details of the item linked to."
relationship:
description: "Description of the relationship between the issue and the\
\ linked item. If not set, the relationship description \"links to\" is\
\ used in Jira."
type: "string"
required:
- "object"
type: "object"
RemoteObject:
additionalProperties: true
description: "The linked item."
properties:
icon:
allOf:
- $ref: "#/components/schemas/Icon"
description: "Details of the icon for the item. If no icon is defined, the\
\ default link icon is used in Jira."
status:
allOf:
- $ref: "#/components/schemas/Status"
description: "The status of the item."
summary:
description: "The summary details of the item."
type: "string"
title:
description: "The title of the item."
type: "string"
url:
description: "The URL of the item."
type: "string"
required:
- "title"
- "url"
type: "object"
RemoveOptionFromIssuesResult:
additionalProperties: false
properties:
errors:
allOf:
- $ref: "#/components/schemas/SimpleErrorCollection"
description: "A collection of errors related to unchanged issues. The collection\
\ size is limited, which means not all errors may be returned."
modifiedIssues:
description: "The IDs of the modified issues."
items:
format: "int64"
type: "integer"
type: "array"
unmodifiedIssues:
description: "The IDs of the unchanged issues, those issues where errors\
\ prevent modification."
items:
format: "int64"
type: "integer"
type: "array"
type: "object"
ReorderIssuePriorities:
additionalProperties: false
description: "Change the order of issue priorities."
properties:
after:
description: "The ID of the priority. Required if `position` isn't provided."
type: "string"
writeOnly: true
ids:
description: "The list of issue IDs to be reordered. Cannot contain duplicates\
\ nor after ID."
items:
type: "string"
writeOnly: true
type: "array"
writeOnly: true
position:
description: "The position for issue priorities to be moved to. Required\
\ if `after` isn't provided."
type: "string"
writeOnly: true
required:
- "ids"
type: "object"
ReorderIssueResolutionsRequest:
additionalProperties: false
description: "Change the order of issue resolutions."
properties:
after:
description: "The ID of the resolution. Required if `position` isn't provided."
type: "string"
writeOnly: true
ids:
description: "The list of resolution IDs to be reordered. Cannot contain\
\ duplicates nor after ID."
items:
type: "string"
writeOnly: true
type: "array"
writeOnly: true
position:
description: "The position for issue resolutions to be moved to. Required\
\ if `after` isn't provided."
type: "string"
writeOnly: true
required:
- "ids"
type: "object"
RequiredMappingByIssueType:
additionalProperties: false
description: "The list of required status mappings by issue type."
properties:
issueTypeId:
description: "The ID of the issue type."
type: "string"
statusIds:
description: "The status IDs requiring mapping."
items:
description: "The status IDs requiring mapping."
type: "string"
type: "array"
uniqueItems: true
type: "object"
RequiredMappingByWorkflows:
additionalProperties: false
description: "The list of required status mappings by workflow."
properties:
sourceWorkflowId:
description: "The ID of the source workflow."
type: "string"
statusIds:
description: "The status IDs requiring mapping."
items:
description: "The status IDs requiring mapping."
type: "string"
type: "array"
uniqueItems: true
targetWorkflowId:
description: "The ID of the target workflow."
type: "string"
type: "object"
Resolution:
additionalProperties: false
description: "Details of an issue resolution."
properties:
description:
description: "The description of the issue resolution."
type: "string"
id:
description: "The ID of the issue resolution."
type: "string"
name:
description: "The name of the issue resolution."
type: "string"
self:
description: "The URL of the issue resolution."
format: "uri"
type: "string"
type: "object"
xml:
name: "resolution"
ResolutionId:
additionalProperties: true
description: "The ID of an issue resolution."
properties:
id:
description: "The ID of the issue resolution."
readOnly: true
type: "string"
required:
- "id"
type: "object"
ResolutionJsonBean:
additionalProperties: false
properties:
default:
type: "boolean"
description:
type: "string"
iconUrl:
type: "string"
id:
type: "string"
name:
type: "string"
self:
type: "string"
type: "object"
Resource:
additionalProperties: false
properties:
description:
type: "string"
file:
format: "binary"
type: "string"
filename:
type: "string"
inputStream:
type: "object"
open:
type: "boolean"
readable:
type: "boolean"
uri:
format: "uri"
type: "string"
url:
format: "url"
type: "string"
type: "object"
RestrictedPermission:
additionalProperties: true
description: "Details of the permission."
properties:
id:
description: "The ID of the permission. Either `id` or `key` must be specified.\
\ Use [Get all permissions](#api-rest-api-2-permissions-get) to get the\
\ list of permissions."
type: "string"
key:
description: "The key of the permission. Either `id` or `key` must be specified.\
\ Use [Get all permissions](#api-rest-api-2-permissions-get) to get the\
\ list of permissions."
type: "string"
type: "object"
RichText:
properties:
empty:
type: "boolean"
emptyAdf:
type: "boolean"
finalised:
type: "boolean"
valueSet:
type: "boolean"
type: "object"
RoleActor:
additionalProperties: false
description: "Details about a user assigned to a project role."
properties:
actorGroup:
allOf:
- $ref: "#/components/schemas/ProjectRoleGroup"
readOnly: true
actorUser:
allOf:
- $ref: "#/components/schemas/ProjectRoleUser"
readOnly: true
avatarUrl:
description: "The avatar of the role actor."
format: "uri"
readOnly: true
type: "string"
displayName:
description: "The display name of the role actor. For users, depending on\
\ the user’s privacy setting, this may return an alternative value for\
\ the user's name."
readOnly: true
type: "string"
id:
description: "The ID of the role actor."
format: "int64"
readOnly: true
type: "integer"
name:
description: "This property is no longer available and will be removed from\
\ the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/)\
\ for details."
readOnly: true
type: "string"
type:
description: "The type of role actor."
enum:
- "atlassian-group-role-actor"
- "atlassian-user-role-actor"
readOnly: true
type: "string"
type: "object"
xml:
name: "projectRoleActor"
RuleConfiguration:
additionalProperties: false
description: "A rule configuration."
properties:
disabled:
default: false
description: "Whether the rule is disabled."
type: "boolean"
tag:
description: "A tag used to filter rules in [Get workflow transition rule\
\ configurations](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-workflow-transition-rules/#api-rest-api-3-workflow-rule-config-get)."
maxLength: 255
type: "string"
value:
description: "Configuration of the rule, as it is stored by the Connect\
\ or the Forge app on the rule configuration page."
type: "string"
required:
- "value"
type: "object"
SanitizedJqlQueries:
additionalProperties: false
description: "The sanitized JQL queries for the given account IDs."
properties:
queries:
description: "The list of sanitized JQL queries."
items:
$ref: "#/components/schemas/SanitizedJqlQuery"
type: "array"
type: "object"
SanitizedJqlQuery:
additionalProperties: false
description: "Details of the sanitized JQL query."
properties:
accountId:
description: "The account ID of the user for whom sanitization was performed."
maxLength: 128
nullable: true
type: "string"
errors:
allOf:
- $ref: "#/components/schemas/ErrorCollection"
description: "The list of errors."
initialQuery:
description: "The initial query."
type: "string"
sanitizedQuery:
description: "The sanitized query, if there were no errors."
nullable: true
type: "string"
type: "object"
Scope:
additionalProperties: true
description: "The projects the item is associated with. Indicated for items\
\ associated with [next-gen projects](https://confluence.atlassian.com/x/loMyO)."
properties:
project:
allOf:
- $ref: "#/components/schemas/ProjectDetails"
description: "The project the item has scope in."
readOnly: true
type:
description: "The type of scope."
enum:
- "PROJECT"
- "TEMPLATE"
readOnly: true
type: "string"
type: "object"
Screen:
additionalProperties: false
description: "A screen."
properties:
description:
description: "The description of the screen."
readOnly: true
type: "string"
id:
description: "The ID of the screen."
format: "int64"
readOnly: true
type: "integer"
name:
description: "The name of the screen."
readOnly: true
type: "string"
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "The scope of the screen."
type: "object"
ScreenDetails:
additionalProperties: false
description: "Details of a screen."
properties:
description:
description: "The description of the screen. The maximum length is 255 characters."
type: "string"
writeOnly: true
name:
description: "The name of the screen. The name must be unique. The maximum\
\ length is 255 characters."
type: "string"
writeOnly: true
required:
- "name"
type: "object"
ScreenScheme:
additionalProperties: false
description: "A screen scheme."
properties:
description:
description: "The description of the screen scheme."
type: "string"
id:
description: "The ID of the screen scheme."
format: "int64"
type: "integer"
issueTypeScreenSchemes:
allOf:
- $ref: "#/components/schemas/PageBeanIssueTypeScreenScheme"
description: "Details of the issue type screen schemes associated with the\
\ screen scheme."
name:
description: "The name of the screen scheme."
type: "string"
screens:
allOf:
- $ref: "#/components/schemas/ScreenTypes"
description: "The IDs of the screens for the screen types of the screen\
\ scheme."
type: "object"
ScreenSchemeDetails:
additionalProperties: false
description: "Details of a screen scheme."
properties:
description:
description: "The description of the screen scheme. The maximum length is\
\ 255 characters."
type: "string"
writeOnly: true
name:
description: "The name of the screen scheme. The name must be unique. The\
\ maximum length is 255 characters."
type: "string"
writeOnly: true
screens:
allOf:
- $ref: "#/components/schemas/ScreenTypes"
description: "The IDs of the screens for the screen types of the screen\
\ scheme. Only screens used in classic projects are accepted."
required:
- "name"
- "screens"
type: "object"
ScreenSchemeId:
additionalProperties: false
description: "The ID of a screen scheme."
properties:
id:
description: "The ID of the screen scheme."
format: "int64"
readOnly: true
type: "integer"
required:
- "id"
type: "object"
ScreenTypes:
additionalProperties: false
description: "The IDs of the screens for the screen types of the screen scheme."
properties:
create:
description: "The ID of the create screen."
format: "int64"
type: "integer"
default:
description: "The ID of the default screen. Required when creating a screen\
\ scheme."
format: "int64"
type: "integer"
edit:
description: "The ID of the edit screen."
format: "int64"
type: "integer"
view:
description: "The ID of the view screen."
format: "int64"
type: "integer"
required:
- "defaultScreen"
type: "object"
writeOnly: true
ScreenWithTab:
additionalProperties: false
description: "A screen with tab details."
properties:
description:
description: "The description of the screen."
readOnly: true
type: "string"
id:
description: "The ID of the screen."
format: "int64"
readOnly: true
type: "integer"
name:
description: "The name of the screen."
readOnly: true
type: "string"
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "The scope of the screen."
tab:
allOf:
- $ref: "#/components/schemas/ScreenableTab"
description: "The tab for the screen."
type: "object"
ScreenableField:
additionalProperties: false
description: "A screen tab field."
properties:
id:
description: "The ID of the screen tab field."
readOnly: true
type: "string"
name:
description: "The name of the screen tab field. Required on create and update.\
\ The maximum length is 255 characters."
type: "string"
type: "object"
ScreenableTab:
additionalProperties: false
description: "A screen tab."
properties:
id:
description: "The ID of the screen tab."
format: "int64"
readOnly: true
type: "integer"
name:
description: "The name of the screen tab. The maximum length is 255 characters."
type: "string"
required:
- "name"
type: "object"
SearchAutoCompleteFilter:
additionalProperties: false
description: "Details of how to filter and list search auto complete information."
properties:
includeCollapsedFields:
default: false
description: "Include collapsed fields for fields that have non-unique names."
type: "boolean"
projectIds:
description: "List of project IDs used to filter the visible field details\
\ returned."
items:
format: "int64"
type: "integer"
type: "array"
type: "object"
SearchRequestBean:
additionalProperties: false
properties:
expand:
description: "Use [expand](em>#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:\n\n * `renderedFields` Returns field values\
\ rendered in HTML format.\n * `names` Returns the display name of each\
\ field.\n * `schema` Returns the schema describing a field type.\n *\
\ `transitions` Returns all possible transitions for the issue.\n * \
\ `operations` Returns all possible operations for the issue.\n * `editmeta`\
\ Returns information about how each field can be edited.\n * `changelog`\
\ Returns a list of recent updates to an issue, sorted by date, starting\
\ from the most recent.\n * `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."
items:
type: "string"
type: "array"
fields:
description: "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:\n\n * `*all` Returns all fields.\n * `*navigable`\
\ Returns navigable fields.\n * Any issue field, prefixed with a minus\
\ to exclude.\n\nThe default is `*navigable`.\n\nExamples:\n\n * `summary,comment`\
\ Returns the summary and comments fields only.\n * `-description` Returns\
\ all navigable (default) fields except description.\n * `*all,-comment`\
\ Returns all fields except comments.\n\nMultiple `fields` parameters\
\ can be included in a request.\n\nNote: All navigable fields are returned\
\ by default. This differs from [GET issue](#api-rest-api-2-issue-issueIdOrKey-get)\
\ where the default is all fields."
items:
type: "string"
type: "array"
fieldsByKeys:
description: "Reference fields by their key (rather than ID). The default\
\ is `false`."
type: "boolean"
jql:
description: "A [JQL](https://confluence.atlassian.com/x/egORLQ) expression."
type: "string"
maxResults:
default: 50
description: "The maximum number of items to return per page."
format: "int32"
type: "integer"
properties:
description: "A list of up to 5 issue properties to include in the results.\
\ This parameter accepts a comma-separated list."
items:
type: "string"
type: "array"
startAt:
description: "The index of the first item to return in the page of results\
\ (page offset). The base index is `0`."
format: "int32"
type: "integer"
validateQuery:
description: "Determines how to validate the JQL query and treat the validation\
\ results. Supported values:\n\n * `strict` Returns a 400 response code\
\ if any errors are found, along with a list of all errors (and warnings).\n\
\ * `warn` Returns all errors as warnings.\n * `none` No validation\
\ is performed.\n * `true` *Deprecated* A legacy synonym for `strict`.\n\
\ * `false` *Deprecated* A legacy synonym for `warn`.\n\nThe default\
\ is `strict`.\n\nNote: If the JQL is not correctly formed a 400 response\
\ code is returned, regardless of the `validateQuery` value."
enum:
- "strict"
- "warn"
- "none"
- "true"
- "false"
type: "string"
type: "object"
SearchResults:
additionalProperties: false
description: "The result of a JQL search."
properties:
expand:
description: "Expand options that include additional search result details\
\ in the response."
readOnly: true
type: "string"
issues:
description: "The list of issues found by the search."
items:
$ref: "#/components/schemas/IssueBean"
readOnly: true
type: "array"
maxResults:
description: "The maximum number of results that could be on the page."
format: "int32"
readOnly: true
type: "integer"
names:
additionalProperties:
readOnly: true
type: "string"
description: "The ID and name of each field in the search results."
readOnly: true
type: "object"
schema:
additionalProperties:
$ref: "#/components/schemas/JsonTypeBean"
description: "The schema describing the field types in the search results."
readOnly: true
type: "object"
startAt:
description: "The index of the first item returned on the page."
format: "int32"
readOnly: true
type: "integer"
total:
description: "The number of results on the page."
format: "int32"
readOnly: true
type: "integer"
warningMessages:
description: "Any warnings related to the JQL query."
items:
readOnly: true
type: "string"
readOnly: true
type: "array"
type: "object"
SecurityLevel:
additionalProperties: false
description: "Details of an issue level security item."
properties:
description:
description: "The description of the issue level security item."
readOnly: true
type: "string"
id:
description: "The ID of the issue level security item."
readOnly: true
type: "string"
isDefault:
description: "Whether the issue level security item is the default."
readOnly: true
type: "boolean"
issueSecuritySchemeId:
description: "The ID of the issue level security scheme."
readOnly: true
type: "string"
name:
description: "The name of the issue level security item."
readOnly: true
type: "string"
self:
description: "The URL of the issue level security item."
readOnly: true
type: "string"
type: "object"
SecurityLevelMember:
additionalProperties: true
description: "Issue security level member."
properties:
holder:
allOf:
- $ref: "#/components/schemas/PermissionHolder"
description: "The user or group being granted the permission. It consists\
\ of a `type` and a type-dependent `parameter`. See [Holder object](../api-group-permission-schemes/#holder-object)\
\ in *Get all permission schemes* for more information."
readOnly: true
id:
description: "The ID of the issue security level member."
readOnly: true
type: "string"
issueSecurityLevelId:
description: "The ID of the issue security level."
readOnly: true
type: "string"
issueSecuritySchemeId:
description: "The ID of the issue security scheme."
readOnly: true
type: "string"
managed:
type: "boolean"
writeOnly: true
required:
- "holder"
- "id"
- "issueSecurityLevelId"
- "issueSecuritySchemeId"
type: "object"
SecurityScheme:
additionalProperties: false
description: "Details about a security scheme."
properties:
defaultSecurityLevelId:
description: "The ID of the default security level."
format: "int64"
readOnly: true
type: "integer"
description:
description: "The description of the issue security scheme."
readOnly: true
type: "string"
id:
description: "The ID of the issue security scheme."
format: "int64"
readOnly: true
type: "integer"
levels:
items:
$ref: "#/components/schemas/SecurityLevel"
type: "array"
name:
description: "The name of the issue security scheme."
readOnly: true
type: "string"
self:
description: "The URL of the issue security scheme."
readOnly: true
type: "string"
type: "object"
SecuritySchemeId:
additionalProperties: true
description: "The ID of the issue security scheme."
properties:
id:
description: "The ID of the issue security scheme."
readOnly: true
type: "string"
required:
- "id"
type: "object"
SecuritySchemeLevelBean:
additionalProperties: false
properties:
description:
description: "The description of the issue security scheme level."
maxLength: 4000
type: "string"
writeOnly: true
isDefault:
description: "Specifies whether the level is the default level. False by\
\ default."
type: "boolean"
writeOnly: true
members:
description: "The list of level members which should be added to the issue\
\ security scheme level."
items:
$ref: "#/components/schemas/SecuritySchemeLevelMemberBean"
type: "array"
writeOnly: true
name:
description: "The name of the issue security scheme level. Must be unique."
maxLength: 255
type: "string"
writeOnly: true
required:
- "name"
type: "object"
writeOnly: true
SecuritySchemeLevelMemberBean:
additionalProperties: false
properties:
parameter:
description: "The value corresponding to the specified member type."
type: "string"
writeOnly: true
type:
description: "The issue security level member type, e.g `reporter`, `group`,\
\ `user`."
type: "string"
writeOnly: true
required:
- "type"
type: "object"
writeOnly: true
SecuritySchemeMembersRequest:
additionalProperties: false
description: "Details of issue security scheme level new members."
properties:
members:
description: "The list of level members which should be added to the issue\
\ security scheme level."
items:
$ref: "#/components/schemas/SecuritySchemeLevelMemberBean"
type: "array"
writeOnly: true
required:
- "securitySchemeLevelMembers"
type: "object"
SecuritySchemeWithProjects:
additionalProperties: true
description: "Details about an issue security scheme."
properties:
defaultLevel:
description: "The default level ID of the issue security scheme."
format: "int64"
readOnly: true
type: "integer"
description:
description: "The description of the issue security scheme."
readOnly: true
type: "string"
id:
description: "The ID of the issue security scheme."
format: "int64"
readOnly: true
type: "integer"
name:
description: "The name of the issue security scheme."
readOnly: true
type: "string"
projectIds:
description: "The list of project IDs associated with the issue security\
\ scheme."
items:
format: "int64"
readOnly: true
type: "integer"
readOnly: true
type: "array"
uniqueItems: true
self:
description: "The URL of the issue security scheme."
readOnly: true
type: "string"
required:
- "id"
- "name"
- "self"
type: "object"
SecuritySchemes:
additionalProperties: false
description: "List of security schemes."
properties:
issueSecuritySchemes:
description: "List of security schemes."
items:
$ref: "#/components/schemas/SecurityScheme"
readOnly: true
type: "array"
type: "object"
ServerInformation:
additionalProperties: false
description: "Details about the Jira instance."
properties:
baseUrl:
description: "The base URL of the Jira instance."
type: "string"
buildDate:
description: "The timestamp when the Jira version was built."
format: "date-time"
type: "string"
buildNumber:
description: "The build number of the Jira version."
format: "int32"
type: "integer"
deploymentType:
description: "The type of server deployment. This is always returned as\
\ *Cloud*."
type: "string"
displayUrl:
description: "The display URL of the Jira instance."
type: "string"
displayUrlServicedeskHelpCenter:
description: "The display URL of the Servicedesk Help Center."
type: "string"
healthChecks:
description: "Jira instance health check results. Deprecated and no longer\
\ returned."
items:
$ref: "#/components/schemas/HealthCheckResult"
type: "array"
scmInfo:
description: "The unique identifier of the Jira version."
type: "string"
serverTime:
description: "The time in Jira when this request was responded to."
format: "date-time"
type: "string"
serverTimeZone:
description: "The default timezone of the Jira server. In a format known\
\ as Olson Time Zones, IANA Time Zones or TZ Database Time Zones."
properties:
displayName:
type: "string"
dstsavings:
format: "int32"
type: "integer"
id:
type: "string"
rawOffset:
format: "int32"
type: "integer"
type: "object"
serverTitle:
description: "The name of the Jira instance."
type: "string"
version:
description: "The version of Jira."
type: "string"
versionNumbers:
description: "The major, minor, and revision version numbers of the Jira\
\ version."
items:
format: "int32"
type: "integer"
type: "array"
type: "object"
ServiceManagementNavigationInfo:
properties:
queueCategory:
type: "string"
queueId:
format: "int64"
type: "integer"
queueName:
type: "string"
type: "object"
ServiceRegistry:
properties:
description:
description: "service description"
nullable: true
type: "string"
id:
description: "service ID"
format: "uuid"
type: "string"
name:
description: "service name"
type: "string"
organizationId:
description: "organization ID"
type: "string"
revision:
description: "service revision"
type: "string"
serviceTier:
$ref: "#/components/schemas/ServiceRegistryTier"
type: "object"
ServiceRegistryTier:
properties:
description:
description: "tier description"
nullable: true
type: "string"
id:
description: "tier ID"
format: "uuid"
type: "string"
level:
description: "tier level"
type: "integer"
name:
description: "tier name"
nullable: true
type: "string"
nameKey:
description: "name key of the tier"
example: "service-registry.tier1.name"
type: "string"
type: "object"
SetDefaultLevelsRequest:
additionalProperties: true
description: "Details of new default levels."
properties:
defaultValues:
description: "List of objects with issue security scheme ID and new default\
\ level ID."
items:
$ref: "#/components/schemas/DefaultLevelValue"
maxLength: 1000
type: "array"
writeOnly: true
required:
- "defaultValues"
type: "object"
SetDefaultPriorityRequest:
additionalProperties: false
description: "The new default issue priority."
properties:
id:
description: "The ID of the new default issue priority. Must be an existing\
\ ID or null. Setting this to null erases the default priority setting."
type: "string"
writeOnly: true
required:
- "id"
type: "object"
SetDefaultResolutionRequest:
additionalProperties: false
description: "The new default issue resolution."
properties:
id:
description: "The ID of the new default issue resolution. Must be an existing\
\ ID or null. Setting this to null erases the default resolution setting."
type: "string"
writeOnly: true
required:
- "id"
type: "object"
SharePermission:
additionalProperties: false
description: "Details of a share permission for the filter."
properties:
group:
allOf:
- $ref: "#/components/schemas/GroupName"
description: "The group that the filter is shared with. For a request, specify\
\ the `groupId` or `name` property for the group. As a group's name can\
\ change, use of `groupId` is recommended."
id:
description: "The unique identifier of the share permission."
format: "int64"
readOnly: true
type: "integer"
project:
allOf:
- $ref: "#/components/schemas/Project"
description: "The project that the filter is shared with. This is similar\
\ to the project object returned by [Get project](#api-rest-api-2-project-projectIdOrKey-get)\
\ but it contains a subset of the properties, which are: `self`, `id`,\
\ `key`, `assigneeType`, `name`, `roles`, `avatarUrls`, `projectType`,\
\ `simplified`. \nFor a request, specify the `id` for the project."
role:
allOf:
- $ref: "#/components/schemas/ProjectRole"
description: "The project role that the filter is shared with. \nFor a\
\ request, specify the `id` for the role. You must also specify the `project`\
\ object and `id` for the project that the role is in."
type:
description: "The type of share permission:\n\n * `user` Shared with a\
\ user.\n * `group` Shared with a group. If set in a request, then specify\
\ `sharePermission.group` as well.\n * `project` Shared with a project.\
\ If set in a request, then specify `sharePermission.project` as well.\n\
\ * `projectRole` Share with a project role in a project. This value\
\ is not returned in responses. It is used in requests, where it needs\
\ to be specify with `projectId` and `projectRoleId`.\n * `global` Shared\
\ globally. If set in a request, no other `sharePermission` properties\
\ need to be specified.\n * `loggedin` Shared with all logged-in users.\
\ Note: This value is set in a request by specifying `authenticated` as\
\ the `type`.\n * `project-unknown` Shared with a project that the user\
\ does not have access to. Cannot be set in a request."
enum:
- "user"
- "group"
- "project"
- "projectRole"
- "global"
- "loggedin"
- "authenticated"
- "project-unknown"
type: "string"
user:
allOf:
- $ref: "#/components/schemas/UserBean"
description: "The user account ID that the filter is shared with. For a\
\ request, specify the `accountId` property for the user."
required:
- "type"
type: "object"
SharePermissionInputBean:
additionalProperties: false
properties:
accountId:
description: "The user account ID that the filter is shared with. For a\
\ request, specify the `accountId` property for the user."
type: "string"
groupId:
description: "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`."
type: "string"
groupname:
description: "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`."
type: "string"
projectId:
description: "The ID of the project to share the filter with. Set `type`\
\ to `project`."
type: "string"
projectRoleId:
description: "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."
type: "string"
rights:
description: "The rights for the share permission."
format: "int32"
type: "integer"
type:
description: "The type of the share permission.Specify the type as follows:\n\
\n * `user` Share with a user.\n * `group` Share with a group. Specify\
\ `groupname` as well.\n * `project` Share with a project. Specify `projectId`\
\ as well.\n * `projectRole` Share with a project role in a project.\
\ Specify `projectId` and `projectRoleId` as well.\n * `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.\n * `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."
enum:
- "user"
- "project"
- "group"
- "projectRole"
- "global"
- "authenticated"
type: "string"
required:
- "type"
type: "object"
SimpleApplicationPropertyBean:
additionalProperties: false
properties:
id:
description: "The ID of the application property."
type: "string"
value:
description: "The new value."
type: "string"
type: "object"
xml:
name: "applicationProperty"
SimpleErrorCollection:
additionalProperties: false
properties:
errorMessages:
description: "The list of error messages produced by this operation. For\
\ example, \"input parameter 'key' must be provided\""
items:
type: "string"
type: "array"
errors:
additionalProperties:
type: "string"
description: "The list of errors by parameter returned by the operation.\
\ For example,\"projectKey\": \"Project keys must start with an uppercase\
\ letter, followed by one or more uppercase alphanumeric characters.\""
type: "object"
httpStatusCode:
format: "int32"
type: "integer"
type: "object"
SimpleLink:
additionalProperties: false
description: "Details about the operations available in this version."
properties:
href:
type: "string"
iconClass:
type: "string"
id:
type: "string"
label:
type: "string"
styleClass:
type: "string"
title:
type: "string"
weight:
format: "int32"
type: "integer"
type: "object"
xml:
name: "link"
SimpleListWrapperApplicationRole:
additionalProperties: false
properties:
callback:
$ref: "#/components/schemas/ListWrapperCallbackApplicationRole"
items:
items:
$ref: "#/components/schemas/ApplicationRole"
type: "array"
max-results:
format: "int32"
type: "integer"
xml:
attribute: true
name: "max-results"
pagingCallback:
$ref: "#/components/schemas/ListWrapperCallbackApplicationRole"
size:
format: "int32"
type: "integer"
xml:
attribute: true
type: "object"
xml:
name: "list"
SimpleListWrapperGroupName:
additionalProperties: false
properties:
callback:
$ref: "#/components/schemas/ListWrapperCallbackGroupName"
items:
items:
$ref: "#/components/schemas/GroupName"
type: "array"
max-results:
format: "int32"
type: "integer"
xml:
attribute: true
name: "max-results"
pagingCallback:
$ref: "#/components/schemas/ListWrapperCallbackGroupName"
size:
format: "int32"
type: "integer"
xml:
attribute: true
type: "object"
xml:
name: "list"
SimpleUsage:
additionalProperties: false
description: "Represents a usage of an entity by a project ID and related issue\
\ type IDs."
properties:
issueTypeIds:
description: "The issue type IDs for the usage."
items:
description: "The issue type IDs for the usage."
type: "string"
type: "array"
projectId:
description: "The project ID for the usage."
type: "string"
required:
- "issueTypeIds"
- "projectId"
type: "object"
SimplifiedHierarchyLevel:
additionalProperties: false
properties:
aboveLevelId:
description: "The ID of the level above this one in the hierarchy. This\
\ property is deprecated, see [Change notice: Removing hierarchy level\
\ IDs from next-gen APIs](https://developer.atlassian.com/cloud/jira/platform/change-notice-removing-hierarchy-level-ids-from-next-gen-apis/)."
format: "int64"
type: "integer"
belowLevelId:
description: "The ID of the level below this one in the hierarchy. This\
\ property is deprecated, see [Change notice: Removing hierarchy level\
\ IDs from next-gen APIs](https://developer.atlassian.com/cloud/jira/platform/change-notice-removing-hierarchy-level-ids-from-next-gen-apis/)."
format: "int64"
type: "integer"
externalUuid:
description: "The external UUID of the hierarchy level. This property is\
\ deprecated, see [Change notice: Removing hierarchy level IDs from next-gen\
\ APIs](https://developer.atlassian.com/cloud/jira/platform/change-notice-removing-hierarchy-level-ids-from-next-gen-apis/)."
format: "uuid"
type: "string"
hierarchyLevelNumber:
format: "int32"
type: "integer"
id:
description: "The ID of the hierarchy level. This property is deprecated,\
\ see [Change notice: Removing hierarchy level IDs from next-gen APIs](https://developer.atlassian.com/cloud/jira/platform/change-notice-removing-hierarchy-level-ids-from-next-gen-apis/)."
format: "int64"
type: "integer"
issueTypeIds:
description: "The issue types available in this hierarchy level."
items:
format: "int64"
type: "integer"
type: "array"
level:
description: "The level of this item in the hierarchy."
format: "int32"
type: "integer"
name:
description: "The name of this hierarchy level."
type: "string"
projectConfigurationId:
description: "The ID of the project configuration. This property is deprecated,\
\ see [Change oticen: Removing hierarchy level IDs from next-gen APIs](https://developer.atlassian.com/cloud/jira/platform/change-notice-removing-hierarchy-level-ids-from-next-gen-apis/)."
format: "int64"
type: "integer"
type: "object"
SoftwareNavigationInfo:
properties:
boardId:
format: "int64"
type: "integer"
boardName:
type: "string"
simpleBoard:
type: "boolean"
totalBoardsInProject:
format: "int64"
type: "integer"
type: "object"
Status:
additionalProperties: true
description: "The status of the item."
properties:
icon:
allOf:
- $ref: "#/components/schemas/Icon"
description: "Details of the icon representing the status. If not provided,\
\ no status icon displays in Jira."
resolved:
description: "Whether the item is resolved. If set to \"true\", the link\
\ to the issue is displayed in a strikethrough font, otherwise the link\
\ displays in normal font."
type: "boolean"
type: "object"
StatusCategory:
additionalProperties: true
description: "A status category."
properties:
colorName:
description: "The name of the color used to represent the status category."
readOnly: true
type: "string"
id:
description: "The ID of the status category."
format: "int64"
readOnly: true
type: "integer"
key:
description: "The key of the status category."
readOnly: true
type: "string"
name:
description: "The name of the status category."
readOnly: true
type: "string"
self:
description: "The URL of the status category."
readOnly: true
type: "string"
type: "object"
StatusCreate:
additionalProperties: false
description: "Details of the status being created."
properties:
description:
description: "The description of the status."
type: "string"
name:
description: "The name of the status."
maxLength: 255
type: "string"
statusCategory:
description: "The category of the status."
enum:
- "TODO"
- "IN_PROGRESS"
- "DONE"
type: "string"
required:
- "name"
- "statusCategory"
type: "object"
StatusCreateRequest:
additionalProperties: false
description: "Details of the statuses being created and their scope."
properties:
scope:
$ref: "#/components/schemas/StatusScope"
statuses:
description: "Details of the statuses being created."
items:
$ref: "#/components/schemas/StatusCreate"
type: "array"
required:
- "scope"
- "statuses"
type: "object"
StatusDetails:
additionalProperties: true
description: "A status."
properties:
description:
description: "The description of the status."
readOnly: true
type: "string"
iconUrl:
description: "The URL of the icon used to represent the status."
readOnly: true
type: "string"
id:
description: "The ID of the status."
readOnly: true
type: "string"
name:
description: "The name of the status."
readOnly: true
type: "string"
scope:
allOf:
- $ref: "#/components/schemas/Scope"
description: "The scope of the field."
readOnly: true
self:
description: "The URL of the status."
readOnly: true
type: "string"
statusCategory:
allOf:
- $ref: "#/components/schemas/StatusCategory"
description: "The category assigned to the status."
readOnly: true
type: "object"
StatusLayoutUpdate:
additionalProperties: true
description: "The statuses associated with this workflow."
properties:
layout:
$ref: "#/components/schemas/WorkflowLayout"
properties:
additionalProperties:
description: "The properties for this status layout."
type: "string"
description: "The properties for this status layout."
type: "object"
statusReference:
description: "A unique ID which the status will use to refer to this layout\
\ configuration."
type: "string"
required:
- "properties"
- "statusReference"
type: "object"
StatusMapping:
additionalProperties: false
description: "Details about the mapping from a status to a new status for an\
\ issue type."
properties:
issueTypeId:
description: "The ID of the issue type."
type: "string"
newStatusId:
description: "The ID of the new status."
type: "string"
statusId:
description: "The ID of the status."
type: "string"
required:
- "issueTypeId"
- "newStatusId"
- "statusId"
type: "object"
StatusMappingDTO:
additionalProperties: true
description: "The mapping of old to new status ID for a specific project and\
\ issue type."
properties:
issueTypeId:
description: "The issue type for the status mapping."
type: "string"
projectId:
description: "The project for the status mapping."
type: "string"
statusMigrations:
description: "The list of old and new status ID mappings for the specified\
\ project and issue type."
items:
$ref: "#/components/schemas/StatusMigration"
type: "array"
required:
- "issueTypeId"
- "projectId"
- "statusMigrations"
type: "object"
StatusMetadata:
additionalProperties: false
description: "The details of the statuses in the associated workflows."
properties:
category:
description: "The category of the status."
enum:
- "TODO"
- "IN_PROGRESS"
- "DONE"
type: "string"
id:
description: "The ID of the status."
type: "string"
name:
description: "The name of the status."
type: "string"
type: "object"
StatusMigration:
additionalProperties: true
description: "The mapping of old to new status ID."
properties:
newStatusReference:
description: "The new status ID."
type: "string"
oldStatusReference:
description: "The old status ID."
type: "string"
required:
- "newStatusReference"
- "oldStatusReference"
type: "object"
StatusReferenceAndPort:
additionalProperties: false
description: "The status reference and port that a transition is connected to."
nullable: true
properties:
port:
description: "The port this transition uses to connect to this status."
format: "int32"
type: "integer"
statusReference:
description: "The reference of this status."
type: "string"
required:
- "statusReference"
type: "object"
StatusScope:
additionalProperties: false
description: "The scope of the status."
properties:
project:
$ref: "#/components/schemas/ProjectId"
type:
description: "The scope of the status. `GLOBAL` for company-managed projects\
\ and `PROJECT` for team-managed projects."
enum:
- "PROJECT"
- "GLOBAL"
type: "string"
required:
- "type"
type: "object"
StatusUpdate:
additionalProperties: true
description: "Details of the status being updated."
properties:
description:
description: "The description of the status."
type: "string"
id:
description: "The ID of the status."
type: "string"
name:
description: "The name of the status."
type: "string"
statusCategory:
description: "The category of the status."
enum:
- "TODO"
- "IN_PROGRESS"
- "DONE"
type: "string"
required:
- "id"
- "name"
- "statusCategory"
type: "object"
StatusUpdateRequest:
additionalProperties: false
description: "The list of statuses that will be updated."
properties:
statuses:
description: "The list of statuses that will be updated."
items:
$ref: "#/components/schemas/StatusUpdate"
type: "array"
required:
- "statuses"
type: "object"
StatusesPerWorkflow:
additionalProperties: false
description: "The statuses associated with each workflow."
properties:
initialStatusId:
description: "The ID of the initial status for the workflow."
type: "string"
statuses:
description: "The status IDs associated with the workflow."
items:
description: "The status IDs associated with the workflow."
type: "string"
type: "array"
uniqueItems: true
workflowId:
description: "The ID of the workflow."
type: "string"
type: "object"
StreamingResponseBody:
additionalProperties: false
type: "object"
StringList:
additionalProperties: false
type: "object"
SuggestedIssue:
additionalProperties: false
description: "An issue suggested for use in the issue picker auto-completion."
properties:
id:
description: "The ID of the issue."
format: "int64"
readOnly: true
type: "integer"
img:
description: "The URL of the issue type's avatar."
readOnly: true
type: "string"
key:
description: "The key of the issue."
readOnly: true
type: "string"
keyHtml:
description: "The key of the issue in HTML format."
readOnly: true
type: "string"
summary:
description: "The phrase containing the query string in HTML format, with\
\ the string highlighted with HTML bold tags."
readOnly: true
type: "string"
summaryText:
description: "The phrase containing the query string, as plain text."
readOnly: true
type: "string"
type: "object"
SystemAvatars:
additionalProperties: false
description: "List of system avatars."
properties:
system:
description: "A list of avatar details."
items:
$ref: "#/components/schemas/Avatar"
readOnly: true
type: "array"
type: "object"
TaskProgressBeanObject:
additionalProperties: false
description: "Details about a task."
properties:
description:
description: "The description of the task."
type: "string"
elapsedRuntime:
description: "The execution time of the task, in milliseconds."
format: "int64"
type: "integer"
finished:
description: "A timestamp recording when the task was finished."
format: "int64"
type: "integer"
id:
description: "The ID of the task."
type: "string"
lastUpdate:
description: "A timestamp recording when the task progress was last updated."
format: "int64"
type: "integer"
message:
description: "Information about the progress of the task."
type: "string"
progress:
description: "The progress of the task, as a percentage complete."
format: "int64"
type: "integer"
result:
description: "The result of the task execution."
self:
description: "The URL of the task."
format: "uri"
type: "string"
started:
description: "A timestamp recording when the task was started."
format: "int64"
type: "integer"
status:
description: "The status of the task."
enum:
- "ENQUEUED"
- "RUNNING"
- "COMPLETE"
- "FAILED"
- "CANCEL_REQUESTED"
- "CANCELLED"
- "DEAD"
type: "string"
submitted:
description: "A timestamp recording when the task was submitted."
format: "int64"
type: "integer"
submittedBy:
description: "The ID of the user who submitted the task."
format: "int64"
type: "integer"
required:
- "elapsedRuntime"
- "id"
- "lastUpdate"
- "progress"
- "self"
- "status"
- "submitted"
- "submittedBy"
type: "object"
TaskProgressBeanRemoveOptionFromIssuesResult:
additionalProperties: false
description: "Details about a task."
properties:
description:
description: "The description of the task."
type: "string"
elapsedRuntime:
description: "The execution time of the task, in milliseconds."
format: "int64"
type: "integer"
finished:
description: "A timestamp recording when the task was finished."
format: "int64"
type: "integer"
id:
description: "The ID of the task."
type: "string"
lastUpdate:
description: "A timestamp recording when the task progress was last updated."
format: "int64"
type: "integer"
message:
description: "Information about the progress of the task."
type: "string"
progress:
description: "The progress of the task, as a percentage complete."
format: "int64"
type: "integer"
result:
allOf:
- $ref: "#/components/schemas/RemoveOptionFromIssuesResult"
description: "The result of the task execution."
self:
description: "The URL of the task."
format: "uri"
type: "string"
started:
description: "A timestamp recording when the task was started."
format: "int64"
type: "integer"
status:
description: "The status of the task."
enum:
- "ENQUEUED"
- "RUNNING"
- "COMPLETE"
- "FAILED"
- "CANCEL_REQUESTED"
- "CANCELLED"
- "DEAD"
type: "string"
submitted:
description: "A timestamp recording when the task was submitted."
format: "int64"
type: "integer"
submittedBy:
description: "The ID of the user who submitted the task."
format: "int64"
type: "integer"
required:
- "elapsedRuntime"
- "id"
- "lastUpdate"
- "progress"
- "self"
- "status"
- "submitted"
- "submittedBy"
type: "object"
TimeTrackingConfiguration:
additionalProperties: false
description: "Details of the time tracking configuration."
properties:
defaultUnit:
description: "The default unit of time applied to logged time."
enum:
- "minute"
- "hour"
- "day"
- "week"
type: "string"
timeFormat:
description: "The format that will appear on an issue's *Time Spent* field."
enum:
- "pretty"
- "days"
- "hours"
type: "string"
workingDaysPerWeek:
description: "The number of days in a working week."
format: "double"
type: "number"
workingHoursPerDay:
description: "The number of hours in a working day."
format: "double"
type: "number"
required:
- "defaultUnit"
- "timeFormat"
- "workingDaysPerWeek"
- "workingHoursPerDay"
type: "object"
TimeTrackingDetails:
additionalProperties: false
description: "Time tracking details."
properties:
originalEstimate:
description: "The original estimate of time needed for this issue in readable\
\ format."
readOnly: true
type: "string"
originalEstimateSeconds:
description: "The original estimate of time needed for this issue in seconds."
format: "int64"
readOnly: true
type: "integer"
remainingEstimate:
description: "The remaining estimate of time needed for this issue in readable\
\ format."
readOnly: true
type: "string"
remainingEstimateSeconds:
description: "The remaining estimate of time needed for this issue in seconds."
format: "int64"
readOnly: true
type: "integer"
timeSpent:
description: "Time worked on this issue in readable format."
readOnly: true
type: "string"
timeSpentSeconds:
description: "Time worked on this issue in seconds."
format: "int64"
readOnly: true
type: "integer"
type: "object"
TimeTrackingProvider:
additionalProperties: false
description: "Details about the time tracking provider."
properties:
key:
description: "The key for the time tracking provider. For example, *JIRA*."
type: "string"
name:
description: "The name of the time tracking provider. For example, *JIRA\
\ provided time tracking*."
type: "string"
url:
description: "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."
readOnly: true
type: "string"
required:
- "key"
type: "object"
Transition:
additionalProperties: false
description: "Details of a workflow transition."
properties:
description:
description: "The description of the transition."
type: "string"
from:
description: "The statuses the transition can start from."
items:
description: "The statuses the transition can start from."
type: "string"
type: "array"
id:
description: "The ID of the transition."
type: "string"
name:
description: "The name of the transition."
type: "string"
properties:
additionalProperties:
description: "The properties of the transition."
description: "The properties of the transition."
type: "object"
rules:
$ref: "#/components/schemas/WorkflowRules"
screen:
$ref: "#/components/schemas/TransitionScreenDetails"
to:
description: "The status the transition goes to."
type: "string"
type:
description: "The type of the transition."
enum:
- "global"
- "initial"
- "directed"
type: "string"
required:
- "description"
- "from"
- "id"
- "name"
- "to"
- "type"
type: "object"
TransitionScreenDetails:
additionalProperties: false
description: "The details of a transition screen."
properties:
id:
description: "The ID of the screen."
type: "string"
name:
description: "The name of the screen."
type: "string"
required:
- "id"
type: "object"
TransitionUpdateDTO:
additionalProperties: true
description: "The transitions of this workflow."
properties:
actions:
description: "The post-functions of the transition."
items:
$ref: "#/components/schemas/WorkflowRuleConfiguration"
type: "array"
conditions:
$ref: "#/components/schemas/ConditionGroupUpdate"
customIssueEventId:
description: "The custom event ID of the transition."
type: "string"
description:
description: "The description of the transition."
type: "string"
from:
description: "The statuses the transition can start from."
items:
$ref: "#/components/schemas/StatusReferenceAndPort"
type: "array"
id:
description: "The ID of the transition."
type: "string"
name:
description: "The name of the transition."
type: "string"
properties:
additionalProperties:
description: "The properties of the transition."
type: "string"
description: "The properties of the transition."
type: "object"
to:
$ref: "#/components/schemas/StatusReferenceAndPort"
transitionScreen:
$ref: "#/components/schemas/WorkflowRuleConfiguration"
triggers:
description: "The triggers of the transition."
items:
$ref: "#/components/schemas/WorkflowTrigger"
type: "array"
type:
description: "The transition type."
enum:
- "INITIAL"
- "GLOBAL"
- "DIRECTED"
type: "string"
validators:
description: "The validators of the transition."
items:
$ref: "#/components/schemas/WorkflowRuleConfiguration"
type: "array"
required:
- "id"
- "name"
- "type"
type: "object"
Transitions:
additionalProperties: false
description: "List of issue transitions."
properties:
expand:
description: "Expand options that include additional transitions details\
\ in the response."
readOnly: true
type: "string"
xml:
attribute: true
transitions:
description: "List of issue transitions."
items:
$ref: "#/components/schemas/IssueTransition"
readOnly: true
type: "array"
type: "object"
UiModificationContextDetails:
additionalProperties: false
description: "The details of a UI modification's context, which define where\
\ to activate the UI modification."
properties:
id:
description: "The ID of the UI modification context."
readOnly: true
type: "string"
isAvailable:
description: "Whether a context is available. For example, when a project\
\ is deleted the context becomes unavailable."
readOnly: true
type: "boolean"
issueTypeId:
description: "The issue type ID of the context. Null is treated as a wildcard,\
\ meaning the UI modification will be applied to all issue types. Each\
\ UI modification context can have a maximum of one wildcard."
type: "string"
projectId:
description: "The project ID of the context. Null is treated as a wildcard,\
\ meaning the UI modification will be applied to all projects. Each UI\
\ modification context can have a maximum of one wildcard."
type: "string"
viewType:
description: "The view type of the context. Only `GIC`(Global Issue Create)\
\ and `IssueView` are supported. Null is treated as a wildcard, meaning\
\ the UI modification will be applied to all view types. Each UI modification\
\ context can have a maximum of one wildcard."
enum:
- "GIC"
- "IssueView"
type: "string"
type: "object"
writeOnly: true
UiModificationDetails:
additionalProperties: false
description: "The details of a UI modification."
properties:
contexts:
description: "List of contexts of the UI modification. The maximum number\
\ of contexts is 1000."
items:
$ref: "#/components/schemas/UiModificationContextDetails"
readOnly: true
type: "array"
data:
description: "The data of the UI modification. The maximum size of the data\
\ is 50000 characters."
readOnly: true
type: "string"
description:
description: "The description of the UI modification. The maximum length\
\ is 255 characters."
readOnly: true
type: "string"
id:
description: "The ID of the UI modification."
readOnly: true
type: "string"
name:
description: "The name of the UI modification. The maximum length is 255\
\ characters."
readOnly: true
type: "string"
self:
description: "The URL of the UI modification."
readOnly: true
type: "string"
required:
- "id"
- "name"
- "self"
type: "object"
UiModificationIdentifiers:
additionalProperties: false
description: "Identifiers for a UI modification."
properties:
id:
description: "The ID of the UI modification."
readOnly: true
type: "string"
self:
description: "The URL of the UI modification."
readOnly: true
type: "string"
required:
- "id"
- "self"
type: "object"
UnrestrictedUserEmail:
additionalProperties: true
properties:
accountId:
description: "The accountId of the user"
type: "string"
email:
description: "The email of the user"
type: "string"
type: "object"
UpdateCustomFieldDetails:
additionalProperties: false
description: "Details of a custom field."
properties:
description:
description: "The description of the custom field. The maximum length is\
\ 40000 characters."
type: "string"
name:
description: "The name of the custom field. It doesn't have to be unique.\
\ The maximum length is 255 characters."
type: "string"
searcherKey:
description: "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):\n\
\n * `cascadingselect`: `cascadingselectsearcher`\n * `datepicker`:\
\ `daterange`\n * `datetime`: `datetimerange`\n * `float`: `exactnumber`\
\ or `numberrange`\n * `grouppicker`: `grouppickersearcher`\n * `importid`:\
\ `exactnumber` or `numberrange`\n * `labels`: `labelsearcher`\n * `multicheckboxes`:\
\ `multiselectsearcher`\n * `multigrouppicker`: `multiselectsearcher`\n\
\ * `multiselect`: `multiselectsearcher`\n * `multiuserpicker`: `userpickergroupsearcher`\n\
\ * `multiversion`: `versionsearcher`\n * `project`: `projectsearcher`\n\
\ * `radiobuttons`: `multiselectsearcher`\n * `readonlyfield`: `textsearcher`\n\
\ * `select`: `multiselectsearcher`\n * `textarea`: `textsearcher`\n\
\ * `textfield`: `textsearcher`\n * `url`: `exacttextsearcher`\n * \
\ `userpicker`: `userpickergroupsearcher`\n * `version`: `versionsearcher`"
enum:
- "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"
type: "string"
type: "object"
writeOnly: true
UpdateDefaultProjectClassificationBean:
additionalProperties: false
description: "The request for updating the default project classification level."
properties:
id:
description: "The ID of the project classification."
type: "string"
required:
- "id"
type: "object"
UpdateDefaultScreenScheme:
additionalProperties: false
description: "The ID of a screen scheme."
properties:
screenSchemeId:
description: "The ID of the screen scheme."
type: "string"
writeOnly: true
required:
- "screenSchemeId"
type: "object"
UpdateFieldConfigurationSchemeDetails:
additionalProperties: false
description: "The details of the field configuration scheme."
properties:
description:
description: "The description of the field configuration scheme."
maxLength: 1024
type: "string"
writeOnly: true
name:
description: "The name of the field configuration scheme. The name must\
\ be unique."
maxLength: 255
type: "string"
writeOnly: true
required:
- "name"
type: "object"
UpdateIssueSecurityLevelDetails:
additionalProperties: true
description: "Details of issue security scheme level."
properties:
description:
description: "The description of the issue security scheme level."
maxLength: 255
type: "string"
writeOnly: true
name:
description: "The name of the issue security scheme level. Must be unique."
maxLength: 60
type: "string"
writeOnly: true
type: "object"
UpdateIssueSecuritySchemeRequestBean:
additionalProperties: false
properties:
description:
description: "The description of the security scheme scheme."
maxLength: 255
type: "string"
writeOnly: true
name:
description: "The name of the security scheme scheme. Must be unique."
maxLength: 60
type: "string"
writeOnly: true
type: "object"
UpdateNotificationSchemeDetails:
additionalProperties: true
description: "Details of a notification scheme."
properties:
description:
description: "The description of the notification scheme."
maxLength: 4000
type: "string"
writeOnly: true
name:
description: "The name of the notification scheme. Must be unique."
maxLength: 255
type: "string"
writeOnly: true
type: "object"
UpdatePriorityDetails:
additionalProperties: true
description: "Details of an issue priority."
properties:
description:
description: "The description of the priority."
maxLength: 255
type: "string"
writeOnly: true
iconUrl:
description: "The URL of an icon for the priority. Accepted protocols are\
\ HTTP and HTTPS. Built in icons can also be used."
enum:
- "/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"
maxLength: 255
type: "string"
writeOnly: true
name:
description: "The name of the priority. Must be unique."
maxLength: 60
type: "string"
writeOnly: true
statusColor:
description: "The status color of the priority in 3-digit or 6-digit hexadecimal\
\ format."
type: "string"
writeOnly: true
type: "object"
UpdateProjectDetails:
additionalProperties: false
description: "Details about the project."
properties:
assigneeType:
description: "The default assignee when creating issues for this project."
enum:
- "PROJECT_LEAD"
- "UNASSIGNED"
type: "string"
avatarId:
description: "An integer value for the project's avatar."
format: "int64"
type: "integer"
categoryId:
description: "The ID of the project's category. A complete list of category\
\ IDs is found using the [Get all project categories](#api-rest-api-2-projectCategory-get)\
\ operation. To remove the project category from the project, set the\
\ value to `-1.`"
format: "int64"
type: "integer"
description:
description: "A brief description of the project."
type: "string"
issueSecurityScheme:
description: "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-2-issuesecurityschemes-get) resource\
\ to get all issue security scheme IDs."
format: "int64"
type: "integer"
key:
description: "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."
type: "string"
lead:
description: "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`."
type: "string"
leadAccountId:
description: "The account ID of the project lead. Cannot be provided with\
\ `lead`."
maxLength: 128
type: "string"
name:
description: "The name of the project."
type: "string"
notificationScheme:
description: "The ID of the notification scheme for the project. Use the\
\ [Get notification schemes](#api-rest-api-2-notificationscheme-get) resource\
\ to get a list of notification scheme IDs."
format: "int64"
type: "integer"
permissionScheme:
description: "The ID of the permission scheme for the project. Use the [Get\
\ all permission schemes](#api-rest-api-2-permissionscheme-get) resource\
\ to see a list of all permission scheme IDs."
format: "int64"
type: "integer"
url:
description: "A link to information about this project, such as project\
\ documentation"
type: "string"
type: "object"
UpdateResolutionDetails:
additionalProperties: true
description: "Details of an issue resolution."
properties:
description:
description: "The description of the resolution."
maxLength: 255
type: "string"
writeOnly: true
name:
description: "The name of the resolution. Must be unique."
maxLength: 60
type: "string"
writeOnly: true
required:
- "name"
type: "object"
UpdateScreenDetails:
additionalProperties: false
description: "Details of a screen."
properties:
description:
description: "The description of the screen. The maximum length is 255 characters."
type: "string"
writeOnly: true
name:
description: "The name of the screen. The name must be unique. The maximum\
\ length is 255 characters."
type: "string"
writeOnly: true
type: "object"
UpdateScreenSchemeDetails:
additionalProperties: false
description: "Details of a screen scheme."
properties:
description:
description: "The description of the screen scheme. The maximum length is\
\ 255 characters."
type: "string"
writeOnly: true
name:
description: "The name of the screen scheme. The name must be unique. The\
\ maximum length is 255 characters."
type: "string"
writeOnly: true
screens:
allOf:
- $ref: "#/components/schemas/UpdateScreenTypes"
description: "The IDs of the screens for the screen types of the screen\
\ scheme. Only screens used in classic projects are accepted."
type: "object"
UpdateScreenTypes:
additionalProperties: false
description: "The IDs of the screens for the screen types of the screen scheme."
properties:
create:
description: "The ID of the create screen. To remove the screen association,\
\ pass a null."
type: "string"
writeOnly: true
default:
description: "The ID of the default screen. When specified, must include\
\ a screen ID as a default screen is required."
type: "string"
writeOnly: true
edit:
description: "The ID of the edit screen. To remove the screen association,\
\ pass a null."
type: "string"
writeOnly: true
view:
description: "The ID of the view screen. To remove the screen association,\
\ pass a null."
type: "string"
writeOnly: true
type: "object"
writeOnly: true
UpdateUiModificationDetails:
additionalProperties: false
description: "The details of a UI modification."
properties:
contexts:
description: "List of contexts of the UI modification. The maximum number\
\ of contexts is 1000. If provided, replaces all existing contexts."
items:
$ref: "#/components/schemas/UiModificationContextDetails"
type: "array"
writeOnly: true
data:
description: "The data of the UI modification. The maximum size of the data\
\ is 50000 characters."
type: "string"
writeOnly: true
description:
description: "The description of the UI modification. The maximum length\
\ is 255 characters."
type: "string"
writeOnly: true
name:
description: "The name of the UI modification. The maximum length is 255\
\ characters."
type: "string"
writeOnly: true
type: "object"
UpdateUserToGroupBean:
additionalProperties: true
properties:
accountId:
description: "The account ID of the user, which uniquely identifies the\
\ user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
maxLength: 128
type: "string"
name:
description: "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."
type: "string"
type: "object"
UpdatedProjectCategory:
additionalProperties: false
description: "A project category."
properties:
description:
description: "The name of the project category."
readOnly: true
type: "string"
id:
description: "The ID of the project category."
readOnly: true
type: "string"
name:
description: "The description of the project category."
readOnly: true
type: "string"
self:
description: "The URL of the project category."
readOnly: true
type: "string"
type: "object"
User:
additionalProperties: false
description: "A user with details as permitted by the user's Atlassian Account\
\ privacy settings. However, be aware of these exceptions:\n\n * User record\
\ deleted from Atlassian: This occurs as the result of a right to be forgotten\
\ request. In this case, `displayName` provides an indication and other parameters\
\ have default values or are blank (for example, email is blank).\n * User\
\ record corrupted: This occurs as a results of events such as a server import\
\ and can only happen to deleted users. In this case, `accountId` returns\
\ *unknown* and all other parameters have fallback values.\n * User record\
\ unavailable: This usually occurs due to an internal service outage. In this\
\ case, all parameters have fallback values."
properties:
accountId:
description: "The account ID of the user, which uniquely identifies the\
\ user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*.\
\ Required in requests."
maxLength: 128
type: "string"
accountType:
description: "The user account type. Can take the following values:\n\n\
\ * `atlassian` regular Atlassian user account\n * `app` system account\
\ used for Connect applications and OAuth to represent external systems\n\
\ * `customer` Jira Service Desk account representing an external service\
\ desk"
enum:
- "atlassian"
- "app"
- "customer"
- "unknown"
readOnly: true
type: "string"
active:
description: "Whether the user is active."
readOnly: true
type: "boolean"
applicationRoles:
allOf:
- $ref: "#/components/schemas/SimpleListWrapperApplicationRole"
description: "The application roles the user is assigned to."
readOnly: true
avatarUrls:
allOf:
- $ref: "#/components/schemas/AvatarUrlsBean"
description: "The avatars of the user."
readOnly: true
displayName:
description: "The display name of the user. Depending on the user’s privacy\
\ setting, this may return an alternative value."
readOnly: true
type: "string"
emailAddress:
description: "The email address of the user. Depending on the user’s privacy\
\ setting, this may be returned as null."
readOnly: true
type: "string"
expand:
description: "Expand options that include additional user details in the\
\ response."
readOnly: true
type: "string"
xml:
attribute: true
groups:
allOf:
- $ref: "#/components/schemas/SimpleListWrapperGroupName"
description: "The groups that the user belongs to."
readOnly: true
key:
description: "This property is no longer available and will be removed from\
\ the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/)\
\ for details."
type: "string"
locale:
description: "The locale of the user. Depending on the user’s privacy setting,\
\ this may be returned as null."
readOnly: true
type: "string"
name:
description: "This property is no longer available and will be removed from\
\ the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/)\
\ for details."
type: "string"
self:
description: "The URL of the user."
format: "uri"
readOnly: true
type: "string"
timeZone:
description: "The time zone specified in the user's profile. Depending on\
\ the user’s privacy setting, this may be returned as null."
readOnly: true
type: "string"
type: "object"
xml:
name: "user"
UserBean:
additionalProperties: false
properties:
accountId:
description: "The account ID of the user, which uniquely identifies the\
\ user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
maxLength: 128
type: "string"
active:
description: "Whether the user is active."
type: "boolean"
avatarUrls:
allOf:
- $ref: "#/components/schemas/UserBeanAvatarUrls"
description: "The avatars of the user."
displayName:
description: "The display name of the user. Depending on the user’s privacy\
\ setting, this may return an alternative value."
type: "string"
key:
description: "This property is deprecated in favor of `accountId` because\
\ of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/)\
\ for details. \nThe key of the user."
type: "string"
name:
description: "This property is deprecated in favor of `accountId` because\
\ of privacy changes. See the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/)\
\ for details. \nThe username of the user."
type: "string"
self:
description: "The URL of the user."
format: "uri"
type: "string"
type: "object"
UserBeanAvatarUrls:
additionalProperties: false
properties:
"16x16":
description: "The URL of the user's 16x16 pixel avatar."
format: "uri"
type: "string"
"24x24":
description: "The URL of the user's 24x24 pixel avatar."
format: "uri"
type: "string"
"32x32":
description: "The URL of the user's 32x32 pixel avatar."
format: "uri"
type: "string"
"48x48":
description: "The URL of the user's 48x48 pixel avatar."
format: "uri"
type: "string"
type: "object"
UserColumnRequestBody:
additionalProperties: false
properties:
columns:
items:
type: "string"
type: "array"
type: "object"
UserContextVariable:
description: "A [user](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#user)\
\ specified as an Atlassian account ID."
properties:
accountId:
description: "The account ID of the user."
type: "string"
type:
description: "Type of custom context variable."
type: "string"
required:
- "accountId"
- "type"
type: "object"
UserDetails:
additionalProperties: false
description: "User details permitted by the user's Atlassian Account privacy\
\ settings. However, be aware of these exceptions:\n\n * User record deleted\
\ from Atlassian: This occurs as the result of a right to be forgotten request.\
\ In this case, `displayName` provides an indication and other parameters\
\ have default values or are blank (for example, email is blank).\n * User\
\ record corrupted: This occurs as a results of events such as a server import\
\ and can only happen to deleted users. In this case, `accountId` returns\
\ *unknown* and all other parameters have fallback values.\n * User record\
\ unavailable: This usually occurs due to an internal service outage. In this\
\ case, all parameters have fallback values."
properties:
accountId:
description: "The account ID of the user, which uniquely identifies the\
\ user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
maxLength: 128
type: "string"
accountType:
description: "The type of account represented by this user. This will be\
\ one of 'atlassian' (normal users), 'app' (application user) or 'customer'\
\ (Jira Service Desk customer user)"
readOnly: true
type: "string"
active:
description: "Whether the user is active."
readOnly: true
type: "boolean"
avatarUrls:
allOf:
- $ref: "#/components/schemas/AvatarUrlsBean"
description: "The avatars of the user."
readOnly: true
displayName:
description: "The display name of the user. Depending on the user’s privacy\
\ settings, this may return an alternative value."
readOnly: true
type: "string"
emailAddress:
description: "The email address of the user. Depending on the user’s privacy\
\ settings, this may be returned as null."
readOnly: true
type: "string"
key:
description: "This property is no longer available and will be removed from\
\ the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/)\
\ for details."
readOnly: true
type: "string"
name:
description: "This property is no longer available and will be removed from\
\ the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/)\
\ for details."
readOnly: true
type: "string"
self:
description: "The URL of the user."
readOnly: true
type: "string"
timeZone:
description: "The time zone specified in the user's profile. Depending on\
\ the user’s privacy settings, this may be returned as null."
readOnly: true
type: "string"
type: "object"
UserFilter:
description: "Filter for a User Picker (single) custom field."
properties:
enabled:
description: "Whether the filter is enabled."
type: "boolean"
groups:
description: "User groups autocomplete suggestion users must belong to.\
\ If not provided, the default values are used. A maximum of 10 groups\
\ can be provided."
items:
description: "User groups autocomplete suggestion users must belong to.\
\ If not provided, the default values are used. A maximum of 10 groups\
\ can be provided."
type: "string"
type: "array"
uniqueItems: true
roleIds:
description: "Roles that autocomplete suggestion users must belong to. If\
\ not provided, the default values are used. A maximum of 10 roles can\
\ be provided."
items:
description: "Roles that autocomplete suggestion users must belong to.\
\ If not provided, the default values are used. A maximum of 10 roles\
\ can be provided."
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
required:
- "enabled"
type: "object"
UserKey:
additionalProperties: false
description: "List of user account IDs."
properties:
accountId:
description: "The account ID of the user, which uniquely identifies the\
\ user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*.\
\ Returns *unknown* if the record is deleted and corrupted, for example,\
\ as the result of a server import."
maxLength: 128
type: "string"
key:
description: "This property is no longer available and will be removed from\
\ the documentation soon. See the [deprecation notice](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/)\
\ for details."
type: "string"
type: "object"
UserList:
additionalProperties: false
description: "A paginated list of users sharing the filter. This includes users\
\ that are members of the groups or can browse the projects that the filter\
\ is shared with."
properties:
end-index:
description: "The index of the last item returned on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
name: "end-index"
items:
description: "The list of items."
items:
$ref: "#/components/schemas/User"
readOnly: true
type: "array"
max-results:
description: "The maximum number of results that could be on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
name: "max-results"
size:
description: "The number of items on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
start-index:
description: "The index of the first item returned on the page."
format: "int32"
readOnly: true
type: "integer"
xml:
attribute: true
name: "start-index"
type: "object"
UserMigrationBean:
additionalProperties: false
properties:
accountId:
type: "string"
key:
type: "string"
username:
type: "string"
type: "object"
UserPermission:
additionalProperties: true
description: "Details of a permission and its availability to a user."
properties:
deprecatedKey:
description: "Indicate whether the permission key is deprecated. Note that\
\ deprecated keys cannot be used in the `permissions parameter of Get\
\ my permissions. Deprecated keys are not returned by Get all permissions.`"
type: "boolean"
description:
description: "The description of the permission."
type: "string"
havePermission:
description: "Whether the permission is available to the user in the queried\
\ context."
type: "boolean"
id:
description: "The ID of the permission. Either `id` or `key` must be specified.\
\ Use [Get all permissions](#api-rest-api-2-permissions-get) to get the\
\ list of permissions."
type: "string"
key:
description: "The key of the permission. Either `id` or `key` must be specified.\
\ Use [Get all permissions](#api-rest-api-2-permissions-get) to get the\
\ list of permissions."
type: "string"
name:
description: "The name of the permission."
type: "string"
type:
description: "The type of the permission."
enum:
- "GLOBAL"
- "PROJECT"
type: "string"
type: "object"
UserPickerUser:
additionalProperties: false
description: "A user found in a search."
properties:
accountId:
description: "The account ID of the user, which uniquely identifies the\
\ user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
type: "string"
avatarUrl:
description: "The avatar URL of the user."
format: "uri"
type: "string"
displayName:
description: "The display name of the user. Depending on the user’s privacy\
\ setting, this may be returned as null."
type: "string"
html:
description: "The display name, email address, and key of the user with\
\ the matched query string highlighted with the HTML bold tag."
type: "string"
key:
description: "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."
type: "string"
name:
description: "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."
type: "string"
type: "object"
ValidationOptionsForCreate:
additionalProperties: false
description: "The level of validation to return from the API. If no values are\
\ provided, the default would return `WARNING` and `ERROR` level validation\
\ results."
properties:
levels:
items:
enum:
- "WARNING"
- "ERROR"
type: "string"
maxItems: 2
type: "array"
type: "object"
ValidationOptionsForUpdate:
additionalProperties: false
description: "The level of validation to return from the API. If no values are\
\ provided, the default would return `WARNING` and `ERROR` level validation\
\ results."
properties:
levels:
items:
enum:
- "WARNING"
- "ERROR"
type: "string"
maxItems: 2
type: "array"
type: "object"
ValueOperand:
description: "An operand that is a user-provided value."
properties:
encodedValue:
description: "Encoded value, which can be used directly in a JQL query."
type: "string"
value:
description: "The operand value."
type: "string"
required:
- "value"
type: "object"
Version:
additionalProperties: false
description: "Details about a project version."
properties:
approvers:
description: "If the expand option `approvers` is used, returns a list containing\
\ the approvers for this version."
items:
$ref: "#/components/schemas/VersionApprover"
readOnly: true
type: "array"
archived:
description: "Indicates that the version is archived. Optional when creating\
\ or updating a version."
type: "boolean"
description:
description: "The description of the version. Optional when creating or\
\ updating a version. The maximum size is 16,384 bytes."
type: "string"
driver:
description: "If the expand option `driver` is used, returns the Atlassian\
\ account ID of the driver."
readOnly: true
type: "string"
expand:
description: "Use [expand](em>#expansion) to include additional information\
\ about version in the response. This parameter accepts a comma-separated\
\ list. Expand options include:\n\n * `operations` Returns the list of\
\ operations available for this version.\n * `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*.\n * `driver` Returns the Atlassian account ID of the version\
\ driver.\n * `approvers` Returns a list containing approvers for this\
\ version.\n\nOptional for create and update."
type: "string"
xml:
attribute: true
id:
description: "The ID of the version."
readOnly: true
type: "string"
issuesStatusForFixVersion:
allOf:
- $ref: "#/components/schemas/VersionIssuesStatus"
description: "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*."
readOnly: true
moveUnfixedIssuesTo:
description: "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."
format: "uri"
type: "string"
name:
description: "The unique name of the version. Required when creating a version.\
\ Optional when updating a version. The maximum length is 255 characters."
type: "string"
operations:
description: "If the expand option `operations` is used, returns the list\
\ of operations available for this version."
items:
$ref: "#/components/schemas/SimpleLink"
readOnly: true
type: "array"
overdue:
description: "Indicates that the version is overdue."
readOnly: true
type: "boolean"
project:
description: "Deprecated. Use `projectId`."
type: "string"
projectId:
description: "The ID of the project to which this version is attached. Required\
\ when creating a version. Not applicable when updating a version."
format: "int64"
type: "integer"
releaseDate:
description: "The release date of the version. Expressed in ISO 8601 format\
\ (yyyy-mm-dd). Optional when creating or updating a version."
format: "date"
type: "string"
released:
description: "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."
type: "boolean"
self:
description: "The URL of the version."
format: "uri"
readOnly: true
type: "string"
startDate:
description: "The start date of the version. Expressed in ISO 8601 format\
\ (yyyy-mm-dd). Optional when creating or updating a version."
format: "date"
type: "string"
userReleaseDate:
description: "The date on which work on this version is expected to finish,\
\ expressed in the instance's *Day/Month/Year Format* date format."
readOnly: true
type: "string"
userStartDate:
description: "The date on which work on this version is expected to start,\
\ expressed in the instance's *Day/Month/Year Format* date format."
readOnly: true
type: "string"
type: "object"
xml:
name: "version"
VersionApprover:
additionalProperties: true
description: "Contains details about a version approver."
properties:
accountId:
description: "The Atlassian account ID of the approver."
readOnly: true
type: "string"
declineReason:
description: "A description of why the user is declining the approval."
readOnly: true
type: "string"
description:
description: "A description of what the user is approving within the specified\
\ version."
readOnly: true
type: "string"
status:
description: "The status of the approval, which can be *PENDING*, *APPROVED*,\
\ or *DECLINED*"
readOnly: true
type: "string"
type: "object"
VersionIssueCounts:
additionalProperties: false
description: "Various counts of issues within a version."
properties:
customFieldUsage:
description: "List of custom fields using the version."
items:
$ref: "#/components/schemas/VersionUsageInCustomField"
readOnly: true
type: "array"
issueCountWithCustomFieldsShowingVersion:
description: "Count of issues where a version custom field is set to the\
\ version."
format: "int64"
readOnly: true
type: "integer"
issuesAffectedCount:
description: "Count of issues where the `affectedVersion` is set to the\
\ version."
format: "int64"
readOnly: true
type: "integer"
issuesFixedCount:
description: "Count of issues where the `fixVersion` is set to the version."
format: "int64"
readOnly: true
type: "integer"
self:
description: "The URL of these count details."
format: "uri"
readOnly: true
type: "string"
type: "object"
xml:
name: "version"
VersionIssuesStatus:
additionalProperties: true
description: "Counts of the number of issues in various statuses."
properties:
done:
description: "Count of issues with status *done*."
format: "int64"
readOnly: true
type: "integer"
inProgress:
description: "Count of issues with status *in progress*."
format: "int64"
readOnly: true
type: "integer"
toDo:
description: "Count of issues with status *to do*."
format: "int64"
readOnly: true
type: "integer"
unmapped:
description: "Count of issues with a status other than *to do*, *in progress*,\
\ and *done*."
format: "int64"
readOnly: true
type: "integer"
type: "object"
VersionMoveBean:
additionalProperties: false
properties:
after:
description: "The URL (self link) of the version after which to place the\
\ moved version. Cannot be used with `position`."
format: "uri"
type: "string"
position:
description: "An absolute position in which to place the moved version.\
\ Cannot be used with `after`."
enum:
- "Earlier"
- "Later"
- "First"
- "Last"
type: "string"
type: "object"
xml:
name: "version"
VersionRelatedWork:
additionalProperties: false
description: "Associated related work to a version"
properties:
category:
description: "The category of the related work"
type: "string"
issueId:
description: "The ID of the issue associated with the related work (if there\
\ is one). Cannot be updated via the Rest API."
format: "int64"
readOnly: true
type: "integer"
relatedWorkId:
description: "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."
readOnly: true
type: "string"
title:
description: "The title of the related work"
type: "string"
url:
description: "The URL of the related work. Will be null for the native release\
\ note related work item, but is otherwise required."
format: "uri"
type: "string"
required:
- "category"
type: "object"
VersionUnresolvedIssuesCount:
additionalProperties: false
description: "Count of a version's unresolved issues."
properties:
issuesCount:
description: "Count of issues."
format: "int64"
readOnly: true
type: "integer"
issuesUnresolvedCount:
description: "Count of unresolved issues."
format: "int64"
readOnly: true
type: "integer"
self:
description: "The URL of these count details."
format: "uri"
readOnly: true
type: "string"
type: "object"
xml:
name: "version"
VersionUsageInCustomField:
additionalProperties: false
description: "List of custom fields using the version."
properties:
customFieldId:
description: "The ID of the custom field."
format: "int64"
readOnly: true
type: "integer"
fieldName:
description: "The name of the custom field."
readOnly: true
type: "string"
issueCountWithVersionInCustomField:
description: "Count of the issues where the custom field contains the version."
format: "int64"
readOnly: true
type: "integer"
type: "object"
Visibility:
additionalProperties: true
description: "The group or role to which this item is visible."
properties:
identifier:
description: "The ID of the group or the name of the role that visibility\
\ of this item is restricted to."
nullable: true
type: "string"
type:
description: "Whether visibility of this item is restricted to a group or\
\ role."
enum:
- "group"
- "role"
type: "string"
value:
description: "The name of the group or role that visibility of this item\
\ is restricted to. Please note that the name of a group is mutable, to\
\ reliably identify a group use `identifier`."
type: "string"
type: "object"
Votes:
additionalProperties: false
description: "The details of votes on an issue."
properties:
hasVoted:
description: "Whether the user making this request has voted on the issue."
readOnly: true
type: "boolean"
self:
description: "The URL of these issue vote details."
format: "uri"
readOnly: true
type: "string"
voters:
description: "List of the users who have voted on this issue. An empty list\
\ is returned when the calling user doesn't have the *View voters and\
\ watchers* project permission."
items:
$ref: "#/components/schemas/User"
readOnly: true
type: "array"
votes:
description: "The number of votes on the issue."
format: "int64"
readOnly: true
type: "integer"
type: "object"
WarningCollection:
additionalProperties: false
properties:
warnings:
items:
type: "string"
type: "array"
type: "object"
Watchers:
additionalProperties: false
description: "The details of watchers on an issue."
properties:
isWatching:
description: "Whether the calling user is watching this issue."
readOnly: true
type: "boolean"
self:
description: "The URL of these issue watcher details."
readOnly: true
type: "string"
watchCount:
description: "The number of users watching this issue."
format: "int32"
readOnly: true
type: "integer"
watchers:
description: "Details of the users watching this issue."
items:
$ref: "#/components/schemas/UserDetails"
readOnly: true
type: "array"
type: "object"
xml:
name: "watchers"
Webhook:
additionalProperties: false
description: "A webhook."
properties:
events:
description: "The Jira events that trigger the webhook."
items:
enum:
- "jira:issue_created"
- "jira:issue_updated"
- "jira:issue_deleted"
- "comment_created"
- "comment_updated"
- "comment_deleted"
- "issue_property_set"
- "issue_property_deleted"
type: "string"
type: "array"
expirationDate:
description: "The date after which the webhook is no longer sent. Use [Extend\
\ webhook life](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-webhooks/#api-rest-api-3-webhook-refresh-put)\
\ to extend the date."
format: "int64"
readOnly: true
type: "integer"
fieldIdsFilter:
description: "A list of field IDs. When the issue changelog contains any\
\ of the fields, the webhook `jira:issue_updated` is sent. If this parameter\
\ is not present, the app is notified about all field updates."
items:
description: "A list of field IDs. When the issue changelog contains any\
\ of the fields, the webhook jira:issue_updated
is sent.\
\ If this parameter is not present, the app is notified about all field\
\ updates."
type: "string"
type: "array"
id:
description: "The ID of the webhook."
format: "int64"
type: "integer"
issuePropertyKeysFilter:
description: "A list of issue property keys. A change of those issue properties\
\ triggers the `issue_property_set` or `issue_property_deleted` webhooks.\
\ If this parameter is not present, the app is notified about all issue\
\ property updates."
items:
description: "A list of issue property keys. A change of those issue properties\
\ triggers the issue_property_set
or issue_property_deleted
\
\ webhooks. If this parameter is not present, the app is notified about\
\ all issue property updates."
type: "string"
type: "array"
jqlFilter:
description: "The JQL filter that specifies which issues the webhook is\
\ sent for."
type: "string"
required:
- "events"
- "id"
- "jqlFilter"
type: "object"
WebhookDetails:
additionalProperties: false
description: "A list of webhooks."
properties:
events:
description: "The Jira events that trigger the webhook."
items:
enum:
- "jira:issue_created"
- "jira:issue_updated"
- "jira:issue_deleted"
- "comment_created"
- "comment_updated"
- "comment_deleted"
- "issue_property_set"
- "issue_property_deleted"
type: "string"
type: "array"
fieldIdsFilter:
description: "A list of field IDs. When the issue changelog contains any\
\ of the fields, the webhook `jira:issue_updated` is sent. If this parameter\
\ is not present, the app is notified about all field updates."
items:
description: "A list of field IDs. When the issue changelog contains any\
\ of the fields, the webhook jira:issue_updated
is sent.\
\ If this parameter is not present, the app is notified about all field\
\ updates."
type: "string"
type: "array"
issuePropertyKeysFilter:
description: "A list of issue property keys. A change of those issue properties\
\ triggers the `issue_property_set` or `issue_property_deleted` webhooks.\
\ If this parameter is not present, the app is notified about all issue\
\ property updates."
items:
description: "A list of issue property keys. A change of those issue properties\
\ triggers the issue_property_set
or issue_property_deleted
\
\ webhooks. If this parameter is not present, the app is notified about\
\ all issue property updates."
type: "string"
type: "array"
jqlFilter:
description: "The JQL filter that specifies which issues the webhook is\
\ sent for. Only a subset of JQL can be used. The supported elements are:\n\
\n * Fields: `issueKey`, `project`, `issuetype`, `status`, `assignee`,\
\ `reporter`, `issue.property`, and `cf[id]`. For custom fields (`cf[id]`),\
\ only the epic label custom field is supported.\".\n * Operators: `=`,\
\ `!=`, `IN`, and `NOT IN`."
type: "string"
required:
- "events"
- "jqlFilter"
type: "object"
WebhookRegistrationDetails:
additionalProperties: false
description: "Details of webhooks to register."
properties:
url:
description: "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."
type: "string"
webhooks:
description: "A list of webhooks."
items:
$ref: "#/components/schemas/WebhookDetails"
type: "array"
required:
- "url"
- "webhooks"
type: "object"
WebhooksExpirationDate:
additionalProperties: false
description: "The date the refreshed webhooks expire."
properties:
expirationDate:
description: "The expiration date of all the refreshed webhooks."
format: "int64"
readOnly: true
type: "integer"
required:
- "expirationDate"
type: "object"
WorkManagementNavigationInfo:
properties:
boardName:
type: "string"
type: "object"
Workflow:
additionalProperties: false
description: "Details about a workflow."
properties:
created:
description: "The creation date of the workflow."
format: "date-time"
type: "string"
description:
description: "The description of the workflow."
type: "string"
hasDraftWorkflow:
description: "Whether the workflow has a draft version."
type: "boolean"
id:
$ref: "#/components/schemas/PublishedWorkflowId"
isDefault:
description: "Whether this is the default workflow."
type: "boolean"
operations:
$ref: "#/components/schemas/WorkflowOperations"
projects:
description: "The projects the workflow is assigned to, through workflow\
\ schemes."
items:
$ref: "#/components/schemas/ProjectDetails"
type: "array"
schemes:
description: "The workflow schemes the workflow is assigned to."
items:
$ref: "#/components/schemas/WorkflowSchemeIdName"
type: "array"
statuses:
description: "The statuses of the workflow."
items:
$ref: "#/components/schemas/WorkflowStatus"
type: "array"
transitions:
description: "The transitions of the workflow."
items:
$ref: "#/components/schemas/Transition"
type: "array"
updated:
description: "The last edited date of the workflow."
format: "date-time"
type: "string"
required:
- "description"
- "id"
type: "object"
WorkflowAssociationStatusMapping:
additionalProperties: false
description: "The list of status mappings."
properties:
newStatusId:
description: "The ID of the status in the new workflow."
type: "string"
oldStatusId:
description: "The ID of the status in the old workflow that isn't present\
\ in the new workflow."
type: "string"
required:
- "newStatusId"
- "oldStatusId"
type: "object"
WorkflowCapabilities:
additionalProperties: false
properties:
connectRules:
description: "The Connect provided ecosystem rules available."
items:
$ref: "#/components/schemas/AvailableWorkflowConnectRule"
type: "array"
editorScope:
description: "The scope of the workflow capabilities. `GLOBAL` for company-managed\
\ projects and `PROJECT` for team-managed projects."
enum:
- "PROJECT"
- "GLOBAL"
type: "string"
forgeRules:
description: "The Forge provided ecosystem rules available."
items:
$ref: "#/components/schemas/AvailableWorkflowForgeRule"
type: "array"
projectTypes:
description: "The types of projects that this capability set is available\
\ for."
items:
enum:
- "software"
- "service_desk"
- "product_discovery"
- "business"
- "unknown"
type: "string"
type: "array"
systemRules:
description: "The Atlassian provided system rules available."
items:
$ref: "#/components/schemas/AvailableWorkflowSystemRule"
type: "array"
triggerRules:
description: "The trigger rules available."
items:
$ref: "#/components/schemas/AvailableWorkflowTriggers"
type: "array"
type: "object"
WorkflowCompoundCondition:
description: "A compound workflow transition rule condition. This object returns\
\ `nodeType` as `compound`."
properties:
conditions:
description: "The list of workflow conditions."
items:
$ref: "#/components/schemas/WorkflowCondition"
type: "array"
nodeType:
type: "string"
operator:
description: "The compound condition operator."
enum:
- "AND"
- "OR"
type: "string"
required:
- "conditions"
- "nodeType"
- "operator"
type: "object"
WorkflowCondition:
additionalProperties: false
description: "The workflow transition rule conditions tree."
discriminator:
mapping:
compound: "#/components/schemas/WorkflowCompoundCondition"
simple: "#/components/schemas/WorkflowSimpleCondition"
propertyName: "nodeType"
oneOf:
- $ref: "#/components/schemas/WorkflowSimpleCondition"
- $ref: "#/components/schemas/WorkflowCompoundCondition"
type: "object"
WorkflowCreate:
additionalProperties: false
description: "The details of the workflows to create."
maximum: 20
properties:
description:
description: "The description of the workflow to create."
type: "string"
name:
description: "The name of the workflow to create."
type: "string"
startPointLayout:
$ref: "#/components/schemas/WorkflowLayout"
statuses:
description: "The statuses associated with this workflow."
items:
$ref: "#/components/schemas/StatusLayoutUpdate"
type: "array"
transitions:
description: "The transitions of this workflow."
items:
$ref: "#/components/schemas/TransitionUpdateDTO"
type: "array"
required:
- "name"
- "statuses"
- "transitions"
type: "object"
WorkflowCreateRequest:
additionalProperties: false
description: "The create workflows payload."
properties:
scope:
$ref: "#/components/schemas/WorkflowScope"
statuses:
description: "The statuses to associate with the workflows."
items:
$ref: "#/components/schemas/WorkflowStatusUpdate"
maximum: 1000
type: "array"
workflows:
description: "The details of the workflows to create."
items:
$ref: "#/components/schemas/WorkflowCreate"
maximum: 20
type: "array"
required:
- "scope"
- "statuses"
- "workflows"
type: "object"
WorkflowCreateResponse:
additionalProperties: false
description: "Details of the created workflows and statuses."
properties:
statuses:
description: "List of created statuses."
items:
$ref: "#/components/schemas/JiraWorkflowStatus"
type: "array"
uniqueItems: true
workflows:
description: "List of created workflows."
items:
$ref: "#/components/schemas/JiraWorkflow"
type: "array"
uniqueItems: true
type: "object"
WorkflowCreateValidateRequest:
additionalProperties: false
properties:
payload:
$ref: "#/components/schemas/WorkflowCreateRequest"
validationOptions:
$ref: "#/components/schemas/ValidationOptionsForCreate"
required:
- "payload"
type: "object"
WorkflowElementReference:
additionalProperties: false
description: "A reference to the location of the error. This will be null if\
\ the error does not refer to a specific element."
properties:
propertyKey:
description: "A property key."
type: "string"
ruleId:
description: "A rule ID."
type: "string"
statusMappingReference:
$ref: "#/components/schemas/ProjectAndIssueTypePair"
statusReference:
description: "A status reference."
type: "string"
transitionId:
description: "A transition ID."
type: "string"
type: "object"
WorkflowIDs:
additionalProperties: false
description: "The classic workflow identifiers."
properties:
entityId:
description: "The entity ID of the workflow."
type: "string"
name:
description: "The name of the workflow."
type: "string"
required:
- "name"
type: "object"
WorkflowId:
additionalProperties: false
description: "Properties that identify a workflow."
properties:
draft:
description: "Whether the workflow is in the draft state."
type: "boolean"
name:
description: "The name of the workflow."
type: "string"
required:
- "draft"
- "name"
type: "object"
WorkflowLayout:
additionalProperties: false
description: "The starting point for the statuses in the workflow."
nullable: true
properties:
x:
description: "The x axis location."
format: "double"
type: "number"
"y":
description: "The y axis location."
format: "double"
type: "number"
type: "object"
WorkflowMetadataAndIssueTypeRestModel:
additionalProperties: false
description: "The workflow metadata and issue type IDs which use this workflow."
properties:
issueTypeIds:
description: "The list of issue type IDs for the mapping."
items:
description: "The list of issue type IDs for the mapping."
type: "string"
type: "array"
workflow:
$ref: "#/components/schemas/WorkflowMetadataRestModel"
required:
- "issueTypeIds"
- "workflow"
type: "object"
WorkflowMetadataRestModel:
additionalProperties: false
description: "Workflow metadata and usage detail."
properties:
description:
description: "The description of the workflow."
type: "string"
id:
description: "The ID of the workflow."
type: "string"
name:
description: "The name of the workflow."
type: "string"
usage:
description: "Use the optional `workflows.usages` expand to get additional\
\ information about the projects and issue types associated with the workflows\
\ in the workflow scheme."
items:
$ref: "#/components/schemas/SimpleUsage"
type: "array"
version:
$ref: "#/components/schemas/DocumentVersion"
required:
- "description"
- "id"
- "name"
- "usage"
- "version"
type: "object"
WorkflowOperations:
additionalProperties: false
description: "Operations allowed on a workflow"
properties:
canDelete:
description: "Whether the workflow can be deleted."
type: "boolean"
canEdit:
description: "Whether the workflow can be updated."
type: "boolean"
required:
- "canDelete"
- "canEdit"
type: "object"
WorkflowReadRequest:
additionalProperties: false
properties:
projectAndIssueTypes:
description: "The list of projects and issue types to query."
items:
$ref: "#/components/schemas/ProjectAndIssueTypePair"
type: "array"
workflowIds:
description: "The list of workflow IDs to query."
items:
description: "The list of workflow IDs to query."
type: "string"
type: "array"
workflowNames:
description: "The list of workflow names to query."
items:
description: "The list of workflow names to query."
type: "string"
type: "array"
type: "object"
WorkflowReadResponse:
additionalProperties: false
description: "Details of workflows and related statuses."
properties:
statuses:
description: "List of statuses."
items:
$ref: "#/components/schemas/JiraWorkflowStatus"
type: "array"
uniqueItems: true
workflows:
description: "List of workflows."
items:
$ref: "#/components/schemas/JiraWorkflow"
type: "array"
uniqueItems: true
type: "object"
WorkflowReferenceStatus:
additionalProperties: false
description: "The statuses referenced in the workflow."
properties:
deprecated:
description: "Indicates if the status is deprecated."
type: "boolean"
layout:
$ref: "#/components/schemas/WorkflowStatusLayout"
properties:
additionalProperties:
description: "The properties associated with the status."
type: "string"
description: "The properties associated with the status."
type: "object"
statusReference:
description: "The reference of the status."
type: "string"
type: "object"
WorkflowRuleConfiguration:
additionalProperties: false
description: "The configuration of the rule."
nullable: true
properties:
id:
description: "The ID of the rule."
nullable: true
type: "string"
parameters:
additionalProperties:
description: "The parameters related to the rule."
type: "string"
description: "The parameters related to the rule."
type: "object"
ruleKey:
description: "The rule key of the rule."
type: "string"
required:
- "ruleKey"
type: "object"
WorkflowRules:
additionalProperties: false
description: "A collection of transition rules."
properties:
conditionsTree:
$ref: "#/components/schemas/WorkflowCondition"
postFunctions:
description: "The workflow post functions."
items:
$ref: "#/components/schemas/WorkflowTransitionRule"
type: "array"
validators:
description: "The workflow validators."
items:
$ref: "#/components/schemas/WorkflowTransitionRule"
type: "array"
type: "object"
WorkflowRulesSearch:
description: "Details of the workflow and its transition rules."
properties:
expand:
description: "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."
example: "transition"
type: "string"
ruleIds:
description: "The list of workflow rule IDs."
items:
description: "Workflow rule ID."
example: "55d44f1d-c859-42e5-9c27-2c5ec3f340b1"
format: "uuid"
type: "string"
maxItems: 10
minItems: 1
type: "array"
workflowEntityId:
description: "The workflow ID."
example: "a498d711-685d-428d-8c3e-bc03bb450ea7"
format: "uuid"
type: "string"
required:
- "ruleIds"
- "workflowEntityId"
type: "object"
WorkflowRulesSearchDetails:
description: "Details of workflow transition rules."
properties:
invalidRules:
description: "List of workflow rule IDs that do not belong to the workflow\
\ or can not be found."
items:
description: "Workflow rule ID."
example: "55d44f1d-c859-42e5-9c27-2c5ec3f340b1"
format: "uuid"
type: "string"
type: "array"
validRules:
description: "List of valid workflow transition rules."
items:
$ref: "#/components/schemas/WorkflowTransitionRules"
type: "array"
workflowEntityId:
description: "The workflow ID."
example: "a498d711-685d-428d-8c3e-bc03bb450ea7"
format: "uuid"
type: "string"
type: "object"
WorkflowScheme:
additionalProperties: false
description: "Details about a workflow scheme."
properties:
defaultWorkflow:
description: "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)*."
type: "string"
description:
description: "The description of the workflow scheme."
type: "string"
draft:
description: "Whether the workflow scheme is a draft or not."
readOnly: true
type: "boolean"
id:
description: "The ID of the workflow scheme."
format: "int64"
readOnly: true
type: "integer"
issueTypeMappings:
additionalProperties:
type: "string"
description: "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."
type: "object"
issueTypes:
additionalProperties:
$ref: "#/components/schemas/IssueTypeDetails"
description: "The issue types available in Jira."
readOnly: true
type: "object"
lastModified:
description: "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."
readOnly: true
type: "string"
lastModifiedUser:
allOf:
- $ref: "#/components/schemas/User"
description: "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."
readOnly: true
name:
description: "The name of the workflow scheme. The name must be unique.\
\ The maximum length is 255 characters. Required when creating a workflow\
\ scheme."
type: "string"
originalDefaultWorkflow:
description: "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."
readOnly: true
type: "string"
originalIssueTypeMappings:
additionalProperties:
readOnly: true
type: "string"
description: "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."
readOnly: true
type: "object"
self:
format: "uri"
readOnly: true
type: "string"
updateDraftIfNeeded:
description: "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:\n\n * 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.\n * Update an active workflow scheme\
\ with `updateDraftIfNeeded` set to `false`: An error is returned, as\
\ active workflow schemes cannot be updated.\n * 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.\n\
\nDefaults to `false`."
type: "boolean"
type: "object"
WorkflowSchemeAssociation:
additionalProperties: false
description: "The explicit association between issue types and a workflow in\
\ a workflow scheme."
properties:
issueTypeIds:
description: "The issue types assigned to the workflow."
items:
description: "The issue types assigned to the workflow."
type: "string"
type: "array"
uniqueItems: true
workflowId:
description: "The ID of the workflow."
type: "string"
required:
- "issueTypeIds"
- "workflowId"
type: "object"
WorkflowSchemeAssociations:
additionalProperties: false
description: "A workflow scheme along with a list of projects that use it."
properties:
projectIds:
description: "The list of projects that use the workflow scheme."
items:
type: "string"
type: "array"
workflowScheme:
allOf:
- $ref: "#/components/schemas/WorkflowScheme"
description: "The workflow scheme."
required:
- "projectIds"
- "workflowScheme"
type: "object"
WorkflowSchemeIdName:
additionalProperties: false
description: "The ID and the name of the workflow scheme."
properties:
id:
description: "The ID of the workflow scheme."
type: "string"
name:
description: "The name of the workflow scheme."
type: "string"
required:
- "id"
- "name"
type: "object"
WorkflowSchemeProjectAssociation:
additionalProperties: false
description: "An associated workflow scheme and project."
properties:
projectId:
description: "The ID of the project."
type: "string"
workflowSchemeId:
description: "The ID of the workflow scheme. If the workflow scheme ID is\
\ `null`, the operation assigns the default workflow scheme."
type: "string"
required:
- "projectId"
type: "object"
WorkflowSchemeReadRequest:
additionalProperties: false
description: "The workflow scheme read request body."
properties:
projectIds:
description: "The list of project IDs to query."
items:
description: "The list of project IDs to query."
nullable: true
type: "string"
nullable: true
type: "array"
workflowSchemeIds:
description: "The list of workflow scheme IDs to query."
items:
description: "The list of workflow scheme IDs to query."
nullable: true
type: "string"
nullable: true
type: "array"
type: "object"
WorkflowSchemeReadResponse:
additionalProperties: false
properties:
defaultWorkflow:
$ref: "#/components/schemas/WorkflowMetadataRestModel"
description:
description: "The description of the workflow scheme."
nullable: true
type: "string"
id:
description: "The ID of the workflow scheme."
type: "string"
name:
description: "The name of the workflow scheme."
type: "string"
projectIdsUsingScheme:
description: "The IDs of projects using the workflow scheme."
items:
description: "The IDs of projects using the workflow scheme."
type: "string"
type: "array"
scope:
$ref: "#/components/schemas/WorkflowScope"
taskId:
description: "Indicates if there's an [asynchronous task](#async-operations)\
\ for this workflow scheme."
nullable: true
type: "string"
version:
$ref: "#/components/schemas/DocumentVersion"
workflowsForIssueTypes:
description: "Mappings from workflows to issue types."
items:
$ref: "#/components/schemas/WorkflowMetadataAndIssueTypeRestModel"
type: "array"
required:
- "id"
- "name"
- "projectIdsUsingScheme"
- "scope"
- "version"
- "workflowsForIssueTypes"
type: "object"
WorkflowSchemeUpdateRequest:
additionalProperties: true
description: "The update workflow scheme payload."
properties:
defaultWorkflowId:
description: "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)*."
type: "string"
description:
description: "The new description for this workflow scheme."
type: "string"
id:
description: "The ID of this workflow scheme."
type: "string"
name:
description: "The new name for this workflow scheme."
type: "string"
statusMappingsByIssueTypeOverride:
description: "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`."
items:
$ref: "#/components/schemas/MappingsByIssueTypeOverride"
type: "array"
statusMappingsByWorkflows:
description: "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`."
items:
$ref: "#/components/schemas/MappingsByWorkflow"
type: "array"
version:
$ref: "#/components/schemas/DocumentVersion"
workflowsForIssueTypes:
description: "Mappings from workflows to issue types."
items:
$ref: "#/components/schemas/WorkflowSchemeAssociation"
type: "array"
required:
- "description"
- "id"
- "name"
- "version"
type: "object"
WorkflowSchemeUpdateRequiredMappingsRequest:
additionalProperties: false
description: "The request payload to get the required mappings for updating\
\ a workflow scheme."
properties:
defaultWorkflowId:
description: "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)*."
nullable: true
type: "string"
id:
description: "The ID of the workflow scheme."
type: "string"
workflowsForIssueTypes:
description: "The new workflow to issue type mappings for this workflow\
\ scheme."
items:
$ref: "#/components/schemas/WorkflowSchemeAssociation"
type: "array"
required:
- "id"
- "workflowsForIssueTypes"
type: "object"
WorkflowSchemeUpdateRequiredMappingsResponse:
additionalProperties: false
properties:
statusMappingsByIssueTypes:
description: "The list of required status mappings by issue type."
items:
$ref: "#/components/schemas/RequiredMappingByIssueType"
type: "array"
uniqueItems: true
statusMappingsByWorkflows:
description: "The list of required status mappings by workflow."
items:
$ref: "#/components/schemas/RequiredMappingByWorkflows"
type: "array"
uniqueItems: true
statuses:
description: "The details of the statuses in the associated workflows."
items:
$ref: "#/components/schemas/StatusMetadata"
type: "array"
uniqueItems: true
statusesPerWorkflow:
description: "The statuses associated with each workflow."
items:
$ref: "#/components/schemas/StatusesPerWorkflow"
type: "array"
uniqueItems: true
type: "object"
WorkflowScope:
additionalProperties: false
description: "The scope of the workflow."
properties:
project:
$ref: "#/components/schemas/ProjectId"
type:
description: "The scope of the workflow. `GLOBAL` for company-managed projects\
\ and `PROJECT` for team-managed projects."
enum:
- "PROJECT"
- "GLOBAL"
type: "string"
required:
- "type"
type: "object"
WorkflowSimpleCondition:
description: "A workflow transition rule condition. This object returns `nodeType`\
\ as `simple`."
properties:
configuration:
description: "EXPERIMENTAL. The configuration of the transition rule."
type: "object"
nodeType:
type: "string"
type:
description: "The type of the transition rule."
type: "string"
required:
- "nodeType"
- "type"
type: "object"
WorkflowStatus:
additionalProperties: false
description: "Details of a workflow status."
properties:
id:
description: "The ID of the issue status."
type: "string"
name:
description: "The name of the status in the workflow."
type: "string"
properties:
additionalProperties:
description: "Additional properties that modify the behavior of issues\
\ in this status. Supports the properties jira.issue.editable
\
\ and issueEditable
(deprecated) that indicate whether\
\ issues are editable."
description: "Additional properties that modify the behavior of issues in\
\ this status. Supports the properties `jira.issue.editable` and `issueEditable`\
\ (deprecated) that indicate whether issues are editable."
type: "object"
required:
- "id"
- "name"
type: "object"
WorkflowStatusAndPort:
additionalProperties: false
description: "The status reference and port that a transition is connected to."
nullable: true
properties:
port:
description: "The port the transition is connected to this status."
format: "int32"
nullable: true
type: "integer"
statusReference:
description: "The reference of this status."
type: "string"
type: "object"
WorkflowStatusLayout:
additionalProperties: false
description: "The x and y location of the status in the workflow."
nullable: true
properties:
x:
description: "The x axis location."
format: "double"
nullable: true
type: "number"
"y":
description: "The y axis location."
format: "double"
nullable: true
type: "number"
type: "object"
WorkflowStatusUpdate:
additionalProperties: true
description: "Details of the status being updated."
maximum: 1000
properties:
description:
description: "The description of the status."
type: "string"
id:
description: "The ID of the status."
type: "string"
name:
description: "The name of the status."
type: "string"
statusCategory:
description: "The category of the status."
enum:
- "TODO"
- "IN_PROGRESS"
- "DONE"
type: "string"
statusReference:
description: "The reference of the status."
type: "string"
required:
- "name"
- "statusCategory"
- "statusReference"
type: "object"
WorkflowTransition:
additionalProperties: false
description: "A workflow transition."
properties:
id:
description: "The transition ID."
format: "int32"
type: "integer"
name:
description: "The transition name."
type: "string"
required:
- "id"
- "name"
type: "object"
WorkflowTransitionProperty:
additionalProperties: true
description: "Details about the server Jira is running on."
properties:
id:
description: "The ID of the transition property."
readOnly: true
type: "string"
key:
description: "The key of the transition property. Also known as the name\
\ of the transition property."
readOnly: true
type: "string"
value:
description: "The value of the transition property."
type: "string"
required:
- "value"
type: "object"
WorkflowTransitionRule:
additionalProperties: false
description: "A workflow transition rule."
properties:
configuration:
description: "EXPERIMENTAL. The configuration of the transition rule."
type:
description: "The type of the transition rule."
type: "string"
required:
- "type"
type: "object"
WorkflowTransitionRules:
additionalProperties: false
description: "A workflow with transition rules."
properties:
conditions:
description: "The list of conditions within the workflow."
items:
$ref: "#/components/schemas/AppWorkflowTransitionRule"
type: "array"
postFunctions:
description: "The list of post functions within the workflow."
items:
$ref: "#/components/schemas/AppWorkflowTransitionRule"
type: "array"
validators:
description: "The list of validators within the workflow."
items:
$ref: "#/components/schemas/AppWorkflowTransitionRule"
type: "array"
workflowId:
$ref: "#/components/schemas/WorkflowId"
required:
- "workflowId"
type: "object"
WorkflowTransitionRulesDetails:
additionalProperties: false
description: "Details about a workflow configuration update request."
properties:
workflowId:
$ref: "#/components/schemas/WorkflowId"
workflowRuleIds:
description: "The list of connect workflow rule IDs."
items:
description: "The list of connect workflow rule IDs."
type: "string"
type: "array"
uniqueItems: true
required:
- "workflowId"
- "workflowRuleIds"
type: "object"
WorkflowTransitionRulesUpdate:
additionalProperties: false
description: "Details about a workflow configuration update request."
properties:
workflows:
description: "The list of workflows with transition rules to update."
items:
$ref: "#/components/schemas/WorkflowTransitionRules"
type: "array"
required:
- "workflows"
type: "object"
WorkflowTransitionRulesUpdateErrorDetails:
additionalProperties: false
description: "Details of any errors encountered while updating workflow transition\
\ rules for a workflow."
properties:
ruleUpdateErrors:
additionalProperties:
description: "A list of transition rule update errors, indexed by the\
\ transition rule ID. Any transition rule that appears here wasn't updated."
items:
description: "A list of transition rule update errors, indexed by the\
\ transition rule ID. Any transition rule that appears here wasn't\
\ updated."
type: "string"
type: "array"
uniqueItems: true
description: "A list of transition rule update errors, indexed by the transition\
\ rule ID. Any transition rule that appears here wasn't updated."
type: "object"
updateErrors:
description: "The list of errors that specify why the workflow update failed.\
\ The workflow was not updated if the list contains any entries."
items:
description: "An error specifying why the workflow update failed."
type: "string"
type: "array"
uniqueItems: true
workflowId:
$ref: "#/components/schemas/WorkflowId"
required:
- "ruleUpdateErrors"
- "updateErrors"
- "workflowId"
type: "object"
WorkflowTransitionRulesUpdateErrors:
additionalProperties: false
description: "Details of any errors encountered while updating workflow transition\
\ rules."
properties:
updateResults:
description: "A list of workflows."
items:
$ref: "#/components/schemas/WorkflowTransitionRulesUpdateErrorDetails"
type: "array"
required:
- "updateResults"
type: "object"
WorkflowTransitions:
additionalProperties: false
description: "The transitions of the workflow."
properties:
actions:
description: "The post-functions of the transition."
items:
$ref: "#/components/schemas/WorkflowRuleConfiguration"
type: "array"
conditions:
$ref: "#/components/schemas/ConditionGroupConfiguration"
customIssueEventId:
description: "The custom event ID of the transition."
nullable: true
type: "string"
description:
description: "The description of the transition."
type: "string"
from:
description: "The statuses the transition can start from."
items:
$ref: "#/components/schemas/WorkflowStatusAndPort"
type: "array"
id:
description: "The ID of the transition."
type: "string"
name:
description: "The name of the transition."
type: "string"
properties:
additionalProperties:
description: "The properties of the transition."
type: "string"
description: "The properties of the transition."
type: "object"
to:
$ref: "#/components/schemas/WorkflowStatusAndPort"
transitionScreen:
$ref: "#/components/schemas/WorkflowRuleConfiguration"
triggers:
description: "The triggers of the transition."
items:
$ref: "#/components/schemas/WorkflowTrigger"
type: "array"
type:
description: "The transition type."
enum:
- "INITIAL"
- "GLOBAL"
- "DIRECTED"
type: "string"
validators:
description: "The validators of the transition."
items:
$ref: "#/components/schemas/WorkflowRuleConfiguration"
type: "array"
type: "object"
WorkflowTrigger:
additionalProperties: false
description: "The trigger configuration associated with a workflow."
properties:
id:
description: "The ID of the trigger."
type: "string"
parameters:
additionalProperties:
description: "The parameters of the trigger."
type: "string"
description: "The parameters of the trigger."
type: "object"
ruleKey:
description: "The rule key of the trigger."
type: "string"
required:
- "parameters"
- "ruleKey"
type: "object"
WorkflowUpdate:
additionalProperties: true
description: "The details of the workflows to update."
maximum: 20
properties:
defaultStatusMappings:
description: "The mapping of old to new status ID."
items:
$ref: "#/components/schemas/StatusMigration"
type: "array"
description:
description: "The new description for this workflow."
type: "string"
id:
description: "The ID of this workflow."
type: "string"
startPointLayout:
$ref: "#/components/schemas/WorkflowLayout"
statusMappings:
description: "The mapping of old to new status ID for a specific project\
\ and issue type."
items:
$ref: "#/components/schemas/StatusMappingDTO"
type: "array"
statuses:
description: "The statuses associated with this workflow."
items:
$ref: "#/components/schemas/StatusLayoutUpdate"
type: "array"
transitions:
description: "The transitions of this workflow."
items:
$ref: "#/components/schemas/TransitionUpdateDTO"
type: "array"
version:
$ref: "#/components/schemas/DocumentVersion"
required:
- "id"
- "statuses"
- "transitions"
- "version"
type: "object"
WorkflowUpdateRequest:
additionalProperties: false
description: "The update workflows payload."
properties:
statuses:
description: "The statuses to associate with the workflows."
items:
$ref: "#/components/schemas/WorkflowStatusUpdate"
maximum: 1000
type: "array"
workflows:
description: "The details of the workflows to update."
items:
$ref: "#/components/schemas/WorkflowUpdate"
maximum: 20
type: "array"
required:
- "statuses"
- "workflows"
type: "object"
WorkflowUpdateResponse:
additionalProperties: false
properties:
statuses:
description: "List of updated statuses."
items:
$ref: "#/components/schemas/JiraWorkflowStatus"
type: "array"
uniqueItems: true
taskId:
description: "If there is a [asynchronous task](#async-operations) operation,\
\ as a result of this update."
nullable: true
type: "string"
workflows:
description: "List of updated workflows."
items:
$ref: "#/components/schemas/JiraWorkflow"
type: "array"
uniqueItems: true
type: "object"
WorkflowUpdateValidateRequestBean:
additionalProperties: false
properties:
payload:
$ref: "#/components/schemas/WorkflowUpdateRequest"
validationOptions:
$ref: "#/components/schemas/ValidationOptionsForUpdate"
required:
- "payload"
type: "object"
WorkflowUsages:
additionalProperties: false
description: "The workflows that use this status. Only available if the `workflowUsages`\
\ expand is requested."
properties:
workflowId:
description: "Workflow ID."
type: "string"
workflowName:
description: "Workflow name."
type: "string"
type: "object"
WorkflowValidationError:
additionalProperties: false
description: "The details about a workflow validation error."
properties:
code:
description: "An error code."
type: "string"
elementReference:
$ref: "#/components/schemas/WorkflowElementReference"
level:
description: "The validation error level."
enum:
- "WARNING"
- "ERROR"
type: "string"
message:
description: "An error message."
type: "string"
type:
description: "The type of element the error or warning references."
enum:
- "RULE"
- "STATUS"
- "STATUS_LAYOUT"
- "STATUS_PROPERTY"
- "WORKFLOW"
- "TRANSITION"
- "TRANSITION_PROPERTY"
- "SCOPE"
- "STATUS_MAPPING"
- "TRIGGER"
type: "string"
type: "object"
WorkflowValidationErrorList:
additionalProperties: false
properties:
errors:
description: "The list of validation errors."
items:
$ref: "#/components/schemas/WorkflowValidationError"
type: "array"
type: "object"
WorkflowsWithTransitionRulesDetails:
additionalProperties: false
description: "Details of workflows and their transition rules to delete."
properties:
workflows:
description: "The list of workflows with transition rules to delete."
items:
$ref: "#/components/schemas/WorkflowTransitionRulesDetails"
type: "array"
required:
- "workflows"
type: "object"
Worklog:
additionalProperties: true
description: "Details of a worklog."
properties:
author:
allOf:
- $ref: "#/components/schemas/UserDetails"
description: "Details of the user who created the worklog."
readOnly: true
comment:
description: "A comment about the worklog. Optional when creating or updating\
\ a worklog."
type: "string"
created:
description: "The datetime on which the worklog was created."
format: "date-time"
readOnly: true
type: "string"
id:
description: "The ID of the worklog record."
readOnly: true
type: "string"
issueId:
description: "The ID of the issue this worklog is for."
readOnly: true
type: "string"
properties:
description: "Details of properties for the worklog. Optional when creating\
\ or updating a worklog."
items:
$ref: "#/components/schemas/EntityProperty"
type: "array"
self:
description: "The URL of the worklog item."
format: "uri"
readOnly: true
type: "string"
started:
description: "The datetime on which the worklog effort was started. Required\
\ when creating a worklog. Optional when updating a worklog."
format: "date-time"
type: "string"
timeSpent:
description: "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."
type: "string"
timeSpentSeconds:
description: "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."
format: "int64"
type: "integer"
updateAuthor:
allOf:
- $ref: "#/components/schemas/UserDetails"
description: "Details of the user who last updated the worklog."
readOnly: true
updated:
description: "The datetime on which the worklog was last updated."
format: "date-time"
readOnly: true
type: "string"
visibility:
allOf:
- $ref: "#/components/schemas/Visibility"
description: "Details about any restrictions in the visibility of the worklog.\
\ Optional when creating or updating a worklog."
type: "object"
xml:
name: "worklog"
WorklogIdsRequestBean:
additionalProperties: false
properties:
ids:
description: "A list of worklog IDs."
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
required:
- "ids"
type: "object"
WorkspaceDataPolicy:
additionalProperties: false
description: "Details about data policy."
properties:
anyContentBlocked:
description: "Whether the workspace contains any content inaccessible to\
\ the requesting application."
readOnly: true
type: "boolean"
type: "object"
securitySchemes:
OAuth2:
description: "OAuth2 scopes for Jira"
flows:
authorizationCode:
authorizationUrl: "https://auth.atlassian.com/authorize"
scopes:
delete:async-task:jira: "Delete asynchronous task."
delete:attachment:jira: "Delete issue attachments."
delete:avatar:jira: "Delete system and custom avatars."
delete:comment.property:jira: "Delete issue comment properties."
delete:comment:jira: "Delete issue comments."
delete:dashboard.property:jira: "Delete dashboard properties."
delete:dashboard:jira: "Delete dashboards."
delete:field-configuration-scheme:jira: "Delete field configuration schemes."
delete:field-configuration:jira: "Delete field configurations."
delete:field.option:jira: "Delete field options."
delete:field:jira: "Delete fields."
delete:filter.column:jira: "Delete filter columns."
delete:filter:jira: "Delete filters."
delete:group:jira: "Delete user groups."
delete:issue-link-type:jira: "Delete issue link types."
delete:issue-link:jira: "Delete issue links."
delete:issue-type-scheme:jira: "Delete issue type schemes."
delete:issue-type-screen-scheme:jira: "Delete issue type screen schemes."
delete:issue-type.property:jira: "Delete issue type properties."
delete:issue-type:jira: "Delete issue types."
delete:issue-worklog.property:jira: "Delete issue worklog properties."
delete:issue-worklog:jira: "Delete issue worklogs."
delete:issue.property:jira: "Delete issue properties."
delete:issue.remote-link:jira: "Delete issue remote links."
delete:issue:jira: "Delete issues."
delete:permission-scheme:jira: "Delete permission schemes."
delete:permission:jira: "Delete permissions."
delete:project-category:jira: "Delete project categories."
delete:project-role:jira: "Delete project roles."
delete:project-version:jira: "Delete project versions."
delete:project.avatar:jira: "Delete project avatars."
delete:project.component:jira: "Delete project components."
delete:project.property:jira: "Delete project properties."
delete:project:jira: "Delete projects and their details, such as issue\
\ types, project lead, and avatars."
delete:screen-scheme:jira: "Delete screen schemes."
delete:screen-tab:jira: "Delete screen tabs."
delete:screen:jira: "Delete screens."
delete:screenable-field:jira: "Delete screenable fields."
delete:user-configuration:jira: "Delete user configurations."
delete:user.property:jira: "Delete user properties."
delete:webhook:jira: "Delete webhooks."
delete:workflow-scheme:jira: "Delete workflow schemes."
delete:workflow.property:jira: "Delete workflow properties."
delete:workflow:jira: "Delete workflows."
manage:jira-configuration: "Configure Jira settings that require the Jira\
\ administrators permission, for example, create projects and custom\
\ fields, view workflows, manage issue link types."
manage:jira-project: "Create and edit project settings and create new\
\ project-level objects, for example, versions, components."
manage:jira-webhook: "Manage Jira webhooks. Enables an OAuth app to register\
\ and unregister dynamic webhooks in Jira. It also provides for fetching\
\ of registered webhooks."
read:application-role:jira: "View application roles."
read:attachment:jira: "View issue attachments."
read:audit-log:jira: "View audit logs."
read:avatar:jira: "View system and custom avatars."
read:comment.property:jira: "View issue comment properties."
read:comment:jira: "View issue comments."
read:custom-field-contextual-configuration:jira: "Read custom field contextual\
\ configurations."
read:dashboard.property:jira: "View dashboard properties."
read:dashboard:jira: "View dashboards."
read:field-configuration-scheme:jira: "View field configuration schemes."
read:field-configuration:jira: "Read field configurations."
read:field.default-value:jira: "View field default values."
read:field.option:jira: "View field options."
read:field.options:jira: "Read field options."
read:field:jira: "View fields."
read:filter.column:jira: "View filter columns."
read:filter.default-share-scope:jira: "View filter default share scopes."
read:filter:jira: "View filters."
read:group:jira: "View user groups."
read:instance-configuration:jira: "View instance configurations."
read:issue-details:jira: "View issue details."
read:issue-event:jira: "Read issue events."
read:issue-field-values:jira: "View issue field valueses."
read:issue-link-type:jira: "View issue link types."
read:issue-link:jira: "View issue links."
read:issue-meta:jira: "View issue meta."
read:issue-security-level:jira: "View issue security levels."
read:issue-security-scheme:jira: "View issue security schemes."
read:issue-status:jira: "View issue statuses."
read:issue-type-hierarchy:jira: "Read issue type hierarchies."
read:issue-type-scheme:jira: "View issue type schemes."
read:issue-type-screen-scheme:jira: "View issue type screen schemes."
read:issue-type.property:jira: "View issue type properties."
read:issue-type:jira: "View issue types."
read:issue-worklog.property:jira: "View issue worklog properties."
read:issue-worklog:jira: "View issue worklogs."
read:issue.changelog:jira: "View issue changelogs."
read:issue.property:jira: "View issue properties."
read:issue.remote-link:jira: "View issue remote links."
read:issue.time-tracking:jira: "View issue time trackings."
read:issue.transition:jira: "View issue transitions."
read:issue.vote:jira: "View issue votes."
read:issue.votes:jira: "View issue voteses."
read:issue.watcher:jira: "View issue watchers."
read:issue:jira: "View issues."
read:jira-expressions:jira: "View jira expressions."
read:jira-user: "View user information in Jira that you have access to,\
\ including usernames, email addresses, and avatars."
read:jira-work: "Read project and issue data. Search for issues and objects\
\ associated with issues (such as attachments and worklogs)."
read:jql:jira: "View JQL."
read:label:jira: "View labels."
read:license:jira: "View licenses."
read:notification-scheme:jira: "View notification schemes."
read:permission-scheme:jira: "View permission schemes."
read:permission:jira: "View permissions."
read:priority:jira: "View priorities."
read:project-category:jira: "View project categories."
read:project-role:jira: "View project roles."
read:project-type:jira: "View project types."
read:project-version:jira: "View project versions."
read:project.avatar:jira: "Read project avatars."
read:project.component:jira: "View project components."
read:project.email:jira: "View project emails."
read:project.feature:jira: "Read project features."
read:project.property:jira: "View project properties."
read:project:jira: "View projects."
read:resolution:jira: "View resolutions."
read:role:jira: "View roles."
read:screen-field:jira: "View screen fields."
read:screen-scheme:jira: "View screen schemes."
read:screen-tab:jira: "View screen tabs."
read:screen:jira: "View screens."
read:screenable-field:jira: "View screenable fields."
read:status:jira: "View statuses."
read:user-configuration:jira: "View user configurations."
read:user.columns:jira: "View user columnses."
read:user.property:jira: "View user properties."
read:user:jira: "View users."
read:webhook:jira: "View webhooks."
read:workflow-scheme:jira: "View workflow schemes."
read:workflow.property:jira: "View workflow properties."
read:workflow:jira: "View workflows."
send:notification:jira: "Send notifications."
validate:jql:jira: "Validate JQL."
write:attachment:jira: "Create and update issue attachments."
write:avatar:jira: "Create and update system and custom avatars."
write:comment.property:jira: "Create and update issue comment properties."
write:comment:jira: "Create and update issue comments."
write:custom-field-contextual-configuration:jira: "Save custom field contextual\
\ configurations."
write:dashboard.property:jira: "Create and update dashboard properties."
write:dashboard:jira: "Create and update dashboards."
write:field-configuration-scheme:jira: "Create and update field configuration\
\ schemes."
write:field-configuration:jira: "Save field configurations."
write:field.default-value:jira: "Create and update field default values."
write:field.option:jira: "Create and update field options."
write:field:jira: "Create and update fields."
write:filter.column:jira: "Create and update filter columns."
write:filter.default-share-scope:jira: "Create and update filter default\
\ share scopes."
write:filter:jira: "Create and update filters."
write:group:jira: "Create and update user groups."
write:instance-configuration:jira: "Create and update instance configurations."
write:issue-link-type:jira: "Create and update issue link types."
write:issue-link:jira: "Create and update issue links."
write:issue-type-scheme:jira: "Create and update issue type schemes."
write:issue-type-screen-scheme:jira: "Create and update issue type screen\
\ schemes."
write:issue-type.property:jira: "Create and update issue type properties."
write:issue-type:jira: "Create and update issue types."
write:issue-worklog.property:jira: "Create and update issue worklog properties."
write:issue-worklog:jira: "Create and update issue worklogs."
write:issue.property:jira: "Create and update issue properties."
write:issue.remote-link:jira: "Create and update issue remote links."
write:issue.time-tracking:jira: "Create and update issue time trackings."
write:issue.vote:jira: "Create and update issue votes."
write:issue.watcher:jira: "Create and update issue watchers."
write:issue:jira: "Create and update issues."
write:jira-work: "Create and edit issues in Jira, post comments, create\
\ worklogs, and delete issues."
write:permission-scheme:jira: "Create and update permission schemes."
write:permission:jira: "Create and update permissions."
write:project-category:jira: "Create and update project categories."
write:project-role:jira: "Create and update project roles."
write:project-version:jira: "Create and update project versions."
write:project.avatar:jira: "Create and update project avatars."
write:project.component:jira: "Create and update project components."
write:project.email:jira: "Create and update project emails."
write:project.feature:jira: "Save project features."
write:project.property:jira: "Create and update project properties."
write:project:jira: "Create and update projects."
write:screen-scheme:jira: "Create and update screen schemes."
write:screen-tab:jira: "Create and update screen tabs."
write:screen:jira: "Create and update screens."
write:screenable-field:jira: "Create and update screenable fields."
write:user-configuration:jira: "Create and update user configurations."
write:user.property:jira: "Create and update user properties."
write:webhook:jira: "Create and update webhooks."
write:workflow-scheme:jira: "Create and update workflow schemes."
write:workflow.property:jira: "Create and update workflow properties."
write:workflow:jira: "Create and update workflows."
tokenUrl: "https://auth.atlassian.com/oauth/token"
type: "oauth2"
basicAuth:
description: "You can access this resource via basic auth."
scheme: "basic"
type: "http"
externalDocs:
description: "Find out more about Atlassian products and services."
url: "http://www.atlassian.com"
info:
contact:
email: "ecosystem@atlassian.com"
description: "Jira Cloud platform REST API documentation"
license:
name: "Apache 2.0"
url: "http://www.apache.org/licenses/LICENSE-2.0.html"
termsOfService: "http://atlassian.com/terms/"
title: "The Jira Cloud platform REST API"
version: "1001.0.0-SNAPSHOT-0a2056e15286310f4b5e220c64c9aafb1684da34"
openapi: "3.0.1"
paths:
/rest/api/2/announcementBanner:
get:
deprecated: false
description: "Returns the current announcement banner configuration.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getBanner"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"hashId\":\"9HN2FJK9DM8BHRWERVW3RRTGDJ4G4D5C\",\"isDismissible\"\
:false,\"isEnabled\":true,\"message\":\"This is a public, enabled,\
\ non-dismissible banner, set using the API\",\"visibility\":\"public\"\
}"
schema:
$ref: "#/components/schemas/AnnouncementBannerConfiguration"
description: "Returned if the request is successful."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "\"Only admins can read banner configuration.\""
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get announcement banner configuration"
tags:
- "Announcement banner"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
put:
deprecated: false
description: "Updates the announcement banner configuration.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setBanner"
parameters: []
requestBody:
content:
application/json:
example:
isDismissible: false
isEnabled: true
message: "This is a public, enabled, non-dismissible banner, set using\
\ the API"
visibility: "public"
schema:
$ref: "#/components/schemas/AnnouncementBannerConfigurationUpdate"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "\"Banner message cannot be null.\""
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if an invalid parameter is passed."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "\"Only admins can update banner configuration.\""
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update announcement banner configuration"
tags:
- "Announcement banner"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/app/field/value:
post:
deprecated: false
description: "Updates the value of one or more custom fields on one or more\
\ issues. Combinations of custom field and issue should be unique within the\
\ request.\n\nApps can only perform this operation on [custom fields](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field/)\
\ and [custom field types](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field-type/)\
\ declared in their own manifests.\n\n**[Permissions](#permissions) required:**\
\ Only the app that owns the custom field or custom field type can update\
\ its values with this operation."
operationId: "updateMultipleCustomFieldValues"
parameters:
- description: "Whether to generate a changelog for this update."
in: "query"
name: "generateChangelog"
schema:
default: true
type: "boolean"
requestBody:
content:
application/json:
example:
updates:
- customField: "customfield_10010"
issueIds:
- 10010
- 10011
value: "new value"
- customField: "customfield_10011"
issueIds:
- 10010
value: 1000
schema:
$ref: "#/components/schemas/MultipleCustomFieldValuesUpdateDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"403":
description: "Returned if the request is not authenticated as the app that\
\ provided all the fields."
"404":
description: "Returned if any field is not found."
security:
- basicAuth: []
- OAuth2: []
summary: "Update custom fields"
tags:
- "Issue custom field values (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
/rest/api/2/app/field/{fieldIdOrKey}/context/configuration:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of configurations for\
\ a custom field of a [type](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field-type/)\
\ created by a [Forge app](https://developer.atlassian.com/platform/forge/).\n\
\nThe result can be filtered by one of these criteria:\n\n * `id`.\n * `fieldContextId`.\n\
\ * `issueId`.\n * `projectKeyOrId` and `issueTypeId`.\n\nOtherwise, all\
\ configurations are returned.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).\
\ Jira permissions are not required for the Forge app that provided the custom\
\ field type."
operationId: "getCustomFieldConfiguration"
parameters:
- description: "The ID or key of the custom field, for example `customfield_10000`."
in: "path"
name: "fieldIdOrKey"
required: true
schema:
type: "string"
- description: "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`."
in: "query"
name: "id"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "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`."
in: "query"
name: "fieldContextId"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "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`."
in: "query"
name: "issueId"
schema:
format: "int64"
type: "integer"
- description: "The ID or key of the project to filter results by. Must be provided\
\ with `issueTypeId`. Can't be provided with `issueId`."
in: "query"
name: "projectKeyOrId"
schema:
type: "string"
- description: "The ID of the issue type to filter results by. Must be provided\
\ with `projectKeyOrId`. Can't be provided with `issueId`."
in: "query"
name: "issueTypeId"
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 100
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":1000,\"startAt\":0,\"total\"\
:2,\"values\":[{\"id\":\"10000\",\"fieldContextId\":\"10010\"},{\"\
id\":\"10001\",\"fieldContextId\":\"10011\",\"configuration\":{\"\
minValue\":0,\"maxValue\":10000},\"schema\":{\"properties\":{\"amount\"\
:{\"type\":\"number\"},\"currency\":{\"type\":\"string\"}},\"required\"\
:[\"amount\",\"currency\"]}}]}"
schema:
$ref: "#/components/schemas/PageBeanContextualConfiguration"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user is not a Jira admin or the request is\
\ not authenticated as from the app that provided the field."
"404":
description: "Returned if the custom field is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get custom field configurations"
tags:
- "Issue custom field configuration (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:custom-field-contextual-configuration:jira"
state: "Beta"
put:
deprecated: false
description: "Update the configuration for contexts of a custom field of a [type](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field-type/)\
\ created by a [Forge app](https://developer.atlassian.com/platform/forge/).\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).\
\ Jira permissions are not required for the Forge app that created the custom\
\ field type."
operationId: "updateCustomFieldConfiguration"
parameters:
- description: "The ID or key of the custom field, for example `customfield_10000`."
in: "path"
name: "fieldIdOrKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
configurations:
- id: "10000"
- configuration:
maxValue: 10000
minValue: 0
id: "10001"
schema:
properties:
amount:
type: "number"
currency:
type: "string"
required:
- "amount"
- "currency"
schema:
$ref: "#/components/schemas/CustomFieldConfigurations"
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user is not a Jira admin or the request is\
\ not authenticated as from the app that provided the field."
"404":
description: "Returned if the custom field is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update custom field configurations"
tags:
- "Issue custom field configuration (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:custom-field-contextual-configuration:jira"
state: "Beta"
/rest/api/2/app/field/{fieldIdOrKey}/value:
put:
deprecated: false
description: "Updates the value of a custom field on one or more issues.\n\n\
Apps can only perform this operation on [custom fields](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field/)\
\ and [custom field types](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field-type/)\
\ declared in their own manifests.\n\n**[Permissions](#permissions) required:**\
\ Only the app that owns the custom field or custom field type can update\
\ its values with this operation."
operationId: "updateCustomFieldValue"
parameters:
- description: "The ID or key of the custom field. For example, `customfield_10010`."
in: "path"
name: "fieldIdOrKey"
required: true
schema:
type: "string"
- description: "Whether to generate a changelog for this update."
in: "query"
name: "generateChangelog"
schema:
default: true
type: "boolean"
requestBody:
content:
application/json:
example:
updates:
- issueIds:
- 10010
value: "new value"
schema:
$ref: "#/components/schemas/CustomFieldValueUpdateDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"403":
description: "Returned if the request is not authenticated as the app that\
\ provided the field."
"404":
description: "Returned if the field is not found."
security:
- basicAuth: []
- OAuth2: []
summary: "Update custom field value"
tags:
- "Issue custom field values (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
/rest/api/2/application-properties:
get:
deprecated: false
description: "Returns all application properties or an application property.\n\
\nIf you specify a value for the `key` parameter, then an application property\
\ is returned as an object (not in an array). Otherwise, an array of all editable\
\ application properties is returned. See [Set application property](#api-rest-api-2-application-properties-id-put)\
\ for descriptions of editable properties.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getApplicationProperty"
parameters:
- description: "The key of the application property."
in: "query"
name: "key"
schema:
type: "string"
- description: "The permission level of all items being returned in the list."
in: "query"
name: "permissionLevel"
schema:
type: "string"
- description: "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.*."
in: "query"
name: "keyFilter"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "[{\"defaultValue\":\"\",\"desc\":\"Jira home directory\",\"\
id\":\"jira.home\",\"key\":\"jira.home\",\"name\":\"jira.home\",\"\
type\":\"string\",\"value\":\"/var/jira/jira-home\"},{\"defaultValue\"\
:\"CLONE -\",\"id\":\"jira.clone.prefix\",\"key\":\"jira.clone.prefix\"\
,\"name\":\"The prefix added to the Summary field of cloned issues\"\
,\"type\":\"string\",\"value\":\"CLONE -\"}]"
schema:
items:
$ref: "#/components/schemas/ApplicationProperty"
type: "array"
description: "Returned if the request is successful."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the application property is not found or the user\
\ does not have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get application property"
tags:
- "Jira settings"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:instance-configuration:jira"
state: "Beta"
/rest/api/2/application-properties/advanced-settings:
get:
deprecated: false
description: "Returns the application properties that are accessible on the\
\ *Advanced Settings* page. To navigate to the *Advanced Settings* page in\
\ Jira, choose the Jira icon > **Jira settings** > **System**, **General Configuration**\
\ and then click **Advanced Settings** (in the upper right).\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAdvancedSettings"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"defaultValue\":\"\",\"desc\":\"Jira home directory\",\"\
id\":\"jira.home\",\"key\":\"jira.home\",\"name\":\"jira.home\",\"\
type\":\"string\",\"value\":\"/var/jira/jira-home\"},{\"defaultValue\"\
:\"CLONE -\",\"id\":\"jira.clone.prefix\",\"key\":\"jira.clone.prefix\"\
,\"name\":\"The prefix added to the Summary field of cloned issues\"\
,\"type\":\"string\",\"value\":\"CLONE -\"}]"
schema:
items:
$ref: "#/components/schemas/ApplicationProperty"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user is not an administrator."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get advanced settings"
tags:
- "Jira settings"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:instance-configuration:jira"
state: "Beta"
/rest/api/2/application-properties/{id}:
put:
deprecated: false
description: "Changes the value of an application property. For example, you\
\ can change the value of the `jira.clone.prefix` from its default value of\
\ *CLONE -* to *Clone -* if you prefer sentence case capitalization. Editable\
\ properties are described below along with their default values.\n\n####\
\ Advanced settings ####\n\nThe advanced settings below are also accessible\
\ in [Jira](https://confluence.atlassian.com/x/vYXKM).\n\n| Key | Description\
\ | Default value | \n| -- | -- | -- | \n| `jira.clone.prefix` | The string\
\ of text prefixed to the title of a cloned issue. | `CLONE -` | \n| `jira.date.picker.java.format`\
\ | The date format for the Java (server-side) generated dates. This must\
\ be the same as the `jira.date.picker.javascript.format` format setting.\
\ | `d/MMM/yy` | \n| `jira.date.picker.javascript.format` | The date format\
\ for the JavaScript (client-side) generated dates. This must be the same\
\ as the `jira.date.picker.java.format` format setting. | `%e/%b/%y` | \n\
| `jira.date.time.picker.java.format` | The date format for the Java (server-side)\
\ generated date times. This must be the same as the `jira.date.time.picker.javascript.format`\
\ format setting. | `dd/MMM/yy h:mm a` | \n| `jira.date.time.picker.javascript.format`\
\ | The date format for the JavaScript (client-side) generated date times.\
\ This must be the same as the `jira.date.time.picker.java.format` format\
\ setting. | `%e/%b/%y %I:%M %p` | \n| `jira.issue.actions.order` | The default\
\ order of actions (such as *Comments* or *Change history*) displayed on the\
\ issue view. | `asc` | \n| `jira.view.issue.links.sort.order` | The sort\
\ order of the list of issue links on the issue view. | `type, status, priority`\
\ | \n| `jira.comment.collapsing.minimum.hidden` | The minimum number of\
\ comments required for comment collapsing to occur. A value of `0` disables\
\ comment collapsing. | `4` | \n| `jira.newsletter.tip.delay.days` | The\
\ number of days before a prompt to sign up to the Jira Insiders newsletter\
\ is shown. A value of `-1` disables this feature. | `7` | \n\n\n#### Look\
\ and feel ####\n\nThe settings listed below adjust the [look and feel](https://confluence.atlassian.com/x/VwCLLg).\n\
\n| Key | Description | Default value | \n| -- | -- | -- | \n| `jira.lf.date.time`\
\ | The [ time format](https://docs.oracle.com/javase/6/docs/api/index.html?java/text/SimpleDateFormat.html).\
\ | `h:mm a` | \n| `jira.lf.date.day` | The [ day format](https://docs.oracle.com/javase/6/docs/api/index.html?java/text/SimpleDateFormat.html).\
\ | `EEEE h:mm a` | \n| `jira.lf.date.complete` | The [ date and time format](https://docs.oracle.com/javase/6/docs/api/index.html?java/text/SimpleDateFormat.html).\
\ | `dd/MMM/yy h:mm a` | \n| `jira.lf.date.dmy` | The [ date format](https://docs.oracle.com/javase/6/docs/api/index.html?java/text/SimpleDateFormat.html).\
\ | `dd/MMM/yy` | \n| `jira.date.time.picker.use.iso8061` | When enabled,\
\ sets Monday as the first day of the week in the date picker, as specified\
\ by the ISO8601 standard. | `false` | \n| `jira.lf.logo.url` | The URL of\
\ the logo image file. | `/images/icon-jira-logo.png` | \n| `jira.lf.logo.show.application.title`\
\ | Controls the visibility of the application title on the sidebar. | `false`\
\ | \n| `jira.lf.favicon.url` | The URL of the favicon. | `/favicon.ico`\
\ | \n| `jira.lf.favicon.hires.url` | The URL of the high-resolution favicon.\
\ | `/images/64jira.png` | \n| `jira.lf.navigation.bgcolour` | The background\
\ color of the sidebar. | `#0747A6` | \n| `jira.lf.navigation.highlightcolour`\
\ | The color of the text and logo of the sidebar. | `#DEEBFF` | \n| `jira.lf.hero.button.base.bg.colour`\
\ | The background color of the hero button. | `#3b7fc4` | \n| `jira.title`\
\ | The text for the application title. The application title can also be\
\ set in *General settings*. | `Jira` | \n| `jira.option.globalsharing` |\
\ Whether filters and dashboards can be shared with anyone signed into Jira.\
\ | `true` | \n| `xflow.product.suggestions.enabled` | Whether to expose\
\ product suggestions for other Atlassian products within Jira. | `true` |\
\ \n\n\n#### Other settings ####\n\n| Key | Description | Default value |\
\ \n| -- | -- | -- | \n| `jira.issuenav.criteria.autoupdate` | Whether instant\
\ updates to search criteria is active. | `true` | \n\n\n*Note: Be careful\
\ when changing [application properties and advanced settings](https://confluence.atlassian.com/x/vYXKM).*\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setApplicationProperty"
parameters:
- description: "The key of the application property to update."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
id: "jira.home"
value: "/var/jira/jira-home"
schema:
$ref: "#/components/schemas/SimpleApplicationPropertyBean"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ApplicationProperty"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "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":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have permission to edit the\
\ property."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the property is not found or the user does not\
\ have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Set application property"
tags:
- "Jira settings"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:instance-configuration:jira"
- "read:instance-configuration:jira"
state: "Beta"
/rest/api/2/applicationrole:
get:
deprecated: false
description: "Returns all application roles. In Jira, application roles are\
\ managed using the [Application access configuration](https://confluence.atlassian.com/x/3YxjL)\
\ page.\n\n**[Permissions](#permissions) required:** *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAllApplicationRoles"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"defaultGroups\":[\"jira-software-users\"],\"defaultGroupsDetails\"\
:[{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"name\":\"\
jira-software-users\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
}],\"defined\":false,\"groupDetails\":[{\"groupId\":\"42c8955c-63d7-42c8-9520-63d7aca0625\"\
,\"name\":\"jira-testers\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=42c8955c-63d7-42c8-9520-63d7aca0625\"\
},{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"name\":\"\
jira-software-users\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
}],\"groups\":[\"jira-software-users\",\"jira-testers\"],\"hasUnlimitedSeats\"\
:false,\"key\":\"jira-software\",\"name\":\"Jira Software\",\"numberOfSeats\"\
:10,\"platform\":false,\"remainingSeats\":5,\"selectedByDefault\"\
:false,\"userCount\":5,\"userCountDescription\":\"5 developers\"},{\"\
defaultGroups\":[\"jira-core-users\"],\"defaultGroupsDetails\":[{\"\
groupId\":\"92d01dca0625-42c8-42c8-9520-276f955c\",\"name\":\"jira-core-users\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=92d01dca0625-42c8-42c8-9520-276f955c\"\
}],\"defined\":false,\"groupDetails\":[{\"groupId\":\"92d01dca0625-42c8-42c8-9520-276f955c\"\
,\"name\":\"jira-core-users\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=92d01dca0625-42c8-42c8-9520-276f955c\"\
}],\"groups\":[\"jira-core-users\"],\"hasUnlimitedSeats\":false,\"\
key\":\"jira-core\",\"name\":\"Jira Core\",\"numberOfSeats\":1,\"\
platform\":true,\"remainingSeats\":1,\"selectedByDefault\":false,\"\
userCount\":0,\"userCountDescription\":\"0 users\"}]"
schema:
items:
$ref: "#/components/schemas/ApplicationRole"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user is not an administrator."
security:
- basicAuth: []
summary: "Get all application roles"
tags:
- "Application roles"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/applicationrole/{key}:
get:
deprecated: false
description: "Returns an application role.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getApplicationRole"
parameters:
- description: "The key of the application role. Use the [Get all application\
\ roles](#api-rest-api-2-applicationrole-get) operation to get the key for\
\ each application role."
in: "path"
name: "key"
required: true
schema:
example: "jira-software"
type: "string"
x-showInExample: "true"
responses:
"200":
content:
application/json:
example: "{\"defaultGroups\":[\"jira-software-users\"],\"defaultGroupsDetails\"\
:[{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"name\":\"\
jira-software-users\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
}],\"defined\":false,\"groupDetails\":[{\"groupId\":\"42c8955c-63d7-42c8-9520-63d7aca0625\"\
,\"name\":\"jira-testers\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=42c8955c-63d7-42c8-9520-63d7aca0625\"\
},{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"name\":\"\
jira-software-users\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
}],\"groups\":[\"jira-software-users\",\"jira-testers\"],\"hasUnlimitedSeats\"\
:false,\"key\":\"jira-software\",\"name\":\"Jira Software\",\"numberOfSeats\"\
:10,\"platform\":false,\"remainingSeats\":5,\"selectedByDefault\"\
:false,\"userCount\":5,\"userCountDescription\":\"5 developers\"}"
schema:
$ref: "#/components/schemas/ApplicationRole"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user is not an administrator."
"404":
description: "Returned if the role is not found."
security:
- basicAuth: []
summary: "Get application role"
tags:
- "Application roles"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/attachment/content/{id}:
get:
deprecated: false
description: "Returns the contents of an attachment. A `Range` header can be\
\ set to define a range of bytes within the attachment to download. See the\
\ [HTTP Range header standard](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range)\
\ for details.\n\nTo return a thumbnail of the attachment, use [Get attachment\
\ thumbnail](#api-rest-api-2-attachment-thumbnail-id-get).\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ For the issue containing the attachment:\n\n * *Browse projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project that\
\ the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "getAttachmentContent"
parameters:
- description: "The ID of the attachment."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "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."
in: "query"
name: "redirect"
schema:
default: true
type: "boolean"
responses:
"200":
content:
application/json:
schema:
items: {}
type: "array"
description: "Returned if the request is successful when `redirect` is set\
\ to `false`."
"206":
description: "Returned if the request is successful when a `Range` header\
\ is provided and `redirect` is set to `false`."
"303":
description: "Returned if the request is successful. See the `Location`\
\ header for the download URL."
"400":
description: "Returned if the range supplied in the `Range` header is malformed."
"401":
description: "Returned if the authentication credentials are incorrect."
"403":
description: "The user does not have the necessary permission."
"404":
description: "Returned if:\n\n * the attachment is not found.\n * attachments\
\ are disabled in the Jira settings."
"416":
description: "Returned if the server is unable to satisfy the range of bytes\
\ provided."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get attachment content"
tags:
- "Issue attachments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:attachment:jira"
state: "Beta"
/rest/api/2/attachment/meta:
get:
deprecated: false
description: "Returns the attachment settings, that is, whether attachments\
\ are enabled and the maximum attachment size allowed.\n\nNote that there\
\ are also [project permissions](https://confluence.atlassian.com/x/yodKLg)\
\ that restrict whether users can create and delete attachments.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ None."
operationId: "getAttachmentMeta"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"enabled\":true,\"uploadLimit\":1000000}"
schema:
$ref: "#/components/schemas/AttachmentSettings"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get Jira attachment settings"
tags:
- "Issue attachments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:instance-configuration:jira"
state: "Beta"
/rest/api/2/attachment/thumbnail/{id}:
get:
deprecated: false
description: "Returns the thumbnail of an attachment.\n\nTo return the attachment\
\ contents, use [Get attachment content](#api-rest-api-2-attachment-content-id-get).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** For the issue containing the attachment:\n\n * *Browse projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for the\
\ project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "getAttachmentThumbnail"
parameters:
- description: "The ID of the attachment."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "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."
in: "query"
name: "redirect"
schema:
default: true
type: "boolean"
- description: "Whether a default thumbnail is returned when the requested thumbnail\
\ is not found."
in: "query"
name: "fallbackToDefault"
schema:
default: true
type: "boolean"
- description: "The maximum width to scale the thumbnail to."
in: "query"
name: "width"
schema:
format: "int32"
type: "integer"
- description: "The maximum height to scale the thumbnail to."
in: "query"
name: "height"
schema:
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
schema:
items: {}
type: "array"
description: "Returned if the request is successful when `redirect` is set\
\ to `false`."
"303":
description: "Returned if the request is successful. See the `Location`\
\ header for the download URL."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect."
"403":
description: "The user does not have the necessary permission."
"404":
description: "Returned if:\n\n * the attachment is not found.\n * attachments\
\ are disabled in the Jira settings.\n * `fallbackToDefault` is `false`\
\ and the request thumbnail cannot be downloaded."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get attachment thumbnail"
tags:
- "Issue attachments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:attachment:jira"
state: "Beta"
/rest/api/2/attachment/{id}:
delete:
deprecated: false
description: "Deletes an attachment from an issue.\n\nThis operation can be\
\ accessed anonymously.\n\n**[Permissions](#permissions) required:** For the\
\ project holding the issue containing the attachment:\n\n * *Delete own\
\ attachments* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ to delete an attachment created by the calling user.\n * *Delete all attachments*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) to delete\
\ an attachment created by any user."
operationId: "removeAttachment"
parameters:
- description: "The ID of the attachment."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if:\n\n * the attachment is not found.\n * attachments\
\ are disabled in the Jira settings."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete attachment"
tags:
- "Issue attachments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:attachment:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the metadata for an attachment. Note that the attachment\
\ itself is not returned.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:**\n\n * *Browse projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project that\
\ the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "getAttachment"
parameters:
- description: "The ID of the attachment."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"\
accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\"\
:\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"content\":\"https://your-domain.atlassian.net/jira/rest/api/3/attachment/content/10001\"\
,\"created\":\"2023-06-24T19:24:50.000+0000\",\"filename\":\"debuglog.txt\"\
,\"id\":10001,\"mimeType\":\"text/plain\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/attachments/10001\"\
,\"size\":2460}"
schema:
$ref: "#/components/schemas/AttachmentMetadata"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if:\n\n * the attachment is not found.\n * attachments\
\ are disabled in the Jira settings."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get attachment metadata"
tags:
- "Issue attachments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:attachment:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/attachment/{id}/expand/human:
get:
deprecated: false
description: "Returns the metadata for the contents of an attachment, if it\
\ is an archive, and metadata for the attachment itself. For example, if the\
\ attachment is a ZIP archive, then information about the files in the archive\
\ is returned and metadata for the ZIP archive. Currently, only the ZIP archive\
\ format is supported.\n\nUse this operation to retrieve data that is presented\
\ to the user, as this operation returns the metadata for the attachment itself,\
\ such as the attachment's ID and name. Otherwise, use [ Get contents metadata\
\ for an expanded attachment](#api-rest-api-2-attachment-id-expand-raw-get),\
\ which only returns the metadata for the attachment's contents.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ For the issue containing the attachment:\n\n * *Browse projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project that\
\ the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "expandAttachmentForHumans"
parameters:
- description: "The ID of the attachment."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"entries\":[{\"index\":0,\"label\":\"MG00N067.JPG\",\"mediaType\"\
:\"image/jpeg\",\"path\":\"MG00N067.JPG\",\"size\":\"119 kB\"},{\"\
index\":1,\"label\":\"Allegro from Duet in C Major.mp3\",\"mediaType\"\
:\"audio/mpeg\",\"path\":\"Allegro from Duet in C Major.mp3\",\"size\"\
:\"1.36 MB\"},{\"index\":2,\"label\":\"long/path/thanks/to/.../reach/the/leaf.txt\"\
,\"mediaType\":\"text/plain\",\"path\":\"long/path/thanks/to/lots/of/subdirectories/inside/making/it/quite/hard/to/reach/the/leaf.txt\"\
,\"size\":\"0.0 k\"}],\"id\":7237823,\"mediaType\":\"application/zip\"\
,\"name\":\"images.zip\",\"totalEntryCount\":39}"
schema:
$ref: "#/components/schemas/AttachmentArchiveMetadataReadable"
description: "Returned if the request is successful. If an empty list is\
\ returned in the response, the attachment is empty, corrupt, or not an\
\ archive."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "The user does not have the necessary permission."
"404":
description: "Returned if:\n\n * the attachment is not found.\n * attachments\
\ are disabled in the Jira settings."
"409":
description: "Returned if the attachment is an archive, but not a supported\
\ archive format."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get all metadata for an expanded attachment"
tags:
- "Issue attachments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:attachment:jira"
state: "Beta"
x-experimental: true
/rest/api/2/attachment/{id}/expand/raw:
get:
deprecated: false
description: "Returns the metadata for the contents of an attachment, if it\
\ is an archive. For example, if the attachment is a ZIP archive, then information\
\ about the files in the archive is returned. Currently, only the ZIP archive\
\ format is supported.\n\nUse this operation if you are processing the data\
\ without presenting it to the user, as this operation only returns the metadata\
\ for the contents of the attachment. Otherwise, to retrieve data to present\
\ to the user, use [ Get all metadata for an expanded attachment](#api-rest-api-2-attachment-id-expand-human-get)\
\ which also returns the metadata for the attachment itself, such as the attachment's\
\ ID and name.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** For the issue containing the attachment:\n\n * *Browse projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for the\
\ project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "expandAttachmentForMachines"
parameters:
- description: "The ID of the attachment."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"entries\":[{\"entryIndex\":0,\"mediaType\":\"audio/mpeg\"\
,\"name\":\"Allegro from Duet in C Major.mp3\",\"size\":1430174},{\"\
entryIndex\":1,\"mediaType\":\"text/rtf\",\"name\":\"lrm.rtf\",\"\
size\":331}],\"totalEntryCount\":24}"
schema:
$ref: "#/components/schemas/AttachmentArchiveImpl"
description: "Returned if the request is successful. If an empty list is\
\ returned in the response, the attachment is empty, corrupt, or not an\
\ archive."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "The user does not have the necessary permission."
"404":
description: "Returned if:\n\n * the attachment is not found.\n * attachments\
\ are disabled in the Jira settings."
"409":
description: "Returned if the attachment is an archive, but not a supported\
\ archive format."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get contents metadata for an expanded attachment"
tags:
- "Issue attachments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:attachment:jira"
state: "Beta"
x-experimental: true
/rest/api/2/auditing/record:
get:
deprecated: false
description: "Returns a list of audit records. The list can be filtered to include\
\ items:\n\n * where each item in `filter` has at least one match in any\
\ of these fields:\n \n * `summary`\n * `category`\n * `eventSource`\n\
\ * `objectItem.name` If the object is a user, account ID is available\
\ to filter.\n * `objectItem.parentName`\n * `objectItem.typeName`\n\
\ * `changedValues.changedFrom`\n * `changedValues.changedTo`\n\
\ * `remoteAddress`\n \n For example, if `filter` contains *man\
\ ed*, an audit record containing `summary\": \"User added to group\"` and\
\ `\"category\": \"group management\"` is returned.\n * created on or after\
\ a date and time.\n * created or or before a date and time.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAuditRecords"
parameters:
- description: "The number of records to skip before returning the first result."
in: "query"
name: "offset"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of results to return."
in: "query"
name: "limit"
schema:
default: 1000
format: "int32"
type: "integer"
- description: "The strings to match with audit field content, space separated."
in: "query"
name: "filter"
schema:
type: "string"
- description: "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."
in: "query"
name: "from"
schema:
type: "string"
- description: "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."
in: "query"
name: "to"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"limit\":1000,\"offset\":0,\"records\":[{\"associatedItems\"\
:[{\"id\":\"jira-software-users\",\"name\":\"jira-software-users\"\
,\"parentId\":\"1\",\"parentName\":\"Jira Internal Directory\",\"\
typeName\":\"GROUP\"}],\"authorAccountId\":\"5ab8f18d741e9c2c7e9d4538\"\
,\"authorKey\":\"administrator\",\"category\":\"user management\"\
,\"changedValues\":[{\"changedFrom\":\"user@atlassian.com\",\"changedTo\"\
:\"newuser@atlassian.com\",\"fieldName\":\"email\"}],\"created\":\"\
2014-03-19T18:45:42.967+0000\",\"description\":\"Optional description\"\
,\"eventSource\":\"Jira Connect Plugin\",\"id\":1,\"objectItem\":{\"\
id\":\"user\",\"name\":\"user\",\"parentId\":\"1\",\"parentName\"\
:\"Jira Internal Directory\",\"typeName\":\"USER\"},\"remoteAddress\"\
:\"192.168.1.1\",\"summary\":\"User created\"}],\"total\":1}"
schema:
$ref: "#/components/schemas/AuditRecords"
description: "Returned if the request is successful."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if:\n\n * the user does not have the required permissions.\n\
\ * all Jira products are on free plans. Audit logs are available when\
\ at least one Jira product is on a paid plan."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get audit records"
tags:
- "Audit records"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:audit-log:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/avatar/{type}/system:
get:
deprecated: false
description: "Returns a list of system avatar details by owner type, where the\
\ owner types are issue type, project, or user.\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:** None."
operationId: "getAllSystemAvatars"
parameters:
- description: "The avatar type."
in: "path"
name: "type"
required: true
schema:
enum:
- "issuetype"
- "project"
- "user"
example: "project"
type: "string"
x-showInExample: "true"
responses:
"200":
content:
application/json:
example: "{\"system\":[{\"id\":\"1000\",\"isDeletable\":false,\"isSelected\"\
:false,\"isSystemAvatar\":true,\"urls\":{\"16x16\":\"/secure/useravatar?size=xsmall&avatarId=10040&avatarType=project\"\
,\"24x24\":\"/secure/useravatar?size=small&avatarId=10040&avatarType=project\"\
,\"32x32\":\"/secure/useravatar?size=medium&avatarId=10040&avatarType=project\"\
,\"48x48\":\"/secure/useravatar?avatarId=10040&avatarType=project\"\
}}]}"
schema:
$ref: "#/components/schemas/SystemAvatars"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"500":
description: "Returned if an error occurs while retrieving the list of avatars."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Get system avatars by type"
tags:
- "Avatars"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:avatar:jira"
state: "Beta"
/rest/api/2/classification-levels:
get:
deprecated: false
description: "Returns all classification levels.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getAllUserDataClassificationLevels"
parameters:
- description: "Optional set of statuses to filter by."
in: "query"
name: "status"
schema:
items:
default: ""
description: "The status of the project classification."
enum:
- "PUBLISHED"
- "ARCHIVED"
- "DRAFT"
type: "string"
type: "array"
uniqueItems: true
- description: "Ordering of the results by a given field. If not provided, values\
\ will not be sorted."
in: "query"
name: "orderBy"
schema:
enum:
- "rank"
- "-rank"
- "+rank"
type: "string"
responses:
"200":
content:
application/json:
example: "{\"classifications\":[{\"id\":\"ari:cloud:platform::classification-tag/5bfa70f7-4af1-44f5-9e12-1ce185f15a38\"\
,\"status\":\"published\",\"name\":\"Restricted\",\"rank\":1,\"description\"\
:\"Data we hold that would be very damaging and would cause loss of\
\ trust with customers and present legal risk to Atlassian and/or\
\ customers if mishandled\",\"guideline\":\"Access to data must be\
\ restricted to only individuals who need access in order to perform\
\ their job duties.\",\"color\":\"RED\"},{\"id\":\"ari:cloud:platform::classification-tag/bd58e74c-c31b-41a7-ba69-9673ebd9dae9\"\
,\"status\":\"archived\",\"name\":\"Protected\",\"rank\":2,\"description\"\
:\"Data we hold that could cause loss of trust with customers or present\
\ legal risk to Atlassian if mishandled\",\"guideline\":\"Access to\
\ systems or APIs mapping data to other identifiers must be carefully\
\ controlled.\",\"color\":\"ORANGE\"},{\"id\":\"ari:cloud:platform::classification-tag/a82d653e-1035-4aa2-b9de-4265511fd487\"\
,\"status\":\"published\",\"name\":\"Confidential\",\"rank\":3,\"\
description\":\"Data we hold that would likely be damaging and could\
\ cause loss of trust with our customers if mishandled\",\"guideline\"\
:\"Data should be encrypted at rest and in transit.\",\"color\":\"\
BLUE\"},{\"id\":\"ari:cloud:platform::classification-tag/a82d653e-1035-4aa2-b9de-4265511fd487\"\
,\"status\":\"published\",\"name\":\"system-tag\"}]}"
schema:
$ref: "#/components/schemas/DataClassificationLevelsBean"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get all classification levels"
tags:
- "Classification levels"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
state: "Beta"
x-experimental: true
/rest/api/2/comment/list:
post:
deprecated: false
description: "Returns a [paginated](#pagination) list of comments specified\
\ by a list of comment IDs.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** Comments are returned where the\
\ user:\n\n * has *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the comment.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * If\
\ the comment has visibility restrictions, belongs to the group or has the\
\ role visibility is restricted to."
operationId: "getCommentsByIds"
parameters:
- description: "Use [expand](#expansion) to include additional information about\
\ comments in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `renderedBody` Returns the comment body\
\ rendered in HTML.\n * `properties` Returns the comment's properties."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
ids:
- 1
- 2
- 5
- 10
schema:
$ref: "#/components/schemas/IssueCommentListRequestBean"
description: "The list of comment IDs."
required: true
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":1048576,\"startAt\":0,\"total\"\
:1,\"values\":[{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"body\":\"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.\",\"created\":\"2021-01-17T12:34:00.000+0000\",\"id\":\"\
10000\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/comment/10000\"\
,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\"\
:false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"Administrators\",\"type\":\"role\",\"value\":\"Administrators\"\
}}]}"
schema:
$ref: "#/components/schemas/PageBeanComment"
description: "Returned if the request is successful."
"400":
description: "Returned if the request contains more than 1000 IDs or is\
\ empty."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get comments by IDs"
tags:
- "Issue comments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:comment.property:jira"
- "read:avatar:jira"
- "read:comment:jira"
- "read:group:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:comment.property:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/comment/{commentId}/properties:
get:
deprecated: false
description: "Returns the keys of all the properties of a comment.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * If\
\ the comment has visibility restrictions, belongs to the group or has the\
\ role visibility is restricted to."
operationId: "getCommentPropertyKeys"
parameters:
- description: "The ID of the comment."
in: "path"
name: "commentId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"keys\":[{\"key\":\"issue.support\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/EX-2/properties/issue.support\"\
}]}"
schema:
$ref: "#/components/schemas/PropertyKeys"
description: "Returned if the request is successful."
"400":
description: "Returned if the comment ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the comment is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get comment property keys"
tags:
- "Issue comment properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:comment.property:jira"
state: "Beta"
/rest/api/2/comment/{commentId}/properties/{propertyKey}:
delete:
deprecated: false
description: "Deletes a comment property.\n\n**[Permissions](#permissions) required:**\
\ either of:\n\n * *Edit All Comments* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ to delete a property from any comment.\n * *Edit Own Comments* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) to delete a property\
\ from a comment created by the user.\n\nAlso, when the visibility of a comment\
\ is restricted to a role or group the user must be a member of that role\
\ or group."
operationId: "deleteCommentProperty"
parameters:
- description: "The ID of the comment."
in: "path"
name: "commentId"
required: true
schema:
type: "string"
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the comment or the property is not found or the\
\ user has the necessary project permissions but isn't a member of the\
\ role or group visibility of the comment is restricted to."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete comment property"
tags:
- "Issue comment properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:comment.property:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the value of a comment property.\n\nThis operation can\
\ be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\n\
\ * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * If\
\ the comment has visibility restrictions, belongs to the group or has the\
\ role visibility is restricted to."
operationId: "getCommentProperty"
parameters:
- description: "The ID of the comment."
in: "path"
name: "commentId"
required: true
schema:
type: "string"
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"key\":\"issue.support\",\"value\":{\"system.conversation.id\"\
:\"b1bf38be-5e94-4b40-a3b8-9278735ee1e6\",\"system.support.time\"\
:\"1m\"}}"
schema:
$ref: "#/components/schemas/EntityProperty"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the comment or the property is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get comment property"
tags:
- "Issue comment properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:comment.property:jira"
state: "Beta"
put:
deprecated: false
description: "Creates or updates the value of a property for a comment. Use\
\ this resource to store custom data against a comment.\n\nThe value of the\
\ request body must be a [valid](http://tools.ietf.org/html/rfc4627), non-empty\
\ JSON blob. The maximum length is 32768 characters.\n\n**[Permissions](#permissions)\
\ required:** either of:\n\n * *Edit All Comments* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ to create or update the value of a property on any comment.\n * *Edit Own\
\ Comments* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ to create or update the value of a property on a comment created by the\
\ user.\n\nAlso, when the visibility of a comment is restricted to a role\
\ or group the user must be a member of that role or group."
operationId: "setCommentProperty"
parameters:
- description: "The ID of the comment."
in: "path"
name: "commentId"
required: true
schema:
type: "string"
- description: "The key of the property. The maximum length is 255 characters."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema: {}
description: "The value of the property. The value has to be a valid, non-empty\
\ [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length\
\ of the property value is 32768 bytes."
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the comment property is updated."
"201":
content:
application/json:
schema: {}
description: "Returned if the comment property is created."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the comment is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Set comment property"
tags:
- "Issue comment properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:comment.property:jira"
state: "Beta"
/rest/api/2/component:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of all components in a\
\ project, including global (Compass) components when applicable.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "findComponentsForProjects"
parameters:
- description: "The project IDs and/or project keys (case sensitive)."
in: "query"
name: "projectIdsOrKeys"
schema:
items:
type: "string"
type: "array"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "[Order](#ordering) the results by a field:\n\n * `description`\
\ Sorts by the component description.\n * `name` Sorts by component name."
in: "query"
name: "orderBy"
schema:
enum:
- "description"
- "-description"
- "+description"
- "name"
- "-name"
- "+name"
type: "string"
- description: "Filter the results using a literal string. Components with a\
\ matching `name` or `description` are returned (case insensitive)."
in: "query"
name: "query"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: " com.atlassian.jira.issue.fields.rest.json.beans.ComponentJsonBean#PAGED_EXAMPLE}\
\ }"
schema:
$ref: "#/components/schemas/PageBean2ComponentJsonBean"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Find components for projects"
tags:
- "Project components"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:project.component:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a component. Use components to provide containers for\
\ issues within a project. Use components to provide containers for issues\
\ within a project.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project in which the component is created or *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createComponent"
parameters: []
requestBody:
content:
application/json:
example:
assigneeType: "PROJECT_LEAD"
description: "This is a Jira component"
isAssigneeTypeValid: false
leadAccountId: "5b10a2844c20165700ede21g"
name: "Component 1"
project: "HSP"
schema:
$ref: "#/components/schemas/ProjectComponent"
required: true
responses:
"201":
content:
application/json:
example: "{\"ari\":\"ari:cloud:compass:fdb3fdec-4e70-be56-11ee-0242ac120002:component/fdb3fdec-4e70-11ee-be56-0242ac120002/fdb3fdec-11ee-4e70-be56-0242ac120002\"\
,\"assignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a Jira\
\ component\",\"id\":\"10000\",\"isAssigneeTypeValid\":false,\"lead\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"metadata\":{\"icon\":\"https://www.example.com/icon.png\"},\"\
name\":\"Component 1\",\"project\":\"HSP\",\"projectId\":10000,\"\
realAssignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
}"
schema:
$ref: "#/components/schemas/ProjectComponent"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * the user is not found.\n * `name` is\
\ not provided.\n * `name` is over 255 characters in length.\n * `projectId`\
\ is not provided.\n * `assigneeType` is an invalid value."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to manage the\
\ project containing the component or does not have permission to administer\
\ Jira."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to browse the project containing the component."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Create component"
tags:
- "Project components"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:user:jira"
- "write:project.component:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:project.component:jira"
state: "Beta"
/rest/api/2/component/{id}:
delete:
deprecated: false
description: "Deletes a component.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** *Administer projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project containing\
\ the component or *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteComponent"
parameters:
- description: "The ID of the component."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "The ID of the component to replace the deleted component. If\
\ this value is null no replacement is made."
in: "query"
name: "moveIssuesTo"
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to manage the\
\ project containing the component or does not have permission to administer\
\ Jira."
"404":
description: "Returned if:\n\n * the component is not found.\n * the replacement\
\ component is not found.\n * the user does not have permission to browse\
\ the project containing the component."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Delete component"
tags:
- "Project components"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:project.component:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a component.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for project containing the component."
operationId: "getComponent"
parameters:
- description: "The ID of the component."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"ari\":\"ari:cloud:compass:fdb3fdec-4e70-be56-11ee-0242ac120002:component/fdb3fdec-4e70-11ee-be56-0242ac120002/fdb3fdec-11ee-4e70-be56-0242ac120002\"\
,\"assignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a Jira\
\ component\",\"id\":\"10000\",\"isAssigneeTypeValid\":false,\"lead\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"metadata\":{\"icon\":\"https://www.example.com/icon.png\"},\"\
name\":\"Component 1\",\"project\":\"HSP\",\"projectId\":10000,\"\
realAssignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
}"
schema:
$ref: "#/components/schemas/ProjectComponent"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the component is not found or the user does not\
\ have permission to browse the project containing the component."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get component"
tags:
- "Project components"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:project.component:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a component. Any fields included in the request are overwritten.\
\ If `leadAccountId` is an empty string (\"\") the component lead is removed.\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the component or *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateComponent"
parameters:
- description: "The ID of the component."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
assigneeType: "PROJECT_LEAD"
description: "This is a Jira component"
isAssigneeTypeValid: false
leadAccountId: "5b10a2844c20165700ede21g"
name: "Component 1"
schema:
$ref: "#/components/schemas/ProjectComponent"
required: true
responses:
"200":
content:
application/json:
example: "{\"ari\":\"ari:cloud:compass:fdb3fdec-4e70-be56-11ee-0242ac120002:component/fdb3fdec-4e70-11ee-be56-0242ac120002/fdb3fdec-11ee-4e70-be56-0242ac120002\"\
,\"assignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a Jira\
\ component\",\"id\":\"10000\",\"isAssigneeTypeValid\":false,\"lead\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"metadata\":{\"icon\":\"https://www.example.com/icon.png\"},\"\
name\":\"Component 1\",\"project\":\"HSP\",\"projectId\":10000,\"\
realAssignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
}"
schema:
$ref: "#/components/schemas/ProjectComponent"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * the user is not found.\n * `assigneeType`\
\ is an invalid value.\n * `name` is over 255 characters in length."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to manage the\
\ project containing the component or does not have permission to administer\
\ Jira."
"404":
description: "Returned if the component is not found or the user does not\
\ have permission to browse the project containing the component."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Update component"
tags:
- "Project components"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:user:jira"
- "write:project.component:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:project.component:jira"
state: "Beta"
/rest/api/2/component/{id}/relatedIssueCounts:
get:
deprecated: false
description: "Returns the counts of issues assigned to the component.\n\nThis\
\ operation can be accessed anonymously.\n\n**Deprecation notice:** The required\
\ OAuth 2.0 scopes will be updated on June 15, 2024.\n\n * **Classic**: `read:jira-work`\n\
\ * **Granular**: `read:field:jira`, `read:project.component:jira`\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getComponentRelatedIssues"
parameters:
- description: "The ID of the component."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"issueCount\":23,\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
}"
schema:
$ref: "#/components/schemas/ComponentIssuesCount"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the component is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get component issues count"
tags:
- "Project components"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
/rest/api/2/configuration:
get:
deprecated: false
description: "Returns the [global settings](https://confluence.atlassian.com/x/qYXKM)\
\ in Jira. These settings determine whether optional features (for example,\
\ subtasks, time tracking, and others) are enabled. If time tracking is enabled,\
\ this operation also returns the time tracking configuration.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "getConfiguration"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"attachmentsEnabled\":true,\"issueLinkingEnabled\":true,\"\
subTasksEnabled\":false,\"timeTrackingConfiguration\":{\"defaultUnit\"\
:\"day\",\"timeFormat\":\"pretty\",\"workingDaysPerWeek\":5.0,\"workingHoursPerDay\"\
:8.0},\"timeTrackingEnabled\":true,\"unassignedIssuesAllowed\":false,\"\
votingEnabled\":true,\"watchingEnabled\":true}"
schema:
$ref: "#/components/schemas/Configuration"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
summary: "Get global settings"
tags:
- "Jira settings"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:instance-configuration:jira"
- "read:issue.time-tracking:jira"
state: "Beta"
/rest/api/2/configuration/timetracking:
get:
deprecated: false
description: "Returns the time tracking provider that is currently selected.\
\ Note that if time tracking is disabled, then a successful but empty response\
\ is returned.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getSelectedTimeTrackingImplementation"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"key\":\"Jira\",\"name\":\"JIRA provided time tracking\"\
,\"url\":\"/example/config/url\"}"
schema:
$ref: "#/components/schemas/TimeTrackingProvider"
description: "Returned if the request is successful and time tracking is\
\ enabled."
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful but time tracking is\
\ disabled."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get selected time tracking provider"
tags:
- "Time tracking"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue.time-tracking:jira"
state: "Beta"
put:
deprecated: false
description: "Selects a time tracking provider.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "selectTimeTrackingImplementation"
parameters: []
requestBody:
content:
application/json:
example:
key: "Jira"
schema:
$ref: "#/components/schemas/TimeTrackingProvider"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the time tracking provider is not found."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Select time tracking provider"
tags:
- "Time tracking"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue.time-tracking:jira"
state: "Beta"
/rest/api/2/configuration/timetracking/list:
get:
deprecated: false
description: "Returns all time tracking providers. By default, Jira only has\
\ one time tracking provider: *JIRA provided time tracking*. However, you\
\ can install other time tracking providers via apps from the Atlassian Marketplace.\
\ For more information on time tracking providers, see the documentation for\
\ the [ Time Tracking Provider](https://developer.atlassian.com/cloud/jira/platform/modules/time-tracking-provider/)\
\ module.\n\n**[Permissions](#permissions) required:** *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAvailableTimeTrackingImplementations"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"key\":\"Jira\",\"name\":\"JIRA provided time tracking\"\
,\"url\":\"/example/config/url\"}]"
schema:
items:
$ref: "#/components/schemas/TimeTrackingProvider"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get all time tracking providers"
tags:
- "Time tracking"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue.time-tracking:jira"
state: "Beta"
/rest/api/2/configuration/timetracking/options:
get:
deprecated: false
description: "Returns the time tracking settings. This includes settings such\
\ as the time format, default time unit, and others. For more information,\
\ see [Configuring time tracking](https://confluence.atlassian.com/x/qoXKM).\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getSharedTimeTrackingConfiguration"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"defaultUnit\":\"hour\",\"timeFormat\":\"pretty\",\"workingDaysPerWeek\"\
:5.5,\"workingHoursPerDay\":7.6}"
schema:
$ref: "#/components/schemas/TimeTrackingConfiguration"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get time tracking settings"
tags:
- "Time tracking"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue.time-tracking:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the time tracking settings.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setSharedTimeTrackingConfiguration"
parameters: []
requestBody:
content:
application/json:
example:
defaultUnit: "hour"
timeFormat: "pretty"
workingDaysPerWeek: 5.5
workingHoursPerDay: 7.6
schema:
$ref: "#/components/schemas/TimeTrackingConfiguration"
required: true
responses:
"200":
content:
application/json:
example: "{\"defaultUnit\":\"hour\",\"timeFormat\":\"pretty\",\"workingDaysPerWeek\"\
:5.5,\"workingHoursPerDay\":7.6}"
schema:
$ref: "#/components/schemas/TimeTrackingConfiguration"
description: "Returned if the request is successful."
"400":
description: "Returned if the request object is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Set time tracking settings"
tags:
- "Time tracking"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue.time-tracking:jira"
- "read:issue.time-tracking:jira"
state: "Beta"
/rest/api/2/customFieldOption/{id}:
get:
deprecated: false
description: "Returns a custom field option. For example, an option in a select\
\ list.\n\nNote that this operation **only works for issue field select list\
\ options created in Jira or using operations from the [Issue custom field\
\ options](#api-group-Issue-custom-field-options) resource**, it cannot be\
\ used with issue field select list options created by Connect apps.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** The custom field option is returned as follows:\n\n * if the\
\ user has the *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).\n\
\ * if the user has the *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for at least one project the custom field is used in, and the field is visible\
\ in at least one layout the user has permission to view."
operationId: "getCustomFieldOption"
parameters:
- description: "The ID of the custom field option."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"self\":\"https://your-domain.atlassian.net/rest/api/2/customFieldOption/10000\"\
,\"value\":\"To Do\"}"
schema:
$ref: "#/components/schemas/CustomFieldOption"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the custom field option is not found.\n\
\ * the user does not have permission to view the custom field."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get custom field option"
tags:
- "Issue custom field options"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:field.option:jira"
state: "Beta"
/rest/api/2/dashboard:
get:
deprecated: false
description: "Returns a list of dashboards owned by or shared with the user.\
\ The list may be filtered to include only favorite or owned dashboards.\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getAllDashboards"
parameters:
- description: "The filter applied to the list of dashboards. Valid values are:\n\
\n * `favourite` Returns dashboards the user has marked as favorite.\n\
\ * `my` Returns dashboards owned by the user."
in: "query"
name: "filter"
schema:
enum:
- "my"
- "favourite"
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 20
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"dashboards\":[{\"id\":\"10000\",\"isFavourite\":false,\"\
name\":\"System Dashboard\",\"popularity\":1,\"self\":\"https://your-domain.atlassian.net/rest/api/2/dashboard/10000\"\
,\"sharePermissions\":[{\"type\":\"global\"}],\"view\":\"https://your-domain.atlassian.net/secure/Dashboard.jspa?selectPageId=10000\"\
},{\"id\":\"20000\",\"isFavourite\":true,\"name\":\"Build Engineering\"\
,\"owner\":{\"key\":\"Mia\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"name\":\"mia\",\"displayName\":\"Mia Krystof\",\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
}},\"popularity\":1,\"self\":\"https://your-domain.atlassian.net/rest/api/2/dashboard/20000\"\
,\"sharePermissions\":[{\"group\":{\"name\":\"administrators\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupname=administrators\"\
},\"id\":10105,\"type\":\"group\"}],\"view\":\"https://your-domain.atlassian.net/secure/Dashboard.jspa?selectPageId=20000\"\
}],\"maxResults\":10,\"next\":\"https://your-domain.atlassian.net/rest/api/2/dashboard?startAt=10\"\
,\"prev\":\"https://your-domain.atlassian.net/rest/api/2/dashboard?startAt=0\"\
,\"startAt\":10,\"total\":143}"
schema:
$ref: "#/components/schemas/PageOfDashboards"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get all dashboards"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:dashboard:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a dashboard.\n\n**[Permissions](#permissions) required:**\
\ None."
operationId: "createDashboard"
parameters: []
requestBody:
content:
application/json:
example:
description: "A dashboard to help auditors identify sample of issues\
\ to check."
editPermissions: []
name: "Auditors dashboard"
sharePermissions:
- type: "global"
schema:
$ref: "#/components/schemas/DashboardDetails"
description: "Dashboard details."
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":\"10000\",\"isFavourite\":false,\"name\":\"System\
\ Dashboard\",\"popularity\":1,\"self\":\"https://your-domain.atlassian.net/rest/api/2/dashboard/10000\"\
,\"sharePermissions\":[{\"type\":\"global\"}],\"view\":\"https://your-domain.atlassian.net/secure/Dashboard.jspa?selectPageId=10000\"\
}"
schema:
$ref: "#/components/schemas/Dashboard"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is not valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Create dashboard"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:dashboard:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "write:dashboard:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
x-experimental: true
/rest/api/2/dashboard/bulk/edit:
put:
deprecated: false
description: "Bulk edit dashboards. Maximum number of dashboards to be edited\
\ at the same time is 100.\n\n**[Permissions](#permissions) required:** None\n\
\nThe dashboards to be updated must be owned by the user, or the user must\
\ be an administrator."
operationId: "bulkEditDashboards"
parameters: []
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/BulkEditShareableEntityRequest"
description: "The details of dashboards being updated in bulk."
required: true
responses:
"200":
content:
application/json:
example: "{\"action\":\"changePermission\",\"entityErrors\":{\"10002\"\
:{\"errorMessages\":[\"Only owner or editors of the dashboard can\
\ change permissions.\"],\"errors\":{}}}}"
schema:
$ref: "#/components/schemas/BulkEditShareableEntityResponse"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is not valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
summary: "Bulk edit dashboards"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:dashboard:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "write:dashboard:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
x-experimental: true
/rest/api/2/dashboard/gadgets:
get:
deprecated: false
description: "Gets a list of all available gadgets that can be added to all\
\ dashboards.\n\n**[Permissions](#permissions) required:** None."
operationId: "getAllAvailableDashboardGadgets"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"gadgets\":[{\"moduleKey\":\"com.atlassian.plugins.atlassian-connect-plugin:com.atlassian.connect.node.sample-addon__sample-dashboard-item\"\
,\"title\":\"Issue statistics\"},{\"uri\":\"rest/gadgets/1.0/g/com.atlassian.streams.streams-jira-plugin:activitystream-gadget/gadgets/activitystream-gadget.xml\"\
,\"title\":\"Activity Stream\"}]}"
schema:
$ref: "#/components/schemas/AvailableDashboardGadgetsResponse"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "400 response"
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get available gadgets"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:dashboard:jira"
state: "Beta"
x-experimental: true
/rest/api/2/dashboard/search:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of dashboards. This operation\
\ is similar to [Get dashboards](#api-rest-api-2-dashboard-get) except that\
\ the results can be refined to include dashboards that have specific attributes.\
\ For example, dashboards with a particular name. When multiple attributes\
\ are specified only filters matching all attributes are returned.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** The following dashboards that match the query parameters are\
\ returned:\n\n * Dashboards owned by the user. Not returned for anonymous\
\ users.\n * Dashboards shared with a group that the user is a member of.\
\ Not returned for anonymous users.\n * Dashboards shared with a private\
\ project that the user can browse. Not returned for anonymous users.\n *\
\ Dashboards shared with a public project.\n * Dashboards shared with the\
\ public."
operationId: "getDashboardsPaginated"
parameters:
- description: "String used to perform a case-insensitive partial match with\
\ `name`."
in: "query"
name: "dashboardName"
schema:
type: "string"
- description: "User account ID used to return dashboards with the matching\
\ `owner.accountId`. This parameter cannot be used with the `owner` parameter."
in: "query"
name: "accountId"
schema:
maxLength: 128
type: "string"
- description: "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."
in: "query"
name: "owner"
schema:
type: "string"
- description: "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."
in: "query"
name: "groupname"
schema:
type: "string"
- description: "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."
in: "query"
name: "groupId"
schema:
type: "string"
- description: "Project ID used to returns dashboards that are shared with a\
\ project that matches `sharePermissions.project.id`."
in: "query"
name: "projectId"
schema:
format: "int64"
type: "integer"
- description: "[Order](#ordering) the results by a field:\n\n * `description`\
\ Sorts by dashboard description. Note that this sort works independently\
\ of whether the expand to display the description field is in use.\n *\
\ `favourite_count` Sorts by dashboard popularity.\n * `id` Sorts by dashboard\
\ ID.\n * `is_favourite` Sorts by whether the dashboard is marked as a\
\ favorite.\n * `name` Sorts by dashboard name.\n * `owner` Sorts by dashboard\
\ owner name."
in: "query"
name: "orderBy"
schema:
default: "name"
enum:
- "description"
- "-description"
- "+description"
- "favorite_count"
- "-favorite_count"
- "+favorite_count"
- "id"
- "-id"
- "+id"
- "is_favorite"
- "-is_favorite"
- "+is_favorite"
- "name"
- "-name"
- "+name"
- "owner"
- "-owner"
- "+owner"
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The status to filter by. It may be active, archived or deleted."
in: "query"
name: "status"
schema:
default: "active"
enum:
- "active"
- "archived"
- "deleted"
type: "string"
- description: "Use [expand](#expansion) to include additional information about\
\ dashboard in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `description` Returns the description of\
\ the dashboard.\n * `owner` Returns the owner of the dashboard.\n * `viewUrl`\
\ Returns the URL that is used to view the dashboard.\n * `favourite` Returns\
\ `isFavourite`, an indicator of whether the user has set the dashboard\
\ as a favorite.\n * `favouritedCount` Returns `popularity`, a count of\
\ how many users have set this dashboard as a favorite.\n * `sharePermissions`\
\ Returns details of the share permissions defined for the dashboard.\n\
\ * `editPermissions` Returns details of the edit permissions defined for\
\ the dashboard.\n * `isWritable` Returns whether the current user has\
\ permission to edit the dashboard."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"self\":\"https://your-domain.atlassian.net/rest/api/2/dashboard/search?expand=owner&maxResults=50&startAt=0\"\
,\"startAt\":0,\"total\":2,\"values\":[{\"description\":\"Testing\
\ program\",\"id\":\"1\",\"isFavourite\":true,\"name\":\"Testing\"\
,\"owner\":{\"self\":\"https://your-domain.atlassian.net/user?accountId=5b10a2844c20165700ede21g\"\
,\"displayName\":\"Mia\",\"active\":true,\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
}},\"popularity\":1,\"self\":\"https://your-domain.atlassian.net/rest/api/2/dashboard/1\"\
,\"sharePermissions\":[{\"type\":\"global\"}],\"view\":\"https://your-domain.atlassian.net/Dashboard.jspa?selectPageId=1\"\
},{\"description\":\"Quantum initiative\",\"id\":\"2\",\"isFavourite\"\
:false,\"name\":\"Quantum \",\"owner\":{\"self\":\"https://your-domain.atlassian.net/user?accountId=5b10a2844c20165700ede21g\"\
,\"displayName\":\"Mia\",\"active\":true,\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
}},\"popularity\":0,\"self\":\"https://your-domain.atlassian.net/rest/api/2/dashboard/2\"\
,\"sharePermissions\":[{\"type\":\"loggedin\"}],\"view\":\"https://your-domain.atlassian.net/Dashboard.jspa?selectPageId=2\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanDashboard"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if:\n\n * `orderBy` is invalid.\n * `expand` includes\
\ an invalid value.\n * `accountId` and `owner` are provided.\n * `groupname`\
\ and `groupId` are provided."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "401 response"
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Search for dashboards"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:dashboard:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
/rest/api/2/dashboard/{dashboardId}/gadget:
get:
deprecated: false
description: "Returns a list of dashboard gadgets on a dashboard.\n\nThis operation\
\ returns:\n\n * Gadgets from a list of IDs, when `id` is set.\n * Gadgets\
\ with a module key, when `moduleKey` is set.\n * Gadgets from a list of\
\ URIs, when `uri` is set.\n * All gadgets, when no other parameters are\
\ set.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getAllGadgets"
parameters:
- description: "The ID of the dashboard."
in: "path"
name: "dashboardId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The list of gadgets module keys. To include multiple module\
\ keys, separate module keys with ampersand: `moduleKey=key:one&moduleKey=key:two`."
in: "query"
name: "moduleKey"
schema:
items:
default: ""
type: "string"
type: "array"
- description: "The list of gadgets URIs. To include multiple URIs, separate\
\ URIs with ampersand: `uri=/rest/example/uri/1&uri=/rest/example/uri/2`."
in: "query"
name: "uri"
schema:
items:
default: ""
type: "string"
type: "array"
- description: "The list of gadgets IDs. To include multiple IDs, separate IDs\
\ with ampersand: `gadgetId=10000&gadgetId=10001`."
in: "query"
name: "gadgetId"
schema:
items:
format: "int64"
type: "integer"
type: "array"
responses:
"200":
content:
application/json:
example: "{\"gadgets\":[{\"id\":10001,\"moduleKey\":\"com.atlassian.plugins.atlassian-connect-plugin:com.atlassian.connect.node.sample-addon__sample-dashboard-item\"\
,\"color\":\"blue\",\"position\":{\"row\":0,\"column\":0},\"title\"\
:\"Issue statistics\"},{\"id\":10002,\"moduleKey\":\"com.atlassian.plugins.atlassian-connect-plugin:com.atlassian.connect.node.sample-addon__sample-dashboard-graph\"\
,\"color\":\"red\",\"position\":{\"row\":1,\"column\":0},\"title\"\
:\"Activity stream\"},{\"id\":10003,\"moduleKey\":\"com.atlassian.plugins.atlassian-connect-plugin:com.atlassian.connect.node.sample-addon__sample-dashboard-item\"\
,\"color\":\"yellow\",\"position\":{\"row\":0,\"column\":1},\"title\"\
:\"Bubble chart\"}]}"
schema:
$ref: "#/components/schemas/DashboardGadgetResponse"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The dashboard you requested either does\
\ not exist or you don't have the required permissions to perform\
\ this action.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the dashboard is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get gadgets"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:dashboard:jira"
state: "Beta"
x-experimental: true
post:
deprecated: false
description: "Adds a gadget to a dashboard.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "addGadget"
parameters:
- description: "The ID of the dashboard."
in: "path"
name: "dashboardId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/DashboardGadgetSettings"
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":10001,\"moduleKey\":\"com.atlassian.plugins.atlassian-connect-plugin:com.atlassian.connect.node.sample-addon__sample-dashboard-item\"\
,\"color\":\"blue\",\"position\":{\"row\":0,\"column\":1},\"title\"\
:\"Issue statistics\"}"
schema:
$ref: "#/components/schemas/DashboardGadget"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Cannot add another gadget. The maximum\
\ number of gadgets the dashboard can hold has been reached.\"],\"\
errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The dashboard you requested either does\
\ not exist or you don't have the required permissions to perform\
\ this action.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the dashboard is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- "read:jira-work"
summary: "Add gadget to dashboard"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:dashboard:jira"
- "read:dashboard:jira"
state: "Beta"
x-experimental: true
/rest/api/2/dashboard/{dashboardId}/gadget/{gadgetId}:
delete:
deprecated: false
description: "Removes a dashboard gadget from a dashboard.\n\nWhen a gadget\
\ is removed from a dashboard, other gadgets in the same column are moved\
\ up to fill the emptied position.\n\n**[Permissions](#permissions) required:**\
\ None."
operationId: "removeGadget"
parameters:
- description: "The ID of the dashboard."
in: "path"
name: "dashboardId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the gadget."
in: "path"
name: "gadgetId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The dashboard gadget was not found.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the gadget or the dashboard is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
summary: "Remove gadget from dashboard"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:dashboard:jira"
state: "Beta"
x-experimental: true
put:
deprecated: false
description: "Changes the title, position, and color of the gadget on a dashboard.\n\
\n**[Permissions](#permissions) required:** None."
operationId: "updateGadget"
parameters:
- description: "The ID of the dashboard."
in: "path"
name: "dashboardId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the gadget."
in: "path"
name: "gadgetId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
color: "red"
position:
column: 1
row: 1
title: "My new gadget title"
schema:
$ref: "#/components/schemas/DashboardGadgetUpdateRequest"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The gadget cannot be placed in the selected\
\ row. The selected row does not exist on the dashboard.\"],\"errors\"\
:{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The dashboard you requested either does\
\ not exist or you don't have the required permissions to perform\
\ this action.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the gadget or the dashboard is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
summary: "Update gadget on dashboard"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:dashboard:jira"
state: "Beta"
x-experimental: true
/rest/api/2/dashboard/{dashboardId}/items/{itemId}/properties:
get:
deprecated: false
description: "Returns the keys of all properties for a dashboard item.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** The user must be the owner of the dashboard or have the dashboard\
\ shared with them. Note, users with the *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ are considered owners of the System dashboard. The System dashboard is considered\
\ to be shared with all other users, and is accessible to anonymous users\
\ when Jira\\\\u2019s anonymous access is permitted."
operationId: "getDashboardItemPropertyKeys"
parameters:
- description: "The ID of the dashboard."
in: "path"
name: "dashboardId"
required: true
schema:
type: "string"
- description: "The ID of the dashboard item."
in: "path"
name: "itemId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"keys\":[{\"key\":\"issue.support\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/EX-2/properties/issue.support\"\
}]}"
schema:
$ref: "#/components/schemas/PropertyKeys"
description: "Returned if the request is successful."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the dashboard or dashboard item is not found,\
\ or the dashboard is not owned by or shared with the user."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get dashboard item property keys"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:dashboard.property:jira"
state: "Beta"
/rest/api/2/dashboard/{dashboardId}/items/{itemId}/properties/{propertyKey}:
delete:
deprecated: false
description: "Deletes a dashboard item property.\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:** The user must\
\ be the owner of the dashboard. Note, users with the *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg) are considered owners\
\ of the System dashboard."
operationId: "deleteDashboardItemProperty"
parameters:
- description: "The ID of the dashboard."
in: "path"
name: "dashboardId"
required: true
schema:
type: "string"
- description: "The ID of the dashboard item."
in: "path"
name: "itemId"
required: true
schema:
type: "string"
- description: "The key of the dashboard item property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the dashboard item property is deleted."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the dashboard or dashboard item ID is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user is not the owner of the dashboard."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the dashboard item is not found or the dashboard\
\ is not shared with the user."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete dashboard item property"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:dashboard.property:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the key and value of a dashboard item property.\n\nA dashboard\
\ item enables an app to add user-specific information to a user dashboard.\
\ Dashboard items are exposed to users as gadgets that users can add to their\
\ dashboards. For more information on how users do this, see [Adding and customizing\
\ gadgets](https://confluence.atlassian.com/x/7AeiLQ).\n\nWhen an app creates\
\ a dashboard item it registers a callback to receive the dashboard item ID.\
\ The callback fires whenever the item is rendered or, where the item is configurable,\
\ the user edits the item. The app then uses this resource to store the item's\
\ content or configuration details. For more information on working with dashboard\
\ items, see [ Building a dashboard item for a JIRA Connect add-on](https://developer.atlassian.com/server/jira/platform/guide-building-a-dashboard-item-for-a-jira-connect-add-on-33746254/)\
\ and the [Dashboard Item](https://developer.atlassian.com/cloud/jira/platform/modules/dashboard-item/)\
\ documentation.\n\nThere is no resource to set or get dashboard items.\n\n\
This operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** The user must be the owner of the dashboard or have the dashboard\
\ shared with them. Note, users with the *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ are considered owners of the System dashboard. The System dashboard is considered\
\ to be shared with all other users, and is accessible to anonymous users\
\ when Jira\\\\u2019s anonymous access is permitted."
operationId: "getDashboardItemProperty"
parameters:
- description: "The ID of the dashboard."
in: "path"
name: "dashboardId"
required: true
schema:
type: "string"
- description: "The ID of the dashboard item."
in: "path"
name: "itemId"
required: true
schema:
type: "string"
- description: "The key of the dashboard item property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"key\":\"issue.support\",\"value\":{\"system.conversation.id\"\
:\"b1bf38be-5e94-4b40-a3b8-9278735ee1e6\",\"system.support.time\"\
:\"1m\"}}"
schema:
$ref: "#/components/schemas/EntityProperty"
description: "Returned if the request is successful."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "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."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get dashboard item property"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:dashboard.property:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the value of a dashboard item property. Use this resource\
\ in apps to store custom data against a dashboard item.\n\nA dashboard item\
\ enables an app to add user-specific information to a user dashboard. Dashboard\
\ items are exposed to users as gadgets that users can add to their dashboards.\
\ For more information on how users do this, see [Adding and customizing gadgets](https://confluence.atlassian.com/x/7AeiLQ).\n\
\nWhen an app creates a dashboard item it registers a callback to receive\
\ the dashboard item ID. The callback fires whenever the item is rendered\
\ or, where the item is configurable, the user edits the item. The app then\
\ uses this resource to store the item's content or configuration details.\
\ For more information on working with dashboard items, see [ Building a dashboard\
\ item for a JIRA Connect add-on](https://developer.atlassian.com/server/jira/platform/guide-building-a-dashboard-item-for-a-jira-connect-add-on-33746254/)\
\ and the [Dashboard Item](https://developer.atlassian.com/cloud/jira/platform/modules/dashboard-item/)\
\ documentation.\n\nThere is no resource to set or get dashboard items.\n\n\
The value of the request body must be a [valid](http://tools.ietf.org/html/rfc4627),\
\ non-empty JSON blob. The maximum length is 32768 characters.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ The user must be the owner of the dashboard. Note, users with the *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg) are\
\ considered owners of the System dashboard."
operationId: "setDashboardItemProperty"
parameters:
- description: "The ID of the dashboard."
in: "path"
name: "dashboardId"
required: true
schema:
type: "string"
- description: "The ID of the dashboard item."
in: "path"
name: "itemId"
required: true
schema:
type: "string"
- description: "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."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
number: 5
string: "string-value"
schema: {}
description: "The value of the property. The value has to be a valid, non-empty\
\ [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length\
\ of the property value is 32768 bytes."
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the dashboard item property is updated."
"201":
content:
application/json:
schema: {}
description: "Returned if the dashboard item property is created."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The JSON data provided for the property\
\ has too many levels. It must be an object with all keys and values\
\ as strings.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if:\n\n * Request is invalid\n * Or if all of these\
\ conditions are met in the request:\n \n * The dashboard item\
\ has a spec URI and no complete module key\n * The value of propertyKey\
\ is equal to \"config\"\n * The request body contains a JSON object\
\ whose keys and values are not strings."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user is not the owner of the dashboard."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the dashboard item is not found or the dashboard\
\ is not shared with the user."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Set dashboard item property"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:dashboard.property:jira"
state: "Beta"
/rest/api/2/dashboard/{id}:
delete:
deprecated: false
description: "Deletes a dashboard.\n\n**[Permissions](#permissions) required:**\
\ None\n\nThe dashboard to be deleted must be owned by the user."
operationId: "deleteDashboard"
parameters:
- description: "The ID of the dashboard."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the dashboard is deleted."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "400 response"
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete dashboard"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:dashboard:jira"
state: "Beta"
x-experimental: true
get:
deprecated: false
description: "Returns a dashboard.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** None.\n\nHowever, to get a dashboard,\
\ the dashboard must be shared with the user or the user must own it. Note,\
\ users with the *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ are considered owners of the System dashboard. The System dashboard is considered\
\ to be shared with all other users."
operationId: "getDashboard"
parameters:
- description: "The ID of the dashboard."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"id\":\"10000\",\"isFavourite\":false,\"name\":\"System\
\ Dashboard\",\"popularity\":1,\"self\":\"https://your-domain.atlassian.net/rest/api/2/dashboard/10000\"\
,\"sharePermissions\":[{\"type\":\"global\"}],\"view\":\"https://your-domain.atlassian.net/secure/Dashboard.jspa?selectPageId=10000\"\
}"
schema:
$ref: "#/components/schemas/Dashboard"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "400 response"
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the dashboard is not found or the dashboard is\
\ not owned by or shared with the user."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get dashboard"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:dashboard:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a dashboard, replacing all the dashboard details with\
\ those provided.\n\n**[Permissions](#permissions) required:** None\n\nThe\
\ dashboard to be updated must be owned by the user."
operationId: "updateDashboard"
parameters:
- description: "The ID of the dashboard to update."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "A dashboard to help auditors identify sample of issues\
\ to check."
editPermissions: []
name: "Auditors dashboard"
sharePermissions:
- type: "global"
schema:
$ref: "#/components/schemas/DashboardDetails"
description: "Replacement dashboard details."
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":\"10000\",\"isFavourite\":false,\"name\":\"System\
\ Dashboard\",\"popularity\":1,\"self\":\"https://your-domain.atlassian.net/rest/api/2/dashboard/10000\"\
,\"sharePermissions\":[{\"type\":\"global\"}],\"view\":\"https://your-domain.atlassian.net/secure/Dashboard.jspa?selectPageId=10000\"\
}"
schema:
$ref: "#/components/schemas/Dashboard"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is not valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the dashboard is not found or the dashboard is\
\ not owned by the user."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Update dashboard"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:dashboard:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "write:dashboard:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
x-experimental: true
/rest/api/2/dashboard/{id}/copy:
post:
deprecated: false
description: "Copies a dashboard. Any values provided in the `dashboard` parameter\
\ replace those in the copied dashboard.\n\n**[Permissions](#permissions)\
\ required:** None\n\nThe dashboard to be copied must be owned by or shared\
\ with the user."
operationId: "copyDashboard"
parameters:
- in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "A dashboard to help auditors identify sample of issues\
\ to check."
editPermissions: []
name: "Auditors dashboard"
sharePermissions:
- type: "global"
schema:
$ref: "#/components/schemas/DashboardDetails"
description: "Dashboard details."
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":\"10000\",\"isFavourite\":false,\"name\":\"System\
\ Dashboard\",\"popularity\":1,\"self\":\"https://your-domain.atlassian.net/rest/api/2/dashboard/10000\"\
,\"sharePermissions\":[{\"type\":\"global\"}],\"view\":\"https://your-domain.atlassian.net/secure/Dashboard.jspa?selectPageId=10000\"\
}"
schema:
$ref: "#/components/schemas/Dashboard"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is not valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the dashboard is not found or the dashboard is\
\ not owned by or shared with the user."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Copy dashboard"
tags:
- "Dashboards"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:dashboard:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "write:dashboard:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
x-experimental: true
/rest/api/2/data-policy:
get:
deprecated: false
description: "Returns data policy for the workspace."
operationId: "getPolicy"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"anyContentBlocked\":false}"
schema:
$ref: "#/components/schemas/WorkspaceDataPolicy"
description: "Returned if the request is successful"
"401":
content:
application/json:
example: "{\"errorMessages\":[\"Only apps can access this resource.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the client is not authorized to make the request."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get data policy for the workspace (EAP)"
tags:
- "App data policies (EAP)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/data-policy/project:
get:
deprecated: false
description: "Returns data policies for the projects specified in the request."
operationId: "getPolicies"
parameters:
- description: "A list of project identifiers. This parameter accepts a comma-separated\
\ list."
in: "query"
name: "ids"
schema:
description: "A list of up to 50 project identifiers. This parameter accepts\
\ a comma-separated list."
type: "string"
responses:
"200":
content:
application/json:
example: "{\"projectDataPolicies\":[{\"dataPolicy\":{\"anyContentBlocked\"\
:false},\"id\":1000},{\"dataPolicy\":{\"anyContentBlocked\":true},\"\
id\":1001}]}"
schema:
$ref: "#/components/schemas/ProjectDataPolicies"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Invalid request: some projects are not\
\ available or do not exist.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is not valid or includes invalid or\
\ not-permitted project identifiers."
"401":
content:
application/json:
example: "{\"errorMessages\":[\"Only apps can access this resource.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the client is not authorized to make the request."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get data policy for projects (EAP)"
tags:
- "App data policies (EAP)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/events:
get:
deprecated: false
description: "Returns all issue events.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getEvents"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"id\":1,\"name\":\"Issue Created\"},{\"id\":2,\"name\"\
:\"Issue Updated\"}]"
schema:
items:
$ref: "#/components/schemas/IssueEvent"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to complete\
\ this request."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get events"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-event:jira"
state: "Beta"
x-experimental: true
/rest/api/2/expression/analyse:
post:
deprecated: false
description: "Analyses and validates Jira expressions.\n\nAs an experimental\
\ feature, this operation can also attempt to type-check the expressions.\n\
\nLearn more about Jira expressions in the [documentation](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/).\n\
\n**[Permissions](#permissions) required**: None."
operationId: "analyseExpression"
parameters:
- description: "The check to perform:\n\n * `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.\n * `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.\n\
\ * `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."
in: "query"
name: "check"
schema:
default: "syntax"
enum:
- "syntax"
- "type"
- "complexity"
type: "string"
requestBody:
content:
application/json:
example:
contextVariables:
listOfStrings: "List"
record: "{ a: Number, b: String }"
value: "User"
expressions:
- "issues.map(issue => issue.properties['property_key'])"
schema:
$ref: "#/components/schemas/JiraExpressionForAnalysis"
description: "The Jira expressions to analyse."
required: true
responses:
"200":
content:
application/json:
example: "{\"results\":[{\"expression\":\"analysed expression\",\"errors\"\
:[{\"line\":1,\"column\":4,\"message\":\"!, -, typeof, (, IDENTIFIER,\
\ null, true, false, NUMBER, STRING, TEMPLATE_LITERAL, new, [ or {\
\ expected, > encountered.\",\"type\":\"syntax\"},{\"message\":\"\
Jira expression is too long (1040), limit: 1000 characters\",\"type\"\
:\"other\"},{\"message\":\"Jira expression has too many nodes (150),\
\ limit: 100 leaves\",\"type\":\"other\"}],\"valid\":false},{\"expression\"\
:\"issues.map(i => {idAndKey: [i.id, i.key], summary: i.summary, comments:\
\ i.comments})\",\"valid\":true,\"type\":\"List<{idAndKey: [Number,\
\ String], summary: String, comments: List}>\",\"complexity\"\
:{\"expensiveOperations\":\"N\",\"variables\":{\"N\":\"issues\"}}},{\"\
expression\":\"issues.map(i => i.id > '0')\",\"errors\":[{\"expression\"\
:\"i.id > 0\",\"message\":\"Can't compare Number to String.\",\"type\"\
:\"type\"}],\"valid\":false,\"type\":\"TypeError\"}]}"
schema:
$ref: "#/components/schemas/JiraExpressionsAnalysis"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "400 response"
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "404 response"
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- "read:jira-user"
- {}
summary: "Analyse Jira expression"
tags:
- "Jira expressions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:jira-expressions:jira"
state: "Beta"
/rest/api/2/expression/eval:
post:
deprecated: false
description: "Evaluates a Jira expression and returns its value.\n\nThis resource\
\ can be used to test Jira expressions that you plan to use elsewhere, or\
\ to fetch data in a flexible way. Consult the [Jira expressions documentation](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/)\
\ for more details.\n\n#### Context variables ####\n\nThe following context\
\ variables are available to Jira expressions evaluated by this resource.\
\ Their presence depends on various factors; usually you need to manually\
\ request them in the context object sent in the payload, but some of them\
\ are added automatically under certain conditions.\n\n * `user` ([User](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#user)):\
\ The current user. Always available and equal to `null` if the request is\
\ anonymous.\n * `app` ([App](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#app)):\
\ The [Connect app](https://developer.atlassian.com/cloud/jira/platform/index/#connect-apps)\
\ that made the request. Available only for authenticated requests made by\
\ Connect Apps (read more here: [Authentication for Connect apps](https://developer.atlassian.com/cloud/jira/platform/security-for-connect-apps/)).\n\
\ * `issue` ([Issue](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#issue)):\
\ The current issue. Available only when the issue is provided in the request\
\ context object.\n * `issues` ([List](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#list)\
\ of [Issues](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#issue)):\
\ A collection of issues matching a JQL query. Available only when JQL is\
\ provided in the request context object.\n * `project` ([Project](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#project)):\
\ The current project. Available only when the project is provided in the\
\ request context object.\n * `sprint` ([Sprint](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#sprint)):\
\ The current sprint. Available only when the sprint is provided in the request\
\ context object.\n * `board` ([Board](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#board)):\
\ The current board. Available only when the board is provided in the request\
\ context object.\n * `serviceDesk` ([ServiceDesk](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#servicedesk)):\
\ The current service desk. Available only when the service desk is provided\
\ in the request context object.\n * `customerRequest` ([CustomerRequest](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#customerrequest)):\
\ The current customer request. Available only when the customer request is\
\ provided in the request context object.\n\nAlso, custom context variables\
\ can be passed in the request with their types. Those variables can be accessed\
\ by key in the Jira expression. These variable types are available for use\
\ in a custom context:\n\n * `user`: A [user](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#user)\
\ specified as an Atlassian account ID.\n * `issue`: An [issue](https://developer.atlassian.com/cloud/jira/platform/jira-expressions-type-reference#issue)\
\ specified by ID or key. All the fields of the issue object are available\
\ in the Jira expression.\n * `json`: A JSON object containing custom content.\n\
\ * `list`: A JSON list of `user`, `issue`, or `json` variable types.\n\n\
This operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required**: None. However, an expression may return different results for\
\ different users depending on their permissions. For example, different users\
\ may see different comments on the same issue. \nPermission to access Jira\
\ Software is required to access Jira Software context variables (`board`\
\ and `sprint`) or fields (for example, `issue.sprint`)."
operationId: "evaluateJiraExpression"
parameters:
- description: "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."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
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}"
schema:
$ref: "#/components/schemas/JiraExpressionEvalRequestBean"
description: "The Jira expression and the evaluation context."
required: true
responses:
"200":
content:
application/json:
example: "{\"value\":\"The expression's result. This value can be any\
\ JSON, not necessarily a String\",\"meta\":{\"complexity\":{\"steps\"\
:{\"value\":1,\"limit\":10000},\"expensiveOperations\":{\"value\"\
:3,\"limit\":10},\"beans\":{\"value\":0,\"limit\":1000},\"primitiveValues\"\
:{\"value\":1,\"limit\":10000}},\"issues\":{\"jql\":{\"startAt\":0,\"\
maxResults\":1000,\"count\":140,\"totalCount\":140,\"validationWarnings\"\
:[\"There is a problem with the JQL query.\"]}}}}"
schema:
$ref: "#/components/schemas/JiraExpressionResult"
description: "Returned if the evaluation results in a value. The result\
\ is a JSON primitive value, list, or object."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Evaluation failed: \\\"issue['a' + 'b']\\\
\" - Unrecognized property of `issue`: \\\"ab\\\" ('a' + 'b'). Available\
\ properties of type 'Issue' are: 'assignee', 'comments', 'description',\
\ 'id', 'issueType', 'key', 'priority', 'project', 'properties', 'reporter',\
\ 'status', 'summary'\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if:\n\n * the request is invalid, that is:\n \
\ \n * invalid data is provided, such as a request including issue\
\ ID and key.\n * the expression is invalid and can not be parsed.\n\
\ * 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":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Issue does not exist or you do not have\
\ permission to see it.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if any object provided in the request context is\
\ not found or the user does not have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- "read:jira-user"
- {}
summary: "Evaluate Jira expression"
tags:
- "Jira expressions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:jira-expressions:jira"
state: "Beta"
/rest/api/2/field:
get:
deprecated: false
description: "Returns system and custom issue fields according to the following\
\ rules:\n\n * Fields that cannot be added to the issue navigator are always\
\ returned.\n * Fields that cannot be placed on an issue screen are always\
\ returned.\n * Fields that depend on global Jira settings are only returned\
\ if the setting is enabled. That is, timetracking fields, subtasks, votes,\
\ and watches.\n * For all other fields, this operation only returns the\
\ fields that the user has permission to view (that is, the field is used\
\ in at least one project that the user has *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for.)\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getFields"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"clauseNames\":[\"description\"],\"custom\":false,\"id\"\
:\"description\",\"name\":\"Description\",\"navigable\":true,\"orderable\"\
:true,\"schema\":{\"system\":\"description\",\"type\":\"string\"},\"\
searchable\":true},{\"clauseNames\":[\"summary\"],\"custom\":false,\"\
id\":\"summary\",\"key\":\"summary\",\"name\":\"Summary\",\"navigable\"\
:true,\"orderable\":true,\"schema\":{\"system\":\"summary\",\"type\"\
:\"string\"},\"searchable\":true}]"
schema:
items:
$ref: "#/components/schemas/FieldDetails"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get fields"
tags:
- "Issue fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:field-configuration:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a custom field.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createCustomField"
parameters: []
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/CustomFieldDefinitionJsonBean"
description: "Definition of the custom field to be created"
required: true
responses:
"201":
content:
application/json:
example: "{\"clauseNames\":[\"cf[10101]\",\"New custom field\"],\"custom\"\
:true,\"id\":\"customfield_10101\",\"key\":\"customfield_10101\",\"\
name\":\"New custom field\",\"navigable\":true,\"orderable\":true,\"\
schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:project\"\
,\"customId\":10101,\"type\":\"project\"},\"searchable\":true,\"untranslatedName\"\
:\"New custom field\"}"
schema:
$ref: "#/components/schemas/FieldDetails"
description: "Returned if the custom field is created."
"400":
description: "Returned if:\n\n * the user does not have permission to create\
\ custom fields.\n * any of the request object properties have invalid\
\ or missing values."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Create custom field"
tags:
- "Issue fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field:jira"
- "read:avatar:jira"
- "read:field:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:field-configuration:jira"
state: "Beta"
/rest/api/2/field/search:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of fields for Classic\
\ Jira projects. The list can include:\n\n * all fields\n * specific fields,\
\ by defining `id`\n * fields that contain a string in the field name or\
\ description, by defining `query`\n * specific fields that contain a string\
\ in the field name or description, by defining `id` and `query`\n\nOnly custom\
\ fields can be queried, `type` must be set to `custom`.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getFieldsPaginated"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The type of fields to search."
in: "query"
name: "type"
schema:
items:
default: ""
enum:
- "custom"
- "system"
type: "string"
type: "array"
- description: "The IDs of the custom fields to return or, where `query` is\
\ specified, filter."
in: "query"
name: "id"
schema:
items:
default: ""
type: "string"
type: "array"
uniqueItems: true
- description: "String used to perform a case-insensitive partial match with\
\ field names or descriptions."
in: "query"
name: "query"
schema:
type: "string"
- description: "[Order](#ordering) the results by a field:\n\n * `contextsCount`\
\ sorts by the number of contexts related to a field\n * `lastUsed` sorts\
\ by the date when the value of the field last changed\n * `name` sorts\
\ by the field name\n * `screensCount` sorts by the number of screens related\
\ to a field"
in: "query"
name: "orderBy"
schema:
enum:
- "contextsCount"
- "-contextsCount"
- "+contextsCount"
- "lastUsed"
- "-lastUsed"
- "+lastUsed"
- "name"
- "-name"
- "+name"
- "screensCount"
- "-screensCount"
- "+screensCount"
- "projectsCount"
- "-projectsCount"
- "+projectsCount"
type: "string"
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `key` returns the key for each field\n * `lastUsed` returns\
\ the date when the value of the field last changed\n * `screensCount`\
\ returns the number of screens related to a field\n * `contextsCount`\
\ returns the number of contexts related to a field\n * `isLocked` returns\
\ information about whether the field is [locked](https://confluence.atlassian.com/x/ZSN7Og)\n\
\ * `searcherKey` returns the searcher key for each custom field"
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":50,\"startAt\":0,\"total\"\
:2,\"values\":[{\"id\":\"customfield_10000\",\"name\":\"Approvers\"\
,\"schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker\"\
,\"customId\":10000,\"items\":\"user\",\"type\":\"array\"},\"description\"\
:\"Contains users needed for approval. This custom field was created\
\ by Jira Service Desk.\",\"key\":\"customfield_10000\",\"isLocked\"\
:true,\"searcherKey\":\"com.atlassian.jira.plugin.system.customfieldtypes:userpickergroupsearcher\"\
,\"screensCount\":2,\"contextsCount\":2,\"lastUsed\":{\"type\":\"\
TRACKED\",\"value\":\"2021-01-28T07:37:40.000+0000\"}},{\"id\":\"\
customfield_10001\",\"name\":\"Change reason\",\"schema\":{\"custom\"\
:\"com.atlassian.jira.plugin.system.customfieldtypes:select\",\"customId\"\
:10001,\"type\":\"option\"},\"description\":\"Choose the reason for\
\ the change request\",\"key\":\"customfield_10001\",\"isLocked\"\
:false,\"searcherKey\":\"com.atlassian.jira.plugin.system.customfieldtypes:multiselectsearcher\"\
,\"screensCount\":2,\"contextsCount\":2,\"projectsCount\":2,\"lastUsed\"\
:{\"type\":\"NOT_TRACKED\"}}]}"
schema:
$ref: "#/components/schemas/PageBeanField"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Only custom fields can be queried.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ fields.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get fields paginated"
tags:
- "Issue fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:field-configuration:jira"
state: "Beta"
/rest/api/2/field/search/trashed:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of fields in the trash.\
\ The list may be restricted to fields whose field name or description partially\
\ match a string.\n\nOnly custom fields can be queried, `type` must be set\
\ to `custom`.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getTrashedFieldsPaginated"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- in: "query"
name: "id"
schema:
items:
default: ""
type: "string"
type: "array"
uniqueItems: true
- description: "String used to perform a case-insensitive partial match with\
\ field names or descriptions."
in: "query"
name: "query"
schema:
type: "string"
- in: "query"
name: "expand"
schema:
enum:
- "name"
- "-name"
- "+name"
- "trashDate"
- "-trashDate"
- "+trashDate"
- "plannedDeletionDate"
- "-plannedDeletionDate"
- "+plannedDeletionDate"
- "projectsCount"
- "-projectsCount"
- "+projectsCount"
type: "string"
- description: "[Order](#ordering) the results by a field:\n\n * `name` sorts\
\ by the field name\n * `trashDate` sorts by the date the field was moved\
\ to the trash\n * `plannedDeletionDate` sorts by the planned deletion\
\ date"
in: "query"
name: "orderBy"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":50,\"startAt\":0,\"total\"\
:1,\"values\":[{\"id\":\"customfield_10000\",\"name\":\"Approvers\"\
,\"schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker\"\
,\"customId\":10003,\"type\":\"array\"},\"description\":\"Contains\
\ users needed for approval. This custom field was created by Jira\
\ Service Desk.\",\"key\":\"customfield_10003\",\"trashedDate\":\"\
2022-10-06T07:32:47.000+0000\",\"trashedBy\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":true,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"plannedDeletionDate\":\"2022-10-24T07:32:47.000+0000\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanField"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Only custom fields can be queried.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ fields.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get fields in trash paginated"
tags:
- "Issue fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:field-configuration:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/field/{fieldId}:
put:
deprecated: false
description: "Updates a custom field.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateCustomField"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "Select the manager and the corresponding employee."
name: "Managers and employees list"
searcherKey: "com.atlassian.jira.plugin.system.customfieldtypes:cascadingselectsearcher"
schema:
$ref: "#/components/schemas/UpdateCustomFieldDetails"
description: "The custom field update details."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"searcherKey is invalid for the field\
\ type.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can edit custom\
\ fields.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field was not found.\"],\"\
errors\":{}}"
description: "Returned if the custom field is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update custom field"
tags:
- "Issue fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of [ contexts](https://confluence.atlassian.com/adminjiracloud/what-are-custom-field-contexts-991923859.html)\
\ for a custom field. Contexts can be returned as follows:\n\n * With no\
\ other parameters set, all contexts.\n * By defining `id` only, all contexts\
\ from the list of IDs.\n * By defining `isAnyIssueType`, limit the list\
\ of contexts returned to either those that apply to all issue types (true)\
\ or those that apply to only a subset of issue types (false)\n * By defining\
\ `isGlobalContext`, limit the list of contexts return to either those that\
\ apply to all projects (global contexts) (true) or those that apply to only\
\ a subset of projects (false).\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getContextsForField"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "Whether to return contexts that apply to all issue types."
in: "query"
name: "isAnyIssueType"
schema:
type: "boolean"
- description: "Whether to return contexts that apply to all projects."
in: "query"
name: "isGlobalContext"
schema:
type: "boolean"
- description: "The list of context IDs. To include multiple contexts, separate\
\ IDs with ampersand: `contextId=10000&contextId=10001`."
in: "query"
name: "contextId"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:2,\"values\":[{\"id\":\"10025\",\"name\":\"Bug fields context\",\"\
description\":\"A context used to define the custom field options\
\ for bugs.\",\"isGlobalContext\":true,\"isAnyIssueType\":false},{\"\
id\":\"10026\",\"name\":\"Task fields context\",\"description\":\"\
A context used to define the custom field options for tasks.\",\"\
isGlobalContext\":false,\"isAnyIssueType\":false}]}"
schema:
$ref: "#/components/schemas/PageBeanCustomFieldContext"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field was not found.\"],\"\
errors\":{}}"
description: "Returned if the custom field was not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get custom field contexts"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:custom-field-contextual-configuration:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a custom field context.\n\nIf `projectIds` is empty, a\
\ global context is created. A global context is one that applies to all project.\
\ If `issueTypeIds` is empty, the context applies to all issue types.\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createCustomFieldContext"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "A context used to define the custom field options for\
\ bugs."
issueTypeIds:
- "10010"
name: "Bug fields context"
projectIds: []
schema:
$ref: "#/components/schemas/CreateCustomFieldContext"
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"10025\",\"name\":\"Bug fields context\",\"description\"\
:\"A context used to define the custom field options for bugs.\",\"\
projectIds\":[],\"issueTypeIds\":[\"10010\"]}"
schema:
$ref: "#/components/schemas/CreateCustomFieldContext"
description: "Returned if the custom field context is created."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the field, project, or issue type is not found."
"409":
content:
application/json:
example: "{\"errorMessages\":[\"Sub-tasks are disabled in Jira. At least\
\ one of the issue types is a sub-task.\"],\"errors\":{}}"
description: "Returned if the issue type is a sub-task, but sub-tasks are\
\ disabled in Jira settings."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create custom field context"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "write:field:jira"
- "read:custom-field-contextual-configuration:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/defaultValue:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of defaults for a custom\
\ field. The results can be filtered by `contextId`, otherwise all values\
\ are returned. If no defaults are set for a context, nothing is returned.\
\ \nThe returned object depends on type of the custom field:\n\n * `CustomFieldContextDefaultValueDate`\
\ (type `datepicker`) for date fields.\n * `CustomFieldContextDefaultValueDateTime`\
\ (type `datetimepicker`) for date-time fields.\n * `CustomFieldContextDefaultValueSingleOption`\
\ (type `option.single`) for single choice select lists and radio buttons.\n\
\ * `CustomFieldContextDefaultValueMultipleOption` (type `option.multiple`)\
\ for multiple choice select lists and checkboxes.\n * `CustomFieldContextDefaultValueCascadingOption`\
\ (type `option.cascading`) for cascading select lists.\n * `CustomFieldContextSingleUserPickerDefaults`\
\ (type `single.user.select`) for single users.\n * `CustomFieldContextDefaultValueMultiUserPicker`\
\ (type `multi.user.select`) for user lists.\n * `CustomFieldContextDefaultValueSingleGroupPicker`\
\ (type `grouppicker.single`) for single choice group pickers.\n * `CustomFieldContextDefaultValueMultipleGroupPicker`\
\ (type `grouppicker.multiple`) for multiple choice group pickers.\n * `CustomFieldContextDefaultValueURL`\
\ (type `url`) for URLs.\n * `CustomFieldContextDefaultValueProject` (type\
\ `project`) for project pickers.\n * `CustomFieldContextDefaultValueFloat`\
\ (type `float`) for floats (floating-point numbers).\n * `CustomFieldContextDefaultValueLabels`\
\ (type `labels`) for labels.\n * `CustomFieldContextDefaultValueTextField`\
\ (type `textfield`) for text fields.\n * `CustomFieldContextDefaultValueTextArea`\
\ (type `textarea`) for text area fields.\n * `CustomFieldContextDefaultValueReadOnly`\
\ (type `readonly`) for read only (text) fields.\n * `CustomFieldContextDefaultValueMultipleVersion`\
\ (type `version.multiple`) for single choice version pickers.\n * `CustomFieldContextDefaultValueSingleVersion`\
\ (type `version.single`) for multiple choice version pickers.\n\nForge custom\
\ fields [types](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field-type/#data-types)\
\ are also supported, returning:\n\n * `CustomFieldContextDefaultValueForgeStringFieldBean`\
\ (type `forge.string`) for Forge string fields.\n * `CustomFieldContextDefaultValueForgeMultiStringFieldBean`\
\ (type `forge.string.list`) for Forge string collection fields.\n * `CustomFieldContextDefaultValueForgeObjectFieldBean`\
\ (type `forge.object`) for Forge object fields.\n * `CustomFieldContextDefaultValueForgeDateTimeFieldBean`\
\ (type `forge.datetime`) for Forge date-time fields.\n * `CustomFieldContextDefaultValueForgeGroupFieldBean`\
\ (type `forge.group`) for Forge group fields.\n * `CustomFieldContextDefaultValueForgeMultiGroupFieldBean`\
\ (type `forge.group.list`) for Forge group collection fields.\n * `CustomFieldContextDefaultValueForgeNumberFieldBean`\
\ (type `forge.number`) for Forge number fields.\n * `CustomFieldContextDefaultValueForgeUserFieldBean`\
\ (type `forge.user`) for Forge user fields.\n * `CustomFieldContextDefaultValueForgeMultiUserFieldBean`\
\ (type `forge.user.list`) for Forge user collection fields.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getDefaultValues"
parameters:
- description: "The ID of the custom field, for example `customfield\\_10000`."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The IDs of the contexts."
in: "query"
name: "contextId"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":50,\"startAt\":0,\"total\"\
:3,\"values\":[{\"contextId\":\"10100\",\"optionId\":\"10001\"},{\"\
contextId\":\"10101\",\"optionId\":\"10003\"},{\"contextId\":\"10103\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanCustomFieldContextDefaultValue"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field was not found.\"],\"\
errors\":{}}"
description: "Returned if the custom field is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get custom field contexts default values"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field.default-value:jira"
state: "Beta"
put:
deprecated: false
description: "Sets default for contexts of a custom field. Default are defined\
\ using these objects:\n\n * `CustomFieldContextDefaultValueDate` (type `datepicker`)\
\ for date fields.\n * `CustomFieldContextDefaultValueDateTime` (type `datetimepicker`)\
\ for date-time fields.\n * `CustomFieldContextDefaultValueSingleOption`\
\ (type `option.single`) for single choice select lists and radio buttons.\n\
\ * `CustomFieldContextDefaultValueMultipleOption` (type `option.multiple`)\
\ for multiple choice select lists and checkboxes.\n * `CustomFieldContextDefaultValueCascadingOption`\
\ (type `option.cascading`) for cascading select lists.\n * `CustomFieldContextSingleUserPickerDefaults`\
\ (type `single.user.select`) for single users.\n * `CustomFieldContextDefaultValueMultiUserPicker`\
\ (type `multi.user.select`) for user lists.\n * `CustomFieldContextDefaultValueSingleGroupPicker`\
\ (type `grouppicker.single`) for single choice group pickers.\n * `CustomFieldContextDefaultValueMultipleGroupPicker`\
\ (type `grouppicker.multiple`) for multiple choice group pickers.\n * `CustomFieldContextDefaultValueURL`\
\ (type `url`) for URLs.\n * `CustomFieldContextDefaultValueProject` (type\
\ `project`) for project pickers.\n * `CustomFieldContextDefaultValueFloat`\
\ (type `float`) for floats (floating-point numbers).\n * `CustomFieldContextDefaultValueLabels`\
\ (type `labels`) for labels.\n * `CustomFieldContextDefaultValueTextField`\
\ (type `textfield`) for text fields.\n * `CustomFieldContextDefaultValueTextArea`\
\ (type `textarea`) for text area fields.\n * `CustomFieldContextDefaultValueReadOnly`\
\ (type `readonly`) for read only (text) fields.\n * `CustomFieldContextDefaultValueMultipleVersion`\
\ (type `version.multiple`) for single choice version pickers.\n * `CustomFieldContextDefaultValueSingleVersion`\
\ (type `version.single`) for multiple choice version pickers.\n\nForge custom\
\ fields [types](https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-custom-field-type/#data-types)\
\ are also supported, returning:\n\n * `CustomFieldContextDefaultValueForgeStringFieldBean`\
\ (type `forge.string`) for Forge string fields.\n * `CustomFieldContextDefaultValueForgeMultiStringFieldBean`\
\ (type `forge.string.list`) for Forge string collection fields.\n * `CustomFieldContextDefaultValueForgeObjectFieldBean`\
\ (type `forge.object`) for Forge object fields.\n * `CustomFieldContextDefaultValueForgeDateTimeFieldBean`\
\ (type `forge.datetime`) for Forge date-time fields.\n * `CustomFieldContextDefaultValueForgeGroupFieldBean`\
\ (type `forge.group`) for Forge group fields.\n * `CustomFieldContextDefaultValueForgeMultiGroupFieldBean`\
\ (type `forge.group.list`) for Forge group collection fields.\n * `CustomFieldContextDefaultValueForgeNumberFieldBean`\
\ (type `forge.number`) for Forge number fields.\n * `CustomFieldContextDefaultValueForgeUserFieldBean`\
\ (type `forge.user`) for Forge user fields.\n * `CustomFieldContextDefaultValueForgeMultiUserFieldBean`\
\ (type `forge.user.list`) for Forge user collection fields.\n\nOnly one type\
\ of default object can be included in a request. To remove a default for\
\ a context, set the default parameter to `null`.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setDefaultValues"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
defaultValues:
- contextId: "10100"
optionId: "10001"
type: "option.single"
- contextId: "10101"
optionId: "10003"
type: "option.single"
- contextId: "10103"
optionId: "10005"
type: "option.single"
schema:
$ref: "#/components/schemas/CustomFieldContextDefaultValueUpdate"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if operation is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"All default values in the request must\
\ have the same type.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The context was not found.\"],\"errors\"\
:{}}"
description: "Returned if the custom field, a context, an option, or a cascading\
\ option is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Set custom field contexts default values"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field.default-value:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/issuetypemapping:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of context to issue type\
\ mappings for a custom field. Mappings are returned for all contexts or a\
\ list of contexts. Mappings are ordered first by context ID and then by issue\
\ type ID.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueTypeMappingsForContexts"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context. To include multiple contexts, provide\
\ an ampersand-separated list. For example, `contextId=10001&contextId=10002`."
in: "query"
name: "contextId"
schema:
items:
format: "int64"
type: "integer"
type: "array"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:3,\"values\":[{\"contextId\":\"10001\",\"issueTypeId\":\"10010\"\
},{\"contextId\":\"10001\",\"issueTypeId\":\"10011\"},{\"contextId\"\
:\"10002\",\"isAnyIssueType\":true}]}"
schema:
$ref: "#/components/schemas/PageBeanIssueTypeToContextMapping"
description: "Returned if operation is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue types for custom field context"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/mapping:
post:
deprecated: false
description: "Returns a [paginated](#pagination) list of project and issue type\
\ mappings and, for each mapping, the ID of a [custom field context](https://confluence.atlassian.com/x/k44fOw)\
\ that applies to the project and issue type.\n\nIf there is no custom field\
\ context assigned to the project then, if present, the custom field context\
\ that applies to all projects is returned if it also applies to the issue\
\ type or all issue types. If a custom field context is not found, the returned\
\ custom field context ID is `null`.\n\nDuplicate project and issue type mappings\
\ cannot be provided in the request.\n\nThe order of the returned values is\
\ the same as provided in the request.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getCustomFieldContextsForProjectsAndIssueTypes"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
requestBody:
content:
application/json:
example:
mappings:
- issueTypeId: "10000"
projectId: "10000"
- issueTypeId: "10001"
projectId: "10000"
- issueTypeId: "10002"
projectId: "10001"
schema:
$ref: "#/components/schemas/ProjectIssueTypeMappings"
description: "The list of project and issue type mappings."
required: true
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":50,\"startAt\":0,\"total\"\
:3,\"values\":[{\"projectId\":\"10000\",\"issueTypeId\":\"10000\"\
,\"contextId\":\"10000\"},{\"projectId\":\"10000\",\"issueTypeId\"\
:\"10001\",\"contextId\":null},{\"projectId\":\"10001\",\"issueTypeId\"\
:\"10002\",\"contextId\":\"10003\"}]}"
schema:
$ref: "#/components/schemas/PageBeanContextForProjectAndIssueType"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Duplicate project and issue type mappings\
\ cannot be provided.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"These projects were not found: 10005.\"\
],\"errors\":{}}"
description: "Returned if the custom field, project, or issue type is not\
\ found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get custom field contexts for projects and issue types"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/projectmapping:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of context to project\
\ mappings for a custom field. The result can be filtered by `contextId`.\
\ Otherwise, all mappings are returned. Invalid IDs are ignored.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getProjectContextMapping"
parameters:
- description: "The ID of the custom field, for example `customfield\\_10000`."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The list of context IDs. To include multiple context, separate\
\ IDs with ampersand: `contextId=10000&contextId=10001`."
in: "query"
name: "contextId"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:2,\"values\":[{\"contextId\":\"10025\",\"projectId\":\"10001\"},{\"\
contextId\":\"10026\",\"isGlobalContext\":true}]}"
schema:
$ref: "#/components/schemas/PageBeanCustomFieldContextProjectMapping"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field was not found.\"],\"\
errors\":{}}"
description: "Returned if the custom field is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get project mappings for custom field context"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/{contextId}:
delete:
deprecated: false
description: "Deletes a [ custom field context](https://confluence.atlassian.com/adminjiracloud/what-are-custom-field-contexts-991923859.html).\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteCustomFieldContext"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the context is deleted."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The contextId has to be provided.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The context was not found.\"],\"errors\"\
:{}}"
description: "Returned if the custom field or the context is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete custom field context"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:field:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a [ custom field context](https://confluence.atlassian.com/adminjiracloud/what-are-custom-field-contexts-991923859.html).\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateCustomFieldContext"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
description: "A context used to define the custom field options for\
\ bugs."
name: "Bug fields context"
schema:
$ref: "#/components/schemas/CustomFieldContextUpdateDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the context is updated."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The contextId has to be provided.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The context was not found.\"],\"errors\"\
:{}}"
description: "Returned if the custom field or the context is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update custom field context"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/{contextId}/issuetype:
put:
deprecated: false
description: "Adds issue types to a custom field context, appending the issue\
\ types to the issue types list.\n\nA custom field context without any issue\
\ types applies to all issue types. Adding issue types to such a custom field\
\ context would result in it applying to only the listed issue types.\n\n\
If any of the issue types exists in the custom field context, the operation\
\ fails and no issue types are added.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "addIssueTypesToContext"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
issueTypeIds:
- "10001"
- "10005"
- "10006"
schema:
$ref: "#/components/schemas/IssueTypeIds"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if operation is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"These issue types are already associated\
\ with the context: 10001.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The context was not found.\"],\"errors\"\
:{}}"
description: "Returned if the custom field, context, or one or more issue\
\ types are not found."
"409":
content:
application/json:
example: "{\"errorMessages\":[\"Sub-tasks are disabled in Jira. At least\
\ one of the issue types is a sub-task.\"],\"errors\":{}}"
description: "Returned if the issue type is a sub-task, but sub-tasks are\
\ disabled in Jira settings."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Add issue types to context"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/{contextId}/issuetype/remove:
post:
deprecated: false
description: "Removes issue types from a custom field context.\n\nA custom field\
\ context without any issue types applies to all issue types.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "removeIssueTypesFromContext"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
issueTypeIds:
- "10001"
- "10005"
- "10006"
schema:
$ref: "#/components/schemas/IssueTypeIds"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if operation is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"These issue types are not associated\
\ with the context: 10002.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The context was not found.\"],\"errors\"\
:{}}"
description: "Returned if the custom field, context, or one or more issue\
\ types are not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Remove issue types from context"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/{contextId}/option:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of all custom field option\
\ for a context. Options are returned first then cascading options, in the\
\ order they display in Jira.\n\nThis operation works for custom field options\
\ created in Jira or the operations from this resource. **To work with issue\
\ field select list options created for Connect apps use the [Issue custom\
\ field options (apps)](#api-group-issue-custom-field-options--apps-) operations.**\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getOptionsForContext"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the option."
in: "query"
name: "optionId"
schema:
format: "int64"
type: "integer"
- description: "Whether only options are returned."
in: "query"
name: "onlyOptions"
schema:
default: false
type: "boolean"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 100
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:4,\"values\":[{\"id\":\"10001\",\"value\":\"New York\"},{\"id\":\"\
10002\",\"value\":\"Boston\",\"disabled\":true},{\"id\":\"10004\"\
,\"value\":\"Denver\"},{\"id\":\"10003\",\"value\":\"Brooklyn\",\"\
optionId\":\"10001\"}]}"
schema:
$ref: "#/components/schemas/PageBeanCustomFieldContextOption"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field doesn't support options.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can manage\
\ custom field options.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field was not found.\"],\"\
errors\":{}}"
description: "Returned if the custom field is not found or the context doesn't\
\ match the custom field."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get custom field options (context)"
tags:
- "Issue custom field options"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field.option:jira"
state: "Beta"
post:
deprecated: false
description: "Creates options and, where the custom select field is of the type\
\ Select List (cascading), cascading options for a custom select field. The\
\ options are added to a context of the field.\n\nThe maximum number of options\
\ that can be created per request is 1000 and each field can have a maximum\
\ of 10000 options.\n\nThis operation works for custom field options created\
\ in Jira or the operations from this resource. **To work with issue field\
\ select list options created for Connect apps use the [Issue custom field\
\ options (apps)](#api-group-issue-custom-field-options--apps-) operations.**\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createCustomFieldOption"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
options:
- disabled: false
value: "Scranton"
- disabled: true
optionId: "10000"
value: "Manhattan"
- disabled: false
value: "The Electric City"
schema:
$ref: "#/components/schemas/BulkCustomFieldOptionCreateRequest"
required: true
responses:
"200":
content:
application/json:
example: "{\"options\":[{\"disabled\":false,\"id\":\"10001\",\"value\"\
:\"Scranton\"},{\"disabled\":true,\"id\":\"10002\",\"optionId\":\"\
10000\",\"value\":\"Manhattan\"},{\"disabled\":false,\"id\":\"10003\"\
,\"value\":\"The Electric City\"}]}"
schema:
$ref: "#/components/schemas/CustomFieldCreatedContextOptionsList"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field doesn't support options.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can manage\
\ custom field options.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field was not found.\"],\"\
errors\":{}}"
description: "Returned if the custom field is not found or the context doesn't\
\ match the custom field."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create custom field options (context)"
tags:
- "Issue custom field options"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field.option:jira"
- "write:field.option:jira"
state: "Beta"
put:
deprecated: false
description: "Updates the options of a custom field.\n\nIf any of the options\
\ are not found, no options are updated. Options where the values in the request\
\ match the current values aren't updated and aren't reported in the response.\n\
\nNote that this operation **only works for issue field select list options\
\ created in Jira or using operations from the [Issue custom field options](#api-group-Issue-custom-field-options)\
\ resource**, it cannot be used with issue field select list options created\
\ by Connect apps.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateCustomFieldOption"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
options:
- disabled: false
id: "10001"
value: "Scranton"
- disabled: true
id: "10002"
value: "Manhattan"
- disabled: false
id: "10003"
value: "The Electric City"
schema:
$ref: "#/components/schemas/BulkCustomFieldOptionUpdateRequest"
required: true
responses:
"200":
content:
application/json:
example: "{\"options\":[{\"disabled\":false,\"id\":\"10001\",\"value\"\
:\"Scranton\"},{\"disabled\":true,\"id\":\"10002\",\"value\":\"Manhattan\"\
},{\"disabled\":false,\"id\":\"10003\",\"value\":\"The Electric City\"\
}]}"
schema:
$ref: "#/components/schemas/CustomFieldUpdatedContextOptionsList"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field doesn't support options.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can manage\
\ custom field options.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field was not found.\"],\"\
errors\":{}}"
description: "Returned if the field, context, or one or more options is\
\ not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update custom field options (context)"
tags:
- "Issue custom field options"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field.option:jira"
- "write:field.option:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/{contextId}/option/move:
put:
deprecated: false
description: "Changes the order of custom field options or cascading options\
\ in a context.\n\nThis operation works for custom field options created in\
\ Jira or the operations from this resource. **To work with issue field select\
\ list options created for Connect apps use the [Issue custom field options\
\ (apps)](#api-group-issue-custom-field-options--apps-) operations.**\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "reorderCustomFieldOptions"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
customFieldOptionIds:
- "10001"
- "10002"
position: "First"
schema:
$ref: "#/components/schemas/OrderOfCustomFieldOptions"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if options are reordered."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"'after' and 'position' were provided.\
\ Only 'after' or 'position' can be specified.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can manage\
\ custom field options.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field was not found.\"],\"\
errors\":{}}"
description: "Returned if the field, the context, or one or more of the\
\ options is not found.."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Reorder custom field options (context)"
tags:
- "Issue custom field options"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field.option:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/{contextId}/option/{optionId}:
delete:
deprecated: false
description: "Deletes a custom field option.\n\nOptions with cascading options\
\ cannot be deleted without deleting the cascading options first.\n\nThis\
\ operation works for custom field options created in Jira or the operations\
\ from this resource. **To work with issue field select list options created\
\ for Connect apps use the [Issue custom field options (apps)](#api-group-issue-custom-field-options--apps-)\
\ operations.**\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteCustomFieldOption"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context from which an option should be deleted."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the option to delete."
in: "path"
name: "optionId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the option is deleted."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field doesn't support options.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can manage\
\ custom field options.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The custom field was not found.\"],\"\
errors\":{}}"
description: "Returned if the field, the context, or the option is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete custom field options (context)"
tags:
- "Issue custom field options"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:field.option:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/{contextId}/option/{optionId}/issue:
delete:
deprecated: false
description: "Replaces the options of a custom field.\n\nNote that this operation\
\ **only works for issue field select list options created in Jira or using\
\ operations from the [Issue custom field options](#api-group-Issue-custom-field-options)\
\ resource**, it cannot be used with issue field select list options created\
\ by Connect or Forge apps.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "replaceCustomFieldOption"
parameters:
- description: "The ID of the option that will replace the currently selected\
\ option."
in: "query"
name: "replaceWith"
schema:
format: "int64"
type: "integer"
- description: "A JQL query that specifies the issues to be updated. For example,\
\ *project=10000*."
in: "query"
name: "jql"
schema:
type: "string"
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the option to be deselected."
in: "path"
name: "optionId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the context."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"303":
content:
application/json:
example: "{\"self\":\"https://your-domain.atlassian.net/rest/api/2/task/1\"\
,\"id\":\"1\",\"description\":\"Remove option 1 from issues matched\
\ by '*', and replace with option 3\",\"status\":\"COMPLETE\",\"result\"\
:{\"errors\":{\"errorMessages\":[\"Option 2 cannot be set on issue\
\ MKY-5 as it is not in the correct scope\"],\"errors\":{},\"httpStatusCode\"\
:{\"empty\":false,\"present\":true}},\"modifiedIssues\":[10001,10010],\"\
unmodifiedIssues\":[10005]},\"elapsedRuntime\":42}"
schema:
$ref: "#/components/schemas/TaskProgressBeanRemoveOptionFromIssuesResult"
description: "Returned if the long-running task to deselect the option is\
\ started."
"400":
description: "Returned if the request is not valid."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Connect and Forge app users with Administer\
\ Jira global permission can override screen security.\"],\"errors\"\
:{}}"
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the field is not found or does not support options,\
\ or the options to be replaced are not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Replace custom field options"
tags:
- "Issue custom field options"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field.option:jira"
- "write:field.option:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/{contextId}/project:
put:
deprecated: false
description: "Assigns a custom field context to projects.\n\nIf any project\
\ in the request is assigned to any context of the custom field, the operation\
\ fails.\n\n**[Permissions](#permissions) required:** *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "assignProjectsToCustomFieldContext"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
projectIds:
- "10001"
- "10005"
- "10006"
schema:
$ref: "#/components/schemas/ProjectIds"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if operation is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The projectIds must not contain duplicates.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The context was not found.\"],\"errors\"\
:{}}"
description: "Returned if the custom field, context, or project is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Assign custom field context to projects"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/context/{contextId}/project/remove:
post:
deprecated: false
description: "Removes a custom field context from projects.\n\nA custom field\
\ context without any projects applies to all projects. Removing all projects\
\ from a custom field context would result in it applying to all projects.\n\
\nIf any project in the request is not assigned to the context, or the operation\
\ would result in two global contexts for the field, the operation fails.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "removeCustomFieldContextFromProjects"
parameters:
- description: "The ID of the custom field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The ID of the context."
in: "path"
name: "contextId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
projectIds:
- "10001"
- "10005"
- "10006"
schema:
$ref: "#/components/schemas/ProjectIds"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the custom field context is removed from the projects."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The projectIds must not contain duplicates.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ custom field contexts.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The context was not found.\"],\"errors\"\
:{}}"
description: "Returned if the custom field, context, or one or more projects\
\ are not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Remove custom field context from projects"
tags:
- "Issue custom field contexts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/contexts:
get:
deprecated: true
description: "Returns a [paginated](#pagination) list of the contexts a field\
\ is used in. Deprecated, use [ Get custom field contexts](#api-rest-api-2-field-fieldId-context-get).\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getContextsForFieldDeprecated"
parameters:
- description: "The ID of the field to return contexts for."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 20
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":1,\"startAt\":0,\"total\"\
:5,\"values\":[{\"id\":10001,\"name\":\"Default Context\"}]}"
schema:
$ref: "#/components/schemas/PageBeanContext"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Get contexts for a field"
tags:
- "Issue fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/field/{fieldId}/screens:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of the screens a field\
\ is used in.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getScreensForField"
parameters:
- description: "The ID of the field to return screens for."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 100
format: "int32"
type: "integer"
- description: "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."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":1,\"startAt\":0,\"total\"\
:5,\"values\":[{\"id\":10001,\"name\":\"Default Screen\",\"description\"\
:\"Provides for the update of all system fields.\",\"tab\":{\"id\"\
:10000,\"name\":\"Fields Tab\"}}]}"
schema:
$ref: "#/components/schemas/PageBeanScreenWithTab"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Get screens for a field"
tags:
- "Screens"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:screen:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:screen-tab:jira"
state: "Beta"
/rest/api/2/field/{fieldKey}/option:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of all the options of\
\ a select list issue field. A select list issue field is a type of [issue\
\ field](https://developer.atlassian.com/cloud/jira/platform/modules/issue-field/)\
\ that enables a user to select a value from a list of options.\n\nNote that\
\ this operation **only works for issue field select list options added by\
\ Connect apps**, it cannot be used with issue field select list options created\
\ in Jira or using operations from the [Issue custom field options](#api-group-Issue-custom-field-options)\
\ resource.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg). Jira permissions\
\ are not required for the app providing the field."
operationId: "getAllIssueFieldOptions"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "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:\n\n * 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.\n * run [Get fields](#api-rest-api-2-field-get) and in the field\
\ details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"\
`"
in: "path"
name: "fieldKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":1,\"nextPage\":\"https://your-domain.atlassian.net/rest/api/2/field/fieldKey/option?startAt=1&maxResults=1\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/field/fieldKey/option?startAt=0&maxResults=1\"\
,\"startAt\":0,\"total\":10,\"values\":[{\"id\":1,\"value\":\"Team\
\ 1\",\"properties\":{\"leader\":{\"name\":\"Leader Name\",\"email\"\
:\"lname@example.com\"},\"members\":42,\"description\":\"The team's\
\ description\",\"founded\":\"2016-06-06\"},\"config\":{\"scope\"\
:{\"projects\":[],\"projects2\":[{\"id\":1001,\"attributes\":[\"notSelectable\"\
]},{\"id\":1002,\"attributes\":[\"notSelectable\"]}],\"global\":{}},\"\
attributes\":[]}}]}"
schema:
$ref: "#/components/schemas/PageBeanIssueFieldOption"
description: "Returned if the request is successful."
"400":
description: "Returned if the field is not found or does not support options."
"403":
description: "Returned if the request is not authenticated as a Jira administrator\
\ or the app that provided the field."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get all issue field options"
tags:
- "Issue custom field options (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field.option:jira"
state: "Beta"
post:
deprecated: false
description: "Creates an option for a select list issue field.\n\nNote that\
\ this operation **only works for issue field select list options added by\
\ Connect apps**, it cannot be used with issue field select list options created\
\ in Jira or using operations from the [Issue custom field options](#api-group-Issue-custom-field-options)\
\ resource.\n\nEach field can have a maximum of 10000 options, and each option\
\ can have a maximum of 10000 scopes.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).\
\ Jira permissions are not required for the app providing the field."
operationId: "createIssueFieldOption"
parameters:
- description: "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:\n\n * 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.\n * run [Get fields](#api-rest-api-2-field-get) and in the field\
\ details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"\
`"
in: "path"
name: "fieldKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/IssueFieldOptionCreateBean"
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":1,\"value\":\"Team 1\",\"properties\":{\"leader\"\
:{\"name\":\"Leader Name\",\"email\":\"lname@example.com\"},\"members\"\
:42,\"description\":\"The team's description\",\"founded\":\"2016-06-06\"\
},\"config\":{\"scope\":{\"projects\":[],\"projects2\":[{\"id\":1001,\"\
attributes\":[\"notSelectable\"]},{\"id\":1002,\"attributes\":[\"\
notSelectable\"]}],\"global\":{}},\"attributes\":[]}}"
schema:
$ref: "#/components/schemas/IssueFieldOption"
description: "Returned if the request is successful."
"400":
description: "Returned if the option is invalid."
"403":
description: "Returned if the request is not authenticated as a Jira administrator\
\ or the app that provided the field."
"404":
description: "Returned if the field is not found or does not support options."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create issue field option"
tags:
- "Issue custom field options (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field.option:jira"
state: "Beta"
/rest/api/2/field/{fieldKey}/option/suggestions/edit:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of options for a select\
\ list issue field that can be viewed and selected by the user.\n\nNote that\
\ this operation **only works for issue field select list options added by\
\ Connect apps**, it cannot be used with issue field select list options created\
\ in Jira or using operations from the [Issue custom field options](#api-group-Issue-custom-field-options)\
\ resource.\n\n**[Permissions](#permissions) required:** Permission to access\
\ Jira."
operationId: "getSelectableIssueFieldOptions"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "Filters the results to options that are only available in the\
\ specified project."
in: "query"
name: "projectId"
schema:
format: "int64"
type: "integer"
- description: "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:\n\n * 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.\n * run [Get fields](#api-rest-api-2-field-get) and in the field\
\ details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"\
`"
in: "path"
name: "fieldKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":1,\"nextPage\":\"https://your-domain.atlassian.net/rest/api/2/field/fieldKey/option/suggestions?startAt=1&maxResults=1\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/field/fieldKey/option/suggestions?startAt=0&maxResults=1\"\
,\"startAt\":0,\"total\":10,\"values\":[{\"id\":1,\"value\":\"Team\
\ 1\",\"properties\":{\"leader\":{\"name\":\"Leader Name\",\"email\"\
:\"lname@example.com\"},\"members\":42,\"description\":\"The team's\
\ description\",\"founded\":\"2016-06-06\"}}]}"
schema:
$ref: "#/components/schemas/PageBeanIssueFieldOption"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the field is not found or does not support options."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get selectable issue field options"
tags:
- "Issue custom field options (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field.option:jira"
state: "Beta"
/rest/api/2/field/{fieldKey}/option/suggestions/search:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of options for a select\
\ list issue field that can be viewed by the user.\n\nNote that this operation\
\ **only works for issue field select list options added by Connect apps**,\
\ it cannot be used with issue field select list options created in Jira or\
\ using operations from the [Issue custom field options](#api-group-Issue-custom-field-options)\
\ resource.\n\n**[Permissions](#permissions) required:** Permission to access\
\ Jira."
operationId: "getVisibleIssueFieldOptions"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "Filters the results to options that are only available in the\
\ specified project."
in: "query"
name: "projectId"
schema:
format: "int64"
type: "integer"
- description: "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:\n\n * 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.\n * run [Get fields](#api-rest-api-2-field-get) and in the field\
\ details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"\
`"
in: "path"
name: "fieldKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":1,\"nextPage\":\"https://your-domain.atlassian.net/rest/api/2/field/fieldKey/option/suggestions?startAt=1&maxResults=1\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/field/fieldKey/option/suggestions?startAt=0&maxResults=1\"\
,\"startAt\":0,\"total\":10,\"values\":[{\"id\":1,\"value\":\"Team\
\ 1\",\"properties\":{\"leader\":{\"name\":\"Leader Name\",\"email\"\
:\"lname@example.com\"},\"members\":42,\"description\":\"The team's\
\ description\",\"founded\":\"2016-06-06\"}}]}"
schema:
$ref: "#/components/schemas/PageBeanIssueFieldOption"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the field is not found or does not support options."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get visible issue field options"
tags:
- "Issue custom field options (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field.option:jira"
state: "Beta"
/rest/api/2/field/{fieldKey}/option/{optionId}:
delete:
deprecated: false
description: "Deletes an option from a select list issue field.\n\nNote that\
\ this operation **only works for issue field select list options added by\
\ Connect apps**, it cannot be used with issue field select list options created\
\ in Jira or using operations from the [Issue custom field options](#api-group-Issue-custom-field-options)\
\ resource.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg). Jira permissions\
\ are not required for the app providing the field."
operationId: "deleteIssueFieldOption"
parameters:
- description: "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:\n\n * 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.\n * run [Get fields](#api-rest-api-2-field-get) and in the field\
\ details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"\
`"
in: "path"
name: "fieldKey"
required: true
schema:
type: "string"
- description: "The ID of the option to be deleted."
in: "path"
name: "optionId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the field option is deleted."
"403":
description: "Returned if the request is not authenticated as a Jira administrator\
\ or the app that provided the field."
"404":
description: "Returned if the field or option is not found."
"409":
description: "Returned if the option is selected for the field in any issue."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete issue field option"
tags:
- "Issue custom field options (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:field.option:jira"
state: "Beta"
get:
deprecated: false
description: "Returns an option from a select list issue field.\n\nNote that\
\ this operation **only works for issue field select list options added by\
\ Connect apps**, it cannot be used with issue field select list options created\
\ in Jira or using operations from the [Issue custom field options](#api-group-Issue-custom-field-options)\
\ resource.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg). Jira permissions\
\ are not required for the app providing the field."
operationId: "getIssueFieldOption"
parameters:
- description: "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:\n\n * 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.\n * run [Get fields](#api-rest-api-2-field-get) and in the field\
\ details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"\
`"
in: "path"
name: "fieldKey"
required: true
schema:
type: "string"
- description: "The ID of the option to be returned."
in: "path"
name: "optionId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"id\":1,\"value\":\"Team 1\",\"properties\":{\"leader\"\
:{\"name\":\"Leader Name\",\"email\":\"lname@example.com\"},\"members\"\
:42,\"description\":\"The team's description\",\"founded\":\"2016-06-06\"\
},\"config\":{\"scope\":{\"projects\":[],\"projects2\":[{\"id\":1001,\"\
attributes\":[\"notSelectable\"]},{\"id\":1002,\"attributes\":[\"\
notSelectable\"]}],\"global\":{}},\"attributes\":[]}}"
schema:
$ref: "#/components/schemas/IssueFieldOption"
description: "Returned if the requested option is returned."
"400":
description: "Returned if the field is not found or does not support options."
"403":
description: "Returned if the request is not authenticated as a Jira administrator\
\ or the app that provided the field."
"404":
description: "Returned if the option is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue field option"
tags:
- "Issue custom field options (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field.option:jira"
state: "Beta"
put:
deprecated: false
description: "Updates or creates an option for a select list issue field. This\
\ operation requires that the option ID is provided when creating an option,\
\ therefore, the option ID needs to be specified as a path and body parameter.\
\ The option ID provided in the path and body must be identical.\n\nNote that\
\ this operation **only works for issue field select list options added by\
\ Connect apps**, it cannot be used with issue field select list options created\
\ in Jira or using operations from the [Issue custom field options](#api-group-Issue-custom-field-options)\
\ resource.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg). Jira permissions\
\ are not required for the app providing the field."
operationId: "updateIssueFieldOption"
parameters:
- description: "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:\n\n * 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.\n * run [Get fields](#api-rest-api-2-field-get) and in the field\
\ details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"\
`"
in: "path"
name: "fieldKey"
required: true
schema:
type: "string"
- description: "The ID of the option to be updated."
in: "path"
name: "optionId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/IssueFieldOption"
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":1,\"value\":\"Team 1\",\"properties\":{\"leader\"\
:{\"name\":\"Leader Name\",\"email\":\"lname@example.com\"},\"members\"\
:42,\"description\":\"The team's description\",\"founded\":\"2016-06-06\"\
},\"config\":{\"scope\":{\"projects\":[],\"projects2\":[{\"id\":1001,\"\
attributes\":[\"notSelectable\"]},{\"id\":1002,\"attributes\":[\"\
notSelectable\"]}],\"global\":{}},\"attributes\":[]}}"
schema:
$ref: "#/components/schemas/IssueFieldOption"
description: "Returned if the option is updated or created."
"400":
description: "Returned if the option is invalid, or the *ID* in the request\
\ object does not match the *optionId* parameter."
"403":
description: "Returned if the request is not authenticated as a Jira administrator\
\ or the app that provided the field."
"404":
description: "Returned if field is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update issue field option"
tags:
- "Issue custom field options (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field.option:jira"
state: "Beta"
/rest/api/2/field/{fieldKey}/option/{optionId}/issue:
delete:
deprecated: false
description: "Deselects an issue-field select-list option from all issues where\
\ it is selected. A different option can be selected to replace the deselected\
\ option. The update can also be limited to a smaller set of issues by using\
\ a JQL query.\n\nConnect and Forge app users with *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg) can override the\
\ screen security configuration using `overrideScreenSecurity` and `overrideEditableFlag`.\n\
\nThis is an [asynchronous operation](#async). The response object contains\
\ a link to the long-running task.\n\nNote that this operation **only works\
\ for issue field select list options added by Connect apps**, it cannot be\
\ used with issue field select list options created in Jira or using operations\
\ from the [Issue custom field options](#api-group-Issue-custom-field-options)\
\ resource.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg). Jira permissions\
\ are not required for the app providing the field."
operationId: "replaceIssueFieldOption"
parameters:
- description: "The ID of the option that will replace the currently selected\
\ option."
in: "query"
name: "replaceWith"
schema:
format: "int64"
type: "integer"
- description: "A JQL query that specifies the issues to be updated. For example,\
\ *project=10000*."
in: "query"
name: "jql"
schema:
type: "string"
- description: "Whether screen security is overridden to enable hidden fields\
\ to be edited. Available to Connect and Forge app users with admin permission."
in: "query"
name: "overrideScreenSecurity"
schema:
default: false
type: "boolean"
- description: "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)."
in: "query"
name: "overrideEditableFlag"
schema:
default: false
type: "boolean"
- description: "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:\n\n * 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.\n * run [Get fields](#api-rest-api-2-field-get) and in the field\
\ details the value is returned in `key`. For example, `\"key\": \"teams-add-on__team-issue-field\"\
`"
in: "path"
name: "fieldKey"
required: true
schema:
type: "string"
- description: "The ID of the option to be deselected."
in: "path"
name: "optionId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"303":
content:
application/json:
example: "{\"self\":\"https://your-domain.atlassian.net/rest/api/2/task/1\"\
,\"id\":\"1\",\"description\":\"Remove option 1 from issues matched\
\ by '*', and replace with option 3\",\"status\":\"COMPLETE\",\"result\"\
:{\"errors\":{\"errorMessages\":[\"Option 2 cannot be set on issue\
\ MKY-5 as it is not in the correct scope\"],\"errors\":{},\"httpStatusCode\"\
:{\"empty\":false,\"present\":true}},\"modifiedIssues\":[10001,10010],\"\
unmodifiedIssues\":[10005]},\"elapsedRuntime\":42}"
schema:
$ref: "#/components/schemas/TaskProgressBeanRemoveOptionFromIssuesResult"
description: "Returned if the long-running task to deselect the option is\
\ started."
"400":
description: "Returned if the request is not valid."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Connect and Forge app users with Administer\
\ Jira global permission can override screen security.\"],\"errors\"\
:{}}"
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the field is not found or does not support options,\
\ or the options to be replaced are not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Replace issue field option"
tags:
- "Issue custom field options (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field.option:jira"
- "delete:field.option:jira"
state: "Beta"
/rest/api/2/field/{id}:
delete:
deprecated: false
description: "Deletes a custom field. The custom field is deleted whether it\
\ is in the trash or not. See [Edit or delete a custom field](https://confluence.atlassian.com/x/Z44fOw)\
\ for more information on trashing and deleting custom fields.\n\nThis operation\
\ is [asynchronous](#async). Follow the `location` link in the response to\
\ determine the status of the task and use [Get task](#api-rest-api-2-task-taskId-get)\
\ to obtain subsequent updates.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteCustomField"
parameters:
- description: "The ID of a custom field."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"303":
content:
application/json:
schema:
$ref: "#/components/schemas/TaskProgressBeanObject"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if any of these are true:\n\n * The custom field\
\ is locked.\n * The custom field is used in a issue security scheme\
\ or a permission scheme.\n * The custom field ID format is incorrect."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the custom field is not found."
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if a task to delete the custom field is running."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete custom field"
tags:
- "Issue fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:field:jira"
state: "Beta"
/rest/api/2/field/{id}/restore:
post:
deprecated: false
description: "Restores a custom field from trash. See [Edit or delete a custom\
\ field](https://confluence.atlassian.com/x/Z44fOw) for more information on\
\ trashing and deleting custom fields.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "restoreCustomField"
parameters:
- description: "The ID of a custom field."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the custom field is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Restore custom field from trash"
tags:
- "Issue fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field:jira"
state: "Beta"
/rest/api/2/field/{id}/trash:
post:
deprecated: false
description: "Moves a custom field to trash. See [Edit or delete a custom field](https://confluence.atlassian.com/x/Z44fOw)\
\ for more information on trashing and deleting custom fields.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "trashCustomField"
parameters:
- description: "The ID of a custom field."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the custom field is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Move custom field to trash"
tags:
- "Issue fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:field:jira"
state: "Beta"
/rest/api/2/fieldconfiguration:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of field configurations.\
\ The list can be for all field configurations or a subset determined by any\
\ combination of these criteria:\n\n * a list of field configuration item\
\ IDs.\n * whether the field configuration is a default.\n * whether the\
\ field configuration name or description contains a query string.\n\nOnly\
\ field configurations used in company-managed (classic) projects are returned.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAllFieldConfigurations"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The list of field configuration IDs. To include multiple IDs,\
\ provide an ampersand-separated list. For example, `id=10000&id=10001`."
in: "query"
name: "id"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "If *true* returns default field configurations only."
in: "query"
name: "isDefault"
schema:
default: false
type: "boolean"
- description: "The query string used to match against field configuration names\
\ and descriptions."
in: "query"
name: "query"
schema:
default: ""
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":50,\"startAt\":0,\"total\"\
:2,\"values\":[{\"id\":10000,\"name\":\"Default Field Configuration\"\
,\"description\":\"The default field configuration description\",\"\
isDefault\":true},{\"id\":10001,\"name\":\"My Field Configuration\"\
,\"description\":\"My field configuration description\"}]}"
schema:
$ref: "#/components/schemas/PageBeanFieldConfigurationDetails"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get all field configurations"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field-configuration:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a field configuration. The field configuration is created\
\ with the same field properties as the default configuration, with all the\
\ fields being optional.\n\nThis operation can only create configurations\
\ for use in company-managed (classic) projects.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createFieldConfiguration"
parameters: []
requestBody:
content:
application/json:
example:
description: "My field configuration description"
name: "My Field Configuration"
schema:
$ref: "#/components/schemas/FieldConfigurationDetails"
required: true
responses:
"200":
content:
application/json:
example: "{\"description\":\"My field configuration description\",\"\
id\":10001,\"name\":\"My Field Configuration\"}"
schema:
$ref: "#/components/schemas/FieldConfiguration"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create field configuration"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field-configuration:jira"
- "write:field-configuration:jira"
state: "Beta"
/rest/api/2/fieldconfiguration/{id}:
delete:
deprecated: false
description: "Deletes a field configuration.\n\nThis operation can only delete\
\ configurations used in company-managed (classic) projects.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteFieldConfiguration"
parameters:
- description: "The ID of the field configuration."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the field configuration is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete field configuration"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:field-configuration:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a field configuration. The name and the description provided\
\ in the request override the existing values.\n\nThis operation can only\
\ update configurations used in company-managed (classic) projects.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateFieldConfiguration"
parameters:
- description: "The ID of the field configuration."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
description: "A brand new description"
name: "My Modified Field Configuration"
schema:
$ref: "#/components/schemas/FieldConfigurationDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the field configuration is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update field configuration"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field-configuration:jira"
state: "Beta"
/rest/api/2/fieldconfiguration/{id}/fields:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of all fields for a configuration.\n\
\nOnly the fields from configurations used in company-managed (classic) projects\
\ are returned.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getFieldConfigurationItems"
parameters:
- description: "The ID of the field configuration."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":50,\"startAt\":0,\"total\"\
:2,\"values\":[{\"description\":\"For example operating system, software\
\ platform and/or hardware specifications (include as appropriate\
\ for the issue).\",\"id\":\"environment\",\"isHidden\":false,\"isRequired\"\
:false},{\"id\":\"description\",\"isHidden\":false,\"isRequired\"\
:false}]}"
schema:
$ref: "#/components/schemas/PageBeanFieldConfigurationItem"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the field configuration is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get field configuration items"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field-configuration:jira"
state: "Beta"
put:
deprecated: false
description: "Updates fields in a field configuration. The properties of the\
\ field configuration fields provided override the existing values.\n\nThis\
\ operation can only update field configurations used in company-managed (classic)\
\ projects.\n\nThe operation can set the renderer for text fields to the default\
\ text renderer (`text-renderer`) or wiki style renderer (`wiki-renderer`).\
\ However, the renderer cannot be updated for fields using the autocomplete\
\ renderer (`autocomplete-renderer`).\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateFieldConfigurationItems"
parameters:
- description: "The ID of the field configuration."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/FieldConfigurationItemsDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the field configuration is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update field configuration items"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field-configuration:jira"
state: "Beta"
/rest/api/2/fieldconfigurationscheme:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of field configuration\
\ schemes.\n\nOnly field configuration schemes used in classic projects are\
\ returned.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAllFieldConfigurationSchemes"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The list of field configuration scheme IDs. To include multiple\
\ IDs, provide an ampersand-separated list. For example, `id=10000&id=10001`."
in: "query"
name: "id"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":10,\"startAt\":0,\"total\"\
:3,\"values\":[{\"id\":\"10000\",\"name\":\"Field Configuration Scheme\
\ for Bugs\",\"description\":\"This field configuration scheme is\
\ for bugs only.\"},{\"id\":\"10001\",\"name\":\"Field Configuration\
\ Scheme for software related projects\",\"description\":\"We can\
\ use this one for software projects.\"},{\"id\":\"10002\",\"name\"\
:\"Field Configuration Scheme for Epics\",\"description\":\"Use this\
\ one for Epic issue type.\"}]}"
schema:
$ref: "#/components/schemas/PageBeanFieldConfigurationScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get all field configuration schemes"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field-configuration-scheme:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a field configuration scheme.\n\nThis operation can only\
\ create field configuration schemes used in company-managed (classic) projects.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createFieldConfigurationScheme"
parameters: []
requestBody:
content:
application/json:
example:
description: "We can use this one for software projects."
name: "Field Configuration Scheme for software related projects"
schema:
$ref: "#/components/schemas/UpdateFieldConfigurationSchemeDetails"
description: "The details of the field configuration scheme."
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"10002\",\"name\":\"Field Configuration Scheme for\
\ software related projects\",\"description\":\"We can use this one\
\ for software projects.\"}"
schema:
$ref: "#/components/schemas/FieldConfigurationScheme"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"A field configuration scheme is using\
\ this name.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ field configurations.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create field configuration scheme"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field-configuration-scheme:jira"
- "read:field-configuration-scheme:jira"
state: "Beta"
/rest/api/2/fieldconfigurationscheme/mapping:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of field configuration\
\ issue type items.\n\nOnly items used in classic projects are returned.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getFieldConfigurationSchemeMappings"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The list of field configuration scheme IDs. To include multiple\
\ field configuration schemes separate IDs with ampersand: `fieldConfigurationSchemeId=10000&fieldConfigurationSchemeId=10001`."
in: "query"
name: "fieldConfigurationSchemeId"
schema:
items:
example: 10020
format: "int64"
type: "integer"
maxItems: 50
minItems: 1
type: "array"
uniqueItems: true
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:5,\"values\":[{\"fieldConfigurationSchemeId\":\"10020\",\"issueTypeId\"\
:\"10000\",\"fieldConfigurationId\":\"10010\"},{\"fieldConfigurationSchemeId\"\
:\"10020\",\"issueTypeId\":\"10001\",\"fieldConfigurationId\":\"10010\"\
},{\"fieldConfigurationSchemeId\":\"10021\",\"issueTypeId\":\"10002\"\
,\"fieldConfigurationId\":\"10000\"},{\"fieldConfigurationSchemeId\"\
:\"10022\",\"issueTypeId\":\"default\",\"fieldConfigurationId\":\"\
10011\"},{\"fieldConfigurationSchemeId\":\"10023\",\"issueTypeId\"\
:\"default\",\"fieldConfigurationId\":\"10000\"}]}"
schema:
$ref: "#/components/schemas/PageBeanFieldConfigurationIssueTypeItem"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if no field configuration schemes are found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get field configuration issue type items"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field-configuration-scheme:jira"
state: "Beta"
/rest/api/2/fieldconfigurationscheme/project:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of field configuration\
\ schemes and, for each scheme, a list of the projects that use it.\n\nThe\
\ list is sorted by field configuration scheme ID. The first item contains\
\ the list of project IDs assigned to the default field configuration scheme.\n\
\nOnly field configuration schemes used in classic projects are returned.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getFieldConfigurationSchemeProjectMapping"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The list of project IDs. To include multiple projects, separate\
\ IDs with ampersand: `projectId=10000&projectId=10001`."
in: "query"
name: "projectId"
required: true
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":50,\"startAt\":0,\"total\"\
:5,\"values\":[{\"projectIds\":[\"10\",\"11\"]},{\"fieldConfigurationScheme\"\
:{\"id\":\"10002\",\"name\":\"Field Configuration Scheme for software\
\ related projects\",\"description\":\"We can use this one for software\
\ projects.\"},\"projectIds\":[\"12\",\"13\",\"14\"]}]}"
schema:
$ref: "#/components/schemas/PageBeanFieldConfigurationSchemeProjects"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get field configuration schemes for projects"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field-configuration-scheme:jira"
state: "Beta"
put:
deprecated: false
description: "Assigns a field configuration scheme to a project. If the field\
\ configuration scheme ID is `null`, the operation assigns the default field\
\ configuration scheme.\n\nField configuration schemes can only be assigned\
\ to classic projects.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "assignFieldConfigurationSchemeToProject"
parameters: []
requestBody:
content:
application/json:
example:
fieldConfigurationSchemeId: "10000"
projectId: "10000"
schema:
$ref: "#/components/schemas/FieldConfigurationSchemeProjectAssociation"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Only classic projects can have field\
\ configuration schemes assigned.\"],\"errors\":{}}"
description: "Returned if the project is not a classic project."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ field configurations.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The project was not found.\"],\"errors\"\
:{}}"
description: "Returned if the project is missing."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Assign field configuration scheme to project"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field-configuration-scheme:jira"
state: "Beta"
/rest/api/2/fieldconfigurationscheme/{id}:
delete:
deprecated: false
description: "Deletes a field configuration scheme.\n\nThis operation can only\
\ delete field configuration schemes used in company-managed (classic) projects.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteFieldConfigurationScheme"
parameters:
- description: "The ID of the field configuration scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the field configuration scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete field configuration scheme"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:field-configuration-scheme:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a field configuration scheme.\n\nThis operation can only\
\ update field configuration schemes used in company-managed (classic) projects.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateFieldConfigurationScheme"
parameters:
- description: "The ID of the field configuration scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
description: "We can use this one for software projects."
name: "Field Configuration Scheme for software related projects"
schema:
$ref: "#/components/schemas/UpdateFieldConfigurationSchemeDetails"
description: "The details of the field configuration scheme."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"A field configuration scheme is using\
\ this name.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ field configurations.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The field configuration scheme was not\
\ found.\"],\"errors\":{}}"
description: "Returned if the field configuration scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update field configuration scheme"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field-configuration-scheme:jira"
state: "Beta"
/rest/api/2/fieldconfigurationscheme/{id}/mapping:
put:
deprecated: false
description: "Assigns issue types to field configurations on field configuration\
\ scheme.\n\nThis operation can only modify field configuration schemes used\
\ in company-managed (classic) projects.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setFieldConfigurationSchemeMapping"
parameters:
- description: "The ID of the field configuration scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
mappings:
- fieldConfigurationId: "10000"
issueTypeId: "default"
- fieldConfigurationId: "10002"
issueTypeId: "10001"
- fieldConfigurationId: "10001"
issueTypeId: "10002"
schema:
$ref: "#/components/schemas/AssociateFieldConfigurationsWithIssueTypesRequest"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the field configuration scheme, the field configuration,\
\ or the issue type is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Assign issue types to field configurations"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field-configuration-scheme:jira"
- "read:field-configuration-scheme:jira"
state: "Beta"
/rest/api/2/fieldconfigurationscheme/{id}/mapping/delete:
post:
deprecated: false
description: "Removes issue types from the field configuration scheme.\n\nThis\
\ operation can only modify field configuration schemes used in company-managed\
\ (classic) projects.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "removeIssueTypesFromGlobalFieldConfigurationScheme"
parameters:
- description: "The ID of the field configuration scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
issueTypeIds:
- "10000"
- "10001"
- "10002"
schema:
$ref: "#/components/schemas/IssueTypeIdsToRemove"
description: "The issue type IDs to remove."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The issueTypeIds must not contain duplicates.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is not valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ field configurations.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The field configuration scheme was not\
\ found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the field configuration scheme or the issue types\
\ are not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Remove issue types from field configuration scheme"
tags:
- "Issue field configurations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:field-configuration-scheme:jira"
state: "Beta"
/rest/api/2/filter:
post:
deprecated: false
description: "Creates a filter. The filter is shared according to the [default\
\ share scope](#api-rest-api-2-filter-post). The filter is not selected as\
\ a favorite.\n\n**[Permissions](#permissions) required:** Permission to access\
\ Jira."
operationId: "createFilter"
parameters:
- description: "Use [expand](#expansion) to include additional information about\
\ filter in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `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]`.\n * `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]`."
in: "query"
name: "expand"
schema:
type: "string"
- description: "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)."
in: "query"
name: "overrideSharePermissions"
schema:
default: false
type: "boolean"
requestBody:
content:
application/json:
example:
description: "Lists all open bugs"
jql: "type = Bug and resolution is empty"
name: "All Open Bugs"
schema:
$ref: "#/components/schemas/Filter"
description: "The filter to create."
required: true
responses:
"200":
content:
application/json:
example: "{\"approximateLastUsed\":null,\"description\":\"Lists all\
\ open bugs\",\"favourite\":true,\"favouritedCount\":0,\"id\":\"10000\"\
,\"jql\":\"type = Bug and resolution is empty\",\"name\":\"All Open\
\ Bugs\",\"owner\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"\
accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\"\
:\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"searchUrl\":\"https://your-domain.atlassian.net/rest/api/2/search?jql=type%20%3D%20Bug%20and%20resolutino%20is%20empty\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/10000\"\
,\"sharePermissions\":[],\"subscriptions\":{\"end-index\":0,\"items\"\
:[],\"max-results\":0,\"size\":0,\"start-index\":0},\"viewUrl\":\"\
https://your-domain.atlassian.net/issues/?filter=10000\"}"
schema:
$ref: "#/components/schemas/Filter"
description: "Returned if the request is successful."
"400":
description: "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":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Create filter"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:filter:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "write:filter:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
/rest/api/2/filter/defaultShareScope:
get:
deprecated: false
description: "Returns the default sharing settings for new filters and dashboards\
\ for a user.\n\n**[Permissions](#permissions) required:** Permission to access\
\ Jira."
operationId: "getDefaultShareScope"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"scope\":\"GLOBAL\"}"
schema:
$ref: "#/components/schemas/DefaultShareScope"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get default share scope"
tags:
- "Filter sharing"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:filter.default-share-scope:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the default sharing for new filters and dashboards for a\
\ user.\n\n**[Permissions](#permissions) required:** Permission to access\
\ Jira."
operationId: "setDefaultShareScope"
parameters: []
requestBody:
content:
application/json:
example:
scope: "GLOBAL"
schema:
$ref: "#/components/schemas/DefaultShareScope"
required: true
responses:
"200":
content:
application/json:
example: "{\"scope\":\"GLOBAL\"}"
schema:
$ref: "#/components/schemas/DefaultShareScope"
description: "Returned if the request is successful."
"400":
description: "Returned if an invalid scope is set."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Set default share scope"
tags:
- "Filter sharing"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:filter.default-share-scope:jira"
- "read:filter.default-share-scope:jira"
state: "Beta"
/rest/api/2/filter/favourite:
get:
deprecated: false
description: "Returns the visible favorite filters of the user.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ A favorite filter is only visible to the user where the filter is:\n\n *\
\ owned by the user.\n * shared with a group that the user is a member of.\n\
\ * shared with a private project that the user has *Browse projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for.\n * shared\
\ with a public project.\n * shared with the public.\n\nFor example, if the\
\ user favorites a public filter that is subsequently made private that filter\
\ is not returned by this operation."
operationId: "getFavouriteFilters"
parameters:
- description: "Use [expand](#expansion) to include additional information about\
\ filter in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `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]`.\n * `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]`."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "[{\"approximateLastUsed\":\"2023-03-01T13:15:00.000+0000\"\
,\"description\":\"Lists all open bugs\",\"favourite\":true,\"favouritedCount\"\
:0,\"id\":\"10000\",\"jql\":\"type = Bug and resolution is empty\"\
,\"name\":\"All Open Bugs\",\"owner\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"searchUrl\":\"https://your-domain.atlassian.net/rest/api/2/search?jql=type%20%3D%20Bug%20and%20resolutino%20is%20empty\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/10000\"\
,\"sharePermissions\":[],\"subscriptions\":{\"end-index\":0,\"items\"\
:[],\"max-results\":0,\"size\":0,\"start-index\":0},\"viewUrl\":\"\
https://your-domain.atlassian.net/issues/?filter=10000\"},{\"approximateLastUsed\"\
:null,\"description\":\"Issues assigned to me\",\"favourite\":true,\"\
favouritedCount\":0,\"id\":\"10010\",\"jql\":\"assignee = currentUser()\
\ and resolution is empty\",\"name\":\"My issues\",\"owner\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\",\"active\"\
:false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"searchUrl\":\"https://your-domain.atlassian.net/rest/api/2/search?jql=assignee+in+%28currentUser%28%29%29+and+resolution+is+empty\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/10010\"\
,\"sharePermissions\":[{\"id\":10000,\"type\":\"global\"},{\"id\"\
:10010,\"project\":{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"First Project Category\",\"id\":\"10000\",\"name\"\
:\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\"},\"type\":\"project\"\
}],\"subscriptions\":{\"end-index\":0,\"items\":[],\"max-results\"\
:0,\"size\":0,\"start-index\":0},\"viewUrl\":\"https://your-domain.atlassian.net/issues/?filter=10010\"\
}]"
schema:
items:
$ref: "#/components/schemas/Filter"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get favorite filters"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:filter:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:jql:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
state: "Beta"
/rest/api/2/filter/my:
get:
deprecated: false
description: "Returns the filters owned by the user. If `includeFavourites`\
\ is `true`, the user's visible favorite filters are also returned.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira, however, a favorite filters is only\
\ visible to the user where the filter is:\n\n * owned by the user.\n * \
\ shared with a group that the user is a member of.\n * shared with a private\
\ project that the user has *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for.\n * shared with a public project.\n * shared with the public.\n\n\
For example, if the user favorites a public filter that is subsequently made\
\ private that filter is not returned by this operation."
operationId: "getMyFilters"
parameters:
- description: "Use [expand](#expansion) to include additional information about\
\ filter in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `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]`.\n * `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]`."
in: "query"
name: "expand"
schema:
type: "string"
- description: "Include the user's favorite filters in the response."
in: "query"
name: "includeFavourites"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "[{\"approximateLastUsed\":\"2023-03-01T13:15:00.000+0000\"\
,\"description\":\"Lists all open bugs\",\"favourite\":true,\"favouritedCount\"\
:0,\"id\":\"10000\",\"jql\":\"type = Bug and resolution is empty\"\
,\"name\":\"All Open Bugs\",\"owner\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"searchUrl\":\"https://your-domain.atlassian.net/rest/api/2/search?jql=type%20%3D%20Bug%20and%20resolutino%20is%20empty\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/10000\"\
,\"sharePermissions\":[],\"subscriptions\":{\"end-index\":0,\"items\"\
:[],\"max-results\":0,\"size\":0,\"start-index\":0},\"viewUrl\":\"\
https://your-domain.atlassian.net/issues/?filter=10000\"},{\"approximateLastUsed\"\
:null,\"description\":\"Issues assigned to me\",\"favourite\":true,\"\
favouritedCount\":0,\"id\":\"10010\",\"jql\":\"assignee = currentUser()\
\ and resolution is empty\",\"name\":\"My issues\",\"owner\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\",\"active\"\
:false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"searchUrl\":\"https://your-domain.atlassian.net/rest/api/2/search?jql=assignee+in+%28currentUser%28%29%29+and+resolution+is+empty\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/10010\"\
,\"sharePermissions\":[{\"id\":10000,\"type\":\"global\"},{\"id\"\
:10010,\"project\":{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"First Project Category\",\"id\":\"10000\",\"name\"\
:\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\"},\"type\":\"project\"\
}],\"subscriptions\":{\"end-index\":0,\"items\":[],\"max-results\"\
:0,\"size\":0,\"start-index\":0},\"viewUrl\":\"https://your-domain.atlassian.net/issues/?filter=10010\"\
}]"
schema:
items:
$ref: "#/components/schemas/Filter"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get my filters"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:filter:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:jql:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
state: "Beta"
/rest/api/2/filter/search:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of filters. Use this operation\
\ to get:\n\n * specific filters, by defining `id` only.\n * filters that\
\ match all of the specified attributes. For example, all filters for a user\
\ with a particular word in their name. When multiple attributes are specified\
\ only filters matching all attributes are returned.\n\nThis operation can\
\ be accessed anonymously.\n\n**[Permissions](#permissions) required:** None,\
\ however, only the following filters that match the query parameters are\
\ returned:\n\n * filters owned by the user.\n * filters shared with a group\
\ that the user is a member of.\n * filters shared with a private project\
\ that the user has *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for.\n * filters shared with a public project.\n * filters shared with\
\ the public."
operationId: "getFiltersPaginated"
parameters:
- description: "String used to perform a case-insensitive partial match with\
\ `name`."
in: "query"
name: "filterName"
schema:
type: "string"
- description: "User account ID used to return filters with the matching `owner.accountId`.\
\ This parameter cannot be used with `owner`."
in: "query"
name: "accountId"
schema:
maxLength: 128
minLength: 0
type: "string"
- description: "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`."
in: "query"
name: "owner"
schema:
type: "string"
- description: "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."
in: "query"
name: "groupname"
schema:
type: "string"
- description: "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."
in: "query"
name: "groupId"
schema:
type: "string"
- description: "Project ID used to returns filters that are shared with a project\
\ that matches `sharePermissions.project.id`."
in: "query"
name: "projectId"
schema:
format: "int64"
type: "integer"
- description: "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."
in: "query"
name: "id"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "[Order](#ordering) the results by a field:\n\n * `description`\
\ Sorts by filter description. Note that this sorting works independently\
\ of whether the expand to display the description field is in use.\n *\
\ `favourite_count` Sorts by the count of how many users have this filter\
\ as a favorite.\n * `is_favourite` Sorts by whether the filter is marked\
\ as a favorite.\n * `id` Sorts by filter ID.\n * `name` Sorts by filter\
\ name.\n * `owner` Sorts by the ID of the filter owner.\n * `is_shared`\
\ Sorts by whether the filter is shared."
in: "query"
name: "orderBy"
schema:
default: "name"
enum:
- "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"
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "Use [expand](#expansion) to include additional information about\
\ filter in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `description` Returns the description of\
\ the filter.\n * `favourite` Returns an indicator of whether the user\
\ has set the filter as a favorite.\n * `favouritedCount` Returns a count\
\ of how many users have set this filter as a favorite.\n * `jql` Returns\
\ the JQL query that the filter uses.\n * `owner` Returns the owner of\
\ the filter.\n * `searchUrl` Returns a URL to perform the filter's JQL\
\ query.\n * `sharePermissions` Returns the share permissions defined for\
\ the filter.\n * `editPermissions` Returns the edit permissions defined\
\ for the filter.\n * `isWritable` Returns whether the current user has\
\ permission to edit the filter.\n * `approximateLastUsed` \\[Experimental\\\
] Returns the approximate date and time when the filter was last evaluated.\n\
\ * `subscriptions` Returns the users that are subscribed to the filter.\n\
\ * `viewUrl` Returns a URL to view the filter."
in: "query"
name: "expand"
schema:
type: "string"
- description: "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)."
in: "query"
name: "overrideSharePermissions"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/search?accountId=&maxResults=50&filterName=&orderBy=name&startAt=0&expand=description,owner,jql,searchUrl,viewUrl,favourite,favouritedCount,sharePermissions,editPermissions,isWritable,subscriptions,approximateLastUsed\"\
,\"startAt\":0,\"total\":2,\"values\":[{\"approximateLastUsed\":\"\
2023-03-01T13:15:00.000+0000\",\"description\":\"Lists all open bugs\"\
,\"editPermissions\":[],\"expand\":\"description,owner,jql,searchUrl,viewUrl,favourite,favouritedCount,sharePermissions,editPermissions,isWritable,approximateLastUsed,subscriptions\"\
,\"favourite\":false,\"favouritedCount\":0,\"id\":\"10000\",\"jql\"\
:\"type = Bug and resolution is empty\",\"name\":\"All Open Bugs\"\
,\"owner\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"searchUrl\":\"https://your-domain.atlassian.net/rest/api/2/search?jql=type%20%3D%20Bug%20and%20resolutino%20is%20empty\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/10000\"\
,\"sharePermissions\":[],\"subscriptions\":[],\"viewUrl\":\"https://your-domain.atlassian.net/issues/?filter=10000\"\
},{\"approximateLastUsed\":null,\"description\":\"Issues assigned\
\ to me\",\"editPermissions\":[{\"id\":10010,\"project\":{\"avatarUrls\"\
:{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10002\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10002\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10002\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10002\"\
},\"deleted\":true,\"deletedBy\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"deletedDate\":\"2022-11-11T13:35:29.000+0000\",\"id\":\"10002\"\
,\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"MKY\",\"name\":\"Example\",\"\
projectCategory\":{\"description\":\"First Project Category\",\"id\"\
:\"10000\",\"name\":\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"retentionTillDate\":\"2023-01-10T13:35:29.000+0000\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/project/MKY\",\"simplified\"\
:false,\"style\":\"classic\"},\"role\":{\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
,\"name\":\"Developers\",\"id\":10360,\"description\":\"A project\
\ role that represents developers in a project\",\"actors\":[{\"actorGroup\"\
:{\"name\":\"jira-developers\",\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"},\"displayName\"\
:\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\",\"\
type\":\"atlassian-group-role-actor\"},{\"actorUser\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\"},\"displayName\":\"Mia Krystof\",\"\
id\":10241,\"type\":\"atlassian-user-role-actor\"}],\"scope\":{\"\
project\":{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"\
},\"type\":\"PROJECT\"}},\"type\":\"project\"},{\"group\":{\"groupId\"\
:\"276f955c-63d7-42c8-9520-92d01dca0625\",\"name\":\"jira-administrators\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
},\"id\":10010,\"type\":\"group\"}],\"expand\":\"description,owner,jql,searchUrl,viewUrl,favourite,favouritedCount,sharePermissions,editPermissions,isWritable,approximateLastUsed,subscriptions\"\
,\"favourite\":true,\"favouritedCount\":123,\"id\":\"10010\",\"jql\"\
:\"assignee = currentUser() and resolution is empty\",\"name\":\"\
My issues\",\"owner\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"searchUrl\":\"https://your-domain.atlassian.net/rest/api/2/search?jql=assignee+in+%28currentUser%28%29%29+and+resolution+is+empty\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/10010\"\
,\"sharePermissions\":[{\"id\":10000,\"type\":\"global\"},{\"id\"\
:10010,\"project\":{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"First Project Category\",\"id\":\"10000\",\"name\"\
:\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\"},\"type\":\"project\"\
}],\"subscriptions\":[{\"id\":1,\"user\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":true,\"applicationRoles\"\
:{\"items\":[],\"size\":1},\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"}}],\"viewUrl\":\"https://your-domain.atlassian.net/issues/?filter=10010\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanFilterDetails"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if:\n\n * `owner` and `accountId` are provided.\n\
\ * `expand` includes an invalid value.\n * `orderBy` is invalid.\n\
\ * `id` identifies more than 200 filter IDs."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Search for filters"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:filter:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:jql:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
state: "Beta"
/rest/api/2/filter/{id}:
delete:
deprecated: false
description: "Delete a filter.\n\n**[Permissions](#permissions) required:**\
\ Permission to access Jira, however filters can only be deleted by the creator\
\ of the filter or a user with *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteFilter"
parameters:
- description: "The ID of the filter to delete."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the filter is not found."
"401":
description: "Returned if the user does not have permission to delete the\
\ filter."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete filter"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:filter:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a filter.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** None, however, the filter is only\
\ returned where it is:\n\n * owned by the user.\n * shared with a group\
\ that the user is a member of.\n * shared with a private project that the\
\ user has *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for.\n * shared with a public project.\n * shared with the public."
operationId: "getFilter"
parameters:
- description: "The ID of the filter to return."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "Use [expand](#expansion) to include additional information about\
\ filter in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `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]`.\n * `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]`."
in: "query"
name: "expand"
schema:
type: "string"
- description: "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)."
in: "query"
name: "overrideSharePermissions"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"approximateLastUsed\":\"2023-03-01T13:15:00.000+0000\"\
,\"description\":\"Lists all open bugs\",\"favourite\":true,\"favouritedCount\"\
:0,\"id\":\"10000\",\"jql\":\"type = Bug and resolution is empty\"\
,\"name\":\"All Open Bugs\",\"owner\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"searchUrl\":\"https://your-domain.atlassian.net/rest/api/2/search?jql=type%20%3D%20Bug%20and%20resolutino%20is%20empty\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/10000\"\
,\"sharePermissions\":[],\"subscriptions\":{\"end-index\":0,\"items\"\
:[],\"max-results\":0,\"size\":0,\"start-index\":0},\"viewUrl\":\"\
https://your-domain.atlassian.net/issues/?filter=10000\"}"
schema:
$ref: "#/components/schemas/Filter"
description: "Returned if the request is successful."
"400":
description: "Returned if the filter is not found or the user does not have\
\ permission to view it."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get filter"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:filter:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:jql:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a filter. Use this operation to update a filter's name,\
\ description, JQL, or sharing.\n\n**[Permissions](#permissions) required:**\
\ Permission to access Jira, however the user must own the filter."
operationId: "updateFilter"
parameters:
- description: "The ID of the filter to update."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "Use [expand](#expansion) to include additional information about\
\ filter in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `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]`.\n * `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]`."
in: "query"
name: "expand"
schema:
type: "string"
- description: "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)."
in: "query"
name: "overrideSharePermissions"
schema:
default: false
type: "boolean"
requestBody:
content:
application/json:
example:
description: "Lists all open bugs"
jql: "type = Bug and resolution is empty"
name: "All Open Bugs"
schema:
$ref: "#/components/schemas/Filter"
description: "The filter to update."
required: true
responses:
"200":
content:
application/json:
example: "{\"approximateLastUsed\":\"2023-03-01T13:15:00.000+0000\"\
,\"description\":\"Lists all open bugs\",\"favourite\":true,\"favouritedCount\"\
:0,\"id\":\"10000\",\"jql\":\"type = Bug and resolution is empty\"\
,\"name\":\"All Open Bugs\",\"owner\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"searchUrl\":\"https://your-domain.atlassian.net/rest/api/2/search?jql=type%20%3D%20Bug%20and%20resolutino%20is%20empty\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/10000\"\
,\"sharePermissions\":[],\"subscriptions\":{\"end-index\":0,\"items\"\
:[],\"max-results\":0,\"size\":0,\"start-index\":0},\"viewUrl\":\"\
https://your-domain.atlassian.net/issues/?filter=10000\"}"
schema:
$ref: "#/components/schemas/Filter"
description: "Returned if the request is successful."
"400":
description: "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":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Update filter"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:filter:jira"
- "read:filter:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:jql:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
state: "Beta"
/rest/api/2/filter/{id}/columns:
delete:
deprecated: false
description: "Reset the user's column configuration for the filter to the default.\n\
\n**[Permissions](#permissions) required:** Permission to access Jira, however,\
\ columns are only reset for:\n\n * filters owned by the user.\n * filters\
\ shared with a group that the user is a member of.\n * filters shared with\
\ a private project that the user has *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for.\n * filters shared with a public project.\n * filters shared with\
\ the public."
operationId: "resetColumns"
parameters:
- description: "The ID of the filter."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * the filter is not found.\n * the user\
\ does not have permission to view the filter."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Reset columns"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "delete:filter.column:jira"
state: "Beta"
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
get:
deprecated: false
description: "Returns the columns configured for a filter. The column configuration\
\ is used when the filter's results are viewed in *List View* with the *Columns*\
\ set to *Filter*.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None, however, column details are only returned for:\n\n * \
\ filters owned by the user.\n * filters shared with a group that the user\
\ is a member of.\n * filters shared with a private project that the user\
\ has *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for.\n * filters shared with a public project.\n * filters shared with\
\ the public."
operationId: "getColumns"
parameters:
- description: "The ID of the filter."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "[{\"label\":\"Key\",\"value\":\"issuekey\"},{\"label\":\"\
Summary\",\"value\":\"summary\"}]"
schema:
items:
$ref: "#/components/schemas/ColumnItem"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if the user does not have permission to view the\
\ filter."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if a column configuration is not set for the filter."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get columns"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:filter.column:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the columns for a filter. Only navigable fields can be set\
\ as columns. Use [Get fields](#api-rest-api-2-field-get) to get the list\
\ fields in Jira. A navigable field has `navigable` set to `true`.\n\nThe\
\ parameters for this resource are expressed as HTML form data. For example,\
\ in curl:\n\n`curl -X PUT -d columns=summary -d columns=description https://your-domain.atlassian.net/rest/api/2/filter/10000/columns`\n\
\n**[Permissions](#permissions) required:** Permission to access Jira, however,\
\ columns are only set for:\n\n * filters owned by the user.\n * filters\
\ shared with a group that the user is a member of.\n * filters shared with\
\ a private project that the user has *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for.\n * filters shared with a public project.\n * filters shared with\
\ the public."
operationId: "setColumns"
parameters:
- description: "The ID of the filter."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
'*/*':
schema:
$ref: "#/components/schemas/ColumnRequestBody"
application/json:
schema:
$ref: "#/components/schemas/ColumnRequestBody"
multipart/form-data:
schema:
$ref: "#/components/schemas/ColumnRequestBody"
description: "The IDs of the fields to set as columns. In the form data, specify\
\ each field as `columns=id`, where `id` is the *id* of a field (as seen\
\ in the response for [Get fields](#api-rest-api--field-get)). For\
\ example, `columns=summary`."
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * a non-navigable field is set as a column.\n\
\ * the user does not have permission to view the filter."
"403":
description: "Returned if the requesting user is not an owner of the filter."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Set columns"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:filter.column:jira"
state: "Beta"
/rest/api/2/filter/{id}/favourite:
delete:
deprecated: false
description: "Removes a filter as a favorite for the user. Note that this operation\
\ only removes filters visible to the user from the user's favorites list.\
\ For example, if the user favorites a public filter that is subsequently\
\ made private (and is therefore no longer visible on their favorites list)\
\ they cannot remove it from their favorites list.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "deleteFavouriteForFilter"
parameters:
- description: "The ID of the filter."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "Use [expand](#expansion) to include additional information about\
\ filter in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `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]`.\n * `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]`."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"approximateLastUsed\":\"2023-03-01T13:15:00.000+0000\"\
,\"description\":\"Lists all open bugs\",\"favourite\":true,\"favouritedCount\"\
:0,\"id\":\"10000\",\"jql\":\"type = Bug and resolution is empty\"\
,\"name\":\"All Open Bugs\",\"owner\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"searchUrl\":\"https://your-domain.atlassian.net/rest/api/2/search?jql=type%20%3D%20Bug%20and%20resolutino%20is%20empty\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/10000\"\
,\"sharePermissions\":[],\"subscriptions\":{\"end-index\":0,\"items\"\
:[],\"max-results\":0,\"size\":0,\"start-index\":0},\"viewUrl\":\"\
https://your-domain.atlassian.net/issues/?filter=10000\"}"
schema:
$ref: "#/components/schemas/Filter"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * the filter is not found.\n * the user\
\ does not have permission to view the filter."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Remove filter as favorite"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:filter:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:filter:jira"
- "read:group:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-role:jira"
- "read:project-version:jira"
- "read:project.component:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
put:
deprecated: false
description: "Add a filter as a favorite for the user.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira, however, the user can only favorite:\n\
\n * filters owned by the user.\n * filters shared with a group that the\
\ user is a member of.\n * filters shared with a private project that the\
\ user has *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for.\n * filters shared with a public project.\n * filters shared with\
\ the public."
operationId: "setFavouriteForFilter"
parameters:
- description: "The ID of the filter."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "Use [expand](#expansion) to include additional information about\
\ filter in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `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]`.\n * `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]`."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"approximateLastUsed\":\"2023-03-01T13:15:00.000+0000\"\
,\"description\":\"Lists all open bugs\",\"favourite\":true,\"favouritedCount\"\
:0,\"id\":\"10000\",\"jql\":\"type = Bug and resolution is empty\"\
,\"name\":\"All Open Bugs\",\"owner\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"searchUrl\":\"https://your-domain.atlassian.net/rest/api/2/search?jql=type%20%3D%20Bug%20and%20resolutino%20is%20empty\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/filter/10000\"\
,\"sharePermissions\":[],\"subscriptions\":{\"end-index\":0,\"items\"\
:[],\"max-results\":0,\"size\":0,\"start-index\":0},\"viewUrl\":\"\
https://your-domain.atlassian.net/issues/?filter=10000\"}"
schema:
$ref: "#/components/schemas/Filter"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * the filter is not found.\n * the user\
\ does not have permission to favorite the filter."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Add filter as favorite"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:filter:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "write:filter:jira"
- "read:jql:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
state: "Beta"
/rest/api/2/filter/{id}/owner:
put:
deprecated: false
description: "Changes the owner of the filter.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira. However, the user must own the filter\
\ or have the *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "changeFilterOwner"
parameters:
- description: "The ID of the filter to update."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
accountId: "0000-0000-0000-0000"
schema:
$ref: "#/components/schemas/ChangeFilterOwner"
description: "The account ID of the new owner of the filter."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned when:\n\n * The new owner of the filter owns a filter\
\ with the same name.\n * An attempt is made to change owner of the default\
\ filter."
"403":
description: "Returned if the requesting user is not an owner of the filter\
\ or does not have *Administer Jira* global permission."
"404":
description: "Returned if the filter or the new owner of the filter is not\
\ found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Change filter owner"
tags:
- "Filters"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:filter:jira"
- "write:filter:jira"
state: "Beta"
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
x-experimental: true
/rest/api/2/filter/{id}/permission:
get:
deprecated: false
description: "Returns the share permissions for a filter. A filter can be shared\
\ with groups, projects, all logged-in users, or the public. Sharing with\
\ all logged-in users or the public is known as a global share permission.\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None, however, share permissions are only returned for:\n\n\
\ * filters owned by the user.\n * filters shared with a group that the\
\ user is a member of.\n * filters shared with a private project that the\
\ user has *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for.\n * filters shared with a public project.\n * filters shared with\
\ the public."
operationId: "getSharePermissions"
parameters:
- description: "The ID of the filter."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "[{\"id\":10000,\"type\":\"global\"},{\"id\":10010,\"project\"\
:{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"First Project Category\",\"id\":\"10000\",\"name\"\
:\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\"},\"type\":\"project\"\
},{\"id\":10010,\"project\":{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10002\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10002\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10002\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10002\"\
},\"deleted\":true,\"deletedBy\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"deletedDate\":\"2022-11-11T13:35:29.000+0000\",\"id\":\"10002\"\
,\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"MKY\",\"name\":\"Example\",\"\
projectCategory\":{\"description\":\"First Project Category\",\"id\"\
:\"10000\",\"name\":\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"retentionTillDate\":\"2023-01-10T13:35:29.000+0000\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/project/MKY\",\"simplified\"\
:false,\"style\":\"classic\"},\"role\":{\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
,\"name\":\"Developers\",\"id\":10360,\"description\":\"A project\
\ role that represents developers in a project\",\"actors\":[{\"actorGroup\"\
:{\"name\":\"jira-developers\",\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"},\"displayName\"\
:\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\",\"\
type\":\"atlassian-group-role-actor\"},{\"actorUser\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\"},\"displayName\":\"Mia Krystof\",\"\
id\":10241,\"type\":\"atlassian-user-role-actor\"}],\"scope\":{\"\
project\":{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"\
},\"type\":\"PROJECT\"}},\"type\":\"project\"},{\"group\":{\"groupId\"\
:\"276f955c-63d7-42c8-9520-92d01dca0625\",\"name\":\"jira-administrators\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
},\"id\":10010,\"type\":\"group\"}]"
schema:
items:
$ref: "#/components/schemas/SharePermission"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the filter is not found.\n * the user\
\ does not have permission to view the filter."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get share permissions"
tags:
- "Filter sharing"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:filter:jira"
- "read:group:jira"
- "read:project:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-role:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
post:
deprecated: false
description: "Add a share permissions to a filter. If you add a global share\
\ permission (one for all logged-in users or the public) it will overwrite\
\ all share permissions for the filter.\n\nBe aware that this operation uses\
\ different objects for updating share permissions compared to [Update filter](#api-rest-api-2-filter-id-put).\n\
\n**[Permissions](#permissions) required:** *Share dashboards and filters*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg) and the user\
\ must own the filter."
operationId: "addSharePermission"
parameters:
- description: "The ID of the filter."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
groupname: "jira-administrators"
rights: 1
type: "group"
schema:
$ref: "#/components/schemas/SharePermissionInputBean"
required: true
responses:
"201":
content:
application/json:
example: "[{\"id\":10000,\"type\":\"global\"},{\"id\":10010,\"project\"\
:{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"First Project Category\",\"id\":\"10000\",\"name\"\
:\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\"},\"type\":\"project\"\
},{\"id\":10010,\"project\":{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10002\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10002\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10002\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10002\"\
},\"deleted\":true,\"deletedBy\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"deletedDate\":\"2022-11-11T13:35:29.000+0000\",\"id\":\"10002\"\
,\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"MKY\",\"name\":\"Example\",\"\
projectCategory\":{\"description\":\"First Project Category\",\"id\"\
:\"10000\",\"name\":\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"retentionTillDate\":\"2023-01-10T13:35:29.000+0000\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/project/MKY\",\"simplified\"\
:false,\"style\":\"classic\"},\"role\":{\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
,\"name\":\"Developers\",\"id\":10360,\"description\":\"A project\
\ role that represents developers in a project\",\"actors\":[{\"actorGroup\"\
:{\"name\":\"jira-developers\",\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"},\"displayName\"\
:\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\",\"\
type\":\"atlassian-group-role-actor\"},{\"actorUser\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\"},\"displayName\":\"Mia Krystof\",\"\
id\":10241,\"type\":\"atlassian-user-role-actor\"}],\"scope\":{\"\
project\":{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"\
},\"type\":\"PROJECT\"}},\"type\":\"project\"},{\"group\":{\"groupId\"\
:\"276f955c-63d7-42c8-9520-92d01dca0625\",\"name\":\"jira-administrators\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
},\"id\":10010,\"type\":\"group\"}]"
schema:
items:
$ref: "#/components/schemas/SharePermission"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * 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.\n * the user does not own the filter.\n\
\ * the user does not have the required permissions."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the filter is not found.\n * the user\
\ does not have permission to view the filter."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Add share permission"
tags:
- "Filter sharing"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:filter:jira"
- "read:filter:jira"
- "read:group:jira"
- "read:project:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-role:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
/rest/api/2/filter/{id}/permission/{permissionId}:
delete:
deprecated: false
description: "Deletes a share permission from a filter.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira and the user must own the filter."
operationId: "deleteSharePermission"
parameters:
- description: "The ID of the filter."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the share permission."
in: "path"
name: "permissionId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the filter is not found.\n * the user\
\ does not own the filter."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete share permission"
tags:
- "Filter sharing"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:filter:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a share permission for a filter. A filter can be shared\
\ with groups, projects, all logged-in users, or the public. Sharing with\
\ all logged-in users or the public is known as a global share permission.\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None, however, a share permission is only returned for:\n\n\
\ * filters owned by the user.\n * filters shared with a group that the\
\ user is a member of.\n * filters shared with a private project that the\
\ user has *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for.\n * filters shared with a public project.\n * filters shared with\
\ the public."
operationId: "getSharePermission"
parameters:
- description: "The ID of the filter."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the share permission."
in: "path"
name: "permissionId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"id\":10000,\"type\":\"global\"}"
schema:
$ref: "#/components/schemas/SharePermission"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the filter is not found.\n * the permission\
\ is not found.\n * the user does not have permission to view the filter."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get share permission"
tags:
- "Filter sharing"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:filter:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type-hierarchy:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
/rest/api/2/group:
delete:
deprecated: false
description: "Deletes a group.\n\n**[Permissions](#permissions) required:**\
\ Site administration (that is, member of the *site-admin* strategic [group](https://confluence.atlassian.com/x/24xjL))."
operationId: "removeGroup"
parameters:
- in: "query"
name: "groupname"
schema:
type: "string"
- description: "The ID of the group. This parameter cannot be used with the\
\ `groupname` parameter."
in: "query"
name: "groupId"
schema:
type: "string"
x-showInExample: "true"
- description: "As a group's name can change, use of `swapGroupId` is recommended\
\ to identify a group. \nThe 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."
in: "query"
name: "swapGroup"
schema:
type: "string"
- description: "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."
in: "query"
name: "swapGroupId"
schema:
type: "string"
responses:
"200":
description: "Returned if the request is successful."
"400":
description: "Returned if the group name is not specified."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing from the request."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the group is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Remove group"
tags:
- "Groups"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:group:jira"
state: "Beta"
get:
deprecated: true
description: "This operation is deprecated, use [`group/member`](#api-rest-api-2-group-member-get).\n\
\nReturns all users in a group.\n\n**[Permissions](#permissions) required:**\
\ either of:\n\n * *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg).\n\
\ * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getGroup"
parameters:
- description: "As a group's name can change, use of `groupId` is recommended\
\ to identify a group. \nThe name of the group. This parameter cannot be\
\ used with the `groupId` parameter."
in: "query"
name: "groupname"
schema:
type: "string"
- description: "The ID of the group. This parameter cannot be used with the\
\ `groupName` parameter."
in: "query"
name: "groupId"
schema:
type: "string"
x-showInExample: "true"
- description: "List of fields to expand."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Group"
description: "Returned if the request is successful."
"400":
description: "Returned if the group name is not specified."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the calling user does not have the Administer\
\ Jira global permission."
"404":
description: "Returned if the group is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
summary: "Get group"
tags:
- "Groups"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
- "read:user:jira"
- "read:avatar:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a group.\n\n**[Permissions](#permissions) required:**\
\ Site administration (that is, member of the *site-admin* [group](https://confluence.atlassian.com/x/24xjL))."
operationId: "createGroup"
parameters: []
requestBody:
content:
application/json:
example:
name: "power-users"
schema:
$ref: "#/components/schemas/AddGroupBean"
description: "The name of the group."
required: true
responses:
"201":
content:
application/json:
example: "{\"expand\":\"users\",\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\"\
,\"name\":\"power-users\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
,\"users\":{\"end-index\":0,\"items\":[{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}],\"max-results\":50,\"size\":1,\"start-index\":0}}"
schema:
$ref: "#/components/schemas/Group"
description: "Returned if the request is successful."
"400":
description: "Returned if group name is not specified or the group name\
\ is in use."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create group"
tags:
- "Groups"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
- "read:user:jira"
- "write:group:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/group/bulk:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of groups.\n\n**[Permissions](#permissions)\
\ required:** *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "bulkGetGroups"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The ID of a group. To specify multiple IDs, pass multiple `groupId`\
\ parameters. For example, `groupId=5b10a2844c20165700ede21g&groupId=5b10ac8d82e05b22cc7d4ef5`."
in: "query"
name: "groupId"
schema:
example: "3571b9a7-348f-414a-9087-8e1ea03a7df8"
items:
default: ""
example: "3571b9a7-348f-414a-9087-8e1ea03a7df8"
type: "string"
type: "array"
uniqueItems: true
x-showInExample: "true"
- description: "The name of a group. To specify multiple names, pass multiple\
\ `groupName` parameters. For example, `groupName=administrators&groupName=jira-software-users`."
in: "query"
name: "groupName"
schema:
items:
default: ""
type: "string"
type: "array"
uniqueItems: true
- description: "The access level of a group. Valid values: 'site-admin', 'admin',\
\ 'user'."
in: "query"
name: "accessType"
schema:
type: "string"
- description: "The application key of the product user groups to search for.\
\ Valid values: 'jira-servicedesk', 'jira-software', 'jira-product-discovery',\
\ 'jira-core'."
in: "query"
name: "applicationKey"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":10,\"startAt\":0,\"total\"\
:2,\"values\":[{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\"\
,\"name\":\"jdog-developers\"},{\"groupId\":\"6e87dc72-4f1f-421f-9382-2fee8b652487\"\
,\"name\":\"juvenal-bot\"}]}"
schema:
$ref: "#/components/schemas/PageBeanGroupDetails"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Browse users and groups permission is\
\ required to view groups.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permission."
"500":
content:
application/json:
example: "{\"errorMessages\":[\"Couldn't retrieve groups with the site-admin\
\ accessType.\"],\"errors\":{}}"
description: "Returned if the group with the given access level can't be\
\ retrieved."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
summary: "Bulk get groups"
tags:
- "Groups"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
state: "Beta"
x-experimental: true
/rest/api/2/group/member:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of all users in a group.\n\
\nNote that users are ordered by username, however the username is not returned\
\ in the results due to privacy reasons.\n\n**[Permissions](#permissions)\
\ required:** either of:\n\n * *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg).\n\
\ * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getUsersFromGroup"
parameters:
- description: "As a group's name can change, use of `groupId` is recommended\
\ to identify a group. \nThe name of the group. This parameter cannot be\
\ used with the `groupId` parameter."
in: "query"
name: "groupname"
schema:
type: "string"
- description: "The ID of the group. This parameter cannot be used with the\
\ `groupName` parameter."
in: "query"
name: "groupId"
schema:
type: "string"
x-showInExample: "true"
- description: "Include inactive users."
in: "query"
name: "includeInactiveUsers"
schema:
default: false
type: "boolean"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":2,\"nextPage\":\"https://your-domain.atlassian.net/rest/api/2/group/member?groupId=276f955c-63d7-42c8-9520-92d01dca0625&includeInactiveUsers=false&startAt=4&maxResults=2\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/group/member?groupId=276f955c-63d7-42c8-9520-92d01dca0625&includeInactiveUsers=false&startAt=2&maxResults=2\"\
,\"startAt\":3,\"total\":5,\"values\":[{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":true,\"avatarUrls\":{},\"\
displayName\":\"Mia\",\"emailAddress\":\"mia@example.com\",\"key\"\
:\"\",\"name\":\"\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},{\"accountId\":\"5b10a0effa615349cb016cd8\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{},\"\
displayName\":\"Will\",\"emailAddress\":\"will@example.com\",\"key\"\
:\"\",\"name\":\"\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a0effa615349cb016cd8\"\
,\"timeZone\":\"Australia/Sydney\"}]}"
schema:
$ref: "#/components/schemas/PageBeanUserDetails"
description: "Returned if the request is successful."
"400":
description: "Returned if the group name is not specified."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the calling user does not have the Administer\
\ Jira global permission."
"404":
description: "Returned if the group is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get users from group"
tags:
- "Groups"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
- "read:user:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/group/user:
delete:
deprecated: false
description: "Removes a user from a group.\n\n**[Permissions](#permissions)\
\ required:** Site administration (that is, member of the *site-admin* [group](https://confluence.atlassian.com/x/24xjL))."
operationId: "removeUserFromGroup"
parameters:
- description: "As a group's name can change, use of `groupId` is recommended\
\ to identify a group. \nThe name of the group. This parameter cannot be\
\ used with the `groupId` parameter."
in: "query"
name: "groupname"
schema:
type: "string"
- description: "The ID of the group. This parameter cannot be used with the\
\ `groupName` parameter."
in: "query"
name: "groupId"
schema:
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
in: "query"
name: "accountId"
required: true
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
responses:
"200":
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * `groupName` is missing.\n * `accountId`\
\ is missing."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing from the request."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the group or user are not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Remove user from group"
tags:
- "Groups"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:group:jira"
state: "Beta"
post:
deprecated: false
description: "Adds a user to a group.\n\n**[Permissions](#permissions) required:**\
\ Site administration (that is, member of the *site-admin* [group](https://confluence.atlassian.com/x/24xjL))."
operationId: "addUserToGroup"
parameters:
- description: "As a group's name can change, use of `groupId` is recommended\
\ to identify a group. \nThe name of the group. This parameter cannot be\
\ used with the `groupId` parameter."
in: "query"
name: "groupname"
schema:
type: "string"
- description: "The ID of the group. This parameter cannot be used with the\
\ `groupName` parameter."
in: "query"
name: "groupId"
schema:
type: "string"
x-showInExample: "true"
requestBody:
content:
application/json:
example:
accountId: "5b10ac8d82e05b22cc7d4ef5"
schema:
$ref: "#/components/schemas/UpdateUserToGroupBean"
description: "The user to add to the group."
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/Group"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * `groupname` is not provided.\n * `accountId`\
\ is missing."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing from the request."
"403":
description: "Returned if the calling user does not have the necessary permission."
"404":
description: "Returned if the group or user are not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Add user to group"
tags:
- "Groups"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:group:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/groups/picker:
get:
deprecated: false
description: "Returns a list of groups whose names contain a query string. A\
\ list of group names can be provided to exclude groups from the results.\n\
\nThe primary use case for this resource is to populate a group picker suggestions\
\ list. To this end, the returned object includes the `html` field where the\
\ matched query term is highlighted in the group name with the HTML strong\
\ tag. Also, the groups list is wrapped in a response object that contains\
\ a header for use in the picker, specifically *Showing X of Y matching groups*.\n\
\nThe list returns with the groups sorted. If no groups match the list criteria,\
\ an empty list is returned.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg).\
\ Anonymous calls and calls by users without the required permission return\
\ an empty list.\n\n*Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg).\
\ Without this permission, calls where query is not an exact match to an existing\
\ group will return an empty list."
operationId: "findGroups"
parameters:
- description: "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-2-user-groups-get)."
in: "query"
name: "accountId"
schema:
type: "string"
- description: "The string to find in group names."
in: "query"
name: "query"
schema:
example: "query"
type: "string"
- description: "As a group's name can change, use of `excludeGroupIds` is recommended\
\ to identify a group. \nA 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."
in: "query"
name: "exclude"
schema:
items:
type: "string"
type: "array"
- description: "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."
in: "query"
name: "excludeId"
schema:
items:
type: "string"
type: "array"
- description: "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`."
in: "query"
name: "maxResults"
schema:
format: "int32"
type: "integer"
- description: "Whether the search for groups should be case insensitive."
in: "query"
name: "caseInsensitive"
schema:
default: false
type: "boolean"
- description: "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."
in: "query"
name: "userName"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"groups\":[{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\"\
,\"html\":\"jdog-developers\",\"name\":\"jdog-developers\"\
},{\"groupId\":\"6e87dc72-4f1f-421f-9382-2fee8b652487\",\"html\":\"\
juvenal-bot\",\"name\":\"juvenal-bot\"}],\"header\":\"Showing\
\ 20 of 25 matching groups\",\"total\":25}"
schema:
$ref: "#/components/schemas/FoundGroups"
description: "Returned if the request is successful."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Find groups"
tags:
- "Groups"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
state: "Beta"
/rest/api/2/groupuserpicker:
get:
deprecated: false
description: "Returns a list of users and groups matching a string. The string\
\ is used:\n\n * for users, to find a case-insensitive match with display\
\ name and e-mail address. Note that 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.\n * for groups, to find a case-sensitive\
\ match with group name.\n\nFor example, if the string *tin* is used, records\
\ with the display name *Tina*, email address *sarah@tinplatetraining.com*,\
\ and the group *accounting* would be returned.\n\nOptionally, the search\
\ can be refined to:\n\n * the projects and issue types associated with a\
\ custom field, such as a user picker. The search can then be further refined\
\ to return only users and groups that have permission to view specific:\n\
\ \n * projects.\n * issue types.\n \n If multiple projects\
\ or issue types are specified, they must be a subset of those enabled for\
\ the custom field or no results are returned. For example, if a field is\
\ enabled for projects A, B, and C then the search could be limited to projects\
\ B and C. However, if the search is limited to projects B and D, nothing\
\ is returned.\n * not return Connect app users and groups.\n * return groups\
\ that have a case-insensitive match with the query.\n\nThe primary use case\
\ for this resource is to populate a picker field suggestion list with users\
\ or groups. To this end, the returned object includes an `html` field for\
\ each list. This field highlights the matched query term in the item name\
\ with the HTML strong tag. Also, each list is wrapped in a response object\
\ that contains a header for use in a picker, specifically *Showing X of Y\
\ matching groups*.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Browse users and groups* [global permission](https://confluence.atlassian.com/x/yodKLg)."
operationId: "findUsersAndGroups"
parameters:
- description: "The search string."
in: "query"
name: "query"
required: true
schema:
type: "string"
- description: "The maximum number of items to return in each list."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "Whether the user avatar should be returned. If an invalid value\
\ is provided, the default value is used."
in: "query"
name: "showAvatar"
schema:
default: false
type: "boolean"
- description: "The custom field ID of the field this request is for."
in: "query"
name: "fieldId"
schema:
type: "string"
- description: "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."
in: "query"
name: "projectId"
schema:
items:
type: "string"
type: "array"
- description: "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."
in: "query"
name: "issueTypeId"
schema:
items:
type: "string"
type: "array"
- description: "The size of the avatar to return. If an invalid value is provided,\
\ the default value is used."
in: "query"
name: "avatarSize"
schema:
default: "xsmall"
enum:
- "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"
type: "string"
- description: "Whether the search for groups should be case insensitive."
in: "query"
name: "caseInsensitive"
schema:
default: false
type: "boolean"
- description: "Whether Connect app users and groups should be excluded from\
\ the search results. If an invalid value is provided, the default value\
\ is used."
in: "query"
name: "excludeConnectAddons"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"groups\":{\"groups\":[{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\"\
,\"html\":\"jdog-developers\",\"name\":\"jdog-developers\"\
},{\"groupId\":\"6e87dc72-4f1f-421f-9382-2fee8b652487\",\"html\":\"\
juvenal-bot\",\"name\":\"juvenal-bot\"}],\"header\":\"Showing\
\ 20 of 25 matching groups\",\"total\":25},\"users\":{\"header\":\"\
Showing 20 of 25 matching groups\",\"total\":25,\"users\":[{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\",\"avatarUrl\"\
:\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"displayName\":\"Mia Krystof\",\"html\":\"Mia Krystof\
\ - mia@example.com (mia)\",\"key\"\
:\"mia\",\"name\":\"mia\"}]}}"
schema:
$ref: "#/components/schemas/FoundUsersAndGroups"
description: "Returned if the request is successful."
"400":
description: "Returned if the query parameter is not provided."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"429":
description: "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."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Find users and groups"
tags:
- "Group and user picker"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/instance/license:
get:
deprecated: false
description: "Returns licensing information about the Jira instance.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getLicense"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"applications\":[{\"id\":\"jira-core\",\"plan\":\"PAID\"\
},{\"id\":\"jira-servicedesk\",\"plan\":\"FREE\"},{\"id\":\"jira-software\"\
,\"plan\":\"PAID\"},{\"id\":\"jira-product-discovery\",\"plan\":\"\
FREE\"}]}"
schema:
$ref: "#/components/schemas/License"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get license"
tags:
- "License metrics"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:license:jira"
state: "Beta"
x-experimental: true
/rest/api/2/issue:
post:
deprecated: false
description: "Creates an issue or, where the option to create subtasks is enabled\
\ in Jira, a subtask. A transition may be applied, to move the issue or subtask\
\ to a workflow step other than the default start step, and issue properties\
\ set.\n\nThe content of the issue or subtask is defined using `update` and\
\ `fields`. The fields that can be set in the issue or subtask are determined\
\ using the [ Get create issue metadata](#api-rest-api-2-issue-createmeta-get).\
\ These are the same fields that appear on the issue's create screen.\n\n\
Creating a subtask differs from creating an issue as follows:\n\n * `issueType`\
\ must be set to a subtask issue type (use [ Get create issue metadata](#api-rest-api-2-issue-createmeta-get)\
\ to find subtask issue types).\n * `parent` must contain the ID or key of\
\ the parent issue.\n\n**[Permissions](#permissions) required:** *Browse projects*\
\ and *Create issues* [project permissions](https://confluence.atlassian.com/x/yodKLg)\
\ for the project in which the issue or subtask is created."
operationId: "createIssue"
parameters:
- description: "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."
in: "query"
name: "updateHistory"
schema:
default: false
type: "boolean"
requestBody:
content:
application/json:
example:
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: "Occurs on all orders"
customfield_50000: "Could impact day-to-day work."
customfield_60000: "jira-software-users"
customfield_70000:
- "jira-administrators"
- "jira-software-users"
customfield_80000:
value: "red"
description: "Order entry fails when selecting supplier."
duedate: "2019-03-11"
environment: "UAT"
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:
worklog:
- add:
started: "2019-07-05T11:05:00.000+0000"
timeSpent: "60m"
schema:
$ref: "#/components/schemas/IssueUpdateDetails"
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"10000\",\"key\":\"ED-24\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10000\"\
,\"transition\":{\"status\":200,\"errorCollection\":{\"errorMessages\"\
:[],\"errors\":{}}}}"
schema:
$ref: "#/components/schemas/CreatedIssue"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Field 'priority' is required\"],\"errors\"\
:{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request:\n\n * is missing required fields.\n\
\ * contains invalid field values.\n * contains fields that cannot be\
\ set for the issue type.\n * is by a user who does not have the necessary\
\ permission.\n * is to create a subtype in a project different that\
\ of the parent issue.\n * is for a subtask when the option to create\
\ subtasks is disabled.\n * is invalid for any other reason."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
"422":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if a configuration problem prevents the creation\
\ of the issue. (refer to the [changelog](https://developer.atlassian.com/changelog/#CHANGE-1364)\
\ *for more details.*"
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Create issue"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
- "write:comment:jira"
- "write:comment.property:jira"
- "write:attachment:jira"
- "read:issue:jira"
state: "Beta"
/rest/api/2/issue/archive:
post:
deprecated: false
description: "Enables admins to archive up to 100,000 issues in a single request\
\ using JQL, returning the URL to check the status of the submitted request.\n\
\nYou can use the [get task](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-tasks/#api-rest-api-3-task-taskid-get)\
\ and [cancel task](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-tasks/#api-rest-api-3-task-taskid-cancel-post)\
\ APIs to manage the request.\n\n**Note that:**\n\n * you can't archive subtasks\
\ directly, only through their parent issues\n * you can only archive issues\
\ from software, service management, and business projects\n\n**[Permissions](#permissions)\
\ required:** Jira admin or site admin: [global permission](https://confluence.atlassian.com/x/x4dKLg)\n\
\n**License required:** Premium or Enterprise\n\n**Signed-in users only:**\
\ This API can't be accessed anonymously.\n\n**Rate limiting:** Only a single\
\ request per jira instance can be active at any given time.\n\n \n"
operationId: "archiveIssuesAsync"
parameters: []
requestBody:
content:
application/json:
example:
jql: "project = FOO AND updated < -2y"
schema:
$ref: "#/components/schemas/ArchiveIssueAsyncRequest"
description: "A JQL query specifying the issues to archive. Note that subtasks\
\ can only be archived through their parent issues."
required: true
responses:
"202":
content:
application/json:
example: "\"https://your-domain.atlassian.net/rest/api/2/task/1010\""
schema:
type: "string"
description: "Returns the URL to check the status of the submitted request."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Invalid JQL. Bad request.\"],\"errors\"\
:{}}"
description: "Returned if no issues were archived due to a bad request,\
\ for example an invalid JQL query."
"401":
content:
application/json:
example: "{\"errorMessages\":[\"User is not logged in.\"],\"errors\"\
:{}}"
description: "Returned if no issues were archived because the provided authentication\
\ credentials are either missing or invalid."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Archiving issues is only available for\
\ premium editions of Jira.\"],\"errors\":{}}"
description: "Returned if no issues were archived because the user lacks\
\ the required Jira admin or site admin permissions."
"412":
content:
application/json:
example: "{\"errorMessages\":[\"An issue archival task is already running\
\ with ID 1010. To start a new one, cancel the task or wait for it\
\ to finish.\"],\"errors\":{}}"
description: "Returned if a request to archive issue(s) is already running."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Archive issue(s) by JQL"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
state: "Beta"
x-experimental: true
put:
deprecated: false
description: "Enables admins to archive up to 1000 issues in a single request\
\ using issue ID/key, returning details of the issue(s) archived in the process\
\ and the errors encountered, if any.\n\n**Note that:**\n\n * you can't archive\
\ subtasks directly, only through their parent issues\n * you can only archive\
\ issues from software, service management, and business projects\n\n**[Permissions](#permissions)\
\ required:** Jira admin or site admin: [global permission](https://confluence.atlassian.com/x/x4dKLg)\n\
\n**License required:** Premium or Enterprise\n\n**Signed-in users only:**\
\ This API can't be accessed anonymously.\n\n \n"
operationId: "archiveIssues"
parameters: []
requestBody:
content:
application/json:
example:
issueIdsOrKeys:
- "PR-1"
- "1001"
- "PROJECT-2"
schema:
$ref: "#/components/schemas/IssueArchivalSyncRequest"
description: "Contains a list of issue keys or IDs to be archived."
required: true
responses:
"200":
content:
application/json:
example: "{\"errors\":{\"issueIsSubtask\":{\"count\":3,\"issueIdsOrKeys\"\
:[\"ST-1\",\"ST-2\",\"ST-3\"],\"message\":\"Issue is subtask.\"},\"\
issuesInArchivedProjects\":{\"count\":2,\"issueIdsOrKeys\":[\"AR-1\"\
,\"AR-2\"],\"message\":\"Issue exists in archived project.\"},\"issuesInUnlicensedProjects\"\
:{\"count\":3,\"issueIdsOrKeys\":[\"UL-1\",\"UL-2\",\"UL-3\"],\"message\"\
:\"Issues with these IDs are in unlicensed projects.\"},\"issuesNotFound\"\
:{\"count\":3,\"issueIdsOrKeys\":[\"PR-1\",\"PR-2\",\"PR-3\"],\"message\"\
:\"Issue not found.\"}},\"numberOfIssuesUpdated\":10}"
schema:
$ref: "#/components/schemas/IssueArchivalSyncResponse"
description: "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."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"No valid issue to archive or unarchive.\
\ Bad request.\"],\"errors\":{}}"
description: "Returned if none of the issues in the request can be archived.\
\ Possible reasons:\n\n * the issues weren't found\n * the issues are\
\ subtasks\n * the issues belong to unlicensed projects\n * the issues\
\ belong to archived projects"
"401":
content:
application/json:
example: "{\"errorMessages\":[\"User is not logged in.\"],\"errors\"\
:{}}"
description: "Returned if no issues were archived because the provided authentication\
\ credentials are either missing or invalid."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only admins can archive or unarchive\
\ issues. Access denied.\"],\"errors\":{}}"
description: "Returned if no issues were archived because the user lacks\
\ the required Jira admin or site admin permissions."
"412":
content:
application/json:
example: "{\"errorMessages\":[\"The number of issues to archive or unarchive\
\ exceeds the hard limit of 1000. Precondition failed.\"],\"errors\"\
:{}}"
description: "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."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Archive issue(s) by issue ID/key"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
state: "Beta"
x-experimental: true
/rest/api/2/issue/bulk:
post:
deprecated: false
description: "Creates upto **50** issues and, where the option to create subtasks\
\ is enabled in Jira, subtasks. Transitions may be applied, to move the issues\
\ or subtasks to a workflow step other than the default start step, and issue\
\ properties set.\n\nThe content of each issue or subtask is defined using\
\ `update` and `fields`. The fields that can be set in the issue or subtask\
\ are determined using the [ Get create issue metadata](#api-rest-api-2-issue-createmeta-get).\
\ These are the same fields that appear on the issues' create screens.\n\n\
Creating a subtask differs from creating an issue as follows:\n\n * `issueType`\
\ must be set to a subtask issue type (use [ Get create issue metadata](#api-rest-api-2-issue-createmeta-get)\
\ to find subtask issue types).\n * `parent` the must contain the ID or key\
\ of the parent issue.\n\n**[Permissions](#permissions) required:** *Browse\
\ projects* and *Create issues* [project permissions](https://confluence.atlassian.com/x/yodKLg)\
\ for the project in which each issue or subtask is created."
operationId: "createIssues"
parameters: []
requestBody:
content:
application/json:
example:
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: "Occurs on all orders"
customfield_50000: "Could impact day-to-day work."
customfield_60000: "jira-software-users"
customfield_70000:
- "jira-administrators"
- "jira-software-users"
customfield_80000:
value: "red"
description: "Order entry fails when selecting supplier."
duedate: "2019-03-11"
environment: "UAT"
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:
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: "Occurs on all orders"
customfield_50000: "Could impact day-to-day work."
customfield_60000: "jira-software-users"
customfield_70000:
- "jira-administrators"
- "jira-software-users"
customfield_80000:
value: "red"
description: "Order remains pending after approved."
duedate: "2019-04-16"
environment: "UAT"
fixVersions:
- id: "10001"
issuetype:
id: "10000"
labels:
- "new_release"
parent:
id: "10034"
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: {}
schema:
$ref: "#/components/schemas/IssuesUpdateBean"
required: true
responses:
"201":
content:
application/json:
example: "{\"issues\":[{\"id\":\"10000\",\"key\":\"ED-24\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/issue/10000\",\"transition\"\
:{\"status\":200,\"errorCollection\":{\"errorMessages\":[],\"errors\"\
:{}}}},{\"id\":\"10001\",\"key\":\"ED-25\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10001\"\
}],\"errors\":[]}"
schema:
$ref: "#/components/schemas/CreatedIssues"
description: "Returned if any of the issue or subtask creation requests\
\ were successful. A request may be unsuccessful when it:\n\n * is missing\
\ required fields.\n * contains invalid field values.\n * contains fields\
\ that cannot be set for the issue type.\n * is by a user who does not\
\ have the necessary permission.\n * is to create a subtype in a project\
\ different that of the parent issue.\n * is for a subtask when the option\
\ to create subtasks is disabled.\n * is invalid for any other reason."
"400":
content:
application/json:
example: "{\"issues\":[],\"errors\":[{\"elementErrors\":{\"errorMessages\"\
:[],\"errors\":{\"issuetype\":\"The issue type selected is invalid.\"\
,\"project\":\"Sub-tasks must be created in the same project as the\
\ parent.\"}},\"failedElementNumber\":0,\"status\":400},{\"elementErrors\"\
:{\"errorMessages\":[],\"errors\":{\"issuetype\":\"The issue type\
\ selected is invalid.\",\"project\":\"Sub-tasks must be created in\
\ the same project as the parent.\"}},\"failedElementNumber\":1,\"\
status\":400}]}"
schema:
$ref: "#/components/schemas/CreatedIssues"
description: "Returned if all requests are invalid. Requests may be unsuccessful\
\ when they:\n\n * are missing required fields.\n * contain invalid\
\ field values.\n * contain fields that cannot be set for the issue type.\n\
\ * are by a user who does not have the necessary permission.\n * are\
\ to create a subtype in a project different that of the parent issue.\n\
\ * is for a subtask when the option to create subtasks is disabled.\n\
\ * are invalid for any other reason."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Bulk create issue"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
- "write:comment:jira"
- "write:comment.property:jira"
- "write:attachment:jira"
- "read:issue:jira"
state: "Beta"
/rest/api/2/issue/createmeta:
get:
deprecated: true
description: "Returns details of projects, issue types within projects, and,\
\ when requested, the create screen fields for each issue type for the user.\
\ Use the information to populate the requests in [ Create issue](#api-rest-api-2-issue-post)\
\ and [Create issues](#api-rest-api-2-issue-bulk-post).\n\nDeprecated, see\
\ [Create Issue Meta Endpoint Deprecation Notice](https://developer.atlassian.com/cloud/jira/platform/changelog/#CHANGE-1304).\n\
\nThe request can be restricted to specific projects or issue types using\
\ the query parameters. The response will contain information for the valid\
\ projects, issue types, or project and issue type combinations requested.\
\ Note that invalid project, issue type, or project and issue type combinations\
\ do not generate errors.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** *Create issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ in the requested projects."
operationId: "getCreateIssueMeta"
parameters:
- description: "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`."
in: "query"
name: "projectIds"
schema:
items:
type: "string"
type: "array"
- description: "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`."
in: "query"
name: "projectKeys"
schema:
items:
type: "string"
type: "array"
- description: "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`."
in: "query"
name: "issuetypeIds"
schema:
items:
type: "string"
type: "array"
- description: "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`."
in: "query"
name: "issuetypeNames"
schema:
items:
type: "string"
type: "array"
- description: "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-2-issue-post) and [Create issues](#api-rest-api-2-issue-bulk-post)."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"projects\":[{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000&avatarId=10011\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000&avatarId=10011\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000&avatarId=10011\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?pid=10000&avatarId=10011\"\
},\"id\":\"10000\",\"issuetypes\":[{\"description\":\"An error in\
\ the code\",\"fields\":{\"issuetype\":{\"allowedValues\":[\"set\"\
],\"autoCompleteUrl\":\"issuetype\",\"hasDefaultValue\":false,\"key\"\
:\"issuetype\",\"name\":\"Issue Type\",\"required\":true}},\"iconUrl\"\
:\"https://your-domain.atlassian.net/images/icons/issuetypes/bug.png\"\
,\"id\":\"1\",\"name\":\"Bug\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/1\"\
,\"subtask\":false}],\"key\":\"ED\",\"name\":\"Edison Project\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/project/ED\"\
}]}"
schema:
$ref: "#/components/schemas/IssueCreateMetadata"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get create issue metadata"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-meta:jira"
- "read:avatar:jira"
- "read:field-configuration:jira"
state: "Beta"
x-changes:
- announced: "2023-12-11"
details: "https://developer.atlassian.com/cloud/jira/platform/changelog/#CHANGE-1304"
effective: "2024-06-03"
type: "removed"
/rest/api/2/issue/createmeta/{projectIdOrKey}/issuetypes:
get:
deprecated: false
description: "Returns a page of issue type metadata for a specified project.\
\ Use the information to populate the requests in [ Create issue](#api-rest-api-2-issue-post)\
\ and [Create issues](#api-rest-api-2-issue-bulk-post).\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ *Create issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ in the requested projects."
operationId: "getCreateIssueMetaIssueTypes"
parameters:
- description: "The ID or key of the project."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
maximum: 200
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"issueTypes\":[{\"description\":\"An error in the code\"\
,\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/issuetypes/bug.png\"\
,\"id\":\"1\",\"name\":\"Bug\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/1\"\
,\"subtask\":false}],\"maxResults\":1,\"startAt\":0,\"total\":1}"
schema:
$ref: "#/components/schemas/PageOfCreateMetaIssueTypes"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Parameter 'maxResults' must not exceed\
\ the limit '200'\"],\"errors\":{},\"httpStatusCode\":{\"empty\":false,\"\
present\":true}}"
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get create metadata issue types for a project"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-meta:jira"
- "read:avatar:jira"
- "read:field-configuration:jira"
state: "Beta"
/rest/api/2/issue/createmeta/{projectIdOrKey}/issuetypes/{issueTypeId}:
get:
deprecated: false
description: "Returns a page of field metadata for a specified project and issuetype\
\ id. Use the information to populate the requests in [ Create issue](#api-rest-api-2-issue-post)\
\ and [Create issues](#api-rest-api-2-issue-bulk-post).\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ *Create issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ in the requested projects."
operationId: "getCreateIssueMetaIssueTypeId"
parameters:
- description: "The ID or key of the project."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The issuetype ID."
in: "path"
name: "issueTypeId"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
maximum: 200
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"fields\":[{\"fieldId\":\"assignee\",\"hasDefaultValue\"\
:false,\"key\":\"assignee\",\"name\":\"Assignee\",\"operations\":[\"\
set\"],\"required\":true}],\"maxResults\":1,\"startAt\":0,\"total\"\
:1}"
schema:
$ref: "#/components/schemas/PageOfCreateMetaIssueTypeWithField"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Parameter 'maxResults' must not exceed\
\ the limit '200'\"],\"errors\":{},\"httpStatusCode\":{\"empty\":false,\"\
present\":true}}"
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get create field metadata for a project and issue type id"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-meta:jira"
- "read:avatar:jira"
- "read:field-configuration:jira"
state: "Beta"
/rest/api/2/issue/limit/report:
get:
deprecated: false
description: "Returns all issues breaching and approaching per-issue limits.\n\
\n**[Permissions](#permissions) required:**\n\n * *Browse projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) is required for the\
\ project the issues are in. Results may be incomplete otherwise\n * *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueLimitReport"
parameters: []
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/IssueLimitReportRequest"
required: true
responses:
"200":
content:
application/json:
example: "{\"issuesApproachingLimit\":{\"attachment\":{\"15070\":1822,\"\
15111\":1999},\"comment\":{\"10000\":4997,\"15073\":4999,\"15110\"\
:5000},\"remoteIssueLinks\":{\"15107\":2000},\"worklog\":{\"15101\"\
:4342}},\"issuesBreachingLimit\":{\"attachment\":{\"15057\":2005,\"\
15116\":2065,\"15117\":3005},\"comment\":{\"15055\":5202},\"issuelinks\"\
:{\"15058\":2120},\"remoteIssueLinks\":{\"15059\":2094},\"worklog\"\
:{\"15056\":5085,\"15169\":120864}},\"limits\":{\"attachment\":2000,\"\
comment\":5000,\"issuelinks\":2000,\"remoteIssueLinks\":2000,\"worklog\"\
:5000}}"
schema:
$ref: "#/components/schemas/IssueLimitReportResponseBean"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid. Other possible reasons:\n\
\n * the field queried is not supported\n * the threshold is not within\
\ the supported range"
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to complete\
\ this request."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get issue limit report"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:issue:jira"
state: "Beta"
x-experimental: true
/rest/api/2/issue/picker:
get:
deprecated: false
description: "Returns lists of issues matching a query string. Use this resource\
\ to provide auto-completion suggestions when the user is looking for an issue\
\ using a word or string.\n\nThis operation returns two lists:\n\n * `History\
\ Search` which includes issues from the user's history of created, edited,\
\ or viewed issues that contain the string in the `query` parameter.\n * \
\ `Current Search` which includes issues that match the JQL expression in\
\ `currentJQL` and contain the string in the `query` parameter.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ None."
operationId: "getIssuePickerResource"
parameters:
- description: "A string to match against text fields in the issue such as title,\
\ description, or comments."
in: "query"
name: "query"
schema:
example: "query"
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "currentJQL"
schema:
type: "string"
- description: "The key of an issue to exclude from search results. For example,\
\ the issue the user is viewing when they perform this query."
in: "query"
name: "currentIssueKey"
schema:
type: "string"
- description: "The ID of a project that suggested issues must belong to."
in: "query"
name: "currentProjectId"
schema:
type: "string"
- description: "Indicate whether to include subtasks in the suggestions list."
in: "query"
name: "showSubTasks"
schema:
type: "boolean"
- description: "When `currentIssueKey` is a subtask, whether to include the\
\ parent issue in the suggestions if it matches the query."
in: "query"
name: "showSubTaskParent"
schema:
type: "boolean"
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/IssuePickerSuggestions"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue picker suggestions"
tags:
- "Issue search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-details:jira"
state: "Beta"
/rest/api/2/issue/properties:
post:
deprecated: false
description: "Sets or updates a list of entity property values on issues. A\
\ list of up to 10 entity properties can be specified along with up to 10,000\
\ issues on which to set or update that list of entity properties.\n\nThe\
\ value of the request body must be a [valid](http://tools.ietf.org/html/rfc4627),\
\ non-empty JSON. The maximum length of single issue property value is 32768\
\ characters. This operation can be accessed anonymously.\n\nThis operation\
\ is:\n\n * transactional, either all properties are updated in all eligible\
\ issues or, when errors occur, no properties are updated.\n * [asynchronous](#async).\
\ Follow the `location` link in the response to determine the status of the\
\ task and use [Get task](#api-rest-api-2-task-taskId-get) to obtain subsequent\
\ updates.\n\n**[Permissions](#permissions) required:**\n\n * *Browse projects*\
\ and *Edit issues* [project permissions](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the issue.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "bulkSetIssuesPropertiesList"
parameters: []
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/IssueEntityProperties"
description: "Issue properties to be set or updated with values."
required: true
responses:
"303":
description: "Returned if the operation is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Return if the request is invalid or the user does not have\
\ the necessary permission."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
summary: "Bulk set issues properties by list"
tags:
- "Issue properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue.property:jira"
state: "Beta"
/rest/api/2/issue/properties/multi:
post:
deprecated: false
description: "Sets or updates entity property values on issues. Up to 10 entity\
\ properties can be specified for each issue and up to 100 issues included\
\ in the request.\n\nThe value of the request body must be a [valid](http://tools.ietf.org/html/rfc4627),\
\ non-empty JSON.\n\nThis operation is:\n\n * [asynchronous](#async). Follow\
\ the `location` link in the response to determine the status of the task\
\ and use [Get task](#api-rest-api-2-task-taskId-get) to obtain subsequent\
\ updates.\n * non-transactional. Updating some entities may fail. Such information\
\ will available in the task result.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse projects* and *Edit issues* [project permissions](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the issue.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "bulkSetIssuePropertiesByIssue"
parameters: []
requestBody:
content:
application/json:
example:
issues:
- issueID: 1000
properties:
myProperty:
owner: "admin"
weight: 100
- issueID: 1001
properties:
myOtherProperty:
cost: 150
transportation: "car"
schema:
$ref: "#/components/schemas/MultiIssueEntityProperties"
description: "Details of the issue properties to be set or updated. Note that\
\ if an issue is not found, it is ignored."
required: true
responses:
"303":
description: "Returned if the operation is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Return if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Return if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
summary: "Bulk set issue properties by issue"
tags:
- "Issue properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue.property:jira"
state: "Beta"
/rest/api/2/issue/properties/{propertyKey}:
delete:
deprecated: false
description: "Deletes a property value from multiple issues. The issues to be\
\ updated can be specified by filter criteria.\n\nThe criteria the filter\
\ used to identify eligible issues are:\n\n * `entityIds` Only issues from\
\ this list are eligible.\n * `currentValue` Only issues with the property\
\ set to this value are eligible.\n\nIf both criteria is specified, they are\
\ joined with the logical *AND*: only issues that satisfy both criteria are\
\ considered eligible.\n\nIf no filter criteria are specified, all the issues\
\ visible to the user and where the user has the EDIT\\_ISSUES permission\
\ for the issue are considered eligible.\n\nThis operation is:\n\n * transactional,\
\ either the property is deleted from all eligible issues or, when errors\
\ occur, no properties are deleted.\n * [asynchronous](#async). Follow the\
\ `location` link in the response to determine the status of the task and\
\ use [Get task](#api-rest-api-2-task-taskId-get) to obtain subsequent updates.\n\
\n**[Permissions](#permissions) required:**\n\n * *Browse projects* [ project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for each project\
\ containing issues.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * *Edit\
\ issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for each issue."
operationId: "bulkDeleteIssueProperty"
parameters:
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
currentValue: "deprecated value"
entityIds:
- 10100
- 100010
schema:
$ref: "#/components/schemas/IssueFilterForBulkPropertyDelete"
required: true
responses:
"303":
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
summary: "Bulk delete issue property"
tags:
- "Issue properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue.property:jira"
state: "Beta"
put:
deprecated: false
description: "Sets a property value on multiple issues.\n\nThe value set can\
\ be a constant or determined by a [Jira expression](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/).\
\ Expressions must be computable with constant complexity when applied to\
\ a set of issues. Expressions must also comply with the [restrictions](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/#restrictions)\
\ that apply to all Jira expressions.\n\nThe issues to be updated can be specified\
\ by a filter.\n\nThe filter identifies issues eligible for update using these\
\ criteria:\n\n * `entityIds` Only issues from this list are eligible.\n\
\ * `currentValue` Only issues with the property set to this value are eligible.\n\
\ * `hasProperty`:\n \n * If *true*, only issues with the property\
\ are eligible.\n * If *false*, only issues without the property are\
\ eligible.\n\nIf more than one criteria is specified, they are joined with\
\ the logical *AND*: only issues that satisfy all criteria are eligible.\n\
\nIf an invalid combination of criteria is provided, an error is returned.\
\ For example, specifying a `currentValue` and `hasProperty` as *false* would\
\ not match any issues (because without the property the property cannot have\
\ a value).\n\nThe filter is optional. Without the filter all the issues visible\
\ to the user and where the user has the EDIT\\_ISSUES permission for the\
\ issue are considered eligible.\n\nThis operation is:\n\n * transactional,\
\ either all eligible issues are updated or, when errors occur, none are updated.\n\
\ * [asynchronous](#async). Follow the `location` link in the response to\
\ determine the status of the task and use [Get task](#api-rest-api-2-task-taskId-get)\
\ to obtain subsequent updates.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for each project containing issues.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * *Edit\
\ issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for each issue."
operationId: "bulkSetIssueProperty"
parameters:
- description: "The key of the property. The maximum length is 255 characters."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
filter:
currentValue:
owner: "admin"
weight: 50
entityIds:
- 10100
- 100010
hasProperty: true
value:
owner: "admin"
weight: 100
schema:
$ref: "#/components/schemas/BulkIssuePropertyUpdateRequest"
required: true
responses:
"303":
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
summary: "Bulk set issue property"
tags:
- "Issue properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:jira-expressions:jira"
- "write:issue.property:jira"
state: "Beta"
/rest/api/2/issue/unarchive:
put:
deprecated: false
description: "Enables admins to unarchive up to 1000 issues in a single request\
\ using issue ID/key, returning details of the issue(s) unarchived in the\
\ process and the errors encountered, if any.\n\n**Note that:**\n\n * you\
\ can't unarchive subtasks directly, only through their parent issues\n *\
\ you can only unarchive issues from software, service management, and business\
\ projects\n\n**[Permissions](#permissions) required:** Jira admin or site\
\ admin: [global permission](https://confluence.atlassian.com/x/x4dKLg)\n\n\
**License required:** Premium or Enterprise\n\n**Signed-in users only:** This\
\ API can't be accessed anonymously.\n\n \n"
operationId: "unarchiveIssues"
parameters: []
requestBody:
content:
application/json:
example:
issueIdsOrKeys:
- "PR-1"
- "1001"
- "PROJECT-2"
schema:
$ref: "#/components/schemas/IssueArchivalSyncRequest"
description: "Contains a list of issue keys or IDs to be unarchived."
required: true
responses:
"200":
content:
application/json:
example: "{\"errors\":{\"issueIsSubtask\":{\"count\":3,\"issueIdsOrKeys\"\
:[\"ST-1\",\"ST-2\",\"ST-3\"],\"message\":\"Issue is subtask.\"},\"\
issuesInArchivedProjects\":{\"count\":2,\"issueIdsOrKeys\":[\"AR-1\"\
,\"AR-2\"],\"message\":\"Issue exists in archived project.\"},\"issuesNotFound\"\
:{\"count\":3,\"issueIdsOrKeys\":[\"PR-1\",\"PR-2\",\"PR-3\"],\"message\"\
:\"Issue not found.\"}},\"numberOfIssuesUpdated\":10}"
schema:
$ref: "#/components/schemas/IssueArchivalSyncResponse"
description: "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."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"No valid issue to archive or unarchive.\
\ Bad request.\"],\"errors\":{}}"
description: "Returned if none of the issues in the request are eligible\
\ to be unarchived. Possible reasons:\n\n * the issues weren't found\n\
\ * the issues are subtasks\n * the issues belong to archived projects"
"401":
content:
application/json:
example: "{\"errorMessages\":[\"User is not logged in.\"],\"errors\"\
:{}}"
description: "Returned if no issues were unarchived because the provided\
\ authentication credentials are either missing or invalid."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only admins can archive or unarchive\
\ issues. Access denied.\"],\"errors\":{}}"
description: "Returned if no issues were unarchived because the user lacks\
\ the required Jira admin or site admin permissions."
"412":
content:
application/json:
example: "{\"errorMessages\":[\"The number of issues to archive or unarchive\
\ exceeds the hard limit of 1000. Precondition failed.\"],\"errors\"\
:{}}"
description: "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."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Unarchive issue(s) by issue keys/ID"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
state: "Beta"
x-experimental: true
/rest/api/2/issue/watching:
post:
deprecated: false
description: "Returns, for the user, details of the watched status of issues\
\ from a list. If an issue ID is invalid, the returned watched status is `false`.\n\
\nThis operation requires the **Allow users to watch issues** option to be\
\ *ON*. This option is set in General configuration for Jira. See [Configuring\
\ Jira application options](https://confluence.atlassian.com/x/uYXKM) for\
\ details.\n\n**[Permissions](#permissions) required:**\n\n * *Browse projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for the\
\ project that the issue is in\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "getIsWatchingIssueBulk"
parameters: []
requestBody:
content:
application/json:
example:
issueIds:
- "10001"
- "10002"
- "10005"
schema:
$ref: "#/components/schemas/IssueList"
description: "A list of issue IDs."
required: true
responses:
"200":
content:
application/json:
example: "{\"issuesIsWatching\":{\"10001\":true,\"10002\":false,\"10005\"\
:true}}"
schema:
$ref: "#/components/schemas/BulkIssueIsWatching"
description: "Returned if the request is successful"
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get is watching issue bulk"
tags:
- "Issue watchers"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue.watcher:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}:
delete:
deprecated: false
description: "Deletes an issue.\n\nAn issue cannot be deleted if it has one\
\ or more subtasks. To delete an issue with subtasks, set `deleteSubtasks`.\
\ This causes the issue's subtasks to be deleted with the issue.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse projects* and *Delete issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the issue.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "deleteIssue"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "Whether the issue's subtasks are deleted when the issue is deleted."
in: "query"
name: "deleteSubtasks"
schema:
default: "false"
enum:
- "true"
- "false"
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the issue has subtasks and `deleteSubtasks` is\
\ not set to *true*."
"401":
description: "Returned if the authentication credentials are incorrect."
"403":
description: "Returned if the user does not have permission to delete the\
\ issue."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view the issue."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete issue"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the details for an issue.\n\nThe issue is identified by\
\ its ID or key, however, if the identifier doesn't match an issue, a case-insensitive\
\ search and check for moved issues is performed. If a matching issue is found\
\ its details are returned, a 302 or other redirect is **not** returned. The\
\ issue key returned in the response is the key of the issue found.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "getIssue"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "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:\n\n * `*all` Returns all fields.\n * `*navigable` Returns navigable\
\ fields.\n * Any issue field, prefixed with a minus to exclude.\n\nExamples:\n\
\n * `summary,comment` Returns only the summary and comments fields.\n\
\ * `-description` Returns all (default) fields except description.\n *\
\ `*navigable,-comment` Returns all navigable fields except comment.\n\n\
This parameter may be specified multiple times. For example, `fields=field1,field2&\
\ fields=field3`.\n\nNote: All fields are returned by default. This differs\
\ from [Search for issues using JQL (GET)](#api-rest-api-2-search-get) and\
\ [Search for issues using JQL (POST)](#api-rest-api-2-search-post) where\
\ the default is all navigable fields."
in: "query"
name: "fields"
schema:
items:
default: "*all"
type: "string"
type: "array"
- description: "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."
in: "query"
name: "fieldsByKeys"
schema:
default: false
type: "boolean"
- description: "Use [expand](#expansion) to include additional information about\
\ the issues in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `renderedFields` Returns field values rendered\
\ in HTML format.\n * `names` Returns the display name of each field.\n\
\ * `schema` Returns the schema describing a field type.\n * `transitions`\
\ Returns all possible transitions for the issue.\n * `editmeta` Returns\
\ information about how each field can be edited.\n * `changelog` Returns\
\ a list of recent updates to an issue, sorted by date, starting from the\
\ most recent.\n * `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."
in: "query"
name: "expand"
schema:
type: "string"
- description: "A list of issue properties to return for the issue. This parameter\
\ accepts a comma-separated list. Allowed values:\n\n * `*all` Returns\
\ all issue properties.\n * Any issue property key, prefixed with a minus\
\ to exclude.\n\nExamples:\n\n * `*all` Returns all properties.\n * `*all,-prop1`\
\ Returns all properties except `prop1`.\n * `prop1,prop2` Returns `prop1`\
\ and `prop2` properties.\n\nThis parameter may be specified multiple times.\
\ For example, `properties=prop1,prop2& properties=prop3`."
in: "query"
name: "properties"
schema:
items:
default: "null"
type: "string"
type: "array"
- description: "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-2-search-get)\
\ `lastViewed` field."
in: "query"
name: "updateHistory"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"fields\":{\"watcher\":{\"isWatching\":false,\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/issue/EX-1/watchers\"\
,\"watchCount\":1,\"watchers\":[{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}]},\"attachment\":[{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"content\":\"https://your-domain.atlassian.net/jira/rest/api/3/attachment/content/10001\"\
,\"created\":\"2023-06-24T19:24:50.000+0000\",\"filename\":\"debuglog.txt\"\
,\"id\":10001,\"mimeType\":\"text/plain\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/attachments/10001\"\
,\"size\":2460}],\"sub-tasks\":[{\"id\":\"10000\",\"outwardIssue\"\
:{\"fields\":{\"status\":{\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/statuses/open.png\"\
,\"name\":\"Open\"}},\"id\":\"10003\",\"key\":\"ED-2\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/issue/ED-2\"},\"type\"\
:{\"id\":\"10000\",\"inward\":\"Parent\",\"name\":\"\",\"outward\"\
:\"Sub-task\"}}],\"description\":\"Main order flow broken\",\"project\"\
:{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"First Project Category\",\"id\":\"10000\",\"name\"\
:\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\"},\"comment\":[{\"author\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\"\
:\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"body\":\"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.\",\"created\":\"2021-01-17T12:34:00.000+0000\",\"id\":\"\
10000\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/comment/10000\"\
,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\"\
:false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"Administrators\",\"type\":\"role\",\"value\":\"Administrators\"\
}}],\"issuelinks\":[{\"id\":\"10001\",\"outwardIssue\":{\"fields\"\
:{\"status\":{\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/statuses/open.png\"\
,\"name\":\"Open\"}},\"id\":\"10004L\",\"key\":\"PR-2\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/issue/PR-2\"},\"type\"\
:{\"id\":\"10000\",\"inward\":\"depends on\",\"name\":\"Dependent\"\
,\"outward\":\"is depended by\"}},{\"id\":\"10002\",\"inwardIssue\"\
:{\"fields\":{\"status\":{\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/statuses/open.png\"\
,\"name\":\"Open\"}},\"id\":\"10004\",\"key\":\"PR-3\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/issue/PR-3\"},\"type\"\
:{\"id\":\"10000\",\"inward\":\"depends on\",\"name\":\"Dependent\"\
,\"outward\":\"is depended by\"}}],\"worklog\":[{\"author\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\":\"\
Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"comment\":\"I did some work here.\",\"id\":\"100028\",\"issueId\"\
:\"10002\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/worklog/10000\"\
,\"started\":\"2021-01-17T12:34:00.000+0000\",\"timeSpent\":\"3h 20m\"\
,\"timeSpentSeconds\":12000,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"type\":\"\
group\",\"value\":\"jira-developers\"}}],\"updated\":1,\"timetracking\"\
:{\"originalEstimate\":\"10m\",\"originalEstimateSeconds\":600,\"\
remainingEstimate\":\"3m\",\"remainingEstimateSeconds\":200,\"timeSpent\"\
:\"6m\",\"timeSpentSeconds\":400}},\"id\":\"10002\",\"key\":\"ED-1\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10002\"\
}"
schema:
$ref: "#/components/schemas/IssueBean"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-meta:jira"
- "read:issue-security-level:jira"
- "read:issue.vote:jira"
- "read:issue.changelog:jira"
- "read:avatar:jira"
- "read:issue:jira"
- "read:status:jira"
- "read:user:jira"
- "read:field-configuration:jira"
state: "Beta"
put:
deprecated: false
description: "Edits an issue. Issue properties may be updated as part of the\
\ edit. Please note that issue transition will be ignored as it is not supported\
\ yet.\n\nThe edits to the issue's fields are defined using `update` and `fields`.\
\ The fields that can be edited are determined using [ Get edit issue metadata](#api-rest-api-2-issue-issueIdOrKey-editmeta-get).\n\
\nThe parent field may be set by key or ID. For standard issue types, the\
\ parent may be removed by setting `update.parent.set.none` to *true*.\n\n\
Connect apps having an app user 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), can override the\
\ screen security configuration using `overrideScreenSecurity` and `overrideEditableFlag`.\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* and *Edit issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "editIssue"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "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."
in: "query"
name: "notifyUsers"
schema:
default: true
type: "boolean"
- description: "Whether screen security is overridden to enable hidden fields\
\ to be edited. Available to Connect 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)."
in: "query"
name: "overrideScreenSecurity"
schema:
default: false
type: "boolean"
- description: "Whether screen security is overridden to enable uneditable fields\
\ to be edited. Available to Connect 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)."
in: "query"
name: "overrideEditableFlag"
schema:
default: false
type: "boolean"
- description: "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)."
in: "query"
name: "returnIssue"
schema:
default: false
type: "boolean"
- description: "The Get issue API expand parameter to use in the response if\
\ the `returnIssue` parameter is `true`."
in: "query"
name: "expand"
schema:
default: ""
type: "string"
requestBody:
content:
application/json:
example:
fields:
customfield_10000: "Investigation underway"
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"
schema:
$ref: "#/components/schemas/IssueUpdateDetails"
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the request is successful and the `returnIssue`\
\ parameter is `true`"
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * the request body is missing.\n * the\
\ user does not have the necessary permission to edit one or more fields.\n\
\ * the request includes one or more fields that are not found or are\
\ not associated with the issue's edit screen.\n * the request includes\
\ an invalid transition."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user uses `overrideScreenSecurity` or `overrideEditableFlag`\
\ but doesn't have the necessary permission."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view it."
"409":
description: "Returned if the issue could not be updated due to a conflicting\
\ update. (refer to the [changelog](https://developer.atlassian.com/changelog/#CHANGE-1364)\
\ *for more details.*"
"422":
description: "Returned if a configuration problem prevents the issue being\
\ updated. (refer to the [changelog](https://developer.atlassian.com/changelog/#CHANGE-1364)\
\ *for more details.*"
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Edit issue"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/assignee:
put:
deprecated: false
description: "Assigns an issue to a user. Use this operation when the calling\
\ user does not have the *Edit Issues* permission but has the *Assign issue*\
\ permission for the project that the issue is in.\n\nIf `name` or `accountId`\
\ is set to:\n\n * `\"-1\"`, the issue is assigned to the default assignee\
\ for the project.\n * `null`, the issue is set to unassigned.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse Projects* and *Assign Issues* [ project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "assignIssue"
parameters:
- description: "The ID or key of the issue to be assigned."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
accountId: "5b10ac8d82e05b22cc7d4ef5"
schema:
$ref: "#/components/schemas/User"
description: "The request object with the user that the issue is assigned\
\ to."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * the user is not found.\n * `name`, `key`,\
\ or `accountId` is missing.\n * more than one of `name`, `key`, and\
\ `accountId` are provided."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the issue is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Assign issue"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/attachments:
post:
deprecated: false
description: "Adds one or more attachments to an issue. Attachments are posted\
\ as multipart/form-data ([RFC 1867](https://www.ietf.org/rfc/rfc1867.txt)).\n\
\nNote that:\n\n * The request must have a `X-Atlassian-Token: no-check`\
\ header, if not it is blocked. See [Special headers](#special-request-headers)\
\ for more information.\n * The name of the multipart/form-data parameter\
\ that contains the attachments must be `file`.\n\nThe following examples\
\ upload a file called *myfile.txt* to the issue *TEST-123*:\n\n#### curl\
\ ####\n\n curl --location --request POST 'https://your-domain.atlassian.net/rest/api/2/issue/TEST-123/attachments'\n\
\ -u 'email@example.com:'\n -H 'X-Atlassian-Token: no-check'\n\
\ --form 'file=@\"myfile.txt\"'\n\n#### Node.js ####\n\n // This code\
\ sample uses the 'node-fetch' and 'form-data' libraries:\n // https://www.npmjs.com/package/node-fetch\n\
\ // https://www.npmjs.com/package/form-data\n const fetch = require('node-fetch');\n\
\ const FormData = require('form-data');\n const fs = require('fs');\n\
\ \n const filePath = 'myfile.txt';\n const form = new FormData();\n\
\ const stats = fs.statSync(filePath);\n const fileSizeInBytes = stats.size;\n\
\ const fileStream = fs.createReadStream(filePath);\n \n form.append('file',\
\ fileStream, {knownLength: fileSizeInBytes});\n \n fetch('https://your-domain.atlassian.net/rest/api/2/issue/TEST-123/attachments',\
\ {\n method: 'POST',\n body: form,\n headers: {\n\
\ 'Authorization': `Basic ${Buffer.from(\n 'email@example.com:'\n\
\ ).toString('base64')}`,\n 'Accept': 'application/json',\n\
\ 'X-Atlassian-Token': 'no-check'\n }\n })\n \
\ .then(response => {\n console.log(\n `Response:\
\ ${response.status} ${response.statusText}`\n );\n \
\ return response.text();\n })\n .then(text => console.log(text))\n\
\ .catch(err => console.error(err));\n\n#### Java ####\n\n // This\
\ code sample uses the 'Unirest' library:\n // http://unirest.io/java.html\n\
\ HttpResponse response = Unirest.post(\"https://your-domain.atlassian.net/rest/api/2/issue/{issueIdOrKey}/attachments\"\
)\n .basicAuth(\"email@example.com\", \"\")\n .header(\"\
Accept\", \"application/json\")\n .header(\"X-Atlassian-Token\"\
, \"no-check\")\n .field(\"file\", new File(\"myfile.txt\"))\n\
\ .asJson();\n \n System.out.println(response.getBody());\n\
\n#### Python ####\n\n # This code sample uses the 'requests' library:\n\
\ # http://docs.python-requests.org\n import requests\n from requests.auth\
\ import HTTPBasicAuth\n import json\n \n url = \"https://your-domain.atlassian.net/rest/api/2/issue/{issueIdOrKey}/attachments\"\
\n \n auth = HTTPBasicAuth(\"email@example.com\", \"\")\n \n \
\ headers = {\n \"Accept\": \"application/json\",\n \"X-Atlassian-Token\"\
: \"no-check\"\n }\n \n response = requests.request(\n \"\
POST\",\n url,\n headers = headers,\n auth = auth,\n\
\ files = {\n \"file\": (\"myfile.txt\", open(\"myfile.txt\"\
,\"rb\"), \"application-type\")\n }\n )\n \n print(json.dumps(json.loads(response.text),\
\ sort_keys=True, indent=4, separators=(\",\", \": \")))\n\n#### PHP ####\n\
\n // This code sample uses the 'Unirest' library:\n // http://unirest.io/php.html\n\
\ Unirest\\Request::auth('email@example.com', '');\n \n $headers\
\ = array(\n 'Accept' => 'application/json',\n 'X-Atlassian-Token'\
\ => 'no-check'\n );\n \n $parameters = array(\n 'file' =>\
\ File::add('myfile.txt')\n );\n \n $response = Unirest\\Request::post(\n\
\ 'https://your-domain.atlassian.net/rest/api/2/issue/{issueIdOrKey}/attachments',\n\
\ $headers,\n $parameters\n );\n \n var_dump($response)\n\
\n#### Forge ####\n\n // This sample uses Atlassian Forge and the `form-data`\
\ library.\n // https://developer.atlassian.com/platform/forge/\n \
\ // https://www.npmjs.com/package/form-data\n import api from \"@forge/api\"\
;\n import FormData from \"form-data\";\n \n const form = new FormData();\n\
\ form.append('file', fileStream, {knownLength: fileSizeInBytes});\n \
\ \n const response = await api.asApp().requestJira('/rest/api/2/issue/{issueIdOrKey}/attachments',\
\ {\n method: 'POST',\n body: form,\n headers: {\n\
\ 'Accept': 'application/json',\n 'X-Atlassian-Token':\
\ 'no-check'\n }\n });\n \n console.log(`Response: ${response.status}\
\ ${response.statusText}`);\n console.log(await response.json());\n\n\
Tip: Use a client library. Many client libraries have classes for handling\
\ multipart POST operations. For example, in Java, the Apache HTTP Components\
\ library provides a [MultiPartEntity](http://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntity.html)\
\ class for multipart POST operations.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** \n\n * *Browse Projects* and\
\ *Create attachments* [ project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "addAttachment"
parameters:
- description: "The ID or key of the issue that attachments are added to."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
requestBody:
content:
multipart/form-data:
schema:
items:
$ref: "#/components/schemas/MultipartFile"
type: "array"
required: true
responses:
"200":
content:
application/json:
example: "[{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"\
active\":true,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"content\":\"https://your-domain.atlassian.net/rest/api/2/attachment/content/10000\"\
,\"created\":1651316514000,\"filename\":\"picture.jpg\",\"id\":\"\
10001\",\"mimeType\":\"image/jpeg\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/attachments/10000\"\
,\"size\":23123,\"thumbnail\":\"https://your-domain.atlassian.net/rest/api/2/attachment/thumbnail/10000\"\
},{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\"\
:true,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"content\":\"https://your-domain.atlassian.net/rest/api/2/attachment/content/10001\"\
,\"created\":1658898511000,\"filename\":\"dbeuglog.txt\",\"mimeType\"\
:\"text/plain\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/attachments/10001\"\
,\"size\":2460}]"
schema:
items:
$ref: "#/components/schemas/Attachment"
type: "array"
description: "Returned if the request is successful."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if any of the following is true:\n\n * the issue\
\ is not found.\n * the user does not have permission to view the issue."
"413":
description: "Returned if any of the following is true:\n\n * the attachments\
\ exceed the maximum attachment size for issues.\n * more than 60 files\
\ are requested to be uploaded.\n * the per-issue limit for attachments\
\ has been breached.\n\nSee [Configuring file attachments](https://confluence.atlassian.com/x/wIXKM)\
\ for details."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Add attachment"
tags:
- "Issue attachments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "write:attachment:jira"
- "read:attachment:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/changelog:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of all changelogs for\
\ an issue sorted by date, starting from the oldest.\n\nThis operation can\
\ be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\n\
\ * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "getChangeLogs"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 100
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":2,\"nextPage\":\"https://your-domain.atlassian.net/rest/api/2/issue/TT-1/changelog?&startAt=4&maxResults=2\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/TT-1/changelog?startAt=2&maxResults=2\"\
,\"startAt\":2,\"total\":5,\"values\":[{\"author\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"active\":true,\"avatarUrls\":{\"16x16\"\
:\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"created\":\"1970-01-18T06:27:50.429+0000\"\
,\"id\":\"10001\",\"items\":[{\"field\":\"fields\",\"fieldtype\":\"\
jira\",\"fieldId\":\"fieldId\",\"from\":null,\"fromString\":\"\",\"\
to\":null,\"toString\":\"label-1\"}]},{\"author\":{\"accountId\":\"\
5b10a2844c20165700ede21g\",\"active\":true,\"avatarUrls\":{\"16x16\"\
:\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"created\":\"1970-01-18T06:27:51.429+0000\"\
,\"id\":\"10002\",\"items\":[{\"field\":\"fields\",\"fieldtype\":\"\
jira\",\"fieldId\":\"fieldId\",\"from\":null,\"fromString\":\"label-1\"\
,\"to\":null,\"toString\":\"label-1 label-2\"}]}]}"
schema:
$ref: "#/components/schemas/PageBeanChangelog"
description: "Returned if the request is successful."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get changelogs"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-meta:jira"
- "read:avatar:jira"
- "read:issue.changelog:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/changelog/list:
post:
deprecated: false
description: "Returns changelogs for an issue specified by a list of changelog\
\ IDs.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "getChangeLogsByIds"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
changelogIds:
- 10001
- 10002
schema:
$ref: "#/components/schemas/IssueChangelogIds"
required: true
responses:
"200":
content:
application/json:
example: "{\"histories\":[{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":true,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"created\":\"1970-01-18T06:27:50.429+0000\"\
,\"id\":\"10001\",\"items\":[{\"field\":\"fields\",\"fieldtype\":\"\
jira\",\"fieldId\":\"fieldId\",\"from\":null,\"fromString\":\"\",\"\
to\":null,\"toString\":\"label-1\"}]},{\"author\":{\"accountId\":\"\
5b10a2844c20165700ede21g\",\"active\":true,\"avatarUrls\":{\"16x16\"\
:\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"created\":\"1970-01-18T06:27:51.429+0000\"\
,\"id\":\"10002\",\"items\":[{\"field\":\"fields\",\"fieldtype\":\"\
jira\",\"fieldId\":\"fieldId\",\"from\":null,\"fromString\":\"label-1\"\
,\"to\":null,\"toString\":\"label-1 label-2\"}]}],\"maxResults\":2,\"\
startAt\":0,\"total\":2}"
schema:
$ref: "#/components/schemas/PageOfChangelogs"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"404":
description: "Returned if the issue is not found or the user does not have\
\ the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get changelogs by IDs"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-meta:jira"
- "read:avatar:jira"
- "read:issue.changelog:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/comment:
get:
deprecated: false
description: "Returns all comments for an issue.\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:** Comments are included\
\ in the response where the user has:\n\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the comment.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * If\
\ the comment has visibility restrictions, belongs to the group or has the\
\ role visibility is role visibility is restricted to."
operationId: "getComments"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 5000
format: "int32"
type: "integer"
- description: "[Order](#ordering) the results by a field. Accepts *created*\
\ to sort comments by their created date."
in: "query"
name: "orderBy"
schema:
enum:
- "created"
- "-created"
- "+created"
type: "string"
- description: "Use [expand](#expansion) to include additional information about\
\ comments in the response. This parameter accepts `renderedBody`, which\
\ returns the comment body rendered in HTML."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"comments\":[{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"body\":\"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.\",\"created\":\"2021-01-17T12:34:00.000+0000\",\"id\":\"\
10000\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/comment/10000\"\
,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\"\
:false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"Administrators\",\"type\":\"role\",\"value\":\"Administrators\"\
}}],\"maxResults\":1,\"startAt\":0,\"total\":1}"
schema:
$ref: "#/components/schemas/PageOfComments"
description: "Returned if the request is successful."
"400":
description: "Returned if `orderBy` is set to a value other than *created*."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get comments"
tags:
- "Issue comments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:comment:jira"
- "read:comment.property:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
state: "Beta"
post:
deprecated: false
description: "Adds a comment to an issue.\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:**\n\n * *Browse\
\ projects* and *Add comments* [ project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue containing the comment is in.\n * If [issue-level\
\ security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level\
\ security permission to view the issue."
operationId: "addComment"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "Use [expand](#expansion) to include additional information about\
\ comments in the response. This parameter accepts `renderedBody`, which\
\ returns the comment body rendered in HTML."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
body: "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."
visibility:
identifier: "Administrators"
type: "role"
value: "Administrators"
schema:
$ref: "#/components/schemas/Comment"
required: true
responses:
"201":
content:
application/json:
example: "{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"\
active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"body\":\"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.\",\"created\":\"2021-01-17T12:34:00.000+0000\",\"id\":\"\
10000\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/comment/10000\"\
,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\"\
:false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"Administrators\",\"type\":\"role\",\"value\":\"Administrators\"\
}}"
schema:
$ref: "#/components/schemas/Comment"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view it."
"413":
description: "Returned if the per-issue limit has been breached for one\
\ of the following fields:\n\n * comments\n * attachments"
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Add comment"
tags:
- "Issue comments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:comment:jira"
- "read:comment.property:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "write:comment:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/comment/{id}:
delete:
deprecated: false
description: "Deletes a comment.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue containing the comment is in.\n * If [issue-level\
\ security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level\
\ security permission to view the issue.\n * *Delete all comments*[ project\
\ permission](https://confluence.atlassian.com/x/yodKLg) to delete any comment\
\ or *Delete own comments* to delete comment created by the user,\n * If\
\ the comment has visibility restrictions, the user belongs to the group or\
\ has the role visibility is restricted to."
operationId: "deleteComment"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the comment."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the user does not have permission to delete the\
\ comment."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue or comment is not found or the user\
\ does not have permission to view the issue or comment."
"405":
description: "Returned if an anonymous call is made to the operation."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete comment"
tags:
- "Issue comments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:comment:jira"
- "delete:comment.property:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a comment.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:**\n\n * *Browse projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project containing\
\ the comment.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * If\
\ the comment has visibility restrictions, the user belongs to the group or\
\ has the role visibility is restricted to."
operationId: "getComment"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the comment."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "Use [expand](#expansion) to include additional information about\
\ comments in the response. This parameter accepts `renderedBody`, which\
\ returns the comment body rendered in HTML."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"\
active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"body\":\"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.\",\"created\":\"2021-01-17T12:34:00.000+0000\",\"id\":\"\
10000\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/comment/10000\"\
,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\"\
:false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"Administrators\",\"type\":\"role\",\"value\":\"Administrators\"\
}}"
schema:
$ref: "#/components/schemas/Comment"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue or comment is not found or the user\
\ does not have permission to view the issue or comment."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get comment"
tags:
- "Issue comments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:comment:jira"
- "read:comment.property:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a comment.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:**\n\n * *Browse projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project that\
\ the issue containing the comment is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * *Edit\
\ all comments*[ project permission](https://confluence.atlassian.com/x/yodKLg)\
\ to update any comment or *Edit own comments* to update comment created by\
\ the user.\n * If the comment has visibility restrictions, the user belongs\
\ to the group or has the role visibility is restricted to."
operationId: "updateComment"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the comment."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "Whether users are notified when a comment is updated."
in: "query"
name: "notifyUsers"
schema:
default: true
type: "boolean"
- description: "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)."
in: "query"
name: "overrideEditableFlag"
schema:
default: false
type: "boolean"
- description: "Use [expand](#expansion) to include additional information about\
\ comments in the response. This parameter accepts `renderedBody`, which\
\ returns the comment body rendered in HTML."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
body: "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."
visibility:
identifier: "Administrators"
type: "role"
value: "Administrators"
schema:
$ref: "#/components/schemas/Comment"
required: true
responses:
"200":
content:
application/json:
example: "{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"\
active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"body\":\"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.\",\"created\":\"2021-01-17T12:34:00.000+0000\",\"id\":\"\
10000\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/comment/10000\"\
,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\"\
:false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"Administrators\",\"type\":\"role\",\"value\":\"Administrators\"\
}}"
schema:
$ref: "#/components/schemas/Comment"
description: "Returned if the request is successful."
"400":
description: "Returned if the user does not have permission to edit the\
\ comment or the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue or comment is not found or the user\
\ does not have permission to view the issue or comment."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Update comment"
tags:
- "Issue comments"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:comment:jira"
- "read:comment.property:jira"
- "read:group:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "write:comment:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/editmeta:
get:
deprecated: false
description: "Returns the edit screen fields for an issue that are visible to\
\ and editable by the user. Use the information to populate the requests in\
\ [Edit issue](#api-rest-api-2-issue-issueIdOrKey-put).\n\nThis endpoint will\
\ check for these conditions:\n\n1. Field is available on a field screen\
\ - through screen, screen scheme, issue type screen scheme, and issue type\
\ scheme configuration. `overrideScreenSecurity=true` skips this condition.\n\
2. Field is visible in the [field configuration](https://support.atlassian.com/jira-cloud-administration/docs/change-a-field-configuration/).\
\ `overrideScreenSecurity=true` skips this condition.\n3. Field is shown\
\ on the issue: each field has different conditions here. For example: Attachment\
\ field only shows if attachments are enabled. Assignee only shows if user\
\ has permissions to assign the issue.\n4. If a field is custom then it must\
\ have valid custom field context, applicable for its project and issue type.\
\ All system fields are assumed to have context in all projects and all issue\
\ types.\n5. Issue has a project, issue type, and status defined.\n6. Issue\
\ is assigned to a valid workflow, and the current status has assigned a workflow\
\ step. `overrideEditableFlag=true` skips this condition.\n7. The current\
\ workflow step is editable. This is true by default, but [can be disabled\
\ by setting](https://support.atlassian.com/jira-cloud-administration/docs/use-workflow-properties/)\
\ the `jira.issue.editable` property to `false`. `overrideEditableFlag=true`\
\ skips this condition.\n8. User has [Edit issues permission](https://support.atlassian.com/jira-cloud-administration/docs/permissions-for-company-managed-projects/).\n\
9. Workflow permissions allow editing a field. This is true by default but\
\ [can be modified](https://support.atlassian.com/jira-cloud-administration/docs/use-workflow-properties/)\
\ using `jira.permission.*` workflow properties.\n\nFields hidden using [Issue\
\ layout settings page](https://support.atlassian.com/jira-software-cloud/docs/configure-field-layout-in-the-issue-view/)\
\ remain editable.\n\nConnect apps having an app user 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),\
\ can return additional details using:\n\n * `overrideScreenSecurity` When\
\ this flag is `true`, then this endpoint skips checking if fields are available\
\ through screens, and field configuration (conditions 1. and 2. from the\
\ list above).\n * `overrideEditableFlag` When this flag is `true`, then\
\ this endpoint skips checking if workflow is present and if the current step\
\ is editable (conditions 6. and 7. from the list above).\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n\nNote:\
\ For any fields to be editable the user must have the *Edit issues* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the issue."
operationId: "getEditIssueMeta"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "Whether hidden fields are returned. Available to Connect 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)."
in: "query"
name: "overrideScreenSecurity"
schema:
default: false
type: "boolean"
- description: "Whether non-editable fields are returned. Available to Connect\
\ 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)."
in: "query"
name: "overrideEditableFlag"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"fields\":{\"summary\":{\"allowedValues\":[\"red\",\"blue\"\
],\"defaultValue\":\"red\",\"hasDefaultValue\":false,\"key\":\"field_key\"\
,\"name\":\"My Multi Select\",\"operations\":[\"set\",\"add\"],\"\
required\":false,\"schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:multiselect\"\
,\"customId\":10001,\"items\":\"option\",\"type\":\"array\"}}}}"
schema:
$ref: "#/components/schemas/IssueUpdateMetadata"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user uses an override parameter but doesn't\
\ have permission to do so."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get edit issue metadata"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-meta:jira"
- "read:field-configuration:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/notify:
post:
deprecated: false
description: "Creates an email notification for an issue and adds it to the\
\ mail queue.\n\n**[Permissions](#permissions) required:**\n\n * *Browse\
\ Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "notify"
parameters:
- description: "ID or key of the issue that the notification is sent for."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
htmlBody: "The latest 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
schema:
$ref: "#/components/schemas/Notification"
description: "The request object for the notification and recipients."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the email is queued for sending."
"400":
description: "Returned if:\n\n * the recipient is the same as the calling\
\ user.\n * the recipient is invalid. For example, the recipient is set\
\ to the assignee, but the issue is unassigned.\n * the request is invalid.\
\ For example, required fields are missing or have invalid values."
"403":
description: "Returned if:\n\n * outgoing emails are disabled.\n * no\
\ SMTP server is configured."
"404":
description: "Returned if the issue is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Send notification for issue"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "send:notification:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/properties:
get:
deprecated: false
description: "Returns the URLs and keys of an issue's properties.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ Property details are only returned where the user has:\n\n * *Browse projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for the\
\ project containing the issue.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "getIssuePropertyKeys"
parameters:
- description: "The key or ID of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"keys\":[{\"key\":\"issue.support\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/EX-2/properties/issue.support\"\
}]}"
schema:
$ref: "#/components/schemas/PropertyKeys"
description: "Returned if the request is successful."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permissions to view the issue."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue property keys"
tags:
- "Issue properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue.property:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/properties/{propertyKey}:
delete:
deprecated: false
description: "Deletes an issue's property.\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:**\n\n * *Browse\
\ projects* and *Edit issues* [project permissions](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the issue.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "deleteIssueProperty"
parameters:
- description: "The key or ID of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue or property is not found, or the user\
\ does not have permission to edit the issue."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete issue property"
tags:
- "Issue properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue.property:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the key and value of an issue's property.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the issue.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "getIssueProperty"
parameters:
- description: "The key or ID of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"key\":\"issue.support\",\"value\":{\"system.conversation.id\"\
:\"b1bf38be-5e94-4b40-a3b8-9278735ee1e6\",\"system.support.time\"\
:\"1m\"}}"
schema:
$ref: "#/components/schemas/EntityProperty"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue or property is not found or the user\
\ does not have permission to see the issue."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue property"
tags:
- "Issue properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue.property:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the value of an issue's property. Use this resource to store\
\ custom data against an issue.\n\nThe value of the request body must be a\
\ [valid](http://tools.ietf.org/html/rfc4627), non-empty JSON blob. The maximum\
\ length is 32768 characters.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:**\n\n * *Browse projects* and *Edit\
\ issues* [project permissions](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the issue.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "setIssueProperty"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The key of the issue property. The maximum length is 255 characters."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema: {}
description: "The value of the property. The value has to be a valid, non-empty\
\ [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length\
\ of the property value is 32768 bytes."
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the issue property is updated."
"201":
content:
application/json:
schema: {}
description: "Returned if the issue property is created."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to edit the\
\ issue."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view the issue."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Set issue property"
tags:
- "Issue properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue.property:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/remotelink:
delete:
deprecated: false
description: "Deletes the remote issue link from the issue using the link's\
\ global ID. Where the global ID includes reserved URL characters these must\
\ be escaped in the request. For example, pass `system=http://www.mycompany.com/support&id=1`\
\ as `system%3Dhttp%3A%2F%2Fwww.mycompany.com%2Fsupport%26id%3D1`.\n\nThis\
\ operation requires [issue linking to be active](https://confluence.atlassian.com/x/yoXKM).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* and *Link issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is implemented, issue-level security permission to view the issue."
operationId: "deleteRemoteIssueLinkByGlobalId"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
example: "10000"
type: "string"
x-showInExample: "true"
- description: "The global ID of a remote issue link."
in: "query"
name: "globalId"
required: true
schema:
example: "system=http://www.mycompany.com/support&id=1"
type: "string"
x-showInExample: "true"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if a global ID isn't provided."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to link issues."
"404":
description: "Returned if the issue or remote issue link is not found or\
\ the user does not have permission to view the issue."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete remote issue link by global ID"
tags:
- "Issue remote links"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue.remote-link:jira"
- "write:issue:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the remote issue links for an issue. When a remote issue\
\ link global ID is provided the record with that global ID is returned, otherwise\
\ all remote issue links are returned. Where a global ID includes reserved\
\ URL characters these must be escaped in the request. For example, pass `system=http://www.mycompany.com/support&id=1`\
\ as `system%3Dhttp%3A%2F%2Fwww.mycompany.com%2Fsupport%26id%3D1`.\n\nThis\
\ operation requires [issue linking to be active](https://confluence.atlassian.com/x/yoXKM).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "getRemoteIssueLinks"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
example: "10000"
type: "string"
x-showInExample: "true"
- description: "The global ID of the remote issue link."
in: "query"
name: "globalId"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "[{\"application\":{\"name\":\"My Acme Tracker\",\"type\":\"\
com.acme.tracker\"},\"globalId\":\"system=http://www.mycompany.com/support&id=1\"\
,\"id\":10000,\"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\",\"self\":\"https://your-domain.atlassian.net/rest/api/issue/MKY-1/remotelink/10000\"\
},{\"application\":{\"name\":\"My Acme Tester\",\"type\":\"com.acme.tester\"\
},\"globalId\":\"system=http://www.anothercompany.com/tester&id=1234\"\
,\"id\":10001,\"object\":{\"icon\":{\"title\":\"Test Case\",\"url16x16\"\
:\"http://www.anothercompany.com/tester/images/testcase.gif\"},\"\
status\":{\"icon\":{\"link\":\"http://www.anothercompany.com/tester/person?accountId=5b10a2844c20165700ede21g\"\
,\"title\":\"Tested by Mia Krystof\",\"url16x16\":\"http://www.anothercompany.com/tester/images/person/mia.gif\"\
},\"resolved\":false},\"summary\":\"Test that the submit button saves\
\ the item\",\"title\":\"Test Case #1234\",\"url\":\"http://www.anothercompany.com/tester/testcase/1234\"\
},\"relationship\":\"is tested by\",\"self\":\"https://your-domain.atlassian.net/rest/api/issue/MKY-1/remotelink/10001\"\
}]"
schema:
$ref: "#/components/schemas/RemoteIssueLink"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if issue linking is disabled."
"404":
description: "Returned if the issue or remote issue link is not found or\
\ the user does not have permission to view the issue."
"413":
description: "Returned if the per-issue limit for remote links has been\
\ breached."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get remote issue links"
tags:
- "Issue remote links"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue.remote-link:jira"
- "read:status:jira"
state: "Beta"
post:
deprecated: false
description: "Creates or updates a remote issue link for an issue.\n\nIf a `globalId`\
\ is provided and a remote issue link with that global ID is found it is updated.\
\ Any fields without values in the request are set to null. Otherwise, the\
\ remote issue link is created.\n\nThis operation requires [issue linking\
\ to be active](https://confluence.atlassian.com/x/yoXKM).\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse projects* and *Link issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "createOrUpdateRemoteIssueLink"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/RemoteIssueLinkRequest"
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":10000,\"self\":\"https://your-domain.atlassian.net/rest/api/issue/MKY-1/remotelink/10000\"\
}"
schema:
$ref: "#/components/schemas/RemoteIssueLinkIdentifies"
description: "Returned if the remote issue link is updated."
"201":
content:
application/json:
example: "{\"id\":10000,\"self\":\"https://your-domain.atlassian.net/rest/api/issue/MKY-1/remotelink/10000\"\
}"
schema:
$ref: "#/components/schemas/RemoteIssueLinkIdentifies"
description: "Returned if the remote issue link is created."
"400":
content:
application/json:
example: "{\"errorMessages\":[],\"errors\":{\"title\":\"'title' is required.\"\
}}"
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to link issues."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view the issue."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Create or update remote issue link"
tags:
- "Issue remote links"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
- "write:issue.remote-link:jira"
- "read:issue.remote-link:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/remotelink/{linkId}:
delete:
deprecated: false
description: "Deletes a remote issue link from an issue.\n\nThis operation requires\
\ [issue linking to be active](https://confluence.atlassian.com/x/yoXKM).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects*, *Edit issues*, and *Link issues* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project that\
\ the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "deleteRemoteIssueLinkById"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
example: "10000"
type: "string"
x-showInExample: "true"
- description: "The ID of a remote issue link."
in: "path"
name: "linkId"
required: true
schema:
example: "10000"
type: "string"
x-showInExample: "true"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the link ID is invalid or the remote issue link\
\ does not belong to the issue."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to link issues."
"404":
description: "Returned if the issue or remote issue link is not found or\
\ the user does not have permission to view the issue."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete remote issue link by ID"
tags:
- "Issue remote links"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue.remote-link:jira"
- "write:issue:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a remote issue link for an issue.\n\nThis operation requires\
\ [issue linking to be active](https://confluence.atlassian.com/x/yoXKM).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "getRemoteIssueLinkById"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the remote issue link."
in: "path"
name: "linkId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"application\":{\"name\":\"My Acme Tracker\",\"type\":\"\
com.acme.tracker\"},\"globalId\":\"system=http://www.mycompany.com/support&id=1\"\
,\"id\":10000,\"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\",\"self\":\"https://your-domain.atlassian.net/rest/api/issue/MKY-1/remotelink/10000\"\
}"
schema:
$ref: "#/components/schemas/RemoteIssueLink"
description: "Returned if the request is successful."
"400":
description: "Returned if the link ID is invalid or the remote issue link\
\ does not belong to the issue."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if issue linking is disabled."
"404":
description: "Returned if the issue or remote issue link is not found or\
\ the user does not have permission to view the issue."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get remote issue link by ID"
tags:
- "Issue remote links"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue.remote-link:jira"
- "read:status:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a remote issue link for an issue.\n\nNote: Fields without\
\ values in the request are set to null.\n\nThis operation requires [issue\
\ linking to be active](https://confluence.atlassian.com/x/yoXKM).\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* and *Link issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "updateRemoteIssueLink"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
example: "10000"
type: "string"
x-showInExample: "true"
- description: "The ID of the remote issue link."
in: "path"
name: "linkId"
required: true
schema:
example: "10000"
type: "string"
x-showInExample: "true"
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/RemoteIssueLinkRequest"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[],\"errors\":{\"title\":\"'title' is required.\"\
}}"
description: "Returned if:\n\n * the link ID is invalid.\n * the remote\
\ issue link does not belong to the issue.\n * the request body is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to link issues."
"404":
description: "Returned if the issue or remote issue link is not found or\
\ the user does not have permission to view the issue."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Update remote issue link by ID"
tags:
- "Issue remote links"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
- "write:issue.remote-link:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/transitions:
get:
deprecated: false
description: "Returns either all transitions or a transition that can be performed\
\ by the user on an issue, based on the issue's status.\n\nNote, if a request\
\ is made for a transition that does not exist or cannot be performed on the\
\ issue, given its status, the response will return any empty transitions\
\ list.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required: A list or transition is returned only when the user has:**\n\n\
\ * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n\nHowever,\
\ if the user does not have the *Transition issues* [ project permission](https://confluence.atlassian.com/x/yodKLg)\
\ the response will not list any transitions."
operationId: "getTransitions"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "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-2-issue-issueIdOrKey-transitions-post)."
in: "query"
name: "expand"
schema:
type: "string"
- description: "The ID of the transition."
in: "query"
name: "transitionId"
schema:
type: "string"
- description: "Whether transitions with the condition *Hide From User Condition*\
\ are included in the response."
in: "query"
name: "skipRemoteOnlyCondition"
schema:
default: false
type: "boolean"
- description: "Whether details of transitions that fail a condition are included\
\ in the response"
in: "query"
name: "includeUnavailableTransitions"
schema:
default: false
type: "boolean"
- description: "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."
in: "query"
name: "sortByOpsBarAndStatus"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"transitions\":[{\"fields\":{\"summary\":{\"allowedValues\"\
:[\"red\",\"blue\"],\"defaultValue\":\"red\",\"hasDefaultValue\":false,\"\
key\":\"field_key\",\"name\":\"My Multi Select\",\"operations\":[\"\
set\",\"add\"],\"required\":false,\"schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:multiselect\"\
,\"customId\":10001,\"items\":\"option\",\"type\":\"array\"}}},\"\
hasScreen\":false,\"id\":\"2\",\"isAvailable\":true,\"isConditional\"\
:false,\"isGlobal\":false,\"isInitial\":false,\"name\":\"Close Issue\"\
,\"to\":{\"description\":\"The issue is currently being worked on.\"\
,\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/progress.gif\"\
,\"id\":\"10000\",\"name\":\"In Progress\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/status/10000\"\
,\"statusCategory\":{\"colorName\":\"yellow\",\"id\":1,\"key\":\"\
in-flight\",\"name\":\"In Progress\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/statuscategory/1\"\
}}},{\"fields\":{\"summary\":{\"allowedValues\":[\"red\",\"blue\"\
],\"defaultValue\":\"red\",\"hasDefaultValue\":false,\"key\":\"field_key\"\
,\"name\":\"My Multi Select\",\"operations\":[\"set\",\"add\"],\"\
required\":false,\"schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:multiselect\"\
,\"customId\":10001,\"items\":\"option\",\"type\":\"array\"}},\"colour\"\
:{\"allowedValues\":[\"red\",\"blue\"],\"defaultValue\":\"red\",\"\
hasDefaultValue\":false,\"key\":\"field_key\",\"name\":\"My Multi\
\ Select\",\"operations\":[\"set\",\"add\"],\"required\":false,\"\
schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:multiselect\"\
,\"customId\":10001,\"items\":\"option\",\"type\":\"array\"}}},\"\
hasScreen\":true,\"id\":\"711\",\"name\":\"QA Review\",\"to\":{\"\
description\":\"The issue is closed.\",\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/closed.gif\"\
,\"id\":\"5\",\"name\":\"Closed\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/status/5\"\
,\"statusCategory\":{\"colorName\":\"green\",\"id\":9,\"key\":\"completed\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/statuscategory/9\"\
}}}]}"
schema:
$ref: "#/components/schemas/Transitions"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get transitions"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue.transition:jira"
- "read:status:jira"
- "read:field-configuration:jira"
state: "Beta"
post:
deprecated: false
description: "Performs an issue transition and, if the transition has a screen,\
\ updates the fields from the transition screen.\n\nsortByCategory To update\
\ the fields on the transition screen, specify the fields in the `fields`\
\ or `update` parameters in the request body. Get details about the fields\
\ using [ Get transitions](#api-rest-api-2-issue-issueIdOrKey-transitions-get)\
\ with the `transitions.fields` expand.\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:**\n\n * *Browse\
\ projects* and *Transition issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "doTransition"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
fields:
assignee:
name: "Will"
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: "Bug has been fixed."
schema:
$ref: "#/components/schemas/IssueUpdateDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * no transition is specified.\n * the user\
\ does not have permission to transition the issue.\n * a field that\
\ isn't included on the transition screen is defined in `fields` or `update`.\n\
\ * a field is specified in both `fields` and `update`.\n * the request\
\ is invalid for any other reason."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view it."
"409":
description: "Returned if the issue could not be updated due to a conflicting\
\ update. (refer to the [changelog](https://developer.atlassian.com/changelog/#CHANGE-1364)\
\ *for more details.*"
"413":
description: "Returned if a per-issue limit has been breached for one of\
\ the following fields:\n\n * comments\n * worklogs\n * attachments\n\
\ * issue links\n * remote issue links"
"422":
description: "Returned if a configuration problem prevents the creation\
\ of the issue. (refer to the [changelog](https://developer.atlassian.com/changelog/#CHANGE-1364)\
\ *for more details.*"
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Transition issue"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
- "write:issue.property:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/votes:
delete:
deprecated: false
description: "Deletes a user's vote from an issue. This is the equivalent of\
\ the user clicking *Unvote* on an issue in Jira.\n\nThis operation requires\
\ the **Allow users to vote on issues** option to be *ON*. This option is\
\ set in General configuration for Jira. See [Configuring Jira application\
\ options](https://confluence.atlassian.com/x/uYXKM) for details.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "removeVote"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * voting is disabled.\n * the user has\
\ not voted on the issue.\n * the issue is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete vote"
tags:
- "Issue votes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue.vote:jira"
state: "Beta"
get:
deprecated: false
description: "Returns details about the votes on an issue.\n\nThis operation\
\ requires the **Allow users to vote on issues** option to be *ON*. This option\
\ is set in General configuration for Jira. See [Configuring Jira application\
\ options](https://confluence.atlassian.com/x/uYXKM) for details.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is ini\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n\nNote\
\ that users with the necessary permissions for this operation but without\
\ the *View voters and watchers* project permissions are not returned details\
\ in the `voters` field."
operationId: "getVotes"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"hasVoted\":true,\"self\":\"https://your-domain.atlassian.net/rest/api/issue/MKY-1/votes\"\
,\"voters\":[{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}],\"votes\":24}"
schema:
$ref: "#/components/schemas/Votes"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * voting is disabled.\n * the user does\
\ not have permission to view the issue.\n * the issue is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get votes"
tags:
- "Issue votes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue.vote:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
post:
deprecated: false
description: "Adds the user's vote to an issue. This is the equivalent of the\
\ user clicking *Vote* on an issue in Jira.\n\nThis operation requires the\
\ **Allow users to vote on issues** option to be *ON*. This option is set\
\ in General configuration for Jira. See [Configuring Jira application options](https://confluence.atlassian.com/x/uYXKM)\
\ for details.\n\n**[Permissions](#permissions) required:**\n\n * *Browse\
\ projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "addVote"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * voting is disabled.\n * the issue is\
\ not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Add vote"
tags:
- "Issue votes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue.vote:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/watchers:
delete:
deprecated: false
description: "Deletes a user as a watcher of an issue.\n\nThis operation requires\
\ the **Allow users to watch issues** option to be *ON*. This option is set\
\ in General configuration for Jira. See [Configuring Jira application options](https://confluence.atlassian.com/x/uYXKM)\
\ for details.\n\n**[Permissions](#permissions) required:**\n\n * *Browse\
\ projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * To\
\ remove users other than themselves from the watchlist, *Manage watcher list*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for the\
\ project that the issue is in."
operationId: "removeWatcher"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*.\
\ Required."
in: "query"
name: "accountId"
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if `accountId` is not supplied."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the permission to manage\
\ the watcher list."
"404":
description: "Returned if the issue or the user is not found or the user\
\ does not have permission to view the issue."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete watcher"
tags:
- "Issue watchers"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue.watcher:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the watchers for an issue.\n\nThis operation requires\
\ the **Allow users to watch issues** option to be *ON*. This option is set\
\ in General configuration for Jira. See [Configuring Jira application options](https://confluence.atlassian.com/x/uYXKM)\
\ for details.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is ini\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * To\
\ see details of users on the watchlist other than themselves, *View voters\
\ and watchers* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in."
operationId: "getIssueWatchers"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isWatching\":false,\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/EX-1/watchers\"\
,\"watchCount\":1,\"watchers\":[{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}]}"
schema:
$ref: "#/components/schemas/Watchers"
description: "Returned if the request is successful"
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue watchers"
tags:
- "Issue watchers"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue.watcher:jira"
- "read:user:jira"
- "read:avatar:jira"
state: "Beta"
post:
deprecated: false
description: "Adds a user as a watcher of an issue by passing the account ID\
\ of the user. For example, `\"5b10ac8d82e05b22cc7d4ef5\"`. If no user is\
\ specified the calling user is added.\n\nThis operation requires the **Allow\
\ users to watch issues** option to be *ON*. This option is set in General\
\ configuration for Jira. See [Configuring Jira application options](https://confluence.atlassian.com/x/uYXKM)\
\ for details.\n\n**[Permissions](#permissions) required:**\n\n * *Browse\
\ projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * To\
\ add users other than themselves to the watchlist, *Manage watcher list*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for the\
\ project that the issue is in."
operationId: "addWatcher"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema:
type: "string"
description: "The account ID of the user. Note that username cannot be used\
\ due to privacy changes."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the permission to manage\
\ the watcher list."
"404":
description: "Returned if the issue or the user is not found or the user\
\ does not have permission to view the issue."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Add watcher"
tags:
- "Issue watchers"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue.watcher:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/worklog:
get:
deprecated: false
description: "Returns worklogs for an issue, starting from the oldest worklog\
\ or from the worklog started on or after a date and time.\n\nTime tracking\
\ must be enabled in Jira, otherwise this operation returns an error. For\
\ more information, see [Configuring time tracking](https://confluence.atlassian.com/x/qoXKM).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** Workloads are only returned where the user has:\n\n * *Browse\
\ projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * If\
\ the worklog has visibility restrictions, belongs to the group or has the\
\ role visibility is restricted to."
operationId: "getIssueWorklog"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 5000
format: "int32"
type: "integer"
- description: "The worklog start date and time, as a UNIX timestamp in milliseconds,\
\ after which worklogs are returned."
in: "query"
name: "startedAfter"
schema:
format: "int64"
type: "integer"
- description: "The worklog start date and time, as a UNIX timestamp in milliseconds,\
\ before which worklogs are returned."
in: "query"
name: "startedBefore"
schema:
format: "int64"
type: "integer"
- description: "Use [expand](#expansion) to include additional information about\
\ worklogs in the response. This parameter accepts`properties`, which returns\
\ worklog properties."
in: "query"
name: "expand"
schema:
default: ""
type: "string"
responses:
"200":
content:
application/json:
example: "{\"maxResults\":1,\"startAt\":0,\"total\":1,\"worklogs\":[{\"\
author\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\":false,\"\
displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"comment\":\"I did some work here.\",\"id\":\"100028\",\"issueId\"\
:\"10002\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/worklog/10000\"\
,\"started\":\"2021-01-17T12:34:00.000+0000\",\"timeSpent\":\"3h 20m\"\
,\"timeSpentSeconds\":12000,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"type\":\"\
group\",\"value\":\"jira-developers\"}}]}"
schema:
$ref: "#/components/schemas/PageOfWorklogs"
description: "Returned if the request is successful"
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the issue is not found or the user does\
\ not have permission to view the issue.\n * `startAt` or `maxResults`\
\ has non-numeric values.\n * time tracking is disabled."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue worklogs"
tags:
- "Issue worklogs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
- "read:issue-worklog:jira"
- "read:issue-worklog.property:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
state: "Beta"
post:
deprecated: false
description: "Adds a worklog to an issue.\n\nTime tracking must be enabled in\
\ Jira, otherwise this operation returns an error. For more information, see\
\ [Configuring time tracking](https://confluence.atlassian.com/x/qoXKM).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* and *Work on issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "addWorklog"
parameters:
- description: "The ID or key the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "Whether users watching the issue are notified by email."
in: "query"
name: "notifyUsers"
schema:
default: true
type: "boolean"
- description: "Defines how to update the issue's time estimate, the options\
\ are:\n\n * `new` Sets the estimate to a specific value, defined in `newEstimate`.\n\
\ * `leave` Leaves the estimate unchanged.\n * `manual` Reduces the estimate\
\ by amount specified in `reduceBy`.\n * `auto` Reduces the estimate by\
\ the value of `timeSpent` in the worklog."
in: "query"
name: "adjustEstimate"
schema:
default: "auto"
enum:
- "new"
- "leave"
- "manual"
- "auto"
type: "string"
- description: "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`."
in: "query"
name: "newEstimate"
schema:
type: "string"
- description: "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`."
in: "query"
name: "reduceBy"
schema:
type: "string"
- description: "Use [expand](#expansion) to include additional information about\
\ work logs in the response. This parameter accepts `properties`, which\
\ returns worklog properties."
in: "query"
name: "expand"
schema:
default: ""
type: "string"
- description: "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."
in: "query"
name: "overrideEditableFlag"
schema:
default: false
type: "boolean"
requestBody:
content:
application/json:
example:
comment: "I did some work here."
started: "2021-01-17T12:34:00.000+0000"
timeSpentSeconds: 12000
visibility:
identifier: "276f955c-63d7-42c8-9520-92d01dca0625"
type: "group"
schema:
$ref: "#/components/schemas/Worklog"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/Worklog"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * `adjustEstimate` is set to `new` but `newEstimate`\
\ is not provided or is invalid.\n * `adjustEstimate` is set to `manual`\
\ but `reduceBy` is not provided or is invalid.\n * the user does not\
\ have permission to add the worklog.\n * the request JSON is malformed."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
description: "Returned if the issue is not found or the user does not have\
\ permission to view it."
"413":
description: "Returned if the per-issue limit has been breached for one\
\ of the following fields:\n\n * worklogs\n * attachments"
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Add worklog"
tags:
- "Issue worklogs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-worklog:jira"
- "write:issue-worklog.property:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-worklog:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:issue-worklog.property:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/worklog/{id}:
delete:
deprecated: false
description: "Deletes a worklog from an issue.\n\nTime tracking must be enabled\
\ in Jira, otherwise this operation returns an error. For more information,\
\ see [Configuring time tracking](https://confluence.atlassian.com/x/qoXKM).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * *Delete\
\ all worklogs*[ project permission](https://confluence.atlassian.com/x/yodKLg)\
\ to delete any worklog or *Delete own worklogs* to delete worklogs created\
\ by the user,\n * If the worklog has visibility restrictions, belongs to\
\ the group or has the role visibility is restricted to."
operationId: "deleteWorklog"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the worklog."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "Whether users watching the issue are notified by email."
in: "query"
name: "notifyUsers"
schema:
default: true
type: "boolean"
- description: "Defines how to update the issue's time estimate, the options\
\ are:\n\n * `new` Sets the estimate to a specific value, defined in `newEstimate`.\n\
\ * `leave` Leaves the estimate unchanged.\n * `manual` Increases the\
\ estimate by amount specified in `increaseBy`.\n * `auto` Reduces the\
\ estimate by the value of `timeSpent` in the worklog."
in: "query"
name: "adjustEstimate"
schema:
default: "auto"
enum:
- "new"
- "leave"
- "manual"
- "auto"
type: "string"
- description: "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`."
in: "query"
name: "newEstimate"
schema:
type: "string"
- description: "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`."
in: "query"
name: "increaseBy"
schema:
type: "string"
- description: "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."
in: "query"
name: "overrideEditableFlag"
schema:
default: false
type: "boolean"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * `adjustEstimate` is set to `new` but `newEstimate`\
\ is not provided or is invalid.\n * `adjustEstimate` is set to `manual`\
\ but `reduceBy` is not provided or is invalid.\n * the user does not\
\ have permission to delete the worklog."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
description: "Returned if:\n\n * the issue is not found or user does not\
\ have permission to view the issue.\n * the worklog is not found or\
\ the user does not have permission to view it.\n * time tracking is\
\ disabled."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete worklog"
tags:
- "Issue worklogs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue-worklog:jira"
- "delete:issue-worklog.property:jira"
- "write:issue.time-tracking:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a worklog.\n\nTime tracking must be enabled in Jira, otherwise\
\ this operation returns an error. For more information, see [Configuring\
\ time tracking](https://confluence.atlassian.com/x/qoXKM).\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * If\
\ the worklog has visibility restrictions, belongs to the group or has the\
\ role visibility is restricted to."
operationId: "getWorklog"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the worklog."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "Use [expand](#expansion) to include additional information about\
\ work logs in the response. This parameter accepts\n\n`properties`, which\
\ returns worklog properties."
in: "query"
name: "expand"
schema:
default: ""
type: "string"
responses:
"200":
content:
application/json:
example: "{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"\
active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"comment\":\"I did some work here.\",\"id\":\"100028\",\"issueId\"\
:\"10002\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/worklog/10000\"\
,\"started\":\"2021-01-17T12:34:00.000+0000\",\"timeSpent\":\"3h 20m\"\
,\"timeSpentSeconds\":12000,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"type\":\"\
group\",\"value\":\"jira-developers\"}}"
schema:
$ref: "#/components/schemas/Worklog"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
description: "Returned if:\n\n * the issue is not found or the user does\
\ not have permission to view it.\n * the worklog is not found or the\
\ user does not have permission to view it.\n * time tracking is disabled.\n\
\n."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get worklog"
tags:
- "Issue worklogs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:comment:jira"
- "read:group:jira"
- "read:issue-worklog:jira"
- "read:issue-worklog.property:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a worklog.\n\nTime tracking must be enabled in Jira, otherwise\
\ this operation returns an error. For more information, see [Configuring\
\ time tracking](https://confluence.atlassian.com/x/qoXKM).\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * *Edit\
\ all worklogs*[ project permission](https://confluence.atlassian.com/x/yodKLg)\
\ to update any worklog or *Edit own worklogs* to update worklogs created\
\ by the user.\n * If the worklog has visibility restrictions, belongs to\
\ the group or has the role visibility is restricted to."
operationId: "updateWorklog"
parameters:
- description: "The ID or key the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the worklog."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "Whether users watching the issue are notified by email."
in: "query"
name: "notifyUsers"
schema:
default: true
type: "boolean"
- description: "Defines how to update the issue's time estimate, the options\
\ are:\n\n * `new` Sets the estimate to a specific value, defined in `newEstimate`.\n\
\ * `leave` Leaves the estimate unchanged.\n * `auto` Updates the estimate\
\ by the difference between the original and updated value of `timeSpent`\
\ or `timeSpentSeconds`."
in: "query"
name: "adjustEstimate"
schema:
default: "auto"
enum:
- "new"
- "leave"
- "manual"
- "auto"
type: "string"
- description: "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`."
in: "query"
name: "newEstimate"
schema:
type: "string"
- description: "Use [expand](#expansion) to include additional information about\
\ worklogs in the response. This parameter accepts `properties`, which returns\
\ worklog properties."
in: "query"
name: "expand"
schema:
default: ""
type: "string"
- description: "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."
in: "query"
name: "overrideEditableFlag"
schema:
default: false
type: "boolean"
requestBody:
content:
application/json:
example:
comment: "I did some work here."
started: "2021-01-17T12:34:00.000+0000"
timeSpentSeconds: 12000
visibility:
identifier: "276f955c-63d7-42c8-9520-92d01dca0625"
type: "group"
schema:
$ref: "#/components/schemas/Worklog"
required: true
responses:
"200":
content:
application/json:
example: "{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"\
active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"comment\":\"I did some work here.\",\"id\":\"100028\",\"issueId\"\
:\"10002\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/worklog/10000\"\
,\"started\":\"2021-01-17T12:34:00.000+0000\",\"timeSpent\":\"3h 20m\"\
,\"timeSpentSeconds\":12000,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"type\":\"\
group\",\"value\":\"jira-developers\"}}"
schema:
$ref: "#/components/schemas/Worklog"
description: "Returned if the request is successful"
"400":
description: "Returned if:\n\n * `adjustEstimate` is set to `new` but `newEstimate`\
\ is not provided or is invalid.\n * the user does not have permission\
\ to update the worklog.\n * the request JSON is malformed."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
description: "Returned if:\n\n * the issue is not found or user does not\
\ have permission to view the issue.\n * the worklog is not found or\
\ the user does not have permission to view it.\n * time tracking is\
\ disabled."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Update worklog"
tags:
- "Issue worklogs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:comment:jira"
- "read:group:jira"
- "read:issue-worklog:jira"
- "read:issue-worklog.property:jira"
- "read:project-role:jira"
- "read:user:jira"
- "write:comment:jira"
- "write:issue-worklog:jira"
- "write:issue-worklog.property:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/worklog/{worklogId}/properties:
get:
deprecated: false
description: "Returns the keys of all properties for a worklog.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\
\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * If\
\ the worklog has visibility restrictions, belongs to the group or has the\
\ role visibility is restricted to."
operationId: "getWorklogPropertyKeys"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the worklog."
in: "path"
name: "worklogId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"keys\":[{\"key\":\"issue.support\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/EX-2/properties/issue.support\"\
}]}"
schema:
$ref: "#/components/schemas/PropertyKeys"
description: "Returned if the request is successful."
"400":
description: "Returned if the worklog ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the issue or worklog is not found.\n *\
\ the user does not have permission to view the issue or worklog."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get worklog property keys"
tags:
- "Issue worklog properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-worklog.property:jira"
state: "Beta"
/rest/api/2/issue/{issueIdOrKey}/worklog/{worklogId}/properties/{propertyKey}:
delete:
deprecated: false
description: "Deletes a worklog property.\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:**\n\n * *Browse\
\ projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * If\
\ the worklog has visibility restrictions, belongs to the group or has the\
\ role visibility is restricted to."
operationId: "deleteWorklogProperty"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the worklog."
in: "path"
name: "worklogId"
required: true
schema:
type: "string"
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the worklog property is removed."
"400":
description: "Returned if the worklog key or id is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to edit the\
\ worklog."
"404":
description: "Returned if:\n\n * the issue, worklog, or property is not\
\ found.\n * the user does not have permission to view the issue or worklog."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete worklog property"
tags:
- "Issue worklog properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue-worklog.property:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the value of a worklog property.\n\nThis operation can\
\ be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\n\
\ * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * If\
\ the worklog has visibility restrictions, belongs to the group or has the\
\ role visibility is restricted to."
operationId: "getWorklogProperty"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the worklog."
in: "path"
name: "worklogId"
required: true
schema:
type: "string"
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"key\":\"issue.support\",\"value\":{\"system.conversation.id\"\
:\"b1bf38be-5e94-4b40-a3b8-9278735ee1e6\",\"system.support.time\"\
:\"1m\"}}"
schema:
$ref: "#/components/schemas/EntityProperty"
description: "Returned if the request is successful."
"400":
description: "Returned if the worklog ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the issue, worklog, or property is not\
\ found.\n * the user does not have permission to view the issue or worklog."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get worklog property"
tags:
- "Issue worklog properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-worklog.property:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the value of a worklog property. Use this operation to store\
\ custom data against the worklog.\n\nThe value of the request body must be\
\ a [valid](http://tools.ietf.org/html/rfc4627), non-empty JSON blob. The\
\ maximum length is 32768 characters.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:**\n\n * *Browse projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project that\
\ the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue.\n * *Edit\
\ all worklogs*[ project permission](https://confluence.atlassian.com/x/yodKLg)\
\ to update any worklog or *Edit own worklogs* to update worklogs created\
\ by the user.\n * If the worklog has visibility restrictions, belongs to\
\ the group or has the role visibility is restricted to."
operationId: "setWorklogProperty"
parameters:
- description: "The ID or key of the issue."
in: "path"
name: "issueIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the worklog."
in: "path"
name: "worklogId"
required: true
schema:
type: "string"
- description: "The key of the issue property. The maximum length is 255 characters."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema: {}
description: "The value of the property. The value has to be a valid, non-empty\
\ [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length\
\ of the property value is 32768 bytes."
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the worklog property is updated."
"201":
content:
application/json:
schema: {}
description: "Returned if the worklog property is created."
"400":
description: "Returned if the worklog ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to edit the\
\ worklog."
"404":
description: "Returned if:\n\n * the issue or worklog is not found.\n *\
\ the user does not have permission to view the issue or worklog."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Set worklog property"
tags:
- "Issue worklog properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-worklog.property:jira"
state: "Beta"
/rest/api/2/issueLink:
post:
deprecated: false
description: "Creates a link between two issues. Use this operation to indicate\
\ a relationship between two issues and optionally add a comment to the from\
\ (outward) issue. To use this resource the site must have [Issue Linking](https://confluence.atlassian.com/x/yoXKM)\
\ enabled.\n\nThis resource returns nothing on the creation of an issue link.\
\ To obtain the ID of the issue link, use `https://your-domain.atlassian.net/rest/api/2/issue/[linked\
\ issue key]?fields=issuelinks`.\n\nIf the link request duplicates a link,\
\ the response indicates that the issue link was created. If the request included\
\ a comment, the comment is added.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:**\n\n * *Browse project* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for all the projects\
\ containing the issues to be linked,\n * *Link issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ on the project containing the from (outward) issue,\n * If [issue-level\
\ security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level\
\ security permission to view the issue.\n * If the comment has visibility\
\ restrictions, belongs to the group or has the role visibility is restricted\
\ to."
operationId: "linkIssues"
parameters: []
requestBody:
content:
application/json:
example:
comment:
body: "Linked related issue!"
visibility:
identifier: "276f955c-63d7-42c8-9520-92d01dca0625"
type: "group"
value: "jira-software-users"
inwardIssue:
key: "HSP-1"
outwardIssue:
key: "MKY-1"
type:
name: "Duplicate"
schema:
$ref: "#/components/schemas/LinkIssueRequestJsonBean"
description: "The issue link request."
required: true
responses:
"201":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "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":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * issue linking is disabled.\n * 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.\n * the user does not have *link issues* project permission.\n\
\ * either of the link issues are not found.\n * the issue link type\
\ is not found."
"413":
description: "Returned if the per-issue limit for issue links has been breached."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Create issue link"
tags:
- "Issue links"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:comment:jira"
- "write:issue:jira"
- "write:issue-link:jira"
state: "Beta"
/rest/api/2/issueLink/{linkId}:
delete:
deprecated: false
description: "Deletes an issue link.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:**\n\n * Browse project [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for all the projects\
\ containing the issues in the link.\n * *Link issues* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for at least one of the projects containing issues in the link.\n * If\
\ [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured,\
\ permission to view both of the issues."
operationId: "deleteIssueLink"
parameters:
- description: "The ID of the issue link."
in: "path"
name: "linkId"
required: true
schema:
type: "string"
responses:
"200":
description: "200 response"
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the issue link ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * issue linking is disabled.\n * the issue\
\ link is not found.\n * the user doesn't have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete issue link"
tags:
- "Issue links"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue-link:jira"
state: "Beta"
get:
deprecated: false
description: "Returns an issue link.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:**\n\n * *Browse project* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for all the projects\
\ containing the linked issues.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, permission to view both of the issues."
operationId: "getIssueLink"
parameters:
- description: "The ID of the issue link."
in: "path"
name: "linkId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"id\":\"10001\",\"inwardIssue\":{\"fields\":{\"issuetype\"\
:{\"avatarId\":10002,\"description\":\"A problem with the software.\"\
,\"entityId\":\"9d7dd6f7-e8b6-4247-954b-7b2c9b2a5ba2\",\"hierarchyLevel\"\
:0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10316&avatarType=issuetype\\\
\",\",\"id\":\"1\",\"name\":\"Bug\",\"scope\":{\"project\":{\"id\"\
:\"10000\"},\"type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/1\"\
,\"subtask\":false},\"priority\":{\"description\":\"Very little impact.\"\
,\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/priorities/trivial.png\"\
,\"id\":\"2\",\"name\":\"Trivial\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/priority/5\"\
,\"statusColor\":\"#cfcfcf\"},\"status\":{\"description\":\"The issue\
\ is closed.\",\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/closed.gif\"\
,\"id\":\"5\",\"name\":\"Closed\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/status/5\"\
,\"statusCategory\":{\"colorName\":\"green\",\"id\":9,\"key\":\"completed\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/statuscategory/9\"\
}}},\"id\":\"10004\",\"key\":\"PR-3\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/PR-3\"\
},\"outwardIssue\":{\"fields\":{\"issuetype\":{\"avatarId\":1,\"description\"\
:\"A task that needs to be done.\",\"hierarchyLevel\":0,\"iconUrl\"\
:\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10299&avatarType=issuetype\\\
\",\",\"id\":\"3\",\"name\":\"Task\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/3\"\
,\"subtask\":false},\"priority\":{\"description\":\"Major loss of\
\ function.\",\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/priorities/major.png\"\
,\"id\":\"1\",\"name\":\"Major\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/priority/3\"\
,\"statusColor\":\"#009900\"},\"status\":{\"description\":\"The issue\
\ is currently being worked on.\",\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/progress.gif\"\
,\"id\":\"10000\",\"name\":\"In Progress\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/status/10000\"\
,\"statusCategory\":{\"colorName\":\"yellow\",\"id\":1,\"key\":\"\
in-flight\",\"name\":\"In Progress\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/statuscategory/1\"\
}}},\"id\":\"10004L\",\"key\":\"PR-2\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/PR-2\"\
},\"type\":{\"id\":\"1000\",\"inward\":\"Duplicated by\",\"name\"\
:\"Duplicate\",\"outward\":\"Duplicates\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueLinkType/1000\"\
}}"
schema:
$ref: "#/components/schemas/IssueLink"
description: "Returned if the request is successful."
"400":
description: "Returned if the issue link ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * issue linking is disabled.\n * the issue\
\ link is not found.\n * the user doesn't have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue link"
tags:
- "Issue links"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:issue-link-type:jira"
- "read:issue:jira"
- "read:issue-type:jira"
- "read:priority:jira"
- "read:status:jira"
- "read:avatar:jira"
- "read:issue.time-tracking:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/issueLinkType:
get:
deprecated: false
description: "Returns a list of all issue link types.\n\nTo use this operation,\
\ the site must have [issue linking](https://confluence.atlassian.com/x/yoXKM)\
\ enabled.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for a project in the site."
operationId: "getIssueLinkTypes"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"issueLinkTypes\":[{\"id\":\"1000\",\"inward\":\"Duplicated\
\ by\",\"name\":\"Duplicate\",\"outward\":\"Duplicates\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/issueLinkType/1000\"\
},{\"id\":\"1010\",\"inward\":\"Blocked by\",\"name\":\"Blocks\",\"\
outward\":\"Blocks\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueLinkType/1010\"\
}]}"
schema:
$ref: "#/components/schemas/IssueLinkTypes"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if issue linking is disabled."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue link types"
tags:
- "Issue link types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-link-type:jira"
state: "Beta"
post:
deprecated: false
description: "Creates an issue link type. Use this operation to create descriptions\
\ of the reasons why issues are linked. The issue link type consists of a\
\ name and descriptions for a link's inward and outward relationships.\n\n\
To use this operation, the site must have [issue linking](https://confluence.atlassian.com/x/yoXKM)\
\ enabled.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createIssueLinkType"
parameters: []
requestBody:
content:
application/json:
example:
inward: "Duplicated by"
name: "Duplicate"
outward: "Duplicates"
schema:
$ref: "#/components/schemas/IssueLinkType"
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"1000\",\"inward\":\"Duplicated by\",\"name\":\"\
Duplicate\",\"outward\":\"Duplicates\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueLinkType/1000\"\
}"
schema:
$ref: "#/components/schemas/IssueLinkType"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * issue linking is disabled.\n * the issue\
\ link type name is in use.\n * the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Create issue link type"
tags:
- "Issue link types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-link-type:jira"
state: "Beta"
/rest/api/2/issueLinkType/{issueLinkTypeId}:
delete:
deprecated: false
description: "Deletes an issue link type.\n\nTo use this operation, the site\
\ must have [issue linking](https://confluence.atlassian.com/x/yoXKM) enabled.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteIssueLinkType"
parameters:
- description: "The ID of the issue link type."
in: "path"
name: "issueLinkTypeId"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the issue link type ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * issue linking is disabled.\n * the issue\
\ link type is not found.\n * the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Delete issue link type"
tags:
- "Issue link types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue-link-type:jira"
state: "Beta"
get:
deprecated: false
description: "Returns an issue link type.\n\nTo use this operation, the site\
\ must have [issue linking](https://confluence.atlassian.com/x/yoXKM) enabled.\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for a project in the site."
operationId: "getIssueLinkType"
parameters:
- description: "The ID of the issue link type."
in: "path"
name: "issueLinkTypeId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"id\":\"1000\",\"inward\":\"Duplicated by\",\"name\":\"\
Duplicate\",\"outward\":\"Duplicates\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueLinkType/1000\"\
}"
schema:
$ref: "#/components/schemas/IssueLinkType"
description: "Returned if the request is successful."
"400":
description: "Returned if the issue link type ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * issue linking is disabled.\n * the issue\
\ link type is not found.\n * the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue link type"
tags:
- "Issue link types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-link-type:jira"
state: "Beta"
put:
deprecated: false
description: "Updates an issue link type.\n\nTo use this operation, the site\
\ must have [issue linking](https://confluence.atlassian.com/x/yoXKM) enabled.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateIssueLinkType"
parameters:
- description: "The ID of the issue link type."
in: "path"
name: "issueLinkTypeId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
inward: "Duplicated by"
name: "Duplicate"
outward: "Duplicates"
schema:
$ref: "#/components/schemas/IssueLinkType"
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":\"1000\",\"inward\":\"Duplicated by\",\"name\":\"\
Duplicate\",\"outward\":\"Duplicates\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueLinkType/1000\"\
}"
schema:
$ref: "#/components/schemas/IssueLinkType"
description: "Returned if the request is successful."
"400":
description: "Returned if the issue link type ID or the request body are\
\ invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * issue linking is disabled.\n * the issue\
\ link type is not found.\n * the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Update issue link type"
tags:
- "Issue link types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-link-type:jira"
- "write:issue-link-type:jira"
state: "Beta"
/rest/api/2/issues/archive/export:
put:
deprecated: false
description: "Enables admins to retrieve details of all archived issues. Upon\
\ a successful request, the admin who submitted it will receive an email with\
\ a link to download a CSV file with the issue details.\n\nNote that this\
\ API only exports the values of system fields and archival-specific fields\
\ (`ArchivedBy` and `ArchivedDate`). Custom fields aren't supported.\n\n**[Permissions](#permissions)\
\ required:** Jira admin or site admin: [global permission](https://confluence.atlassian.com/x/x4dKLg)\n\
\n**License required:** Premium or Enterprise\n\n**Signed-in users only:**\
\ This API can't be accessed anonymously.\n\n**Rate limiting:** Only a single\
\ request can be active at any given time.\n\n \n"
operationId: "exportArchivedIssues"
parameters: []
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/ArchivedIssuesFilterRequest"
description: "You can filter the issues in your request by the `projects`,\
\ `archivedBy`, `archivedDate`, `issueTypes`, and `reporters` fields. All\
\ filters are optional. If you don't provide any filters, you'll get a list\
\ of up to one million archived issues."
required: true
responses:
"202":
content:
application/json:
example: "{\"payload\":\"{projects=[FOO, BAR], reporters=[uuid-rep-001,\
\ uuid-rep-002], issueTypes=[10001, 10002], archivedDate={dateAfterInstant=2023-01-01,\
\ dateBeforeInstant=2023-01-12}, archivedBy=[uuid-rep-001, uuid-rep-002]}\"\
,\"progress\":0,\"status\":\"ENQUEUED\",\"submittedTime\":1623230887000,\"\
taskId\":\"10990\"}"
schema:
$ref: "#/components/schemas/ExportArchivedIssuesTaskProgressResponse"
description: "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."
"400":
content:
application/json:
example: "[\"Your filter contains invalid values {errorMessage}\"]"
description: "Returned when:\n\n * The request is invalid, or the filters\
\ provided are incorrect\n * You requested too many issues for export.\
\ The limit is one million issues per request"
"401":
content:
application/json:
example: "{\"errorMessages\":[\"User is not logged in.\"],\"errors\"\
:{}}"
description: "Returned if no issues were unarchived because the provided\
\ authentication credentials are either missing or invalid."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"User is not an admin.\"],\"errors\"\
:{}}"
description: "Returned if no issues were unarchived because the user lacks\
\ the required Jira admin or site admin permissions."
"412":
content:
application/json:
example: "{\"errorMessages\":[\"An issue archival task is already running\
\ with ID 1010. To start a new one, cancel the task or wait for it\
\ to finish.\"],\"errors\":{}}"
description: "Returned if a request to export archived issues is already\
\ running."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Export archived issue(s)"
tags:
- "Issues"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue:jira"
state: "Beta"
x-experimental: true
/rest/api/2/issuesecurityschemes:
get:
deprecated: false
description: "Returns all [issue security schemes](https://confluence.atlassian.com/x/J4lKLg).\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueSecuritySchemes"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"issueSecuritySchemes\":[{\"defaultSecurityLevelId\":10021,\"\
description\":\"Description for the default issue security scheme\"\
,\"id\":10000,\"name\":\"Default Issue Security Scheme\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/issuesecurityschemes/10000\"\
}]}"
schema:
$ref: "#/components/schemas/SecuritySchemes"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
"403":
description: "Returned if the user does not have permission to administer\
\ issue security schemes."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Get issue security schemes"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-security-level:jira"
- "read:issue-security-scheme:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a security scheme with security scheme levels and levels'\
\ members. You can create up to 100 security scheme levels and security scheme\
\ levels' members per request.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createIssueSecurityScheme"
parameters: []
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/CreateIssueSecuritySchemeDetails"
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"10001\"}"
schema:
$ref: "#/components/schemas/SecuritySchemeId"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The length of the description must not\
\ exceed 4,000 characters.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create issue security scheme"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/issuesecurityschemes/level:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of issue security levels.\n\
\nOnly issue security levels in the context of classic projects are returned.\n\
\nFiltering using IDs is inclusive: if you specify both security scheme IDs\
\ and level IDs, the result will include both specified issue security levels\
\ and all issue security levels from the specified schemes.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getSecurityLevels"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: "0"
type: "string"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: "50"
type: "string"
- description: "The list of issue security scheme level IDs. To include multiple\
\ issue security levels, separate IDs with an ampersand: `id=10000&id=10001`."
in: "query"
name: "id"
schema:
items:
type: "string"
type: "array"
uniqueItems: true
- description: "The list of issue security scheme IDs. To include multiple issue\
\ security schemes, separate IDs with an ampersand: `schemeId=10000&schemeId=10001`."
in: "query"
name: "schemeId"
schema:
items:
type: "string"
type: "array"
uniqueItems: true
- description: "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."
in: "query"
name: "onlyDefault"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":50,\"startAt\":0,\"total\"\
:1,\"values\":[{\"description\":\"Only the reporter and internal staff\
\ can see this issue.\",\"id\":\"10021\",\"isDefault\":true,\"issueSecuritySchemeId\"\
:\"10001\",\"name\":\"Reporter Only\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issuesecurityscheme/level?id=10021\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanSecurityLevel"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"-1000 is not a valid value. id must\
\ be zero or a positive integer.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue security levels"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-security-level:jira"
- "read:issue-security-scheme:jira"
state: "Beta"
x-experimental: true
/rest/api/2/issuesecurityschemes/level/default:
put:
deprecated: false
description: "Sets default issue security levels for schemes.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setDefaultLevels"
parameters: []
requestBody:
content:
application/json:
example:
defaultValues:
- defaultLevelId: "20000"
issueSecuritySchemeId: "10000"
- defaultLevelId: "30000"
issueSecuritySchemeId: "12000"
schema:
$ref: "#/components/schemas/SetDefaultLevelsRequest"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"some-wrong-string is not a valid value.\
\ The issue security scheme ID must be a positive integer.\"],\"errors\"\
:{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Issue security scheme with ID 10000\
\ not found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue resolution isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Set default issue security levels"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/issuesecurityschemes/level/member:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of issue security level\
\ members.\n\nOnly issue security level members in the context of classic\
\ projects are returned.\n\nFiltering using parameters is inclusive: if you\
\ specify both security scheme IDs and level IDs, the result will include\
\ all issue security level members from the specified schemes and levels.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getSecurityLevelMembers"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: "0"
type: "string"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: "50"
type: "string"
- description: "The list of issue security level member IDs. To include multiple\
\ issue security level members separate IDs with an ampersand: `id=10000&id=10001`."
in: "query"
name: "id"
schema:
items:
type: "string"
type: "array"
uniqueItems: true
- description: "The list of issue security scheme IDs. To include multiple issue\
\ security schemes separate IDs with an ampersand: `schemeId=10000&schemeId=10001`."
in: "query"
name: "schemeId"
schema:
items:
type: "string"
type: "array"
uniqueItems: true
- description: "The list of issue security level IDs. To include multiple issue\
\ security levels separate IDs with an ampersand: `levelId=10000&levelId=10001`."
in: "query"
name: "levelId"
schema:
items:
type: "string"
type: "array"
uniqueItems: true
- description: "Use expand to include additional information in the response.\
\ This parameter accepts a comma-separated list. Expand options include:\n\
\n * `all` Returns all expandable information\n * `field` Returns information\
\ about the custom field granted the permission\n * `group` Returns information\
\ about the group that is granted the permission\n * `projectRole` Returns\
\ information about the project role granted the permission\n * `user`\
\ Returns information about the user who is granted the permission"
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:3,\"values\":[{\"id\":\"10000\",\"issueSecurityLevelId\":\"20010\"\
,\"issueSecuritySchemeId\":\"10010\",\"holder\":{\"expand\":\"group\"\
,\"type\":\"group\"}}]}"
schema:
$ref: "#/components/schemas/PageBeanSecurityLevelMember"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
description: "Returned if the user doesn't have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue security level members"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-security-level:jira"
- "read:issue-security-scheme:jira"
state: "Beta"
x-experimental: true
/rest/api/2/issuesecurityschemes/project:
get:
deprecated: false
description: "Returns a [paginated](#pagination) mapping of projects that are\
\ using security schemes. You can provide either one or multiple security\
\ scheme IDs or project IDs to filter by. If you don't provide any, this will\
\ return a list of all mappings. Only issue security schemes in the context\
\ of classic projects are supported. **[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "searchProjectsUsingSecuritySchemes"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: "0"
type: "string"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: "50"
type: "string"
- description: "The list of security scheme IDs to be filtered out."
in: "query"
name: "issueSecuritySchemeId"
schema:
items:
type: "string"
type: "array"
uniqueItems: true
- description: "The list of project IDs to be filtered out."
in: "query"
name: "projectId"
schema:
items:
type: "string"
type: "array"
uniqueItems: true
responses:
"200":
content:
application/json:
example: "{\"issueSecuritySchemeId\":\"10000\",\"projectId\":\"10000\"\
}"
schema:
$ref: "#/components/schemas/PageBeanIssueSecuritySchemeToProjectMapping"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the search criteria is invalid.If you specify\
\ the project ID parameter"
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get projects using issue security schemes"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
put:
deprecated: false
description: "Associates an issue security scheme with a project and remaps\
\ security levels of issues to the new levels, if provided.\n\nThis operation\
\ is [asynchronous](#async). Follow the `location` link in the response to\
\ determine the status of the task and use [Get task](#api-rest-api-2-task-taskId-get)\
\ to obtain subsequent updates.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "associateSchemesToProjects"
parameters: []
requestBody:
content:
application/json:
example:
oldToNewSecurityLevelMappings:
- newLevelId: "30001"
oldLevelId: "30000"
projectId: "10000"
schemeId: "20000"
schema:
$ref: "#/components/schemas/AssociateSecuritySchemeWithProjectDetails"
required: true
responses:
"303":
content:
application/json:
schema:
$ref: "#/components/schemas/TaskProgressBeanObject"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"some-wrong-string is not a valid value.\
\ The issue security scheme ID must be a positive integer.\"],\"errors\"\
:{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Issue security scheme with ID 10000\
\ not found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the security scheme isn't found."
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if a task to remove the issue security level is already\
\ running."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Associate security scheme to project"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/issuesecurityschemes/search:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of issue security schemes.\
\ \nIf you specify the project ID parameter, the result will contain issue\
\ security schemes and related project IDs you filter by. Use \\{@link IssueSecuritySchemeResource\\\
#searchProjectsUsingSecuritySchemes(String, String, Set, Set)\\} to obtain\
\ all projects related to scheme.\n\nOnly issue security schemes in the context\
\ of classic projects are returned.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "searchSecuritySchemes"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: "0"
type: "string"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: "50"
type: "string"
- description: "The list of issue security scheme IDs. To include multiple issue\
\ security scheme IDs, separate IDs with an ampersand: `id=10000&id=10001`."
in: "query"
name: "id"
schema:
items:
type: "string"
type: "array"
uniqueItems: true
- description: "The list of project IDs. To include multiple project IDs, separate\
\ IDs with an ampersand: `projectId=10000&projectId=10001`."
in: "query"
name: "projectId"
schema:
items:
type: "string"
type: "array"
uniqueItems: true
responses:
"200":
content:
application/json:
example: "{\"id\":10000,\"self\":\"https://your-domain.atlassian.net/rest/api/2/issuesecurityscheme/10000\"\
,\"name\":\"Default scheme\",\"description\":\"Default scheme description\"\
,\"defaultLevel\":10001,\"projectIds\":[10002]}"
schema:
$ref: "#/components/schemas/PageBeanSecuritySchemeWithProjects"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"-1000 is not a valid value. id must\
\ be zero or a positive integer.\"],\"errors\":{}}"
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
description: "Returned if the user doesn't have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Search issue security schemes"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-security-level:jira"
- "read:issue-security-scheme:jira"
state: "Beta"
x-experimental: true
/rest/api/2/issuesecurityschemes/{id}:
get:
deprecated: false
description: "Returns an issue security scheme along with its security levels.\n\
\n**[Permissions](#permissions) required:**\n\n * *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg).\n * *Administer\
\ Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for a project that uses the requested issue security scheme."
operationId: "getIssueSecurityScheme"
parameters:
- description: "The ID of the issue security scheme. Use the [Get issue security\
\ schemes](#api-rest-api-2-issuesecurityschemes-get) operation to get a\
\ list of issue security scheme IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"defaultSecurityLevelId\":10021,\"description\":\"Description\
\ for the default issue security scheme\",\"id\":10000,\"levels\"\
:[{\"description\":\"Only the reporter and internal staff can see\
\ this issue.\",\"id\":\"10021\",\"name\":\"Reporter Only\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/securitylevel/10021\"\
}],\"name\":\"Default Issue Security Scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issuesecurityschemes/10000\"\
}"
schema:
$ref: "#/components/schemas/SecurityScheme"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "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."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Get issue security scheme"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-security-level:jira"
- "read:issue-security-scheme:jira"
state: "Beta"
put:
deprecated: false
description: "Updates the issue security scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateIssueSecurityScheme"
parameters:
- description: "The ID of the issue security scheme."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "My issue security scheme description"
name: "My issue security scheme name"
schema:
$ref: "#/components/schemas/UpdateIssueSecuritySchemeRequestBean"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The length of the description must not\
\ exceed 4,000 characters.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Issue security scheme with ID 10000\
\ not found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue security scheme isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update issue security scheme"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/issuesecurityschemes/{issueSecuritySchemeId}/members:
get:
deprecated: false
description: "Returns issue security level members.\n\nOnly issue security level\
\ members in context of classic projects are returned.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueSecurityLevelMembers"
parameters:
- description: "The ID of the issue security scheme. Use the [Get issue security\
\ schemes](#api-rest-api-2-issuesecurityschemes-get) operation to get a\
\ list of issue security scheme IDs."
in: "path"
name: "issueSecuritySchemeId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The list of issue security level IDs. To include multiple issue\
\ security levels separate IDs with ampersand: `issueSecurityLevelId=10000&issueSecurityLevelId=10001`."
in: "query"
name: "issueSecurityLevelId"
schema:
items:
type: "string"
type: "array"
uniqueItems: true
- description: "Use expand to include additional information in the response.\
\ This parameter accepts a comma-separated list. Expand options include:\n\
\n * `all` Returns all expandable information.\n * `field` Returns information\
\ about the custom field granted the permission.\n * `group` Returns information\
\ about the group that is granted the permission.\n * `projectRole` Returns\
\ information about the project role granted the permission.\n * `user`\
\ Returns information about the user who is granted the permission."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:3,\"values\":[{\"id\":10000,\"issueSecurityLevelId\":10020,\"holder\"\
:{\"expand\":\"user\",\"type\":\"user\",\"user\":{\"accountId\":\"\
5b10a2844c20165700ede21g\",\"active\":true,\"avatarUrls\":{\"16x16\"\
:\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"}}},{\"id\":10001,\"issueSecurityLevelId\"\
:10020,\"holder\":{\"expand\":\"group\",\"parameter\":\"jira-core-users\"\
,\"type\":\"group\",\"value\":\"9c559b11-6c5d-4f96-992c-a746cabab28b\"\
}},{\"id\":10002,\"issueSecurityLevelId\":10021,\"holder\":{\"type\"\
:\"assignee\"}}]}"
schema:
$ref: "#/components/schemas/PageBeanIssueSecurityLevelMember"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if no issue security level members are found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue security level members by issue security scheme"
tags:
- "Issue security level"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:issue-security-level:jira"
- "read:project-role:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/issuesecurityschemes/{schemeId}:
delete:
deprecated: false
description: "Deletes an issue security scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteSecurityScheme"
parameters:
- description: "The ID of the issue security scheme."
in: "path"
name: "schemeId"
required: true
schema:
type: "string"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "\"You can't delete an issue security scheme if any projects\
\ are associated with it.\""
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Issue security scheme with ID 10000\
\ not found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue security scheme isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete issue security scheme"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/issuesecurityschemes/{schemeId}/level:
put:
deprecated: false
description: "Adds levels and levels' members to the issue security scheme.\
\ You can add up to 100 levels per request.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "addSecurityLevel"
parameters:
- description: "The ID of the issue security scheme."
in: "path"
name: "schemeId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
levels:
- description: "First Level Description"
isDefault: true
members:
- type: "reporter"
- parameter: "jira-administrators"
type: "group"
name: "First Level"
schema:
$ref: "#/components/schemas/AddSecuritySchemeLevelsRequestBean"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"some-wrong-string is not a valid value.\
\ The issue security scheme ID must be a positive integer.\"],\"errors\"\
:{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Issue security scheme with ID 10000\
\ not found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the security scheme isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Add issue security levels"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/issuesecurityschemes/{schemeId}/level/{levelId}:
delete:
deprecated: false
description: "Deletes an issue security level.\n\nThis operation is [asynchronous](#async).\
\ Follow the `location` link in the response to determine the status of the\
\ task and use [Get task](#api-rest-api-2-task-taskId-get) to obtain subsequent\
\ updates.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "removeLevel"
parameters:
- description: "The ID of the issue security scheme."
in: "path"
name: "schemeId"
required: true
schema:
type: "string"
- description: "The ID of the issue security level to remove."
in: "path"
name: "levelId"
required: true
schema:
type: "string"
- description: "The ID of the issue security level that will replace the currently\
\ selected level."
in: "query"
name: "replaceWith"
schema:
type: "string"
responses:
"303":
content:
application/json:
schema:
$ref: "#/components/schemas/TaskProgressBeanObject"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "\"You can't delete an issue security scheme if any projects\
\ are associated with it.\""
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Issue security scheme with ID 10000\
\ not found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue security level isn't found."
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if a task to remove the issue security level is already\
\ running."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Remove issue security level"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
put:
deprecated: false
description: "Updates the issue security level.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateSecurityLevel"
parameters:
- description: "The ID of the issue security scheme level belongs to."
in: "path"
name: "schemeId"
required: true
schema:
type: "string"
- description: "The ID of the issue security level to update."
in: "path"
name: "levelId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "New level description"
name: "New level name"
schema:
$ref: "#/components/schemas/UpdateIssueSecurityLevelDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The length of the description must not\
\ exceed 4,000 characters.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Issue security scheme with ID 10000\
\ not found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue security level isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update issue security level"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/issuesecurityschemes/{schemeId}/level/{levelId}/member:
put:
deprecated: false
description: "Adds members to the issue security level. You can add up to 100\
\ members per request.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "addSecurityLevelMembers"
parameters:
- description: "The ID of the issue security scheme."
in: "path"
name: "schemeId"
required: true
schema:
type: "string"
- description: "The ID of the issue security level."
in: "path"
name: "levelId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
members:
- type: "reporter"
- parameter: "jira-administrators"
type: "group"
schema:
$ref: "#/components/schemas/SecuritySchemeMembersRequest"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"some-wrong-string is not a valid value.\
\ The issue security scheme ID must be a positive integer.\"],\"errors\"\
:{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Issue security scheme with ID 10000\
\ not found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the security scheme isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Add issue security level members"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/issuesecurityschemes/{schemeId}/level/{levelId}/member/{memberId}:
delete:
deprecated: false
description: "Removes an issue security level member from an issue security\
\ scheme.\n\n**[Permissions](#permissions) required:** *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "removeMemberFromSecurityLevel"
parameters:
- description: "The ID of the issue security scheme."
in: "path"
name: "schemeId"
required: true
schema:
type: "string"
- description: "The ID of the issue security level."
in: "path"
name: "levelId"
required: true
schema:
type: "string"
- description: "The ID of the issue security level member to be removed."
in: "path"
name: "memberId"
required: true
schema:
type: "string"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Issue security scheme with ID 10000\
\ not found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the security scheme isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Remove member from issue security level"
tags:
- "Issue security schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/issuetype:
get:
deprecated: false
description: "Returns all issue types.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** Issue types are only returned\
\ as follows:\n\n * if the user has the *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg),\
\ all issue types are returned.\n * if the user has the *Browse projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for one\
\ or more projects, the issue types associated with the projects the user\
\ has permission to browse are returned."
operationId: "getIssueAllTypes"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"avatarId\":1,\"description\":\"A task that needs to be\
\ done.\",\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10299&avatarType=issuetype\\\
\",\",\"id\":\"3\",\"name\":\"Task\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/3\"\
,\"subtask\":false},{\"avatarId\":10002,\"description\":\"A problem\
\ with the software.\",\"entityId\":\"9d7dd6f7-e8b6-4247-954b-7b2c9b2a5ba2\"\
,\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10316&avatarType=issuetype\\\
\",\",\"id\":\"1\",\"name\":\"Bug\",\"scope\":{\"project\":{\"id\"\
:\"10000\"},\"type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/1\"\
,\"subtask\":false}]"
schema:
items:
$ref: "#/components/schemas/IssueTypeDetails"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get all issue types for user"
tags:
- "Issue types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
post:
deprecated: false
description: "Creates an issue type and adds it to the default issue type scheme.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createIssueType"
parameters: []
requestBody:
content:
application/json:
example:
description: "description"
name: "name"
type: "standard"
schema:
$ref: "#/components/schemas/IssueTypeCreateBean"
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/IssueTypeDetails"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid because:\n\n * no content\
\ is sent.\n * the issue type name exceeds 60 characters.\n * a subtask\
\ issue type is requested on an instance where subtasks are disabled."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"409":
description: "Returned if the issue type name is in use."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Create issue type"
tags:
- "Issue types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type:jira"
- "read:avatar:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/issuetype/project:
get:
deprecated: false
description: "Returns issue types for a project.\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:** *Browse projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) in the relevant\
\ project or *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueTypesForProject"
parameters:
- description: "The ID of the project."
in: "query"
name: "projectId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The level of the issue type to filter by. Use:\n\n * `-1` for\
\ Subtask.\n * `0` for Base.\n * `1` for Epic."
in: "query"
name: "level"
schema:
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "[{\"avatarId\":10002,\"description\":\"A problem with the\
\ software.\",\"entityId\":\"9d7dd6f7-e8b6-4247-954b-7b2c9b2a5ba2\"\
,\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10316&avatarType=issuetype\\\
\",\",\"id\":\"1\",\"name\":\"Bug\",\"scope\":{\"project\":{\"id\"\
:\"10000\"},\"type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/1\"\
,\"subtask\":false},{\"avatarId\":1,\"description\":\"A task that\
\ needs to be done.\",\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10299&avatarType=issuetype\\\
\",\",\"id\":\"3\",\"name\":\"Task\",\"scope\":{\"project\":{\"id\"\
:\"10000\"},\"type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/3\"\
,\"subtask\":false}]"
schema:
items:
$ref: "#/components/schemas/IssueTypeDetails"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the project is not found.\n * the user\
\ does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue types for project"
tags:
- "Issue types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
x-experimental: true
/rest/api/2/issuetype/{id}:
delete:
deprecated: false
description: "Deletes the issue type. If the issue type is in use, all uses\
\ are updated with the alternative issue type (`alternativeIssueTypeId`).\
\ A list of alternative issue types are obtained from the [Get alternative\
\ issue types](#api-rest-api-2-issuetype-id-alternatives-get) resource.\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteIssueType"
parameters:
- description: "The ID of the issue type."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "The ID of the replacement issue type."
in: "query"
name: "alternativeIssueTypeId"
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if any issues cannot be updated with the alternative\
\ issue type."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if:\n\n * the issue type is in use and an alternative\
\ issue type is not specified.\n * the issue type or alternative issue\
\ type is not found."
"409":
description: "Returned if the issue type is in use and:\n\n * also specified\
\ as the alternative issue type.\n * is a *standard* issue type and the\
\ alternative issue type is a *subtask*."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Delete issue type"
tags:
- "Issue types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue-type:jira"
state: "Beta"
get:
deprecated: false
description: "Returns an issue type.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ in a project the issue type is associated with or *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueType"
parameters:
- description: "The ID of the issue type."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"avatarId\":1,\"description\":\"A task that needs to be\
\ done.\",\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10299&avatarType=issuetype\\\
\",\",\"id\":\"3\",\"name\":\"Task\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/3\"\
,\"subtask\":false}"
schema:
$ref: "#/components/schemas/IssueTypeDetails"
description: "Returned if the request is successful."
"400":
description: "Returned if the issue type ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the issue type is not found.\n * the\
\ user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue type"
tags:
- "Issue types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
put:
deprecated: false
description: "Updates the issue type.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateIssueType"
parameters:
- description: "The ID of the issue type."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
avatarId: 1
description: "description"
name: "name"
schema:
$ref: "#/components/schemas/IssueTypeUpdateBean"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/IssueTypeDetails"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid because:\n\n * no content\
\ is sent.\n * the issue type name exceeds 60 characters.\n * the avatar\
\ is not associated with this issue type."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the issue type is not found."
"409":
description: "Returned if the issue type name is in use."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Update issue type"
tags:
- "Issue types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type:jira"
- "read:avatar:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/issuetype/{id}/alternatives:
get:
deprecated: false
description: "Returns a list of issue types that can be used to replace the\
\ issue type. The alternative issue types are those assigned to the same workflow\
\ scheme, field configuration scheme, and screen scheme.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ None."
operationId: "getAlternativeIssueTypes"
parameters:
- description: "The ID of the issue type."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "[{\"avatarId\":1,\"description\":\"A task that needs to be\
\ done.\",\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10299&avatarType=issuetype\\\
\",\",\"id\":\"3\",\"name\":\"Task\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/3\"\
,\"subtask\":false},{\"avatarId\":10002,\"description\":\"A problem\
\ with the software.\",\"entityId\":\"9d7dd6f7-e8b6-4247-954b-7b2c9b2a5ba2\"\
,\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10316&avatarType=issuetype\\\
\",\",\"id\":\"1\",\"name\":\"Bug\",\"scope\":{\"project\":{\"id\"\
:\"10000\"},\"type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/1\"\
,\"subtask\":false}]"
schema:
items:
$ref: "#/components/schemas/IssueTypeDetails"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the issue type is not found.\n * the\
\ user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get alternative issue types"
tags:
- "Issue types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/issuetype/{id}/avatar2:
post:
deprecated: false
description: "Loads an avatar for the issue type.\n\nSpecify the avatar's local\
\ file location in the body of the request. Also, include the following headers:\n\
\n * `X-Atlassian-Token: no-check` To prevent XSRF protection blocking the\
\ request, for more information see [Special Headers](#special-request-headers).\n\
\ * `Content-Type: image/image type` Valid image types are JPEG, GIF, or\
\ PNG.\n\nFor example: \n`curl --request POST \\ --user email@example.com:\
\ \\ --header 'X-Atlassian-Token: no-check' \\ --header 'Content-Type: image/<\
\ image_type>' \\ --data-binary \"<@/path/to/file/with/your/avatar>\" \\ --url\
\ 'https://your-domain.atlassian.net/rest/api/2/issuetype/{issueTypeId}'This`\n\
\nThe avatar is cropped to a square. If no crop parameters are specified,\
\ the square originates at the top left of the image. The length of the square's\
\ sides is set to the smaller of the height or width of the image.\n\nThe\
\ cropped image is then used to create avatars of 16x16, 24x24, 32x32, and\
\ 48x48 in size.\n\nAfter creating the avatar, use [ Update issue type](#api-rest-api-2-issuetype-id-put)\
\ to set it as the issue type's displayed avatar.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createIssueTypeAvatar"
parameters:
- description: "The ID of the issue type."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "The X coordinate of the top-left corner of the crop region."
in: "query"
name: "x"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The Y coordinate of the top-left corner of the crop region."
in: "query"
name: "y"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The length of each side of the crop region."
in: "query"
name: "size"
required: true
schema:
format: "int32"
type: "integer"
requestBody:
content:
'*/*':
schema: {}
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"1000\",\"isDeletable\":false,\"isSelected\":false,\"\
isSystemAvatar\":true,\"urls\":{\"16x16\":\"/secure/useravatar?size=xsmall&avatarId=10040&avatarType=project\"\
,\"24x24\":\"/secure/useravatar?size=small&avatarId=10040&avatarType=project\"\
,\"32x32\":\"/secure/useravatar?size=medium&avatarId=10040&avatarType=project\"\
,\"48x48\":\"/secure/useravatar?avatarId=10040&avatarType=project\"\
}}"
schema:
$ref: "#/components/schemas/Avatar"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * an image isn't included in the request.\n\
\ * the image type is unsupported.\n * the crop parameters extend the\
\ crop area beyond the edge of the image.\n * `cropSize` is missing.\n\
\ * the issue type ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the issue type is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Load issue type avatar"
tags:
- "Issue types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:avatar:jira"
- "write:issue-type:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/issuetype/{issueTypeId}/properties:
get:
deprecated: false
description: "Returns all the [issue type property](https://developer.atlassian.com/cloud/jira/platform/storing-data-without-a-database/#a-id-jira-entity-properties-a-jira-entity-properties)\
\ keys of the issue type.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:**\n\n * *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg) to get the property\
\ keys of any issue type.\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ to get the property keys of any issue types associated with the projects\
\ the user has permission to browse."
operationId: "getIssueTypePropertyKeys"
parameters:
- description: "The ID of the issue type."
in: "path"
name: "issueTypeId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"keys\":[{\"key\":\"issue.support\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/EX-2/properties/issue.support\"\
}]}"
schema:
$ref: "#/components/schemas/PropertyKeys"
description: "Returned if the request is successful."
"400":
description: "Returned if the issue type ID is invalid."
"404":
description: "Returned if:\n\n * the issue type is not found.\n * the\
\ user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue type property keys"
tags:
- "Issue type properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type.property:jira"
state: "Beta"
/rest/api/2/issuetype/{issueTypeId}/properties/{propertyKey}:
delete:
deprecated: false
description: "Deletes the [issue type property](https://developer.atlassian.com/cloud/jira/platform/storing-data-without-a-database/#a-id-jira-entity-properties-a-jira-entity-properties).\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteIssueTypeProperty"
parameters:
- description: "The ID of the issue type."
in: "path"
name: "issueTypeId"
required: true
schema:
type: "string"
- description: "The key of the property. Use [Get issue type property keys](#api-rest-api-2-issuetype-issueTypeId-properties-get)\
\ to get a list of all issue type property keys."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the issue type property is deleted."
"400":
description: "Returned if the issue type ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the issue type or property is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Delete issue type property"
tags:
- "Issue type properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue-type.property:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the key and value of the [issue type property](https://developer.atlassian.com/cloud/jira/platform/storing-data-without-a-database/#a-id-jira-entity-properties-a-jira-entity-properties).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ to get the details of any issue type.\n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ to get the details of any issue types associated with the projects the user\
\ has permission to browse."
operationId: "getIssueTypeProperty"
parameters:
- description: "The ID of the issue type."
in: "path"
name: "issueTypeId"
required: true
schema:
type: "string"
- description: "The key of the property. Use [Get issue type property keys](#api-rest-api-2-issuetype-issueTypeId-properties-get)\
\ to get a list of all issue type property keys."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"key\":\"issue.support\",\"value\":{\"system.conversation.id\"\
:\"b1bf38be-5e94-4b40-a3b8-9278735ee1e6\",\"system.support.time\"\
:\"1m\"}}"
schema:
$ref: "#/components/schemas/EntityProperty"
description: "Returned if the request is successful."
"400":
description: "Returned if the issue type ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue type or property is not found or the\
\ user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get issue type property"
tags:
- "Issue type properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type.property:jira"
state: "Beta"
put:
deprecated: false
description: "Creates or updates the value of the [issue type property](https://developer.atlassian.com/cloud/jira/platform/storing-data-without-a-database/#a-id-jira-entity-properties-a-jira-entity-properties).\
\ Use this resource to store and update data against an issue type.\n\nThe\
\ value of the request body must be a [valid](http://tools.ietf.org/html/rfc4627),\
\ non-empty JSON blob. The maximum length is 32768 characters.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setIssueTypeProperty"
parameters:
- description: "The ID of the issue type."
in: "path"
name: "issueTypeId"
required: true
schema:
type: "string"
- description: "The key of the issue type property. The maximum length is 255\
\ characters."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
number: 5
string: "string-value"
schema: {}
description: "The value of the property. The value has to be a valid, non-empty\
\ [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length\
\ of the property value is 32768 bytes."
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the issue type property is updated."
"201":
content:
application/json:
schema: {}
description: "Returned if the issue type property is created."
"400":
description: "Returned if:\n\n * the issue type ID is invalid.\n * a property\
\ value is not provided.\n * the property value JSON content is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to modify the\
\ issue type."
"404":
description: "Returned if:\n\n * the issue type is not found.\n * the\
\ user does not have the permission view the issue type."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Set issue type property"
tags:
- "Issue type properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type.property:jira"
state: "Beta"
/rest/api/2/issuetypescheme:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of issue type schemes.\n\
\nOnly issue type schemes used in classic projects are returned.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAllIssueTypeSchemes"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The list of issue type schemes IDs. To include multiple IDs,\
\ provide an ampersand-separated list. For example, `id=10000&id=10001`."
in: "query"
name: "id"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "[Order](#ordering) the results by a field:\n\n * `name` Sorts\
\ by issue type scheme name.\n * `id` Sorts by issue type scheme ID."
in: "query"
name: "orderBy"
schema:
default: "id"
enum:
- "name"
- "-name"
- "+name"
- "id"
- "-id"
- "+id"
type: "string"
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `projects` For each issue type schemes, returns information\
\ about the projects the issue type scheme is assigned to.\n * `issueTypes`\
\ For each issue type schemes, returns information about the issueTypes\
\ the issue type scheme have."
in: "query"
name: "expand"
schema:
default: ""
type: "string"
- description: "String used to perform a case-insensitive partial match with\
\ issue type scheme name."
in: "query"
name: "queryString"
schema:
default: ""
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:3,\"values\":[{\"id\":\"10000\",\"name\":\"Default Issue Type Scheme\"\
,\"description\":\"Default issue type scheme is the list of global\
\ issue types. All newly created issue types will automatically be\
\ added to this scheme.\",\"defaultIssueTypeId\":\"10003\",\"isDefault\"\
:true},{\"id\":\"10001\",\"name\":\"SUP: Kanban Issue Type Scheme\"\
,\"description\":\"A collection of issue types suited to use in a\
\ kanban style project.\",\"projects\":{\"isLast\":true,\"maxResults\"\
:100,\"startAt\":0,\"total\":1,\"values\":[{\"avatarUrls\":{\"16x16\"\
:\"secure/projectavatar?size=xsmall&pid=10000\",\"24x24\":\"secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"secure/projectavatar?size=medium&pid=10000\",\"48x48\"\
:\"secure/projectavatar?size=large&pid=10000\"},\"id\":\"10000\",\"\
key\":\"EX\",\"name\":\"Example\",\"projectCategory\":{\"description\"\
:\"Project category description\",\"id\":\"10000\",\"name\":\"A project\
\ category\"},\"projectTypeKey\":\"ProjectTypeKey{key='software'}\"\
,\"self\":\"project/EX\",\"simplified\":false}]}},{\"id\":\"10002\"\
,\"name\":\"HR: Scrum issue type scheme\",\"description\":\"\",\"\
defaultIssueTypeId\":\"10004\",\"issueTypes\":{\"isLast\":true,\"\
maxResults\":100,\"startAt\":0,\"total\":1,\"values\":[{\"description\"\
:\"Improvement Issue Type\",\"hierarchyLevel\":-1,\"iconUrl\":\"www.example.com\"\
,\"id\":\"1000L\",\"name\":\"Improvements\",\"subtask\":true}]}}]}"
schema:
$ref: "#/components/schemas/PageBeanIssueTypeScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get all issue type schemes"
tags:
- "Issue type schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type-scheme:jira"
state: "Beta"
post:
deprecated: false
description: "Creates an issue type scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createIssueTypeScheme"
parameters: []
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/IssueTypeSchemeDetails"
required: true
responses:
"201":
content:
application/json:
example: "{\"issueTypeSchemeId\":\"10010\"}"
schema:
$ref: "#/components/schemas/IssueTypeSchemeID"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The default issue type ID has to be\
\ present in issue type IDs list.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"409":
content:
application/json:
example: "{\"errorMessages\":[\"The name is used by another scheme.\"\
],\"errors\":{}}"
description: "Returned if the scheme name is used by another scheme."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create issue type scheme"
tags:
- "Issue type schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescheme/mapping:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of issue type scheme items.\n\
\nOnly issue type scheme items used in classic projects are returned.\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueTypeSchemesMapping"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The list of issue type scheme IDs. To include multiple IDs,\
\ provide an ampersand-separated list. For example, `issueTypeSchemeId=10000&issueTypeSchemeId=10001`."
in: "query"
name: "issueTypeSchemeId"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:4,\"values\":[{\"issueTypeSchemeId\":\"10000\",\"issueTypeId\":\"\
10000\"},{\"issueTypeSchemeId\":\"10000\",\"issueTypeId\":\"10001\"\
},{\"issueTypeSchemeId\":\"10000\",\"issueTypeId\":\"10002\"},{\"\
issueTypeSchemeId\":\"10001\",\"issueTypeId\":\"10000\"}]}"
schema:
$ref: "#/components/schemas/PageBeanIssueTypeSchemeMapping"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue type scheme items"
tags:
- "Issue type schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescheme/project:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of issue type schemes\
\ and, for each issue type scheme, a list of the projects that use it.\n\n\
Only issue type schemes used in classic projects are returned.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueTypeSchemeForProjects"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The list of project IDs. To include multiple project IDs, provide\
\ an ampersand-separated list. For example, `projectId=10000&projectId=10001`."
in: "query"
name: "projectId"
required: true
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:3,\"values\":[{\"issueTypeScheme\":{\"id\":\"10000\",\"name\":\"\
Default Issue Type Scheme\",\"description\":\"Default issue type scheme\
\ is the list of global issue types. All newly created issue types\
\ will automatically be added to this scheme.\",\"defaultIssueTypeId\"\
:\"10003\",\"isDefault\":true},\"projectIds\":[\"10000\",\"10001\"\
]},{\"issueTypeScheme\":{\"id\":\"10001\",\"name\":\"SUP: Kanban Issue\
\ Type Scheme\",\"description\":\"A collection of issue types suited\
\ to use in a kanban style project.\"},\"projectIds\":[\"10002\"]},{\"\
issueTypeScheme\":{\"id\":\"10002\",\"name\":\"HR: Scrum issue type\
\ scheme\",\"description\":\"\",\"defaultIssueTypeId\":\"10004\",\"\
issueTypes\":{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"\
total\":1,\"values\":[{\"description\":\"Improvement Issue Type\"\
,\"hierarchyLevel\":-1,\"iconUrl\":\"www.example.com\",\"id\":\"1000L\"\
,\"name\":\"Improvements\",\"subtask\":true}]}},\"projectIds\":[\"\
10003\",\"10004\",\"10005\"]}]}"
schema:
$ref: "#/components/schemas/PageBeanIssueTypeSchemeProjects"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue type schemes for projects"
tags:
- "Issue type schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type-scheme:jira"
state: "Beta"
put:
deprecated: false
description: "Assigns an issue type scheme to a project.\n\nIf any issues in\
\ the project are assigned issue types not present in the new scheme, the\
\ operation will fail. To complete the assignment those issues must be updated\
\ to use issue types in the new scheme.\n\nIssue type schemes can only be\
\ assigned to classic projects.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "assignIssueTypeSchemeToProject"
parameters: []
requestBody:
content:
application/json:
example:
issueTypeSchemeId: "10000"
projectId: "10000"
schema:
$ref: "#/components/schemas/IssueTypeSchemeProjectAssociation"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"This issue type scheme can't be assigned\
\ to the project. This is because some issues in this project use\
\ issue types not present in the scheme. Before assigning the scheme\
\ to the project, update the issue types on these issues: 7\"],\"\
errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type scheme was not found.\"\
],\"errors\":{}}"
description: "Returned if the issue type scheme or the project is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Assign issue type scheme to project"
tags:
- "Issue type schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-scheme:jira"
- "write:project:jira"
state: "Beta"
/rest/api/2/issuetypescheme/{issueTypeSchemeId}:
delete:
deprecated: false
description: "Deletes an issue type scheme.\n\nOnly issue type schemes used\
\ in classic projects can be deleted.\n\nAny projects assigned to the scheme\
\ are reassigned to the default issue type scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteIssueTypeScheme"
parameters:
- description: "The ID of the issue type scheme."
in: "path"
name: "issueTypeSchemeId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the issue type scheme is deleted."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The default issue type scheme can't\
\ be removed.\"],\"errors\":{}}"
description: "Returned if the request is to delete the default issue type\
\ scheme."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type scheme was not found.\"\
],\"errors\":{}}"
description: "Returned if the issue type scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete issue type scheme"
tags:
- "Issue type schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue-type-scheme:jira"
- "write:project:jira"
state: "Beta"
put:
deprecated: false
description: "Updates an issue type scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateIssueTypeScheme"
parameters:
- description: "The ID of the issue type scheme."
in: "path"
name: "issueTypeSchemeId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
defaultIssueTypeId: "10002"
description: "A collection of issue types suited to use in a kanban\
\ style project."
name: "Kanban Issue Type Scheme"
schema:
$ref: "#/components/schemas/IssueTypeSchemeUpdateDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The default issue type has to be one\
\ of the issue types of the scheme.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type scheme was not found.\"\
],\"errors\":{}}"
description: "Returned if the issue type scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update issue type scheme"
tags:
- "Issue type schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescheme/{issueTypeSchemeId}/issuetype:
put:
deprecated: false
description: "Adds issue types to an issue type scheme.\n\nThe added issue types\
\ are appended to the issue types list.\n\nIf any of the issue types exist\
\ in the issue type scheme, the operation fails and no issue types are added.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "addIssueTypesToIssueTypeScheme"
parameters:
- description: "The ID of the issue type scheme."
in: "path"
name: "issueTypeSchemeId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
issueTypeIds:
- "10000"
- "10002"
- "10003"
schema:
$ref: "#/components/schemas/IssueTypeIds"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"These issue types were not added because\
\ they are already present in the issue type scheme: 10002, 10003\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"These issue types were not found: 10000,\
\ 10002\"],\"errors\":{}}"
description: "Returned if the issue type or the issue type scheme is not\
\ found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Add issue types to issue type scheme"
tags:
- "Issue type schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescheme/{issueTypeSchemeId}/issuetype/move:
put:
deprecated: false
description: "Changes the order of issue types in an issue type scheme.\n\n\
The request body parameters must meet the following requirements:\n\n * all\
\ of the issue types must belong to the issue type scheme.\n * either `after`\
\ or `position` must be provided.\n * the issue type in `after` must not\
\ be in the issue type list.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "reorderIssueTypesInIssueTypeScheme"
parameters:
- description: "The ID of the issue type scheme."
in: "path"
name: "issueTypeSchemeId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
after: "10008"
issueTypeIds:
- "10001"
- "10004"
- "10002"
schema:
$ref: "#/components/schemas/OrderOfIssueTypes"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type scheme does not include\
\ some of the specified issue types. Issue type IDs missing from the\
\ scheme are: 10007, 10008\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type scheme was not found.\"\
],\"errors\":{}}"
description: "Returned if the issue type scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Change order of issue types"
tags:
- "Issue type schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescheme/{issueTypeSchemeId}/issuetype/{issueTypeId}:
delete:
deprecated: false
description: "Removes an issue type from an issue type scheme.\n\nThis operation\
\ cannot remove:\n\n * any issue type used by issues.\n * any issue types\
\ from the default issue type scheme.\n * the last standard issue type from\
\ an issue type scheme.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "removeIssueTypeFromIssueTypeScheme"
parameters:
- description: "The ID of the issue type scheme."
in: "path"
name: "issueTypeSchemeId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the issue type."
in: "path"
name: "issueTypeId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Can't remove the last standard issue\
\ type from the issue type scheme.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type was not found in the\
\ issue type scheme.\"],\"errors\":{}}"
description: "Returned if the issue type scheme is missing or the issue\
\ type is not found in the issue type scheme."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Remove issue type from issue type scheme"
tags:
- "Issue type schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescreenscheme:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of issue type screen schemes.\n\
\nOnly issue type screen schemes used in classic projects are returned.\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueTypeScreenSchemes"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The list of issue type screen scheme IDs. To include multiple\
\ IDs, provide an ampersand-separated list. For example, `id=10000&id=10001`."
in: "query"
name: "id"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "String used to perform a case-insensitive partial match with\
\ issue type screen scheme name."
in: "query"
name: "queryString"
schema:
default: ""
type: "string"
- description: "[Order](#ordering) the results by a field:\n\n * `name` Sorts\
\ by issue type screen scheme name.\n * `id` Sorts by issue type screen\
\ scheme ID."
in: "query"
name: "orderBy"
schema:
default: "id"
enum:
- "name"
- "-name"
- "+name"
- "id"
- "-id"
- "+id"
type: "string"
- description: "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."
in: "query"
name: "expand"
schema:
default: ""
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:2,\"values\":[{\"id\":\"1\",\"name\":\"Default Issue Type Screen\
\ Scheme\",\"description\":\"The default issue type screen scheme\"\
},{\"id\":\"10000\",\"name\":\"Office issue type screen scheme\",\"\
description\":\"Managing office projects\",\"projects\":{\"isLast\"\
:true,\"maxResults\":100,\"startAt\":0,\"total\":1,\"values\":[{\"\
avatarUrls\":{\"16x16\":\"secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"secure/projectavatar?size=small&pid=10000\",\"32x32\"\
:\"secure/projectavatar?size=medium&pid=10000\",\"48x48\":\"secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"Project category description\",\"id\":\"10000\"\
,\"name\":\"A project category\"},\"projectTypeKey\":\"ProjectTypeKey{key='software'}\"\
,\"self\":\"project/EX\",\"simplified\":false}]}}]}"
schema:
$ref: "#/components/schemas/PageBeanIssueTypeScreenScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue type screen schemes"
tags:
- "Issue type screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type-screen-scheme:jira"
state: "Beta"
post:
deprecated: false
description: "Creates an issue type screen scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createIssueTypeScreenScheme"
parameters: []
requestBody:
content:
application/json:
example:
issueTypeMappings:
- issueTypeId: "default"
screenSchemeId: "10001"
- issueTypeId: "10001"
screenSchemeId: "10002"
- issueTypeId: "10002"
screenSchemeId: "10002"
name: "Scrum issue type screen scheme"
schema:
$ref: "#/components/schemas/IssueTypeScreenSchemeDetails"
description: "An issue type screen scheme bean."
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"10001\"}"
schema:
$ref: "#/components/schemas/IssueTypeScreenSchemeId"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"One or more issue type IDs are repeated,\
\ an issue type ID can only be specified once.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type screen schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"One or more issue type IDs were not\
\ found.\"],\"errors\":{}}"
description: "Returned if the issue type or screen scheme is not found."
"409":
content:
application/json:
example: "{\"errorMessages\":[\"Sub-tasks are disabled in Jira. At least\
\ one of the issue types is a sub-task.\"],\"errors\":{}}"
description: "Returned if the issue type is a sub-task, but sub-tasks are\
\ disabled in Jira settings."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create issue type screen scheme"
tags:
- "Issue type screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-screen-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescreenscheme/mapping:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of issue type screen scheme\
\ items.\n\nOnly issue type screen schemes used in classic projects are returned.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueTypeScreenSchemeMappings"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The list of issue type screen scheme IDs. To include multiple\
\ issue type screen schemes, separate IDs with ampersand: `issueTypeScreenSchemeId=10000&issueTypeScreenSchemeId=10001`."
in: "query"
name: "issueTypeScreenSchemeId"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:4,\"values\":[{\"issueTypeId\":\"10000\",\"issueTypeScreenSchemeId\"\
:\"10020\",\"screenSchemeId\":\"10010\"},{\"issueTypeId\":\"10001\"\
,\"issueTypeScreenSchemeId\":\"10021\",\"screenSchemeId\":\"10010\"\
},{\"issueTypeId\":\"10002\",\"issueTypeScreenSchemeId\":\"10022\"\
,\"screenSchemeId\":\"10010\"},{\"issueTypeId\":\"default\",\"issueTypeScreenSchemeId\"\
:\"10023\",\"screenSchemeId\":\"10011\"}]}"
schema:
$ref: "#/components/schemas/PageBeanIssueTypeScreenSchemeItem"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue type screen scheme items"
tags:
- "Issue type screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type-screen-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescreenscheme/project:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of issue type screen schemes\
\ and, for each issue type screen scheme, a list of the projects that use\
\ it.\n\nOnly issue type screen schemes used in classic projects are returned.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueTypeScreenSchemeProjectAssociations"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The list of project IDs. To include multiple projects, separate\
\ IDs with ampersand: `projectId=10000&projectId=10001`."
in: "query"
name: "projectId"
required: true
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:1,\"values\":[{\"issueTypeScreenScheme\":{\"id\":\"1\",\"name\":\"\
Default Issue Type Screen Scheme\",\"description\":\"The default issue\
\ type screen scheme\"},\"projectIds\":[\"10000\",\"10001\"]}]}"
schema:
$ref: "#/components/schemas/PageBeanIssueTypeScreenSchemesProjects"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue type screen schemes for projects"
tags:
- "Issue type screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type-screen-scheme:jira"
state: "Beta"
put:
deprecated: false
description: "Assigns an issue type screen scheme to a project.\n\nIssue type\
\ screen schemes can only be assigned to classic projects.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "assignIssueTypeScreenSchemeToProject"
parameters: []
requestBody:
content:
application/json:
example:
issueTypeScreenSchemeId: "10001"
projectId: "10002"
schema:
$ref: "#/components/schemas/IssueTypeScreenSchemeProjectAssociation"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Only classic projects can have issue\
\ type screen schemes assigned.\"],\"errors\":{}}"
description: "Returned if:\n\n * project is not found.\n * issue type\
\ screen scheme is not found.\n * the project is not a classic project."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type screen schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type screen scheme was not\
\ found.\"],\"errors\":{}}"
description: "Returned if the issue type screen scheme or the project are\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Assign issue type screen scheme to project"
tags:
- "Issue type screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-screen-scheme:jira"
- "write:project:jira"
state: "Beta"
/rest/api/2/issuetypescreenscheme/{issueTypeScreenSchemeId}:
delete:
deprecated: false
description: "Deletes an issue type screen scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteIssueTypeScreenScheme"
parameters:
- description: "The ID of the issue type screen scheme."
in: "path"
name: "issueTypeScreenSchemeId"
required: true
schema:
type: "string"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the issue type screen scheme is deleted."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type screen scheme cannot\
\ be deleted because it is assigned to one or more projects.\"],\"\
errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type screen scheme was not\
\ found.\"],\"errors\":{}}"
description: "Returned if the issue type screen scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete issue type screen scheme"
tags:
- "Issue type screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:issue-type-screen-scheme:jira"
state: "Beta"
put:
deprecated: false
description: "Updates an issue type screen scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateIssueTypeScreenScheme"
parameters:
- description: "The ID of the issue type screen scheme."
in: "path"
name: "issueTypeScreenSchemeId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "Screens for scrum issue types."
name: "Scrum scheme"
schema:
$ref: "#/components/schemas/IssueTypeScreenSchemeUpdateDetails"
description: "The issue type screen scheme update details."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type screen scheme name is\
\ in use.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type screen schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type screen scheme was not\
\ found.\"],\"errors\":{}}"
description: "Returned if the issue type screen scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update issue type screen scheme"
tags:
- "Issue type screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-screen-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescreenscheme/{issueTypeScreenSchemeId}/mapping:
put:
deprecated: false
description: "Appends issue type to screen scheme mappings to an issue type\
\ screen scheme.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "appendMappingsForIssueTypeScreenScheme"
parameters:
- description: "The ID of the issue type screen scheme."
in: "path"
name: "issueTypeScreenSchemeId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
issueTypeMappings:
- issueTypeId: "10000"
screenSchemeId: "10001"
- issueTypeId: "10001"
screenSchemeId: "10002"
- issueTypeId: "10002"
screenSchemeId: "10002"
schema:
$ref: "#/components/schemas/IssueTypeScreenSchemeMappingDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"A default mapping cannot be added.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type screen scheme was not\
\ found.\"],\"errors\":{}}"
description: "Returned if the issue type screen scheme, issue type, or screen\
\ scheme is not found."
"409":
content:
application/json:
example: "{\"errorMessages\":[\"Sub-tasks are disabled in Jira. At least\
\ one of the issue types is a sub-task.\"],\"errors\":{}}"
description: "Returned if the issue type is a sub-task, but sub-tasks are\
\ disabled in Jira settings."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Append mappings to issue type screen scheme"
tags:
- "Issue type screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-screen-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescreenscheme/{issueTypeScreenSchemeId}/mapping/default:
put:
deprecated: false
description: "Updates the default screen scheme of an issue type screen scheme.\
\ The default screen scheme is used for all unmapped issue types.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateDefaultScreenScheme"
parameters:
- description: "The ID of the issue type screen scheme."
in: "path"
name: "issueTypeScreenSchemeId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
screenSchemeId: "10010"
schema:
$ref: "#/components/schemas/UpdateDefaultScreenScheme"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The screenSchemeId has to be provided.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type screen schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type screen scheme was not\
\ found.\"],\"errors\":{}}"
description: "Returned if the issue type screen scheme or the screen scheme\
\ is not found, or the screen scheme isn't used in classic projects."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update issue type screen scheme default screen scheme"
tags:
- "Issue type screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-screen-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescreenscheme/{issueTypeScreenSchemeId}/mapping/remove:
post:
deprecated: false
description: "Removes issue type to screen scheme mappings from an issue type\
\ screen scheme.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "removeMappingsFromIssueTypeScreenScheme"
parameters:
- description: "The ID of the issue type screen scheme."
in: "path"
name: "issueTypeScreenSchemeId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
issueTypeIds:
- "10000"
- "10001"
- "10004"
schema:
$ref: "#/components/schemas/IssueTypeIds"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the screen scheme mappings are removed from the\
\ issue type screen scheme."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The issueTypeIds must not contain duplicates.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type screen schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The issue type screen scheme was not\
\ found.\"],\"errors\":{}}"
description: "Returned if the issue type screen scheme or one or more issue\
\ type mappings are not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Remove mappings from issue type screen scheme"
tags:
- "Issue type screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue-type-screen-scheme:jira"
state: "Beta"
/rest/api/2/issuetypescreenscheme/{issueTypeScreenSchemeId}/project:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of projects associated\
\ with an issue type screen scheme.\n\nOnly company-managed projects associated\
\ with an issue type screen scheme are returned.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getProjectsForIssueTypeScreenScheme"
parameters:
- description: "The ID of the issue type screen scheme."
in: "path"
name: "issueTypeScreenSchemeId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- in: "query"
name: "query"
schema:
default: ""
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:1,\"values\":[{\"avatarUrls\":{\"16x16\":\"secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"secure/projectavatar?size=small&pid=10000\",\"32x32\"\
:\"secure/projectavatar?size=medium&pid=10000\",\"48x48\":\"secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"Project category description\",\"id\":\"10000\"\
,\"name\":\"A project category\"},\"projectTypeKey\":\"ProjectTypeKey{key='software'}\"\
,\"self\":\"project/EX\",\"simplified\":false}]}"
schema:
$ref: "#/components/schemas/PageBeanProjectDetails"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue type screen scheme projects"
tags:
- "Issue type screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
/rest/api/2/jql/autocompletedata:
get:
deprecated: false
description: "Returns reference data for JQL searches. This is a downloadable\
\ version of the documentation provided in [Advanced searching - fields reference](https://confluence.atlassian.com/x/gwORLQ)\
\ and [Advanced searching - functions reference](https://confluence.atlassian.com/x/hgORLQ),\
\ along with a list of JQL-reserved words. Use this information to assist\
\ with the programmatic creation of JQL queries or the validation of queries\
\ built in a custom query builder.\n\nTo filter visible field details by project\
\ or collapse non-unique fields by field type then [Get field reference data\
\ (POST)](#api-rest-api-2-jql-autocompletedata-post) can be used.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getAutoComplete"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"jqlReservedWords\":[\"empty\",\"and\",\"or\",\"in\",\"\
distinct\"],\"visibleFieldNames\":[{\"displayName\":\"summary\",\"\
operators\":[\"~\",\"!~\",\"is\",\"is not\"],\"orderable\":\"true\"\
,\"searchable\":\"true\",\"types\":[\"java.lang.String\"],\"value\"\
:\"summary\"},{\"auto\":\"true\",\"cfid\":\"cf[10880]\",\"displayName\"\
:\"Sprint - cf[10880]\",\"operators\":[\"=\",\"!=\",\"in\",\"not in\"\
,\"is\",\"is not\"],\"orderable\":\"true\",\"searchable\":\"true\"\
,\"types\":[\"com.atlassian.greenhopper.service.sprint.Sprint\"],\"\
value\":\"Sprint\"}],\"visibleFunctionNames\":[{\"displayName\":\"\
standardIssueTypes()\",\"isList\":\"true\",\"types\":[\"com.atlassian.jira.issue.issuetype.IssueType\"\
],\"value\":\"standardIssueTypes()\"},{\"displayName\":\"issuesWithText()\"\
,\"supportsListAndSingleValueOperators\":\"true\",\"types\":[\"com.atlassian.jira.issue.issuetype.IssueType\"\
],\"value\":\"issuesWithText()\"}]}"
schema:
$ref: "#/components/schemas/JQLReferenceData"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get field reference data (GET)"
tags:
- "JQL"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
state: "Beta"
post:
deprecated: false
description: "Returns reference data for JQL searches. This is a downloadable\
\ version of the documentation provided in [Advanced searching - fields reference](https://confluence.atlassian.com/x/gwORLQ)\
\ and [Advanced searching - functions reference](https://confluence.atlassian.com/x/hgORLQ),\
\ along with a list of JQL-reserved words. Use this information to assist\
\ with the programmatic creation of JQL queries or the validation of queries\
\ built in a custom query builder.\n\nThis operation can filter the custom\
\ fields returned by project. Invalid project IDs in `projectIds` are ignored.\
\ System fields are always returned.\n\nIt can also return the collapsed field\
\ for custom fields. Collapsed fields enable searches to be performed across\
\ all fields with the same name and of the same field type. For example, the\
\ collapsed field `Component - Component[Dropdown]` enables dropdown fields\
\ `Component - cf[10061]` and `Component - cf[10062]` to be searched simultaneously.\n\
\n**[Permissions](#permissions) required:** None."
operationId: "getAutoCompletePost"
parameters: []
requestBody:
content:
application/json:
example:
includeCollapsedFields: true
projectIds:
- 10000
- 10001
- 10002
schema:
$ref: "#/components/schemas/SearchAutoCompleteFilter"
required: true
responses:
"200":
content:
application/json:
example: "{\"jqlReservedWords\":[\"empty\",\"and\",\"or\",\"in\",\"\
distinct\"],\"visibleFieldNames\":[{\"displayName\":\"summary\",\"\
operators\":[\"~\",\"!~\",\"is\",\"is not\"],\"orderable\":\"true\"\
,\"searchable\":\"true\",\"types\":[\"java.lang.String\"],\"value\"\
:\"summary\"},{\"auto\":\"true\",\"cfid\":\"cf[10061]\",\"displayName\"\
:\"Component - cf[10061]\",\"operators\":[\"=\",\"!=\",\"in\",\"not\
\ in\",\"is\",\"is not\"],\"orderable\":\"true\",\"types\":[\"com.atlassian.jira.issue.customfields.option.Option\"\
],\"value\":\"cf[10061]\"},{\"auto\":\"true\",\"cfid\":\"cf[10062]\"\
,\"displayName\":\"Component - cf[10062]\",\"operators\":[\"=\",\"\
!=\",\"in\",\"not in\",\"is\",\"is not\"],\"orderable\":\"true\",\"\
types\":[\"com.atlassian.jira.issue.customfields.option.Option\"],\"\
value\":\"cf[10062]\"},{\"auto\":\"true\",\"displayName\":\"Component\
\ - Component[Dropdown]\",\"operators\":[\"=\",\"!=\",\"in\",\"not\
\ in\",\"is\",\"is not\"],\"searchable\":\"true\",\"types\":[\"com.atlassian.jira.issue.customfields.option.Option\"\
],\"value\":\"\\\"Component[Dropdown]\\\"\"}],\"visibleFunctionNames\"\
:[{\"displayName\":\"standardIssueTypes()\",\"isList\":\"true\",\"\
types\":[\"com.atlassian.jira.issue.issuetype.IssueType\"],\"value\"\
:\"standardIssueTypes()\"}]}"
schema:
$ref: "#/components/schemas/JQLReferenceData"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get field reference data (POST)"
tags:
- "JQL"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
state: "Beta"
/rest/api/2/jql/autocompletedata/suggestions:
get:
deprecated: false
description: "Returns the JQL search auto complete suggestions for a field.\n\
\nSuggestions can be obtained by providing:\n\n * `fieldName` to get a list\
\ of all values for the field.\n * `fieldName` and `fieldValue` to get a\
\ list of values containing the text in `fieldValue`.\n * `fieldName` and\
\ `predicateName` to get a list of all predicate values for the field.\n *\
\ `fieldName`, `predicateName`, and `predicateValue` to get a list of predicate\
\ values containing the text in `predicateValue`.\n\nThis operation can be\
\ accessed anonymously.\n\n**[Permissions](#permissions) required:** None."
operationId: "getFieldAutoCompleteForQueryString"
parameters:
- description: "The name of the field."
in: "query"
name: "fieldName"
schema:
example: "reporter"
type: "string"
x-showInExample: "true"
- description: "The partial field item name entered by the user."
in: "query"
name: "fieldValue"
schema:
type: "string"
- description: "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*."
in: "query"
name: "predicateName"
schema:
type: "string"
- description: "The partial predicate item name entered by the user."
in: "query"
name: "predicateValue"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"results\":[{\"displayName\":\"ActiveObjects (AO)\"\
,\"value\":\"ActiveObjects\"},{\"displayName\":\"Atlassian Connect\
\ (AC)\",\"value\":\"Atlassian Connect\"},{\"displayName\"\
:\"Atlassian Connect in Jira (ACJIRA)\",\"value\":\"Atlassian\
\ Connect in Jira\"}]}"
schema:
$ref: "#/components/schemas/AutoCompleteSuggestions"
description: "Returned if the request is successful."
"400":
description: "Returned if an invalid combination of parameters is passed."
"401":
description: "Returned if the authentication credentials are incorrect."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get field auto complete suggestions"
tags:
- "JQL"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-details:jira"
state: "Beta"
/rest/api/2/jql/function/computation:
get:
deprecated: false
description: "Returns the list of a function's precomputations along with information\
\ about when they were created, updated, and last used. Each precomputation\
\ has a `value` \\- the JQL fragment to replace the custom function clause\
\ with.\n\n**[Permissions](#permissions) required:** This API is only accessible\
\ to apps and apps can only inspect their own functions."
operationId: "getPrecomputations"
parameters:
- description: "The function key in format:\n\n * Forge: `ari:cloud:ecosystem::extension/[App\
\ ID]/[Environment ID]/static/[Function key from manifest]`\n * Connect:\
\ `[App key]__[Module key]`"
in: "query"
name: "functionKey"
schema:
items:
default: ""
type: "string"
type: "array"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 100
format: "int32"
type: "integer"
- description: "[Order](#ordering) the results by a field:\n\n * `functionKey`\
\ Sorts by the functionKey.\n * `used` Sorts by the used timestamp.\n *\
\ `created` Sorts by the created timestamp.\n * `updated` Sorts by the\
\ updated timestamp."
in: "query"
name: "orderBy"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:1,\"values\":[{\"id\":\"cf75a1b0-4ac6-4bd8-8a50-29a465a96520\",\"\
value\":\"issue in (TEST-1, TEST-2, TEST-3)\",\"functionKey\":\"ari:cloud:ecosystem::extension/00000000-1111-2222-3333-4444444/111111-2222-3333-4444-55555/static/issuesWithText\"\
,\"field\":\"issue\",\"operator\":\"in\",\"functionName\":\"issuesWithText\"\
,\"arguments\":[\"Test\"],\"created\":\"2023-10-14T05:25:20.000+0000\"\
,\"updated\":\"2023-10-14T05:25:20.000+0000\",\"used\":\"2023-10-14T05:25:20.000+0000\"\
},{\"id\":\"2a854f11-d0e1-4260-aea8-64a562a7062a\",\"error\":\"Error\
\ message to be displayed to the user\",\"functionKey\":\"ari:cloud:ecosystem::extension/00000000-1111-2222-3333-4444444/111111-2222-3333-4444-55555/static/issuesWithText\"\
,\"field\":\"issue\",\"operator\":\"=\",\"functionName\":\"issuesWithText\"\
,\"arguments\":[\"10001\"],\"created\":\"2023-10-14T05:25:20.000+0000\"\
,\"updated\":\"2023-10-14T05:25:20.000+0000\",\"used\":\"2023-10-14T05:25:20.000+0000\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanJqlFunctionPrecomputationBean"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the request is not authenticated as the app that\
\ provided the function."
"404":
description: "Returned if the function is not found."
security:
- basicAuth: []
- OAuth2: []
summary: "Get precomputations (apps)"
tags:
- "JQL functions (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
x-experimental: true
post:
deprecated: false
description: "Update the precomputation value of a function created by a Forge/Connect\
\ app.\n\n**[Permissions](#permissions) required:** An API for apps to update\
\ their own precomputations."
operationId: "updatePrecomputations"
parameters: []
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/JqlFunctionPrecomputationUpdateRequestBean"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"403":
description: "Returned if the request is not authenticated as the app that\
\ provided the function."
"404":
description: "Returned if the function is not found."
security:
- basicAuth: []
- OAuth2: []
summary: "Update precomputations (apps)"
tags:
- "JQL functions (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
x-experimental: true
/rest/api/2/jql/match:
post:
deprecated: false
description: "Checks whether one or more issues would be returned by one or\
\ more JQL queries.\n\n**[Permissions](#permissions) required:** None, however,\
\ issues are only matched against JQL queries where the user has:\n\n * *Browse\
\ projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that the issue is in.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "matchIssues"
parameters: []
requestBody:
content:
application/json:
example:
issueIds:
- 10001
- 1000
- 10042
jqls:
- "project = FOO"
- "issuetype = Bug"
- "summary ~ \"some text\" AND project in (FOO, BAR)"
schema:
$ref: "#/components/schemas/IssuesAndJQLQueries"
required: true
responses:
"200":
content:
application/json:
example: "{\"matches\":[{\"matchedIssues\":[10000,10004],\"errors\"\
:[]},{\"matchedIssues\":[100134,10025,10236],\"errors\":[]},{\"matchedIssues\"\
:[],\"errors\":[]},{\"matchedIssues\":[],\"errors\":[\"Invalid JQL:\
\ broken = value\"]}]}"
schema:
$ref: "#/components/schemas/IssueMatches"
description: "Returned if the request is successful."
"400":
description: "Returned if `jqls` exceeds the maximum number of JQL queries\
\ or `issueIds` exceeds the maximum number of issue IDs."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Check issues against JQL"
tags:
- "Issue search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-details:jira"
state: "Beta"
/rest/api/2/jql/parse:
post:
deprecated: false
description: "Parses and validates JQL queries.\n\nValidation is performed in\
\ context of the current user.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** None."
operationId: "parseJqlQueries"
parameters:
- description: "How to validate the JQL query and treat the validation results.\
\ Validation options include:\n\n * `strict` Returns all errors. If validation\
\ fails, the query structure is not returned.\n * `warn` Returns all errors.\
\ If validation fails but the JQL query is correctly formed, the query structure\
\ is returned.\n * `none` No validation is performed. If JQL query is correctly\
\ formed, the query structure is returned."
in: "query"
name: "validation"
required: true
schema:
default: "strict"
enum:
- "strict"
- "warn"
- "none"
type: "string"
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/JqlQueriesToParse"
required: true
responses:
"200":
content:
application/json:
example: "{\"queries\":[{\"query\":\"summary ~ test AND (labels in (urgent,\
\ blocker) OR lastCommentedBy = currentUser()) AND status CHANGED\
\ AFTER -5d ORDER BY updated DESC\",\"structure\":{\"orderBy\":{\"\
fields\":[{\"direction\":\"desc\",\"field\":{\"encodedName\":\"updated\"\
,\"name\":\"updated\"}}]},\"where\":{\"clauses\":[{\"field\":{\"encodedName\"\
:\"summary\",\"name\":\"summary\"},\"operand\":{\"encodedValue\":\"\
test\",\"value\":\"test\"},\"operator\":\"~\"},{\"clauses\":[{\"field\"\
:{\"encodedName\":\"labels\",\"name\":\"labels\"},\"operand\":{\"\
encodedOperand\":\"urgent, blocker)\",\"values\":[{\"encodedValue\"\
:\"urgent\",\"value\":\"urgent\"},{\"encodedValue\":\"blocker\",\"\
value\":\"blocker\"}]},\"operator\":\"in\"},{\"field\":{\"encodedName\"\
:\"lastCommentedBy\",\"name\":\"lastCommentedBy\",\"property\":[{\"\
entity\":\"issue\",\"key\":\"propertyKey\",\"path\":\"path.in.property\"\
,\"type\":\"user\"}]},\"operand\":{\"arguments\":[],\"encodedOperand\"\
:\"currentUser()\",\"function\":\"currentUser\"},\"operator\":\"=\"\
}],\"operator\":\"or\"},{\"field\":{\"encodedName\":\"status\",\"\
name\":\"status\"},\"operator\":\"changed\",\"predicates\":[{\"operand\"\
:{\"arguments\":[\"-1M\"],\"encodedOperand\":\"startOfMonth(-1M)\"\
,\"function\":\"startOfMonth\"},\"operator\":\"after\"}]}],\"operator\"\
:\"and\"}}},{\"query\":\"issue.property[\\\"spaces here\\\"].value\
\ in (\\\"Service requests\\\", Incidents)\",\"structure\":{\"where\"\
:{\"field\":{\"encodedName\":\"issue.property[\\\"spaces here\\\"\
].value\",\"name\":\"issue.property[spaces here].value\",\"property\"\
:[{\"entity\":\"issue\",\"key\":\"spaces here\",\"path\":\"value\"\
}]},\"operand\":{\"encodedOperand\":\"(\\\"Service requests\\\", Incidents)\"\
,\"values\":[{\"encodedValue\":\"\\\"Service requests\\\"\",\"value\"\
:\"Service requests\"},{\"encodedValue\":\"Incidents\",\"value\":\"\
Incidents\"}]},\"operator\":\"in\"}}},{\"errors\":[\"Error in the\
\ JQL Query: Expecting operator but got 'query'. The valid operators\
\ are '=', '!=', '<', '>', '<=', '>=', '~', '!~', 'IN', 'NOT IN',\
\ 'IS' and 'IS NOT'. (line 1, character 9)\"],\"query\":\"invalid\
\ query\"},{\"errors\":[\"The operator '=' is not supported by the\
\ 'summary' field.\"],\"query\":\"summary = test\"},{\"errors\":[\"\
Operator 'in' does not support the non-list value '\\\"test\\\"' for\
\ field 'summary'.\"],\"query\":\"summary in test\"},{\"errors\":[\"\
The value 'INVALID' does not exist for the field 'project'.\"],\"\
query\":\"project = INVALID\"},{\"errors\":[\"Field 'universe' does\
\ not exist or you do not have permission to view it.\"],\"query\"\
:\"universe = 42\"}]}"
schema:
$ref: "#/components/schemas/ParsedJqlQueries"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Parse JQL query"
tags:
- "JQL"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "validate:jql:jira"
- "read:jql:jira"
state: "Beta"
x-experimental: true
/rest/api/2/jql/pdcleaner:
post:
deprecated: false
description: "Converts one or more JQL queries with user identifiers (username\
\ or user key) to equivalent JQL queries with account IDs.\n\nYou may wish\
\ to use this operation if your system stores JQL queries and you want to\
\ make them GDPR-compliant. For more information about GDPR-related changes,\
\ see the [migration guide](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/).\n\
\n**[Permissions](#permissions) required:** Permission to access Jira."
operationId: "migrateQueries"
parameters: []
requestBody:
content:
application/json:
example:
queryStrings:
- "assignee = mia"
- "issuetype = Bug AND assignee in (mia) AND reporter in (alana) order\
\ by lastViewed DESC"
schema:
$ref: "#/components/schemas/JQLPersonalDataMigrationRequest"
required: true
responses:
"200":
content:
application/json:
example: "{\"queriesWithUnknownUsers\":[{\"convertedQuery\":\"assignee\
\ = unknown\",\"originalQuery\":\"assignee = mia\"}],\"queryStrings\"\
:[\"issuetype = Bug AND assignee in (abcde-12345) AND reporter in\
\ (abc551-c4e99) order by lastViewed DESC\"]}"
schema:
$ref: "#/components/schemas/ConvertedJQLQueries"
description: "Returned if the request is successful. Note that the JQL queries\
\ are returned in the same order that they were passed."
"400":
content:
application/json:
schema:
type: "string"
description: "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":
content:
application/json:
schema:
type: "string"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
summary: "Convert user identifiers to account IDs in JQL queries"
tags:
- "JQL"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:jql:jira"
- "validate:jql:jira"
state: "Beta"
/rest/api/2/jql/sanitize:
post:
deprecated: false
description: "Sanitizes one or more JQL queries by converting readable details\
\ into IDs where a user doesn't have permission to view the entity.\n\nFor\
\ example, if the query contains the clause *project = 'Secret project'*,\
\ and a user does not have browse permission for the project \"Secret project\"\
, the sanitized query replaces the clause with *project = 12345\"* (where\
\ 12345 is the ID of the project). If a user has the required permission,\
\ the clause is not sanitized. If the account ID is null, sanitizing is performed\
\ for an anonymous user.\n\nNote that sanitization doesn't make the queries\
\ GDPR-compliant, because it doesn't remove user identifiers (username or\
\ user key). If you need to make queries GDPR-compliant, use [Convert user\
\ identifiers to account IDs in JQL queries](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-jql/#api-rest-api-3-jql-sanitize-post).\n\
\nBefore sanitization each JQL query is parsed. The queries are returned in\
\ the same order that they were passed.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "sanitiseJqlQueries"
parameters: []
requestBody:
content:
application/json:
example:
queries:
- query: "project = 'Sample project'"
- accountId: "5b10ac8d82e05b22cc7d4ef5"
query: "project = 'Sample project'"
- accountId: "cda2aa1395ac195d951b3387"
query: "project = 'Sample project'"
- accountId: "5b10ac8d82e05b22cc7d4ef5"
query: "invalid query"
schema:
$ref: "#/components/schemas/JqlQueriesToSanitize"
required: true
responses:
"200":
content:
application/json:
example: "{\"queries\":[{\"initialQuery\":\"project = 'Sample project'\"\
,\"sanitizedQuery\":\"project = 12345\"},{\"initialQuery\":\"project\
\ = 'Sample project'\",\"sanitizedQuery\":\"project = 'Sample project'\"\
,\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\"},{\"initialQuery\":\"\
project = 'Sample project'\",\"sanitizedQuery\":\"project = 12345\"\
,\"accountId\":\"cda2aa1395ac195d951b3387\"},{\"initialQuery\":\"\
non-parsable query\",\"errors\":{\"errorMessages\":[\"Error in the\
\ JQL Query: Expecting operator but got 'query'. The valid operators\
\ are '=', '!=', '<', '>', '<=', '>=', '~', '!~', 'IN', 'NOT IN',\
\ 'IS' and 'IS NOT'. (line 1, character 9)\"],\"errors\":{}},\"accountId\"\
:\"5b10ac8d82e05b22cc7d4ef5\"}]}"
schema:
$ref: "#/components/schemas/SanitizedJqlQueries"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The queries has to be provided.\"],\"\
errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Sanitize JQL queries"
tags:
- "JQL"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:jql:jira"
state: "Beta"
x-experimental: true
/rest/api/2/label:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of labels."
operationId: "getAllLabels"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 1000
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":2,\"startAt\":0,\"total\"\
:100,\"values\":[\"performance\",\"security\"]}"
schema:
$ref: "#/components/schemas/PageBeanString"
description: "Returned if the request is successful."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get all labels"
tags:
- "Labels"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:label:jira"
state: "Beta"
/rest/api/2/license/approximateLicenseCount:
get:
deprecated: false
description: "Returns the approximate number of user accounts across all Jira\
\ licenses. Note that this information is cached with a 7-day lifecycle and\
\ could be stale at the time of call.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getApproximateLicenseCount"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"key\":\"license.totalApproximateUserCount\",\"value\":\"\
1000\"}"
schema:
$ref: "#/components/schemas/LicenseMetric"
description: "Returned if the request is successful."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollections"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ license details.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollections"
description: "Returned if the user does not have permission to complete\
\ this request."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get approximate license count"
tags:
- "License metrics"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:license:jira"
state: "Beta"
x-experimental: true
/rest/api/2/license/approximateLicenseCount/product/{applicationKey}:
get:
deprecated: false
description: "Returns the total approximate number of user accounts for a single\
\ Jira license. Note that this information is cached with a 7-day lifecycle\
\ and could be stale at the time of call.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getApproximateApplicationLicenseCount"
parameters:
- description: "The ID of the application, represents a specific version of\
\ Jira."
in: "path"
name: "applicationKey"
required: true
schema:
enum:
- "jira-core"
- "jira-product-discovery"
- "jira-software"
- "jira-servicedesk"
type: "string"
responses:
"200":
content:
application/json:
example: "{\"key\":\"license.jira-software.approximateUserCount\",\"\
value\":\"115\"}"
schema:
$ref: "#/components/schemas/LicenseMetric"
description: "Returned if the request is successful."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ license details.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have permission to complete\
\ this request."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get approximate application license count"
tags:
- "License metrics"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:license:jira"
state: "Beta"
x-experimental: true
/rest/api/2/mypermissions:
get:
deprecated: false
description: "Returns a list of permissions indicating which permissions the\
\ user has. Details of the user's permissions can be obtained in a global,\
\ project, issue or comment context.\n\nThe user is reported as having a project\
\ permission:\n\n * in the global context, if the user has the project permission\
\ in any project.\n * for a project, where the project permission is determined\
\ using issue data, if the user meets the permission's criteria for any issue\
\ in the project. Otherwise, if the user has the project permission in the\
\ project.\n * for an issue, where a project permission is determined using\
\ issue data, if the user has the permission in the issue. Otherwise, if the\
\ user has the project permission in the project containing the issue.\n *\
\ for a comment, where the user has both the permission to browse the comment\
\ and the project permission for the comment's parent issue. Only the BROWSE\\\
_PROJECTS permission is supported. If a `commentId` is provided whose `permissions`\
\ does not equal BROWSE\\_PROJECTS, a 400 error will be returned.\n\nThis\
\ means that users may be shown as having an issue permission (such as EDIT\\\
_ISSUES) in the global context or a project context but may not have the permission\
\ for any or all issues. For example, if Reporters have the EDIT\\_ISSUES\
\ permission a user would be shown as having this permission in the global\
\ context or the context of a project, because any user can be a reporter.\
\ However, if they are not the user who reported the issue queried they would\
\ not have EDIT\\_ISSUES permission for that issue.\n\nGlobal permissions\
\ are unaffected by context.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** None."
operationId: "getMyPermissions"
parameters:
- description: "The key of project. Ignored if `projectId` is provided."
in: "query"
name: "projectKey"
schema:
type: "string"
- description: "The ID of project."
in: "query"
name: "projectId"
schema:
type: "string"
- description: "The key of the issue. Ignored if `issueId` is provided."
in: "query"
name: "issueKey"
schema:
type: "string"
- description: "The ID of the issue."
in: "query"
name: "issueId"
schema:
type: "string"
- description: "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-2-permissions-get)."
in: "query"
name: "permissions"
schema:
example: "BROWSE_PROJECTS,EDIT_ISSUES"
type: "string"
x-changes:
- announced: "2018-08-01"
details: "https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/"
effective: "2019-02-01"
type: "required"
x-showInExample: "true"
- in: "query"
name: "projectUuid"
schema:
type: "string"
- in: "query"
name: "projectConfigurationUuid"
schema:
type: "string"
- description: "The ID of the comment."
in: "query"
name: "commentId"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"permissions\":{\"EDIT_ISSUES\":{\"description\":\"Ability\
\ to edit issues.\",\"havePermission\":true,\"id\":\"12\",\"key\"\
:\"EDIT_ISSUES\",\"name\":\"Edit Issues\",\"type\":\"PROJECT\"}}}"
schema:
$ref: "#/components/schemas/Permissions"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if `permissions` is empty, contains an invalid key,\
\ or does not equal BROWSE\\_PROJECTS when commentId is provided."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the project or issue is not found or the user\
\ does not have permission to view the project or issue."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get my permissions"
tags:
- "Permissions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:permission:jira"
state: "Beta"
/rest/api/2/mypreferences:
delete:
deprecated: false
description: "Deletes a preference of the user, which restores the default value\
\ of system defined settings.\n\nNote that these keys are deprecated:\n\n\
\ * *jira.user.locale* The locale of the user. By default, not set. The user\
\ takes the instance locale.\n * *jira.user.timezone* The time zone of the\
\ user. By default, not set. The user takes the instance timezone.\n\nUse\
\ [ Update a user profile](https://developer.atlassian.com/cloud/admin/user-management/rest/#api-users-account-id-manage-profile-patch)\
\ from the user management REST API to manage timezone and locale instead.\n\
\n**[Permissions](#permissions) required:** Permission to access Jira."
operationId: "removePreference"
parameters:
- description: "The key of the preference."
in: "query"
name: "key"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the key is not provided or not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete preference"
tags:
- "Myself"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:user-configuration:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the value of a preference of the current user.\n\nNote\
\ that these keys are deprecated:\n\n * *jira.user.locale* The locale of\
\ the user. By default this is not set and the user takes the locale of the\
\ instance.\n * *jira.user.timezone* The time zone of the user. By default\
\ this is not set and the user takes the timezone of the instance.\n\nThese\
\ system preferences keys will be deprecated by 15/07/2024. You can still\
\ retrieve these keys, but it will not have any impact on Notification behaviour.\n\
\n * *user.notifications.watcher* Whether the user gets notified when they\
\ are watcher.\n * *user.notifications.assignee* Whether the user gets notified\
\ when they are assignee.\n * *user.notifications.reporter* Whether the user\
\ gets notified when they are reporter.\n * *user.notifications.mentions*\
\ Whether the user gets notified when they are mentions.\n\nUse [ Update a\
\ user profile](https://developer.atlassian.com/cloud/admin/user-management/rest/#api-users-account-id-manage-profile-patch)\
\ from the user management REST API to manage timezone and locale instead.\n\
\n**[Permissions](#permissions) required:** Permission to access Jira."
operationId: "getPreference"
parameters:
- description: "The key of the preference."
in: "query"
name: "key"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
schema:
type: "string"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the key is not provided or not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get preference"
tags:
- "Myself"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user-configuration:jira"
state: "Beta"
put:
deprecated: false
description: "Creates a preference for the user or updates a preference's value\
\ by sending a plain text string. For example, `false`. An arbitrary preference\
\ can be created with the value containing up to 255 characters. In addition,\
\ the following keys define system preferences that can be set or created:\n\
\n * *user.notifications.mimetype* The mime type used in notifications sent\
\ to the user. Defaults to `html`.\n * *user.default.share.private* Whether\
\ new [ filters](https://confluence.atlassian.com/x/eQiiLQ) are set to private.\
\ Defaults to `true`.\n * *user.keyboard.shortcuts.disabled* Whether keyboard\
\ shortcuts are disabled. Defaults to `false`.\n * *user.autowatch.disabled*\
\ Whether the user automatically watches issues they create or add a comment\
\ to. By default, not set: the user takes the instance autowatch setting.\n\
\ * *user.notifiy.own.changes* Whether the user gets notified of their own\
\ changes.\n\nNote that these keys are deprecated:\n\n * *jira.user.locale*\
\ The locale of the user. By default, not set. The user takes the instance\
\ locale.\n * *jira.user.timezone* The time zone of the user. By default,\
\ not set. The user takes the instance timezone.\n\nThese system preferences\
\ keys will be deprecated by 15/07/2024. You can still use these keys to create\
\ arbitrary preferences, but it will not have any impact on Notification behaviour.\n\
\n * *user.notifications.watcher* Whether the user gets notified when they\
\ are watcher.\n * *user.notifications.assignee* Whether the user gets notified\
\ when they are assignee.\n * *user.notifications.reporter* Whether the user\
\ gets notified when they are reporter.\n * *user.notifications.mentions*\
\ Whether the user gets notified when they are mentions.\n\nUse [ Update a\
\ user profile](https://developer.atlassian.com/cloud/admin/user-management/rest/#api-users-account-id-manage-profile-patch)\
\ from the user management REST API to manage timezone and locale instead.\n\
\n**[Permissions](#permissions) required:** Permission to access Jira."
operationId: "setPreference"
parameters:
- description: "The key of the preference. The maximum length is 255 characters."
in: "query"
name: "key"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema:
type: "string"
text/plain:
schema:
type: "string"
description: "The value of the preference as a plain text string. The maximum\
\ length is 255 characters."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the key or value is not provided or invalid."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Set preference"
tags:
- "Myself"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:user-configuration:jira"
state: "Beta"
/rest/api/2/mypreferences/locale:
delete:
deprecated: true
description: "Deprecated, use [ Update a user profile](https://developer.atlassian.com/cloud/admin/user-management/rest/#api-users-account-id-manage-profile-patch)\
\ from the user management REST API instead.\n\nDeletes the locale of the\
\ user, which restores the default setting.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "deleteLocale"
parameters: []
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
summary: "Delete locale"
tags:
- "Myself"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
get:
deprecated: false
description: "Returns the locale for the user.\n\nIf the user has no language\
\ preference set (which is the default setting) or this resource is accessed\
\ anonymous, the browser locale detected by Jira is returned. Jira detects\
\ the browser locale using the *Accept-Language* header in the request. However,\
\ if this doesn't match a locale available Jira, the site default locale is\
\ returned.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getLocale"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"locale\":\"en_US\"}"
schema:
$ref: "#/components/schemas/Locale"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Get locale"
tags:
- "Myself"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user-configuration:jira"
state: "Beta"
put:
deprecated: true
description: "Deprecated, use [ Update a user profile](https://developer.atlassian.com/cloud/admin/user-management/rest/#api-users-account-id-manage-profile-patch)\
\ from the user management REST API instead.\n\nSets the locale of the user.\
\ The locale must be one supported by the instance of Jira.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "setLocale"
parameters: []
requestBody:
content:
application/json:
example:
locale: "en_US"
schema:
$ref: "#/components/schemas/Locale"
description: "The locale defined in a LocaleBean."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
summary: "Set locale"
tags:
- "Myself"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/myself:
get:
deprecated: false
description: "Returns details for the current user.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "getCurrentUser"
parameters:
- description: "Use [expand](#expansion) to include additional information about\
\ user in the response. This parameter accepts a comma-separated list. Expand\
\ options include:\n\n * `groups` Returns all groups, including nested\
\ groups, the user belongs to.\n * `applicationRoles` Returns the application\
\ roles the user is assigned to."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":true,\"applicationRoles\":{\"items\":[],\"\
size\":1},\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"}"
schema:
$ref: "#/components/schemas/User"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
summary: "Get current user"
tags:
- "Myself"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:application-role:jira"
- "read:group:jira"
- "read:user:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/notificationscheme:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of [notification schemes](https://confluence.atlassian.com/x/8YdKLg)\
\ ordered by the display name.\n\n*Note that you should allow for events without\
\ recipients to appear in responses.*\n\n**[Permissions](#permissions) required:**\
\ Permission to access Jira, however, the user must have permission to administer\
\ at least one project associated with a notification scheme for it to be\
\ returned."
operationId: "getNotificationSchemes"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: "0"
type: "string"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: "50"
type: "string"
- description: "The list of notification schemes IDs to be filtered by"
in: "query"
name: "id"
schema:
items:
default: ""
type: "string"
type: "array"
uniqueItems: true
- description: "The list of projects IDs to be filtered by"
in: "query"
name: "projectId"
schema:
items:
default: ""
type: "string"
type: "array"
uniqueItems: true
- description: "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."
in: "query"
name: "onlyDefault"
schema:
default: false
type: "boolean"
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `all` Returns all expandable information\n * `field`\
\ Returns information about any custom fields assigned to receive an event\n\
\ * `group` Returns information about any groups assigned to receive an\
\ event\n * `notificationSchemeEvents` Returns a list of event associations.\
\ This list is returned for all expandable information\n * `projectRole`\
\ Returns information about any project roles assigned to receive an event\n\
\ * `user` Returns information about any users assigned to receive an event"
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":6,\"startAt\":1,\"total\"\
:5,\"values\":[{\"description\":\"description\",\"expand\":\"notificationSchemeEvents,user,group,projectRole,field,all\"\
,\"id\":10100,\"name\":\"notification scheme name\",\"notificationSchemeEvents\"\
:[{\"event\":{\"description\":\"Event published when an issue is created\"\
,\"id\":1,\"name\":\"Issue created\"},\"notifications\":[{\"expand\"\
:\"group\",\"group\":{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\"\
,\"name\":\"jira-administrators\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
},\"id\":1,\"notificationType\":\"Group\",\"parameter\":\"jira-administrators\"\
,\"recipient\":\"276f955c-63d7-42c8-9520-92d01dca0625\"},{\"id\":2,\"\
notificationType\":\"CurrentAssignee\"},{\"expand\":\"projectRole\"\
,\"id\":3,\"notificationType\":\"ProjectRole\",\"parameter\":\"10360\"\
,\"projectRole\":{\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
,\"name\":\"Developers\",\"id\":10360,\"description\":\"A project\
\ role that represents developers in a project\",\"actors\":[{\"actorGroup\"\
:{\"name\":\"jira-developers\",\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"},\"displayName\"\
:\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\",\"\
type\":\"atlassian-group-role-actor\"},{\"actorUser\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\"},\"displayName\":\"Mia Krystof\",\"\
id\":10241,\"type\":\"atlassian-user-role-actor\"}],\"scope\":{\"\
project\":{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"\
},\"type\":\"PROJECT\"}},\"recipient\":\"10360\"},{\"emailAddress\"\
:\"rest-developer@atlassian.com\",\"id\":4,\"notificationType\":\"\
EmailAddress\",\"parameter\":\"rest-developer@atlassian.com\",\"recipient\"\
:\"rest-developer@atlassian.com\"},{\"expand\":\"user\",\"id\":5,\"\
notificationType\":\"User\",\"parameter\":\"5b10a2844c20165700ede21g\"\
,\"recipient\":\"5b10a2844c20165700ede21g\",\"user\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\":\"\
Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}},{\"expand\":\"field\",\"field\":{\"clauseNames\":[\"cf[10101]\"\
,\"New custom field\"],\"custom\":true,\"id\":\"customfield_10101\"\
,\"key\":\"customfield_10101\",\"name\":\"New custom field\",\"navigable\"\
:true,\"orderable\":true,\"schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:project\"\
,\"customId\":10101,\"type\":\"project\"},\"searchable\":true,\"untranslatedName\"\
:\"New custom field\"},\"id\":6,\"notificationType\":\"GroupCustomField\"\
,\"parameter\":\"customfield_10101\",\"recipient\":\"customfield_10101\"\
}]},{\"event\":{\"description\":\"Custom event that is published together\
\ with an issue created event\",\"id\":20,\"name\":\"Custom event\"\
,\"templateEvent\":{\"description\":\"Event published when an issue\
\ is created\",\"id\":1,\"name\":\"Issue created\"}},\"notifications\"\
:[{\"expand\":\"group\",\"group\":{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\"\
,\"name\":\"jira-administrators\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
},\"id\":1,\"notificationType\":\"Group\",\"parameter\":\"jira-administrators\"\
,\"recipient\":\"276f955c-63d7-42c8-9520-92d01dca0625\"},{\"id\":2,\"\
notificationType\":\"CurrentAssignee\"},{\"expand\":\"projectRole\"\
,\"id\":3,\"notificationType\":\"ProjectRole\",\"parameter\":\"10360\"\
,\"projectRole\":{\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
,\"name\":\"Developers\",\"id\":10360,\"description\":\"A project\
\ role that represents developers in a project\",\"actors\":[{\"actorGroup\"\
:{\"name\":\"jira-developers\",\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"},\"displayName\"\
:\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\",\"\
type\":\"atlassian-group-role-actor\"},{\"actorUser\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\"},\"displayName\":\"Mia Krystof\",\"\
id\":10241,\"type\":\"atlassian-user-role-actor\"}],\"scope\":{\"\
project\":{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"\
},\"type\":\"PROJECT\"}},\"recipient\":\"10360\"},{\"emailAddress\"\
:\"rest-developer@atlassian.com\",\"id\":4,\"notificationType\":\"\
EmailAddress\",\"parameter\":\"rest-developer@atlassian.com\",\"recipient\"\
:\"rest-developer@atlassian.com\"},{\"expand\":\"user\",\"id\":5,\"\
notificationType\":\"User\",\"parameter\":\"5b10a2844c20165700ede21g\"\
,\"recipient\":\"5b10a2844c20165700ede21g\",\"user\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\":\"\
Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}},{\"expand\":\"field\",\"field\":{\"clauseNames\":[\"cf[10101]\"\
,\"New custom field\"],\"custom\":true,\"id\":\"customfield_10101\"\
,\"key\":\"customfield_10101\",\"name\":\"New custom field\",\"navigable\"\
:true,\"orderable\":true,\"schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:project\"\
,\"customId\":10101,\"type\":\"project\"},\"searchable\":true,\"untranslatedName\"\
:\"New custom field\"},\"id\":6,\"notificationType\":\"GroupCustomField\"\
,\"parameter\":\"customfield_10101\",\"recipient\":\"customfield_10101\"\
}]}],\"projects\":[10001,10002],\"self\":\"https://your-domain.atlassian.net/rest/api/2/notificationscheme\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanNotificationScheme"
description: "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."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"%20. is not a valid value. id must be\
\ zero or a positive integer.\"],\"errors\":{}}"
description: "Returned if the request isn't valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get notification schemes paginated"
tags:
- "Issue notification schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:notification-scheme:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:project-category:jira"
- "read:field-configuration:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a notification scheme with notifications. You can create\
\ up to 1000 notifications per request.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createNotificationScheme"
parameters: []
requestBody:
content:
application/json:
example:
description: "My new scheme description"
name: "My new notification scheme"
notificationSchemeEvents:
- event:
id: "1"
notifications:
- notificationType: "Group"
parameter: "jira-administrators"
schema:
$ref: "#/components/schemas/CreateNotificationSchemeDetails"
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"10001\"}"
schema:
$ref: "#/components/schemas/NotificationSchemeId"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The length of the description must not\
\ exceed 4000 characters.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create notification scheme"
tags:
- "Issue notification schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/notificationscheme/project:
get:
deprecated: false
description: "Returns a [paginated](#pagination) mapping of project that have\
\ notification scheme assigned. You can provide either one or multiple notification\
\ scheme IDs or project IDs to filter by. If you don't provide any, this will\
\ return a list of all mappings. Note that only company-managed (classic)\
\ projects are supported. This is because team-managed projects don't have\
\ a concept of a default notification scheme. The mappings are ordered by\
\ projectId.\n\n**[Permissions](#permissions) required:** Permission to access\
\ Jira."
operationId: "getNotificationSchemeToProjectMappings"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: "0"
type: "string"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: "50"
type: "string"
- description: "The list of notifications scheme IDs to be filtered out"
in: "query"
name: "notificationSchemeId"
schema:
items:
default: ""
type: "string"
type: "array"
uniqueItems: true
- description: "The list of project IDs to be filtered out"
in: "query"
name: "projectId"
schema:
items:
default: ""
type: "string"
type: "array"
uniqueItems: true
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":50,\"startAt\":0,\"total\"\
:4,\"values\":[{\"notificationSchemeId\":\"10001\",\"projectId\":\"\
100001\"}]}"
schema:
$ref: "#/components/schemas/PageBeanNotificationSchemeAndProjectMappingJsonBean"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if search criteria are invalid, strings vs numbers\
\ for projectId, notificationSchemeId, startAt and maxResult"
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get projects using notification schemes paginated"
tags:
- "Issue notification schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:notification-scheme:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/notificationscheme/{id}:
get:
deprecated: false
description: "Returns a [notification scheme](https://confluence.atlassian.com/x/8YdKLg),\
\ including the list of events and the recipients who will receive notifications\
\ for those events.\n\n**[Permissions](#permissions) required:** Permission\
\ to access Jira, however, the user must have permission to administer at\
\ least one project associated with the notification scheme."
operationId: "getNotificationScheme"
parameters:
- description: "The ID of the notification scheme. Use [Get notification schemes\
\ paginated](#api-rest-api-2-notificationscheme-get) to get a list of notification\
\ scheme IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `all` Returns all expandable information\n * `field`\
\ Returns information about any custom fields assigned to receive an event\n\
\ * `group` Returns information about any groups assigned to receive an\
\ event\n * `notificationSchemeEvents` Returns a list of event associations.\
\ This list is returned for all expandable information\n * `projectRole`\
\ Returns information about any project roles assigned to receive an event\n\
\ * `user` Returns information about any users assigned to receive an event"
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"description\":\"description\",\"expand\":\"notificationSchemeEvents,user,group,projectRole,field,all\"\
,\"id\":10100,\"name\":\"notification scheme name\",\"notificationSchemeEvents\"\
:[{\"event\":{\"description\":\"Event published when an issue is created\"\
,\"id\":1,\"name\":\"Issue created\"},\"notifications\":[{\"expand\"\
:\"group\",\"group\":{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\"\
,\"name\":\"jira-administrators\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
},\"id\":1,\"notificationType\":\"Group\",\"parameter\":\"jira-administrators\"\
,\"recipient\":\"276f955c-63d7-42c8-9520-92d01dca0625\"},{\"id\":2,\"\
notificationType\":\"CurrentAssignee\"},{\"expand\":\"projectRole\"\
,\"id\":3,\"notificationType\":\"ProjectRole\",\"parameter\":\"10360\"\
,\"projectRole\":{\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
,\"name\":\"Developers\",\"id\":10360,\"description\":\"A project\
\ role that represents developers in a project\",\"actors\":[{\"actorGroup\"\
:{\"name\":\"jira-developers\",\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"},\"displayName\"\
:\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\",\"\
type\":\"atlassian-group-role-actor\"},{\"actorUser\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\"},\"displayName\":\"Mia Krystof\",\"\
id\":10241,\"type\":\"atlassian-user-role-actor\"}],\"scope\":{\"\
project\":{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"\
},\"type\":\"PROJECT\"}},\"recipient\":\"10360\"},{\"emailAddress\"\
:\"rest-developer@atlassian.com\",\"id\":4,\"notificationType\":\"\
EmailAddress\",\"parameter\":\"rest-developer@atlassian.com\",\"recipient\"\
:\"rest-developer@atlassian.com\"},{\"expand\":\"user\",\"id\":5,\"\
notificationType\":\"User\",\"parameter\":\"5b10a2844c20165700ede21g\"\
,\"recipient\":\"5b10a2844c20165700ede21g\",\"user\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\":\"\
Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}},{\"expand\":\"field\",\"field\":{\"clauseNames\":[\"cf[10101]\"\
,\"New custom field\"],\"custom\":true,\"id\":\"customfield_10101\"\
,\"key\":\"customfield_10101\",\"name\":\"New custom field\",\"navigable\"\
:true,\"orderable\":true,\"schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:project\"\
,\"customId\":10101,\"type\":\"project\"},\"searchable\":true,\"untranslatedName\"\
:\"New custom field\"},\"id\":6,\"notificationType\":\"GroupCustomField\"\
,\"parameter\":\"customfield_10101\",\"recipient\":\"customfield_10101\"\
}]},{\"event\":{\"description\":\"Custom event that is published together\
\ with an issue created event\",\"id\":20,\"name\":\"Custom event\"\
,\"templateEvent\":{\"description\":\"Event published when an issue\
\ is created\",\"id\":1,\"name\":\"Issue created\"}},\"notifications\"\
:[{\"expand\":\"group\",\"group\":{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\"\
,\"name\":\"jira-administrators\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
},\"id\":1,\"notificationType\":\"Group\",\"parameter\":\"jira-administrators\"\
,\"recipient\":\"276f955c-63d7-42c8-9520-92d01dca0625\"},{\"id\":2,\"\
notificationType\":\"CurrentAssignee\"},{\"expand\":\"projectRole\"\
,\"id\":3,\"notificationType\":\"ProjectRole\",\"parameter\":\"10360\"\
,\"projectRole\":{\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
,\"name\":\"Developers\",\"id\":10360,\"description\":\"A project\
\ role that represents developers in a project\",\"actors\":[{\"actorGroup\"\
:{\"name\":\"jira-developers\",\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"},\"displayName\"\
:\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\",\"\
type\":\"atlassian-group-role-actor\"},{\"actorUser\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\"},\"displayName\":\"Mia Krystof\",\"\
id\":10241,\"type\":\"atlassian-user-role-actor\"}],\"scope\":{\"\
project\":{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"\
},\"type\":\"PROJECT\"}},\"recipient\":\"10360\"},{\"emailAddress\"\
:\"rest-developer@atlassian.com\",\"id\":4,\"notificationType\":\"\
EmailAddress\",\"parameter\":\"rest-developer@atlassian.com\",\"recipient\"\
:\"rest-developer@atlassian.com\"},{\"expand\":\"user\",\"id\":5,\"\
notificationType\":\"User\",\"parameter\":\"5b10a2844c20165700ede21g\"\
,\"recipient\":\"5b10a2844c20165700ede21g\",\"user\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\":\"\
Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}},{\"expand\":\"field\",\"field\":{\"clauseNames\":[\"cf[10101]\"\
,\"New custom field\"],\"custom\":true,\"id\":\"customfield_10101\"\
,\"key\":\"customfield_10101\",\"name\":\"New custom field\",\"navigable\"\
:true,\"orderable\":true,\"schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:project\"\
,\"customId\":10101,\"type\":\"project\"},\"searchable\":true,\"untranslatedName\"\
:\"New custom field\"},\"id\":6,\"notificationType\":\"GroupCustomField\"\
,\"parameter\":\"customfield_10101\",\"recipient\":\"customfield_10101\"\
}]}],\"projects\":[10001,10002],\"self\":\"https://your-domain.atlassian.net/rest/api/2/notificationscheme\"\
}"
schema:
$ref: "#/components/schemas/NotificationScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the notification scheme is not found or the user\
\ does not have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get notification scheme"
tags:
- "Issue notification schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:notification-scheme:jira"
- "read:project:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
- "read:field-configuration:jira"
- "read:group:jira"
- "read:project-category:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a notification scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateNotificationScheme"
parameters:
- description: "The ID of the notification scheme."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "My updated notification scheme description"
name: "My updated notification scheme"
schema:
$ref: "#/components/schemas/UpdateNotificationSchemeDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The length of the description must not\
\ exceed 4000 characters.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Notification scheme with ID 10000 not\
\ found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the notification scheme isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update notification scheme"
tags:
- "Issue notification schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/notificationscheme/{id}/notification:
put:
deprecated: false
description: "Adds notifications to a notification scheme. You can add up to\
\ 1000 notifications per request.\n\n*Deprecated: The notification type `EmailAddress`\
\ is no longer supported in Cloud. Refer to the [changelog](https://developer.atlassian.com/cloud/jira/platform/changelog/#CHANGE-1031)\
\ for more details.*\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "addNotifications"
parameters:
- description: "The ID of the notification scheme."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
notificationSchemeEvents:
- event:
id: "1"
notifications:
- notificationType: "Group"
parameter: "jira-administrators"
schema:
$ref: "#/components/schemas/AddNotificationsDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Event type with ID 2 not found.\"],\"\
errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Notification scheme with ID 10001 not\
\ found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the notification scheme isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Add notifications to notification scheme"
tags:
- "Issue notification schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/notificationscheme/{notificationSchemeId}:
delete:
deprecated: false
description: "Deletes a notification scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteNotificationScheme"
parameters:
- description: "The ID of the notification scheme."
in: "path"
name: "notificationSchemeId"
required: true
schema:
type: "string"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"You can’t delete the default notification\
\ scheme.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Notification scheme with ID 10000 not\
\ found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the notification scheme isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete notification scheme"
tags:
- "Issue notification schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/notificationscheme/{notificationSchemeId}/notification/{notificationId}:
delete:
deprecated: false
description: "Removes a notification from a notification scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "removeNotificationFromNotificationScheme"
parameters:
- description: "The ID of the notification scheme."
in: "path"
name: "notificationSchemeId"
required: true
schema:
type: "string"
- description: "The ID of the notification."
in: "path"
name: "notificationId"
required: true
schema:
type: "string"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Notification scheme with ID 10000 not\
\ found.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if either the notification scheme or notification\
\ isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Remove notification from notification scheme"
tags:
- "Issue notification schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/permissions:
get:
deprecated: false
description: "Returns all permissions, including:\n\n * global permissions.\n\
\ * project permissions.\n * global permissions added by plugins.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getAllPermissions"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"permissions\":{\"BULK_CHANGE\":{\"description\":\"Ability\
\ to modify a collection of issues at once. For example, resolve multiple\
\ issues in one step.\",\"key\":\"BULK_CHANGE\",\"name\":\"Bulk Change\"\
,\"type\":\"GLOBAL\"}}}"
schema:
$ref: "#/components/schemas/Permissions"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Get all permissions"
tags:
- "Permissions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:permission:jira"
state: "Beta"
/rest/api/2/permissions/check:
post:
deprecated: false
description: "Returns:\n\n * for a list of global permissions, the global permissions\
\ granted to a user.\n * for a list of project permissions and lists of projects\
\ and issues, for each project permission a list of the projects and issues\
\ a user can access or manipulate.\n\nIf no account ID is provided, the operation\
\ returns details for the logged in user.\n\nNote that:\n\n * Invalid project\
\ and issue IDs are ignored.\n * A maximum of 1000 projects and 1000 issues\
\ can be checked.\n * Null values in `globalPermissions`, `projectPermissions`,\
\ `projectPermissions.projects`, and `projectPermissions.issues` are ignored.\n\
\ * Empty strings in `projectPermissions.permissions` are ignored.\n\n**Deprecation\
\ notice:** The required OAuth 2.0 scopes will be updated on June 15, 2024.\n\
\n * **Classic**: `read:jira-work`\n * **Granular**: `read:permission:jira`\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ to check the permissions for other users, otherwise none. However, Connect\
\ apps can make a call from the app server to the product to obtain permission\
\ details for any user, without admin permission. This Connect app ability\
\ doesn't apply to calls made using AP.request() in a browser."
operationId: "getBulkPermissions"
parameters: []
requestBody:
content:
application/json:
example:
accountId: "5b10a2844c20165700ede21g"
globalPermissions:
- "ADMINISTER"
projectPermissions:
- issues:
- 10010
- 10011
- 10012
- 10013
- 10014
permissions:
- "EDIT_ISSUES"
projects:
- 10001
schema:
$ref: "#/components/schemas/BulkPermissionsRequestBean"
description: "Details of the permissions to check."
required: true
responses:
"200":
content:
application/json:
example: "{\"globalPermissions\":[\"ADMINISTER\"],\"projectPermissions\"\
:[{\"issues\":[10010,10013,10014],\"permission\":\"EDIT_ISSUES\",\"\
projects\":[10001]}]}"
schema:
$ref: "#/components/schemas/BulkPermissionGrants"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[],\"errors\":{\"PERMISSION_123\":\"Unrecognized\
\ permission\"}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if:\n\n * `projectPermissions` is provided without\
\ at least one project permission being provided.\n * an invalid global\
\ permission is provided in the global permissions list.\n * an invalid\
\ project permission is provided in the project permissions list.\n *\
\ more than 1000 valid project IDs or more than 1000 valid issue IDs\
\ are provided.\n * an invalid account ID is provided."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can perform\
\ this operation.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2: []
- {}
summary: "Get bulk permissions"
tags:
- "Permissions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:permission:jira"
state: "Beta"
/rest/api/2/permissions/project:
post:
deprecated: false
description: "Returns all the projects where the user is granted a list of project\
\ permissions.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getPermittedProjects"
parameters: []
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PermissionsKeysBean"
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PermittedProjects"
description: "Returned if the request is successful."
"400":
description: "Returned if a project permission is not found."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get permitted projects"
tags:
- "Permissions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:permission:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/permissionscheme:
get:
deprecated: false
description: "Returns all permission schemes.\n\n### About permission schemes\
\ and grants ###\n\nA permission scheme is a collection of permission grants.\
\ A permission grant consists of a `holder` and a `permission`.\n\n#### Holder\
\ object ####\n\nThe `holder` object contains information about the user or\
\ group being granted the permission. For example, the *Administer projects*\
\ permission is granted to a group named *Teams in space administrators*.\
\ In this case, the type is `\"type\": \"group\"`, and the parameter is the\
\ group name, `\"parameter\": \"Teams in space administrators\"` and the value\
\ is group ID, `\"value\": \"ca85fac0-d974-40ca-a615-7af99c48d24f\"`.\n\n\
The `holder` object is defined by the following properties:\n\n * `type`\
\ Identifies the user or group (see the list of types below).\n * `parameter`\
\ As a group's name can change, use of `value` is recommended. The value of\
\ this property depends on the `type`. For example, if the `type` is a group,\
\ then you need to specify the group name.\n * `value` The value of this\
\ property depends on the `type`. If the `type` is a group, then you need\
\ to specify the group ID. For other `type` it has the same value as `parameter`\n\
\nThe following `types` are available. The expected values for `parameter`\
\ and `value` are given in parentheses (some types may not have a `parameter`\
\ or `value`):\n\n * `anyone` Grant for anonymous users.\n * `applicationRole`\
\ Grant for users with access to the specified application (application name,\
\ application name). See [Update product access settings](https://confluence.atlassian.com/x/3YxjL)\
\ for more information.\n * `assignee` Grant for the user currently assigned\
\ to an issue.\n * `group` Grant for the specified group (`parameter` : group\
\ name, `value` : group ID).\n * `groupCustomField` Grant for a user in the\
\ group selected in the specified custom field (`parameter` : custom field\
\ ID, `value` : custom field ID).\n * `projectLead` Grant for a project lead.\n\
\ * `projectRole` Grant for the specified project role (`parameter` :project\
\ role ID, `value` : project role ID).\n * `reporter` Grant for the user\
\ who reported the issue.\n * `sd.customer.portal.only` Jira Service Desk\
\ only. Grants customers permission to access the customer portal but not\
\ Jira. See [Customizing Jira Service Desk permissions](https://confluence.atlassian.com/x/24dKLg)\
\ for more information.\n * `user` Grant for the specified user (`parameter`\
\ : user ID - historically this was the userkey but that is deprecated and\
\ the account ID should be used, `value` : user ID).\n * `userCustomField`\
\ Grant for a user selected in the specified custom field (`parameter` : custom\
\ field ID, `value` : custom field ID).\n\n#### Built-in permissions ####\n\
\nThe [built-in Jira permissions](https://confluence.atlassian.com/x/yodKLg)\
\ are listed below. Apps can also define custom 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.\n\n**Project permissions**\n\n\
\ * `ADMINISTER_PROJECTS`\n * `BROWSE_PROJECTS`\n * `MANAGE_SPRINTS_PERMISSION`\
\ (Jira Software only)\n * `SERVICEDESK_AGENT` (Jira Service Desk only)\n\
\ * `VIEW_DEV_TOOLS` (Jira Software only)\n * `VIEW_READONLY_WORKFLOW`\n\
\n**Issue permissions**\n\n * `ASSIGNABLE_USER`\n * `ASSIGN_ISSUES`\n *\
\ `CLOSE_ISSUES`\n * `CREATE_ISSUES`\n * `DELETE_ISSUES`\n * `EDIT_ISSUES`\n\
\ * `LINK_ISSUES`\n * `MODIFY_REPORTER`\n * `MOVE_ISSUES`\n * `RESOLVE_ISSUES`\n\
\ * `SCHEDULE_ISSUES`\n * `SET_ISSUE_SECURITY`\n * `TRANSITION_ISSUES`\n\
\n**Voters and watchers permissions**\n\n * `MANAGE_WATCHERS`\n * `VIEW_VOTERS_AND_WATCHERS`\n\
\n**Comments permissions**\n\n * `ADD_COMMENTS`\n * `DELETE_ALL_COMMENTS`\n\
\ * `DELETE_OWN_COMMENTS`\n * `EDIT_ALL_COMMENTS`\n * `EDIT_OWN_COMMENTS`\n\
\n**Attachments permissions**\n\n * `CREATE_ATTACHMENTS`\n * `DELETE_ALL_ATTACHMENTS`\n\
\ * `DELETE_OWN_ATTACHMENTS`\n\n**Time tracking permissions**\n\n * `DELETE_ALL_WORKLOGS`\n\
\ * `DELETE_OWN_WORKLOGS`\n * `EDIT_ALL_WORKLOGS`\n * `EDIT_OWN_WORKLOGS`\n\
\ * `WORK_ON_ISSUES`\n\n**[Permissions](#permissions) required:** Permission\
\ to access Jira."
operationId: "getAllPermissionSchemes"
parameters:
- description: "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:\n\n * `all`\
\ Returns all expandable information.\n * `field` Returns information about\
\ the custom field granted the permission.\n * `group` Returns information\
\ about the group that is granted the permission.\n * `permissions` Returns\
\ all permission grants for each permission scheme.\n * `projectRole` Returns\
\ information about the project role granted the permission.\n * `user`\
\ Returns information about the user who is granted the permission."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"permissionSchemes\":[{\"description\":\"description\",\"\
id\":10000,\"name\":\"Example permission scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/permissionscheme/10000\"\
}]}"
schema:
$ref: "#/components/schemas/PermissionSchemes"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get all permission schemes"
tags:
- "Permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:application-role:jira"
- "read:field:jira"
- "read:group:jira"
- "read:permission-scheme:jira"
- "read:permission:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a new permission scheme. You can create a permission scheme\
\ with or without defining a set of permission grants.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createPermissionScheme"
parameters:
- description: "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:\n\n\
\ * `all` Returns all expandable information.\n * `field` Returns information\
\ about the custom field granted the permission.\n * `group` Returns information\
\ about the group that is granted the permission.\n * `permissions` Returns\
\ all permission grants for each permission scheme.\n * `projectRole` Returns\
\ information about the project role granted the permission.\n * `user`\
\ Returns information about the user who is granted the permission."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "description"
name: "Example permission scheme"
permissions:
- holder:
parameter: "jira-core-users"
type: "group"
value: "ca85fac0-d974-40ca-a615-7af99c48d24f"
permission: "ADMINISTER_PROJECTS"
schema:
$ref: "#/components/schemas/PermissionScheme"
description: "The permission scheme to create."
required: true
responses:
"201":
content:
application/json:
example: "{\"description\":\"description\",\"id\":10000,\"name\":\"\
Example permission scheme\",\"permissions\":[{\"holder\":{\"expand\"\
:\"group\",\"parameter\":\"jira-core-users\",\"type\":\"group\",\"\
value\":\"ca85fac0-d974-40ca-a615-7af99c48d24f\"},\"id\":10000,\"\
permission\":\"ADMINISTER_PROJECTS\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/permissionscheme/permission/10000\"\
}],\"self\":\"https://your-domain.atlassian.net/rest/api/2/permissionscheme/10000\"\
}"
schema:
$ref: "#/components/schemas/PermissionScheme"
description: "Returned if the permission scheme is created."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission\
\ or the feature is not available in the Jira plan."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create permission scheme"
tags:
- "Permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:permission-scheme:jira"
- "read:application-role:jira"
- "read:field:jira"
- "read:group:jira"
- "read:permission-scheme:jira"
- "read:permission:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/permissionscheme/{schemeId}:
delete:
deprecated: false
description: "Deletes a permission scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deletePermissionScheme"
parameters:
- description: "The ID of the permission scheme being deleted."
in: "path"
name: "schemeId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the permission scheme is deleted."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the permission scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete permission scheme"
tags:
- "Permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:permission-scheme:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a permission scheme.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "getPermissionScheme"
parameters:
- description: "The ID of the permission scheme to return."
in: "path"
name: "schemeId"
required: true
schema:
format: "int64"
type: "integer"
- description: "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:\n\n * `all`\
\ Returns all expandable information.\n * `field` Returns information about\
\ the custom field granted the permission.\n * `group` Returns information\
\ about the group that is granted the permission.\n * `permissions` Returns\
\ all permission grants for each permission scheme.\n * `projectRole` Returns\
\ information about the project role granted the permission.\n * `user`\
\ Returns information about the user who is granted the permission."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"description\":\"description\",\"id\":10000,\"name\":\"\
Example permission scheme\",\"permissions\":[{\"holder\":{\"expand\"\
:\"group\",\"parameter\":\"jira-core-users\",\"type\":\"group\",\"\
value\":\"ca85fac0-d974-40ca-a615-7af99c48d24f\"},\"id\":10000,\"\
permission\":\"ADMINISTER_PROJECTS\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/permissionscheme/permission/10000\"\
}],\"self\":\"https://your-domain.atlassian.net/rest/api/2/permissionscheme/10000\"\
}"
schema:
$ref: "#/components/schemas/PermissionScheme"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the permission scheme is not found or the user\
\ does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get permission scheme"
tags:
- "Permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:application-role:jira"
- "read:field:jira"
- "read:group:jira"
- "read:permission-scheme:jira"
- "read:permission:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a permission scheme. Below are some important things to\
\ note when using this resource:\n\n * If a permissions list is present in\
\ the request, then it is set in the permission scheme, overwriting *all existing*\
\ grants.\n * If you want to update only the name and description, then do\
\ not send a permissions list in the request.\n * Sending an empty list will\
\ remove all permission grants from the permission scheme.\n\nIf you want\
\ to add or delete a permission grant instead of updating the whole list,\
\ see [Create permission grant](#api-rest-api-2-permissionscheme-schemeId-permission-post)\
\ or [Delete permission scheme entity](#api-rest-api-2-permissionscheme-schemeId-permission-permissionId-delete).\n\
\nSee [About permission schemes and grants](../api-group-permission-schemes/#about-permission-schemes-and-grants)\
\ for more details.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updatePermissionScheme"
parameters:
- description: "The ID of the permission scheme to update."
in: "path"
name: "schemeId"
required: true
schema:
format: "int64"
type: "integer"
- description: "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:\n\n\
\ * `all` Returns all expandable information.\n * `field` Returns information\
\ about the custom field granted the permission.\n * `group` Returns information\
\ about the group that is granted the permission.\n * `permissions` Returns\
\ all permission grants for each permission scheme.\n * `projectRole` Returns\
\ information about the project role granted the permission.\n * `user`\
\ Returns information about the user who is granted the permission."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "description"
name: "Example permission scheme"
permissions:
- holder:
parameter: "jira-core-users"
type: "group"
value: "ca85fac0-d974-40ca-a615-7af99c48d24f"
permission: "ADMINISTER_PROJECTS"
schema:
$ref: "#/components/schemas/PermissionScheme"
required: true
responses:
"200":
content:
application/json:
example: "{\"description\":\"description\",\"id\":10000,\"name\":\"\
Example permission scheme\",\"permissions\":[{\"holder\":{\"expand\"\
:\"group\",\"parameter\":\"jira-core-users\",\"type\":\"group\",\"\
value\":\"ca85fac0-d974-40ca-a615-7af99c48d24f\"},\"id\":10000,\"\
permission\":\"ADMINISTER_PROJECTS\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/permissionscheme/permission/10000\"\
}],\"self\":\"https://your-domain.atlassian.net/rest/api/2/permissionscheme/10000\"\
}"
schema:
$ref: "#/components/schemas/PermissionScheme"
description: "Returned if the scheme is updated."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if:\n\n * the user does not have the necessary permission\
\ to update permission schemes.\n * the Jira instance is Jira Core Free\
\ or Jira Software Free. Permission schemes cannot be updated on free\
\ plans."
"404":
description: "Returned if the permission scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update permission scheme"
tags:
- "Permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:permission-scheme:jira"
- "read:application-role:jira"
- "read:field:jira"
- "read:group:jira"
- "read:permission-scheme:jira"
- "read:permission:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/permissionscheme/{schemeId}/permission:
get:
deprecated: false
description: "Returns all permission grants for a permission scheme.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "getPermissionSchemeGrants"
parameters:
- description: "The ID of the permission scheme."
in: "path"
name: "schemeId"
required: true
schema:
format: "int64"
type: "integer"
- description: "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:\n\n\
\ * `permissions` Returns all permission grants for each permission scheme.\n\
\ * `user` Returns information about the user who is granted the permission.\n\
\ * `group` Returns information about the group that is granted the permission.\n\
\ * `projectRole` Returns information about the project role granted the\
\ permission.\n * `field` Returns information about the custom field granted\
\ the permission.\n * `all` Returns all expandable information."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"expand\":\"user,group,projectRole,field,all\",\"permissions\"\
:[{\"holder\":{\"expand\":\"group\",\"parameter\":\"jira-core-users\"\
,\"type\":\"group\",\"value\":\"ca85fac0-d974-40ca-a615-7af99c48d24f\"\
},\"id\":10000,\"permission\":\"ADMINISTER_PROJECTS\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/permissionscheme/permission/10000\"\
}]}"
schema:
$ref: "#/components/schemas/PermissionGrants"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the permission schemes is not found or the user\
\ does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get permission scheme grants"
tags:
- "Permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:application-role:jira"
- "read:field:jira"
- "read:group:jira"
- "read:permission:jira"
- "read:project-role:jira"
- "read:user:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a permission grant in a permission scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createPermissionGrant"
parameters:
- description: "The ID of the permission scheme in which to create a new permission\
\ grant."
in: "path"
name: "schemeId"
required: true
schema:
format: "int64"
type: "integer"
- description: "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:\n\n\
\ * `permissions` Returns all permission grants for each permission scheme.\n\
\ * `user` Returns information about the user who is granted the permission.\n\
\ * `group` Returns information about the group that is granted the permission.\n\
\ * `projectRole` Returns information about the project role granted the\
\ permission.\n * `field` Returns information about the custom field granted\
\ the permission.\n * `all` Returns all expandable information."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
holder:
parameter: "jira-core-users"
type: "group"
value: "ca85fac0-d974-40ca-a615-7af99c48d24f"
permission: "ADMINISTER_PROJECTS"
schema:
$ref: "#/components/schemas/PermissionGrant"
description: "The permission grant to create."
required: true
responses:
"201":
content:
application/json:
example: "{\"holder\":{\"expand\":\"group\",\"parameter\":\"jira-core-users\"\
,\"type\":\"group\",\"value\":\"ca85fac0-d974-40ca-a615-7af99c48d24f\"\
},\"id\":10000,\"permission\":\"ADMINISTER_PROJECTS\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/permissionscheme/permission/10000\"\
}"
schema:
$ref: "#/components/schemas/PermissionGrant"
description: "Returned if the scheme permission is created."
"400":
description: "Returned if the value for expand is invalid or the same permission\
\ grant is present."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create permission grant"
tags:
- "Permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:application-role:jira"
- "read:field:jira"
- "read:group:jira"
- "read:permission:jira"
- "read:project-role:jira"
- "read:user:jira"
- "write:permission:jira"
state: "Beta"
/rest/api/2/permissionscheme/{schemeId}/permission/{permissionId}:
delete:
deprecated: false
description: "Deletes a permission grant from a permission scheme. See [About\
\ permission schemes and grants](../api-group-permission-schemes/#about-permission-schemes-and-grants)\
\ for more details.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deletePermissionSchemeEntity"
parameters:
- description: "The ID of the permission scheme to delete the permission grant\
\ from."
in: "path"
name: "schemeId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the permission grant to delete."
in: "path"
name: "permissionId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the permission grant is deleted."
"400":
description: "Returned if permission grant with the provided ID is not found."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete permission scheme grant"
tags:
- "Permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:permission:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a permission grant.\n\n**[Permissions](#permissions) required:**\
\ Permission to access Jira."
operationId: "getPermissionSchemeGrant"
parameters:
- description: "The ID of the permission scheme."
in: "path"
name: "schemeId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the permission grant."
in: "path"
name: "permissionId"
required: true
schema:
format: "int64"
type: "integer"
- description: "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:\n\n\
\ * `all` Returns all expandable information.\n * `field` Returns information\
\ about the custom field granted the permission.\n * `group` Returns information\
\ about the group that is granted the permission.\n * `permissions` Returns\
\ all permission grants for each permission scheme.\n * `projectRole` Returns\
\ information about the project role granted the permission.\n * `user`\
\ Returns information about the user who is granted the permission."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"holder\":{\"expand\":\"group\",\"parameter\":\"jira-core-users\"\
,\"type\":\"group\",\"value\":\"ca85fac0-d974-40ca-a615-7af99c48d24f\"\
},\"id\":10000,\"permission\":\"ADMINISTER_PROJECTS\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/permissionscheme/permission/10000\"\
}"
schema:
$ref: "#/components/schemas/PermissionGrant"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the permission scheme or permission grant is not\
\ found or the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get permission scheme grant"
tags:
- "Permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:application-role:jira"
- "read:field:jira"
- "read:group:jira"
- "read:permission:jira"
- "read:project-role:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/priority:
get:
deprecated: true
description: "Returns the list of all issue priorities.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "getPriorities"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"description\":\"Major loss of function.\",\"iconUrl\"\
:\"https://your-domain.atlassian.net/images/icons/priorities/major.png\"\
,\"id\":\"1\",\"name\":\"Major\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/priority/3\"\
,\"statusColor\":\"#009900\"},{\"description\":\"Very little impact.\"\
,\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/priorities/trivial.png\"\
,\"id\":\"2\",\"name\":\"Trivial\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/priority/5\"\
,\"statusColor\":\"#cfcfcf\"}]"
schema:
items:
$ref: "#/components/schemas/Priority"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get priorities"
tags:
- "Issue priorities"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:priority:jira"
state: "Beta"
x-changes:
- announced: "2022-10-11"
details: "https://developer.atlassian.com/cloud/jira/platform/changelog/#CHANGE-762"
effective: "2023-04-11"
type: "removed"
post:
deprecated: false
description: "Creates an issue priority.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createPriority"
parameters: []
requestBody:
content:
application/json:
example:
description: "My priority description"
iconUrl: "images/icons/priorities/major.png"
name: "My new priority"
statusColor: "#ABCDEF"
schema:
$ref: "#/components/schemas/CreatePriorityDetails"
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"10001\"}"
schema:
$ref: "#/components/schemas/PriorityId"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The length of the description must not\
\ exceed 255 characters.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ issue type screen schemes.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create priority"
tags:
- "Issue priorities"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/priority/default:
put:
deprecated: false
description: "Sets default issue priority.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setDefaultPriority"
parameters: []
requestBody:
content:
application/json:
example:
id: "3"
schema:
$ref: "#/components/schemas/SetDefaultPriorityRequest"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The id has to be provided.\"],\"errors\"\
:{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Priority with ID 10000 not found.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue priority isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Set default priority"
tags:
- "Issue priorities"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/priority/move:
put:
deprecated: false
description: "Changes the order of issue priorities.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "movePriorities"
parameters: []
requestBody:
content:
application/json:
example:
after: "10003"
ids:
- "10004"
- "10005"
schema:
$ref: "#/components/schemas/ReorderIssuePriorities"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The ids must contain no more than 1,000\
\ items.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Priority with ID 10000 not found.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue priority isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Move priorities"
tags:
- "Issue priorities"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/priority/search:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of priorities. The list\
\ can contain all priorities or a subset determined by any combination of\
\ these criteria:\n\n * a list of priority IDs. Any invalid priority IDs\
\ are ignored.\n * a list of project IDs. Only priorities that are available\
\ in these projects will be returned. Any invalid project IDs are ignored.\n\
\ * whether the field configuration is a default. This returns priorities\
\ from company-managed (classic) projects only, as there is no concept of\
\ default priorities in team-managed projects.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "searchPriorities"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: "0"
type: "string"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: "50"
type: "string"
- description: "The list of priority IDs. To include multiple IDs, provide an\
\ ampersand-separated list. For example, `id=2&id=3`."
in: "query"
name: "id"
schema:
items:
default: ""
type: "string"
type: "array"
- description: "The list of projects IDs. To include multiple IDs, provide an\
\ ampersand-separated list. For example, `projectId=10010&projectId=10111`."
in: "query"
name: "projectId"
schema:
items:
default: ""
type: "string"
type: "array"
- description: "The name of priority to search for."
in: "query"
name: "priorityName"
schema:
default: ""
type: "string"
- description: "Whether only the default priority is returned."
in: "query"
name: "onlyDefault"
schema:
default: false
type: "boolean"
- description: "Use `schemes` to return the associated priority schemes for\
\ each priority. Limited to returning first 15 priority schemes per priority."
in: "query"
name: "expand"
schema:
default: ""
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":50,\"startAt\":0,\"total\"\
:2,\"values\":[{\"description\":\"Major loss of function.\",\"iconUrl\"\
:\"https://your-domain.atlassian.net/images/icons/priorities/major.png\"\
,\"id\":\"1\",\"isDefault\":true,\"name\":\"Major\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/priority/3\"\
,\"statusColor\":\"#009900\"},{\"description\":\"Very little impact.\"\
,\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/priorities/trivial.png\"\
,\"id\":\"2\",\"isDefault\":false,\"name\":\"Trivial\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/priority/5\",\"statusColor\"\
:\"#cfcfcf\"}]}"
schema:
$ref: "#/components/schemas/PageBeanPriority"
description: "Returned if the request is successful."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Search priorities"
tags:
- "Issue priorities"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/priority/{id}:
delete:
deprecated: true
description: "*Deprecated: please refer to the* [changelog](https://developer.atlassian.com/changelog/#CHANGE-1066)\
\ *for more details.*\n\nDeletes an issue priority.\n\nThis operation is [asynchronous](#async).\
\ Follow the `location` link in the response to determine the status of the\
\ task and use [Get task](#api-rest-api-2-task-taskId-get) to obtain subsequent\
\ updates.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deletePriority"
parameters:
- description: "The ID of the issue priority."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "The ID of the issue priority that will replace the currently\
\ selected resolution."
in: "query"
name: "replaceWith"
required: true
schema:
type: "string"
responses:
"303":
content:
application/json:
schema:
$ref: "#/components/schemas/TaskProgressBeanObject"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The newPriority has to be provided.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Priority with ID 10000 not found.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue priority isn't found."
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if a task to delete the issue priority is already\
\ running."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete priority"
tags:
- "Issue priorities"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-changes:
- announced: "2023-07-18"
details: "https://developer.atlassian.com/changelog/#CHANGE-1066"
effective: "2023-12-01"
type: "removed"
x-experimental: true
get:
deprecated: false
description: "Returns an issue priority.\n\n**[Permissions](#permissions) required:**\
\ Permission to access Jira."
operationId: "getPriority"
parameters:
- description: "The ID of the issue priority."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"description\":\"Major loss of function.\",\"iconUrl\":\"\
https://your-domain.atlassian.net/images/icons/priorities/major.png\"\
,\"id\":\"1\",\"name\":\"Major\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/priority/3\"\
,\"statusColor\":\"#009900\"}"
schema:
$ref: "#/components/schemas/Priority"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
description: "Returned if the issue priority isn't found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get priority"
tags:
- "Issue priorities"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:priority:jira"
state: "Beta"
put:
deprecated: false
description: "Updates an issue priority.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updatePriority"
parameters:
- description: "The ID of the issue priority."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "My updated priority description"
iconUrl: "images/icons/priorities/minor.png"
name: "My updated priority"
statusColor: "#123456"
schema:
$ref: "#/components/schemas/UpdatePriorityDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The length of the description must not\
\ exceed 255 characters.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Priority with ID 10000 not found.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue priority isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update priority"
tags:
- "Issue priorities"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/project:
get:
deprecated: true
description: "Returns all projects visible to the user. Deprecated, use [ Get\
\ projects paginated](#api-rest-api-2-project-search-get) that supports search\
\ and pagination.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** Projects are returned only where the user has *Browse Projects*\
\ or *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getAllProjects"
parameters:
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expanded\
\ options include:\n\n * `description` Returns the project description.\n\
\ * `issueTypes` Returns all issue types associated with the project.\n\
\ * `lead` Returns information about the project lead.\n * `projectKeys`\
\ Returns all project keys associated with the project."
in: "query"
name: "expand"
schema:
type: "string"
- description: "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."
in: "query"
name: "recent"
schema:
format: "int32"
type: "integer"
- description: "A list of project properties to return for the project. This\
\ parameter accepts a comma-separated list."
in: "query"
name: "properties"
schema:
items:
default: ""
type: "string"
type: "array"
responses:
"200":
content:
application/json:
example: "[{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"insight\":{\"lastIssueUpdateTime\":1619069825000,\"\
totalIssueCount\":100},\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"First Project Category\",\"id\":\"10000\",\"name\"\
:\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"CLASSIC\"},{\"avatarUrls\":{\"16x16\"\
:\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10001\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10001\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10001\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10001\"\
},\"id\":\"10001\",\"insight\":{\"lastIssueUpdateTime\":1619069825000,\"\
totalIssueCount\":100},\"key\":\"ABC\",\"name\":\"Alphabetical\",\"\
projectCategory\":{\"description\":\"First Project Category\",\"id\"\
:\"10000\",\"name\":\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/ABC\"\
,\"simplified\":false,\"style\":\"CLASSIC\"}]"
schema:
items:
$ref: "#/components/schemas/Project"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get all projects"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type:jira"
- "read:project:jira"
- "read:project.property:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type-hierarchy:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
x-changes:
- announced: "2018-10-19"
details: "https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-removal-of-get-filters-and-get-all-projects/"
effective: "2019-04-19"
type: "removed"
post:
deprecated: false
description: "Creates a project based on a project type template, as shown in\
\ the following table:\n\n| Project Type Key | Project Template Key | \n\
|--|--| \n| `business` | `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-tracking`\
\ | \n| `service_desk` | `com.atlassian.servicedesk:simplified-it-service-management`,\
\ `com.atlassian.servicedesk:simplified-general-service-desk-it`, `com.atlassian.servicedesk:simplified-general-service-desk-business`,\
\ `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-analytics-service-desk`, `com.atlassian.servicedesk:simplified-marketing-service-desk`,\
\ `com.atlassian.servicedesk:simplified-design-service-desk`, `com.atlassian.servicedesk:simplified-sales-service-desk`,\
\ `com.atlassian.servicedesk:simplified-blank-project-business`, `com.atlassian.servicedesk:simplified-blank-project-it`,\
\ `com.atlassian.servicedesk:simplified-finance-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-it-service-desk`, `com.atlassian.servicedesk:next-gen-general-business-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`\
\ | \n| `software` | `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`\
\ | \nThe project types are available according to the installed Jira features\
\ as follows:\n\n * Jira Core, the default, enables `business` projects.\n\
\ * Jira Service Management enables `service_desk` projects.\n * Jira Software\
\ enables `software` projects.\n\nTo determine which features are installed,\
\ go to **Jira settings** > **Apps** > **Manage apps** and review the System\
\ Apps list. To add Jira Software or Jira Service Management into a JIRA instance,\
\ use **Jira settings** > **Apps** > **Finding new apps**. For more information,\
\ see [ Managing add-ons](https://confluence.atlassian.com/x/S31NLg).\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createProject"
parameters: []
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/CreateProjectDetails"
description: "The JSON representation of the project being created."
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":10010,\"key\":\"EX\",\"self\":\"https://your-domain.atlassian.net/jira/rest/api/2/project/10042\"\
}"
schema:
$ref: "#/components/schemas/ProjectIdentifiers"
description: "Returned if the project is created."
"400":
description: "Returned if the request is not valid and the project could\
\ not be created."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to create projects."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Create project"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/project/recent:
get:
deprecated: false
description: "Returns a list of up to 20 projects recently viewed by the user\
\ that are still visible to the user.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** Projects are returned only where\
\ the user has one of:\n\n * *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project.\n * *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project.\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getRecent"
parameters:
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expanded\
\ options include:\n\n * `description` Returns the project description.\n\
\ * `projectKeys` Returns all project keys associated with a project.\n\
\ * `lead` Returns information about the project lead.\n * `issueTypes`\
\ Returns all issue types associated with the project.\n * `url` Returns\
\ the URL associated with the project.\n * `permissions` Returns the permissions\
\ associated with the project.\n * `insight` EXPERIMENTAL. Returns the\
\ insight details of total issue count and last issue update time for the\
\ project.\n * `*` Returns the project with all available expand options."
in: "query"
name: "expand"
schema:
type: "string"
- description: "EXPERIMENTAL. A list of project properties to return for the\
\ project. This parameter accepts a comma-separated list. Invalid property\
\ names are ignored."
in: "query"
name: "properties"
schema:
items:
$ref: "#/components/schemas/StringList"
type: "array"
responses:
"200":
content:
application/json:
example: "[{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"insight\":{\"lastIssueUpdateTime\":1619069825000,\"\
totalIssueCount\":100},\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"First Project Category\",\"id\":\"10000\",\"name\"\
:\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"CLASSIC\"},{\"avatarUrls\":{\"16x16\"\
:\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10001\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10001\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10001\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10001\"\
},\"id\":\"10001\",\"insight\":{\"lastIssueUpdateTime\":1619069825000,\"\
totalIssueCount\":100},\"key\":\"ABC\",\"name\":\"Alphabetical\",\"\
projectCategory\":{\"description\":\"First Project Category\",\"id\"\
:\"10000\",\"name\":\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/ABC\"\
,\"simplified\":false,\"style\":\"CLASSIC\"}]"
schema:
items:
$ref: "#/components/schemas/Project"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get recent projects"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type:jira"
- "read:project:jira"
- "read:project.property:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type-hierarchy:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
x-experimental: true
/rest/api/2/project/search:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of projects visible to\
\ the user.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** Projects are returned only where the user has one of:\n\n *\
\ *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project.\n * *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project.\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "searchProjects"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "[Order](#ordering) the results by a field.\n\n * `category`\
\ Sorts by project category. A complete list of category IDs is found using\
\ [Get all project categories](#api-rest-api-2-projectCategory-get).\n *\
\ `issueCount` Sorts by the total number of issues in each project.\n *\
\ `key` Sorts by project key.\n * `lastIssueUpdatedTime` Sorts by the\
\ last issue update time.\n * `name` Sorts by project name.\n * `owner`\
\ Sorts by project lead.\n * `archivedDate` EXPERIMENTAL. Sorts by project\
\ archived date.\n * `deletedDate` EXPERIMENTAL. Sorts by project deleted\
\ date."
in: "query"
name: "orderBy"
schema:
default: "key"
enum:
- "category"
- "-category"
- "+category"
- "key"
- "-key"
- "+key"
- "name"
- "-name"
- "+name"
- "owner"
- "-owner"
- "+owner"
- "issueCount"
- "-issueCount"
- "+issueCount"
- "lastIssueUpdatedDate"
- "-lastIssueUpdatedDate"
- "+lastIssueUpdatedDate"
- "archivedDate"
- "+archivedDate"
- "-archivedDate"
- "deletedDate"
- "+deletedDate"
- "-deletedDate"
type: "string"
- description: "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."
in: "query"
name: "id"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "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."
in: "query"
name: "keys"
schema:
items:
default: ""
type: "string"
type: "array"
uniqueItems: true
- description: "Filter the results using a literal string. Projects with a matching\
\ `key` or `name` are returned (case insensitive)."
in: "query"
name: "query"
schema:
type: "string"
- description: "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`."
in: "query"
name: "typeKey"
schema:
type: "string"
- description: "The ID of the project's category. A complete list of category\
\ IDs is found using the [Get all project categories](#api-rest-api-2-projectCategory-get)\
\ operation."
in: "query"
name: "categoryId"
schema:
format: "int64"
type: "integer"
- description: "Filter results by projects for which the user can:\n\n * `view`\
\ the project, meaning that they have one of the following permissions:\n\
\ \n * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project.\n * *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project.\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).\n\
\ * `browse` the project, meaning that they have the *Browse projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for the\
\ project.\n * `edit` the project, meaning that they have one of the following\
\ permissions:\n \n * *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project.\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).\n\
\ * `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."
in: "query"
name: "action"
schema:
default: "view"
enum:
- "view"
- "browse"
- "edit"
- "create"
type: "string"
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expanded\
\ options include:\n\n * `description` Returns the project description.\n\
\ * `projectKeys` Returns all project keys associated with a project.\n\
\ * `lead` Returns information about the project lead.\n * `issueTypes`\
\ Returns all issue types associated with the project.\n * `url` Returns\
\ the URL associated with the project.\n * `insight` EXPERIMENTAL. Returns\
\ the insight details of total issue count and last issue update time for\
\ the project."
in: "query"
name: "expand"
schema:
type: "string"
- description: "EXPERIMENTAL. Filter results by project status:\n\n * `live`\
\ Search live projects.\n * `archived` Search archived projects.\n * `deleted`\
\ Search deleted projects, those in the recycle bin."
in: "query"
name: "status"
schema:
items:
default: "live"
enum:
- "live"
- "archived"
- "deleted"
type: "string"
type: "array"
- description: "EXPERIMENTAL. A list of project properties to return for the\
\ project. This parameter accepts a comma-separated list."
in: "query"
name: "properties"
schema:
items:
$ref: "#/components/schemas/StringList"
type: "array"
- description: "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`."
in: "query"
name: "propertyQuery"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":2,\"nextPage\":\"https://your-domain.atlassian.net/rest/api/2/project/search?startAt=2&maxResults=2\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/search?startAt=0&maxResults=2\"\
,\"startAt\":0,\"total\":7,\"values\":[{\"avatarUrls\":{\"16x16\"\
:\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"First Project Category\",\"id\":\"10000\",\"name\"\
:\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\"},{\"avatarUrls\":{\"16x16\"\
:\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10001\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10001\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10001\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10001\"\
},\"id\":\"10001\",\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"ABC\",\"name\":\"Alphabetical\"\
,\"projectCategory\":{\"description\":\"First Project Category\",\"\
id\":\"10000\",\"name\":\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/ABC\"\
,\"simplified\":false,\"style\":\"classic\"}]}"
schema:
$ref: "#/components/schemas/PageBeanProject"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if no projects matching the search criteria are found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get projects paginated"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type:jira"
- "read:project:jira"
- "read:project.property:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type-hierarchy:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
/rest/api/2/project/type:
get:
deprecated: false
description: "Returns all [project types](https://confluence.atlassian.com/x/Var1Nw),\
\ whether or not the instance has a valid license for each type.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ None."
operationId: "getAllProjectTypes"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"color\":\"#FFFFFF\",\"descriptionI18nKey\":\"jira.project.type.business.description\"\
,\"formattedKey\":\"Business\",\"icon\":\"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAzMiAzMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzIgMzIiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZmlsbD0iIzY2NjY2NiIgZD0iTTE2LDBDNy4yLDAsMCw3LjIsMCwxNmMwLDguOCw3LjIsMTYsMTYsMTZjOC44LDAsMTYtNy4yLDE2LTE2QzMyLDcuMiwyNC44LDAsMTYsMHogTTI1LjcsMjMNCgkJYzAsMS44LTEuNCwzLjItMy4yLDMuMkg5LjJDNy41LDI2LjIsNiwyNC44LDYsMjNWOS44QzYsOCw3LjUsNi42LDkuMiw2LjZoMTMuMmMwLjIsMCwwLjQsMCwwLjcsMC4xbC0yLjgsMi44SDkuMg0KCQlDOSw5LjQsOC44LDkuNiw4LjgsOS44VjIzYzAsMC4yLDAuMiwwLjQsMC40LDAuNGgxMy4yYzAuMiwwLDAuNC0wLjIsMC40LTAuNHYtNS4zbDIuOC0yLjhWMjN6IE0xNS45LDIxLjNMMTEsMTYuNGwyLTJsMi45LDIuOQ0KCQlMMjYuNCw2LjhjMC42LDAuNywxLjIsMS41LDEuNywyLjNMMTUuOSwyMS4zeiIvPg0KPC9nPg0KPC9zdmc+\"\
,\"key\":\"business\"},{\"color\":\"#AAAAAA\",\"descriptionI18nKey\"\
:\"jira.project.type.software.description\",\"formattedKey\":\"Software\"\
,\"icon\":\"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAzMiAzMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzIgMzIiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZmlsbD0iIzY2NjY2NiIgZD0iTTE2LDBDNy4yLDAsMCw3LjIsMCwxNmMwLDguOCw3LjIsMTYsMTYsMTZjOC44LDAsMTYtNy4yLDE2LTE2QzMyLDcuMiwyNC44LDAsMTYsMHogTTI1LjcsMjMNCgkJYzAsMS44LTEuNCwzLjItMy4yLDMuMkg5LjJDNy41LDI2LjIsNiwyNC44LDYsMjNWOS44QzYsOCw3LjUsNi42LDkuMiw2LjZoMTMuMmMwLjIsMCwwLjQsMCwwLjcsMC4xbC0yLjgsMi44SDkuMg0KCQlDOSw5LjQsOC44LDkuNiw4LjgsOS44VjIzYzAsMC4yLDAuMiwwLjQsMC40LDAuNGgxMy4yYzAuMiwwLDAuNC0wLjIsMC40LTAuNHYtNS4zbDIuOC0yLjhWMjN6IE0xNS45LDIxLjNMMTEsMTYuNGwyLTJsMi45LDIuOQ0KCQlMMjYuNCw2LjhjMC42LDAuNywxLjIsMS41LDEuNywyLjNMMTUuOSwyMS4zeiIvPg0KPC9nPg0KPC9zdmc+\"\
,\"key\":\"software\"}]"
schema:
items:
$ref: "#/components/schemas/ProjectType"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get all project types"
tags:
- "Project types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-type:jira"
state: "Beta"
/rest/api/2/project/type/accessible:
get:
deprecated: false
description: "Returns all [project types](https://confluence.atlassian.com/x/Var1Nw)\
\ with a valid license."
operationId: "getAllAccessibleProjectTypes"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"color\":\"#FFFFFF\",\"descriptionI18nKey\":\"jira.project.type.business.description\"\
,\"formattedKey\":\"Business\",\"icon\":\"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAzMiAzMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzIgMzIiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZmlsbD0iIzY2NjY2NiIgZD0iTTE2LDBDNy4yLDAsMCw3LjIsMCwxNmMwLDguOCw3LjIsMTYsMTYsMTZjOC44LDAsMTYtNy4yLDE2LTE2QzMyLDcuMiwyNC44LDAsMTYsMHogTTI1LjcsMjMNCgkJYzAsMS44LTEuNCwzLjItMy4yLDMuMkg5LjJDNy41LDI2LjIsNiwyNC44LDYsMjNWOS44QzYsOCw3LjUsNi42LDkuMiw2LjZoMTMuMmMwLjIsMCwwLjQsMCwwLjcsMC4xbC0yLjgsMi44SDkuMg0KCQlDOSw5LjQsOC44LDkuNiw4LjgsOS44VjIzYzAsMC4yLDAuMiwwLjQsMC40LDAuNGgxMy4yYzAuMiwwLDAuNC0wLjIsMC40LTAuNHYtNS4zbDIuOC0yLjhWMjN6IE0xNS45LDIxLjNMMTEsMTYuNGwyLTJsMi45LDIuOQ0KCQlMMjYuNCw2LjhjMC42LDAuNywxLjIsMS41LDEuNywyLjNMMTUuOSwyMS4zeiIvPg0KPC9nPg0KPC9zdmc+\"\
,\"key\":\"business\"},{\"color\":\"#AAAAAA\",\"descriptionI18nKey\"\
:\"jira.project.type.software.description\",\"formattedKey\":\"Software\"\
,\"icon\":\"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAzMiAzMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzIgMzIiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZmlsbD0iIzY2NjY2NiIgZD0iTTE2LDBDNy4yLDAsMCw3LjIsMCwxNmMwLDguOCw3LjIsMTYsMTYsMTZjOC44LDAsMTYtNy4yLDE2LTE2QzMyLDcuMiwyNC44LDAsMTYsMHogTTI1LjcsMjMNCgkJYzAsMS44LTEuNCwzLjItMy4yLDMuMkg5LjJDNy41LDI2LjIsNiwyNC44LDYsMjNWOS44QzYsOCw3LjUsNi42LDkuMiw2LjZoMTMuMmMwLjIsMCwwLjQsMCwwLjcsMC4xbC0yLjgsMi44SDkuMg0KCQlDOSw5LjQsOC44LDkuNiw4LjgsOS44VjIzYzAsMC4yLDAuMiwwLjQsMC40LDAuNGgxMy4yYzAuMiwwLDAuNC0wLjIsMC40LTAuNHYtNS4zbDIuOC0yLjhWMjN6IE0xNS45LDIxLjNMMTEsMTYuNGwyLTJsMi45LDIuOQ0KCQlMMjYuNCw2LjhjMC42LDAuNywxLjIsMS41LDEuNywyLjNMMTUuOSwyMS4zeiIvPg0KPC9nPg0KPC9zdmc+\"\
,\"key\":\"software\"}]"
schema:
items:
$ref: "#/components/schemas/ProjectType"
type: "array"
description: "Returned if the request is successful."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get licensed project types"
tags:
- "Project types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-type:jira"
state: "Beta"
/rest/api/2/project/type/{projectTypeKey}:
get:
deprecated: false
description: "Returns a [project type](https://confluence.atlassian.com/x/Var1Nw).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getProjectTypeByKey"
parameters:
- description: "The key of the project type."
in: "path"
name: "projectTypeKey"
required: true
schema:
enum:
- "software"
- "service_desk"
- "business"
- "product_discovery"
type: "string"
responses:
"200":
content:
application/json:
example: "{\"color\":\"#FFFFFF\",\"descriptionI18nKey\":\"jira.project.type.business.description\"\
,\"formattedKey\":\"Business\",\"icon\":\"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAzMiAzMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzIgMzIiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZmlsbD0iIzY2NjY2NiIgZD0iTTE2LDBDNy4yLDAsMCw3LjIsMCwxNmMwLDguOCw3LjIsMTYsMTYsMTZjOC44LDAsMTYtNy4yLDE2LTE2QzMyLDcuMiwyNC44LDAsMTYsMHogTTI1LjcsMjMNCgkJYzAsMS44LTEuNCwzLjItMy4yLDMuMkg5LjJDNy41LDI2LjIsNiwyNC44LDYsMjNWOS44QzYsOCw3LjUsNi42LDkuMiw2LjZoMTMuMmMwLjIsMCwwLjQsMCwwLjcsMC4xbC0yLjgsMi44SDkuMg0KCQlDOSw5LjQsOC44LDkuNiw4LjgsOS44VjIzYzAsMC4yLDAuMiwwLjQsMC40LDAuNGgxMy4yYzAuMiwwLDAuNC0wLjIsMC40LTAuNHYtNS4zbDIuOC0yLjhWMjN6IE0xNS45LDIxLjNMMTEsMTYuNGwyLTJsMi45LDIuOQ0KCQlMMjYuNCw2LjhjMC42LDAuNywxLjIsMS41LDEuNywyLjNMMTUuOSwyMS4zeiIvPg0KPC9nPg0KPC9zdmc+\"\
,\"key\":\"business\"}"
schema:
$ref: "#/components/schemas/ProjectType"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
description: "Returned if the project type is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project type by key"
tags:
- "Project types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-type:jira"
state: "Beta"
/rest/api/2/project/type/{projectTypeKey}/accessible:
get:
deprecated: false
description: "Returns a [project type](https://confluence.atlassian.com/x/Var1Nw)\
\ if it is accessible to the user.\n\n**[Permissions](#permissions) required:**\
\ Permission to access Jira."
operationId: "getAccessibleProjectTypeByKey"
parameters:
- description: "The key of the project type."
in: "path"
name: "projectTypeKey"
required: true
schema:
enum:
- "software"
- "service_desk"
- "business"
- "product_discovery"
type: "string"
responses:
"200":
content:
application/json:
example: "{\"color\":\"#FFFFFF\",\"descriptionI18nKey\":\"jira.project.type.business.description\"\
,\"formattedKey\":\"Business\",\"icon\":\"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAzMiAzMiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzIgMzIiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGc+DQoJPHBhdGggZmlsbD0iIzY2NjY2NiIgZD0iTTE2LDBDNy4yLDAsMCw3LjIsMCwxNmMwLDguOCw3LjIsMTYsMTYsMTZjOC44LDAsMTYtNy4yLDE2LTE2QzMyLDcuMiwyNC44LDAsMTYsMHogTTI1LjcsMjMNCgkJYzAsMS44LTEuNCwzLjItMy4yLDMuMkg5LjJDNy41LDI2LjIsNiwyNC44LDYsMjNWOS44QzYsOCw3LjUsNi42LDkuMiw2LjZoMTMuMmMwLjIsMCwwLjQsMCwwLjcsMC4xbC0yLjgsMi44SDkuMg0KCQlDOSw5LjQsOC44LDkuNiw4LjgsOS44VjIzYzAsMC4yLDAuMiwwLjQsMC40LDAuNGgxMy4yYzAuMiwwLDAuNC0wLjIsMC40LTAuNHYtNS4zbDIuOC0yLjhWMjN6IE0xNS45LDIxLjNMMTEsMTYuNGwyLTJsMi45LDIuOQ0KCQlMMjYuNCw2LjhjMC42LDAuNywxLjIsMS41LDEuNywyLjNMMTUuOSwyMS4zeiIvPg0KPC9nPg0KPC9zdmc+\"\
,\"key\":\"business\"}"
schema:
$ref: "#/components/schemas/ProjectType"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project type is not accessible to the user."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get accessible project type by key"
tags:
- "Project types"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-type:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}:
delete:
deprecated: false
description: "Deletes a project.\n\nYou can't delete a project if it's archived.\
\ To delete an archived project, restore the project and then delete it. To\
\ restore a project, use the Jira UI.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteProject"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
example: "10001"
type: "string"
- description: "Whether this project is placed in the Jira recycle bin where\
\ it will be available for restoration."
in: "query"
name: "enableUndo"
schema:
default: true
type: "boolean"
responses:
"204":
description: "Returned if the project is deleted."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to delete it."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Delete project"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:project:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the [project details](https://confluence.atlassian.com/x/ahLpNw)\
\ for a project.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getProject"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "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:\n\n * `description`\
\ The project description.\n * `issueTypes` The issue types associated\
\ with the project.\n * `lead` The project lead.\n * `projectKeys` All\
\ project keys associated with the project.\n * `issueTypeHierarchy` The\
\ project issue type hierarchy."
in: "query"
name: "expand"
schema:
type: "string"
- description: "A list of project properties to return for the project. This\
\ parameter accepts a comma-separated list."
in: "query"
name: "properties"
schema:
items:
default: ""
type: "string"
type: "array"
responses:
"200":
content:
application/json:
example: "{\"assigneeType\":\"PROJECT_LEAD\",\"avatarUrls\":{\"16x16\"\
:\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"components\":[{\"ari\":\"ari:cloud:compass:fdb3fdec-4e70-be56-11ee-0242ac120002:component/fdb3fdec-4e70-11ee-be56-0242ac120002/fdb3fdec-11ee-4e70-be56-0242ac120002\"\
,\"assignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a Jira\
\ component\",\"id\":\"10000\",\"isAssigneeTypeValid\":false,\"lead\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"metadata\":{\"icon\":\"https://www.example.com/icon.png\"},\"\
name\":\"Component 1\",\"project\":\"HSP\",\"projectId\":10000,\"\
realAssignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
}],\"description\":\"This project was created as an example for REST.\"\
,\"email\":\"from-jira@example.com\",\"id\":\"10000\",\"insight\"\
:{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\",\"totalIssueCount\"\
:100},\"issueTypes\":[{\"avatarId\":1,\"description\":\"A task that\
\ needs to be done.\",\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10299&avatarType=issuetype\\\
\",\",\"id\":\"3\",\"name\":\"Task\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/3\"\
,\"subtask\":false},{\"avatarId\":10002,\"description\":\"A problem\
\ with the software.\",\"entityId\":\"9d7dd6f7-e8b6-4247-954b-7b2c9b2a5ba2\"\
,\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10316&avatarType=issuetype\\\
\",\",\"id\":\"1\",\"name\":\"Bug\",\"scope\":{\"project\":{\"id\"\
:\"10000\"},\"type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/1\"\
,\"subtask\":false}],\"key\":\"EX\",\"lead\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"name\":\"Example\",\"projectCategory\":{\"description\":\"First\
\ Project Category\",\"id\":\"10000\",\"name\":\"FIRST\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"properties\":{\"propertyKey\":\"propertyValue\"},\"roles\":{\"\
Developers\":\"https://your-domain.atlassian.net/rest/api/2/project/EX/role/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\",\"url\":\"https://www.example.com\"\
,\"versions\":[]}"
schema:
$ref: "#/components/schemas/Project"
description: "Returned if successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type:jira"
- "read:project:jira"
- "read:project.property:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type-hierarchy:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
put:
deprecated: false
description: "Updates the [project details](https://confluence.atlassian.com/x/ahLpNw)\
\ of a project.\n\nAll parameters are optional in the body of the request.\
\ Schemes will only be updated if they are included in the request, any omitted\
\ schemes will be left unchanged.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).\
\ is only needed when changing the schemes or project key. Otherwise you will\
\ only need *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)"
operationId: "updateProject"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
example: "10001"
type: "string"
- description: "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:\n\n * `description`\
\ The project description.\n * `issueTypes` The issue types associated\
\ with the project.\n * `lead` The project lead.\n * `projectKeys` All\
\ project keys associated with the project."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/UpdateProjectDetails"
description: "The project details to be updated."
required: true
responses:
"200":
content:
application/json:
example: "{\"assigneeType\":\"PROJECT_LEAD\",\"avatarUrls\":{\"16x16\"\
:\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"components\":[{\"ari\":\"ari:cloud:compass:fdb3fdec-4e70-be56-11ee-0242ac120002:component/fdb3fdec-4e70-11ee-be56-0242ac120002/fdb3fdec-11ee-4e70-be56-0242ac120002\"\
,\"assignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a Jira\
\ component\",\"id\":\"10000\",\"isAssigneeTypeValid\":false,\"lead\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"metadata\":{\"icon\":\"https://www.example.com/icon.png\"},\"\
name\":\"Component 1\",\"project\":\"HSP\",\"projectId\":10000,\"\
realAssignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
}],\"description\":\"This project was created as an example for REST.\"\
,\"email\":\"from-jira@example.com\",\"id\":\"10000\",\"insight\"\
:{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\",\"totalIssueCount\"\
:100},\"issueTypes\":[{\"avatarId\":1,\"description\":\"A task that\
\ needs to be done.\",\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10299&avatarType=issuetype\\\
\",\",\"id\":\"3\",\"name\":\"Task\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/3\"\
,\"subtask\":false},{\"avatarId\":10002,\"description\":\"A problem\
\ with the software.\",\"entityId\":\"9d7dd6f7-e8b6-4247-954b-7b2c9b2a5ba2\"\
,\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10316&avatarType=issuetype\\\
\",\",\"id\":\"1\",\"name\":\"Bug\",\"scope\":{\"project\":{\"id\"\
:\"10000\"},\"type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/1\"\
,\"subtask\":false}],\"key\":\"EX\",\"lead\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"name\":\"Example\",\"projectCategory\":{\"description\":\"First\
\ Project Category\",\"id\":\"10000\",\"name\":\"FIRST\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"properties\":{\"propertyKey\":\"propertyValue\"},\"roles\":{\"\
Developers\":\"https://your-domain.atlassian.net/rest/api/2/project/EX/role/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\",\"url\":\"https://www.example.com\"\
,\"versions\":[]}"
schema:
$ref: "#/components/schemas/Project"
description: "Returned if the project is updated."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if:\n\n * the user does not have the necessary permission\
\ to update project details.\n * 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":
description: "Returned if the project is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Update project"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type:jira"
- "read:project:jira"
- "read:project.property:jira"
- "read:user:jira"
- "write:project:jira"
- "write:project.avatar:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type-hierarchy:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/archive:
post:
deprecated: false
description: "Archives a project. You can't delete a project if it's archived.\
\ To delete an archived project, restore the project and then delete it. To\
\ restore a project, use the Jira UI.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "archiveProject"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permissions."
"404":
description: "Returned if the project is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Archive project"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/avatar:
put:
deprecated: false
description: "Sets the avatar displayed for a project.\n\nUse [Load project\
\ avatar](#api-rest-api-2-project-projectIdOrKey-avatar2-post) to store avatars\
\ against the project, before using this operation to set the displayed avatar.\n\
\n**[Permissions](#permissions) required:** *Administer projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg)."
operationId: "updateProjectAvatar"
parameters:
- description: "The ID or (case-sensitive) key of the project."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
id: "10010"
schema:
$ref: "#/components/schemas/Avatar"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to administer\
\ the project."
"404":
description: "Returned if the project or avatar is not found or the user\
\ does not have permission to view the project."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Set project avatar"
tags:
- "Project avatars"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project.avatar:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/avatar/{id}:
delete:
deprecated: false
description: "Deletes a custom avatar from a project. Note that system avatars\
\ cannot be deleted.\n\n**[Permissions](#permissions) required:** *Administer\
\ projects* [project permission](https://confluence.atlassian.com/x/yodKLg)."
operationId: "deleteProjectAvatar"
parameters:
- description: "The project ID or (case-sensitive) key."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the avatar."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the avatar is a system avatar or the user does\
\ not have permission to administer the project."
"404":
description: "Returned if the project or avatar is not found or the user\
\ does not have permission to view the project."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Delete project avatar"
tags:
- "Project avatars"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:project.avatar:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/avatar2:
post:
deprecated: false
description: "Loads an avatar for a project.\n\nSpecify the avatar's local file\
\ location in the body of the request. Also, include the following headers:\n\
\n * `X-Atlassian-Token: no-check` To prevent XSRF protection blocking the\
\ request, for more information see [Special Headers](#special-request-headers).\n\
\ * `Content-Type: image/image type` Valid image types are JPEG, GIF, or\
\ PNG.\n\nFor example: \n`curl --request POST `\n\n`--user email@example.com:\
\ `\n\n`--header 'X-Atlassian-Token: no-check' `\n\n`--header 'Content-Type:\
\ image/< image_type>' `\n\n`--data-binary \"<@/path/to/file/with/your/avatar>\"\
\ `\n\n`--url 'https://your-domain.atlassian.net/rest/api/2/project/{projectIdOrKey}/avatar2'`\n\
\nThe avatar is cropped to a square. If no crop parameters are specified,\
\ the square originates at the top left of the image. The length of the square's\
\ sides is set to the smaller of the height or width of the image.\n\nThe\
\ cropped image is then used to create avatars of 16x16, 24x24, 32x32, and\
\ 48x48 in size.\n\nAfter creating the avatar use [Set project avatar](#api-rest-api-2-project-projectIdOrKey-avatar-put)\
\ to set it as the project's displayed avatar.\n\n**[Permissions](#permissions)\
\ required:** *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)."
operationId: "createProjectAvatar"
parameters:
- description: "The ID or (case-sensitive) key of the project."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The X coordinate of the top-left corner of the crop region."
in: "query"
name: "x"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The Y coordinate of the top-left corner of the crop region."
in: "query"
name: "y"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The length of each side of the crop region."
in: "query"
name: "size"
schema:
default: 0
format: "int32"
type: "integer"
requestBody:
content:
'*/*':
schema: {}
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"1010\",\"isDeletable\":true,\"isSelected\":false,\"\
isSystemAvatar\":false}"
schema:
$ref: "#/components/schemas/Avatar"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * an image isn't included in the request.\n\
\ * the image type is unsupported.\n * the crop parameters extend the\
\ crop area beyond the edge of the image."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to administer\
\ the project or an anonymous call is made to the operation."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view the project."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Load project avatar"
tags:
- "Project avatars"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project.avatar:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/avatars:
get:
deprecated: false
description: "Returns all project avatars, grouped by system and custom avatars.\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getAllProjectAvatars"
parameters:
- description: "The ID or (case-sensitive) key of the project."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"custom\":[{\"id\":\"1010\",\"isDeletable\":true,\"isSelected\"\
:false,\"isSystemAvatar\":false,\"urls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10080&avatarType=project\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/viewavatar?size=small&avatarId=10080&avatarType=project\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/viewavatar?size=medium&avatarId=10080&avatarType=project\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/viewavatar?avatarId=10080&avatarType=project\"\
}}],\"system\":[{\"id\":\"1000\",\"isDeletable\":false,\"isSelected\"\
:false,\"isSystemAvatar\":true,\"urls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10040&avatarType=project\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/viewavatar?size=small&avatarId=10040&avatarType=project\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/viewavatar?size=medium&avatarId=10040&avatarType=project\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/viewavatar?avatarId=10040&avatarType=project\"\
}}]}"
schema:
$ref: "#/components/schemas/ProjectAvatars"
description: "Returned if request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view the project."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get all project avatars"
tags:
- "Project avatars"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project.avatar:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/classification-level/default:
delete:
deprecated: false
description: "Remove the default data classification level for a project.\n\n\
**[Permissions](#permissions) required:**\n\n * *Administer projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project.\n\
\ * *Administer jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "removeDefaultProjectClassification"
parameters:
- description: "The project ID or project key (case-sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the project is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Remove the default data classification level from a project"
tags:
- "Project classification levels"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project:jira"
state: "Beta"
x-experimental: true
get:
deprecated: false
description: "Returns the default data classification for a project.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project.\n * *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project.\n * *Administer jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getDefaultProjectClassification"
parameters:
- description: "The project ID or project key (case-sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"classification\":{\"id\":\"ari:cloud:platform::classification-tag/5bfa70f7-4af1-44f5-9e12-1ce185f15a38\"\
,\"status\":\"published\",\"name\":\"Restricted\",\"rank\":1,\"description\"\
:\"Data we hold that would be very damaging and would cause loss of\
\ trust with customers and present legal risk if mishandled\",\"guideline\"\
:\"Access to data must be restricted to only individuals who need\
\ access in order to perform their job duties.\",\"color\":\"RED\"\
}}"
schema: {}
description: "Returned if the request is successful."
"401":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the project is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get the default data classification level of a project"
tags:
- "Project classification levels"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
state: "Beta"
x-experimental: true
put:
deprecated: false
description: "Updates the default data classification level for a project.\n\
\n**[Permissions](#permissions) required:**\n\n * *Administer projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project.\n\
\ * *Administer jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateDefaultProjectClassification"
parameters:
- description: "The project ID or project key (case-sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
id: "ari:cloud:platform::classification-tag/dec24c48-5073-4c25-8fef-9d81a992c30c"
schema:
$ref: "#/components/schemas/UpdateDefaultProjectClassificationBean"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the project is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Update the default data classification level of a project"
tags:
- "Project classification levels"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project:jira"
state: "Beta"
x-experimental: true
/rest/api/2/project/{projectIdOrKey}/component:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of all components in a\
\ project. See the [Get project components](#api-rest-api-2-project-projectIdOrKey-components-get)\
\ resource if you want to get a full list of versions without pagination.\n\
\nIf your project uses Compass components, this API will return a list of\
\ Compass components that are linked to issues in that project.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getProjectComponentsPaginated"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "[Order](#ordering) the results by a field:\n\n * `description`\
\ Sorts by the component description.\n * `issueCount` Sorts by the count\
\ of issues associated with the component.\n * `lead` Sorts by the user\
\ key of the component's project lead.\n * `name` Sorts by component name."
in: "query"
name: "orderBy"
schema:
enum:
- "description"
- "-description"
- "+description"
- "issueCount"
- "-issueCount"
- "+issueCount"
- "lead"
- "-lead"
- "+lead"
- "name"
- "-name"
- "+name"
type: "string"
- description: "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`."
in: "query"
name: "componentSource"
schema:
default: "jira"
enum:
- "jira"
- "compass"
- "auto"
type: "string"
- description: "Filter the results using a literal string. Components with a\
\ matching `name` or `description` are returned (case insensitive)."
in: "query"
name: "query"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":2,\"nextPage\":\"https://your-domain.atlassian.net/rest/api/2/project/PR/component?startAt=2&maxResults=2\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/PR/component?startAt=0&maxResults=2\"\
,\"startAt\":0,\"total\":7,\"values\":[{\"assignee\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\",\"active\"\
:false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"componentBean\":{\"ari\":\"\
ari:cloud:compass:fdb3fdec-4e70-be56-11ee-0242ac120002:component/fdb3fdec-4e70-11ee-be56-0242ac120002/fdb3fdec-11ee-4e70-be56-0242ac120002\"\
,\"assignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a Jira\
\ component\",\"id\":\"10000\",\"isAssigneeTypeValid\":false,\"lead\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"metadata\":{\"icon\":\"https://www.example.com/icon.png\"},\"\
name\":\"Component 1\",\"project\":\"HSP\",\"projectId\":10000,\"\
realAssignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
},\"description\":\"This is a Jira component\",\"id\":\"10000\",\"\
isAssigneeTypeValid\":false,\"issueCount\":1,\"lead\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\",\"active\"\
:false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"name\":\"Component 1\",\"project\":\"HSP\",\"projectId\":10000,\"\
realAssignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
},{\"assignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"componentBean\":{\"ari\":\"\
ari:cloud:compass:fdb3fdec-4e70-be56-11ee-0242ac120002:component/fdb3fdec-11ee-4e70-be56-0242ac120002/fdb3fdec-4e70-11ee-be56-0242ac120002\"\
,\"assignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a another\
\ Jira component\",\"id\":\"10050\",\"isAssigneeTypeValid\":false,\"\
lead\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"metadata\":{\"icon\":\"https://www.example.com/icon.png\"},\"\
name\":\"PXA\",\"project\":\"PROJECTKEY\",\"projectId\":10000,\"realAssignee\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
},\"description\":\"This is a another Jira component\",\"id\":\"10050\"\
,\"isAssigneeTypeValid\":false,\"issueCount\":5,\"lead\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\",\"active\"\
:false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"name\":\"PXA\",\"project\":\"PROJECTKEY\",\"projectId\":10000,\"\
realAssignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanComponentWithIssueCount"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project components paginated"
tags:
- "Project components"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:project.component:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/components:
get:
deprecated: false
description: "Returns all components in a project. See the [Get project components\
\ paginated](#api-rest-api-2-project-projectIdOrKey-component-get) resource\
\ if you want to get a full list of components with pagination.\n\nIf your\
\ project uses Compass components, this API will return a paginated list of\
\ Compass components that are linked to issues in that project.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getProjectComponents"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "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`."
in: "query"
name: "componentSource"
schema:
default: "jira"
enum:
- "jira"
- "compass"
- "auto"
type: "string"
responses:
"200":
content:
application/json:
example: "[{\"ari\":\"ari:cloud:compass:fdb3fdec-4e70-be56-11ee-0242ac120002:component/fdb3fdec-4e70-11ee-be56-0242ac120002/fdb3fdec-11ee-4e70-be56-0242ac120002\"\
,\"assignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a Jira\
\ component\",\"id\":\"10000\",\"isAssigneeTypeValid\":false,\"lead\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"metadata\":{\"icon\":\"https://www.example.com/icon.png\"},\"\
name\":\"Component 1\",\"project\":\"HSP\",\"projectId\":10000,\"\
realAssignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
},{\"ari\":\"ari:cloud:compass:fdb3fdec-4e70-be56-11ee-0242ac120002:component/fdb3fdec-11ee-4e70-be56-0242ac120002/fdb3fdec-4e70-11ee-be56-0242ac120002\"\
,\"assignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a another\
\ Jira component\",\"id\":\"10050\",\"isAssigneeTypeValid\":false,\"\
lead\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"metadata\":{\"icon\":\"https://www.example.com/icon.png\"},\"\
name\":\"PXA\",\"project\":\"PROJECTKEY\",\"projectId\":10000,\"realAssignee\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
}]"
schema:
items:
$ref: "#/components/schemas/ProjectComponent"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project components"
tags:
- "Project components"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:project.component:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/delete:
post:
deprecated: false
description: "Deletes a project asynchronously.\n\nThis operation is:\n\n *\
\ transactional, that is, if part of the delete fails the project is not\
\ deleted.\n * [asynchronous](#async). Follow the `location` link in the\
\ response to determine the status of the task and use [Get task](#api-rest-api-2-task-taskId-get)\
\ to obtain subsequent updates.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteProjectAsynchronously"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
responses:
"303":
content:
application/json:
schema:
$ref: "#/components/schemas/TaskProgressBeanObject"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or the user does not\
\ have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Delete project asynchronously"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project:jira"
- "write:project.property:jira"
state: "Beta"
x-experimental: true
/rest/api/2/project/{projectIdOrKey}/features:
get:
deprecated: false
description: "Returns the list of features for a project."
operationId: "getFeaturesForProject"
parameters:
- description: "The ID or (case-sensitive) key of the project."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"features\":[{\"feature\":\"jsw.classic.roadmap\",\"imageUri\"\
:\"https://jira.atlassian.com/s/sb53l8/b/3/ab8a7691e4738b4f147e293f0864adfd5b8d3c85/_/download/resources/com.atlassian.jira.rest:classic-project-features/simple-roadmap-feature.svg\"\
,\"localisedDescription\":\"Your roadmap is an optimized location\
\ to create and manage your epics.\",\"localisedName\":\"Roadmap\"\
,\"prerequisites\":[],\"projectId\":10001,\"state\":\"ENABLED\",\"\
toggleLocked\":true},{\"feature\":\"jsw.classic.backlog\",\"imageUri\"\
:\"https://jira.atlassian.com/s/sb53l8/b/3/ab8a7691e4738b4f147e293f0864adfd5b8d3c85/_/download/resources/com.atlassian.jira.rest:classic-project-features/simple-backlog-feature.svg\"\
,\"localisedDescription\":\"Plan and prioritize work in a dedicated\
\ space. To enable and configure the backlog for each board, go to\
\ board settings.\",\"localisedName\":\"Backlog\",\"prerequisites\"\
:[],\"projectId\":10001,\"state\":\"ENABLED\",\"toggleLocked\":true}]}"
schema:
$ref: "#/components/schemas/ContainerForProjectFeatures"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
"404":
description: "Returned if the project is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get project features"
tags:
- "Project features"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project.feature:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/features/{featureKey}:
put:
deprecated: false
description: "Sets the state of a project feature."
operationId: "toggleFeatureForProject"
parameters:
- description: "The ID or (case-sensitive) key of the project."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The key of the feature."
in: "path"
name: "featureKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
state: "ENABLED"
schema:
$ref: "#/components/schemas/ProjectFeatureState"
description: "Details of the feature state change."
required: true
responses:
"200":
content:
application/json:
example: "{\"features\":[{\"feature\":\"jsw.classic.roadmap\",\"imageUri\"\
:\"https://jira.atlassian.com/s/sb53l8/b/3/ab8a7691e4738b4f147e293f0864adfd5b8d3c85/_/download/resources/com.atlassian.jira.rest:classic-project-features/simple-roadmap-feature.svg\"\
,\"localisedDescription\":\"Your roadmap is an optimized location\
\ to create and manage your epics.\",\"localisedName\":\"Roadmap\"\
,\"prerequisites\":[],\"projectId\":10001,\"state\":\"ENABLED\",\"\
toggleLocked\":true},{\"feature\":\"jsw.classic.backlog\",\"imageUri\"\
:\"https://jira.atlassian.com/s/sb53l8/b/3/ab8a7691e4738b4f147e293f0864adfd5b8d3c85/_/download/resources/com.atlassian.jira.rest:classic-project-features/simple-backlog-feature.svg\"\
,\"localisedDescription\":\"Plan and prioritize work in a dedicated\
\ space. To enable and configure the backlog for each board, go to\
\ board settings.\",\"localisedName\":\"Backlog\",\"prerequisites\"\
:[],\"projectId\":10001,\"state\":\"ENABLED\",\"toggleLocked\":true}]}"
schema:
$ref: "#/components/schemas/ContainerForProjectFeatures"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
"404":
description: "Returned if the project or project feature is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Set project feature state"
tags:
- "Project features"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project.feature:jira"
- "read:project.feature:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/properties:
get:
deprecated: false
description: "Returns all [project property](https://developer.atlassian.com/cloud/jira/platform/storing-data-without-a-database/#a-id-jira-entity-properties-a-jira-entity-properties)\
\ keys for the project.\n\nThis operation can be accessed anonymously.\n\n\
**[Permissions](#permissions) required:** *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getProjectPropertyKeys"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"keys\":[{\"key\":\"issue.support\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/EX-2/properties/issue.support\"\
}]}"
schema:
$ref: "#/components/schemas/PropertyKeys"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect."
"403":
description: "Returned if the user does not have permission to view the\
\ project."
"404":
description: "Returned if the project is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project property keys"
tags:
- "Project properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project.property:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/properties/{propertyKey}:
delete:
deprecated: false
description: "Deletes the [property](https://developer.atlassian.com/cloud/jira/platform/storing-data-without-a-database/#a-id-jira-entity-properties-a-jira-entity-properties)\
\ from a project.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the property."
operationId: "deleteProjectProperty"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The project property key. Use [Get project property keys](#api-rest-api-2-project-projectIdOrKey-properties-get)\
\ to get a list of all project property keys."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the project property is deleted."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect."
"403":
description: "Returned if the user does not have permission to administer\
\ the project."
"404":
description: "Returned if the project or property is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Delete project property"
tags:
- "Project properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:project.property:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the value of a [project property](https://developer.atlassian.com/cloud/jira/platform/storing-data-without-a-database/#a-id-jira-entity-properties-a-jira-entity-properties).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the property."
operationId: "getProjectProperty"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The project property key. Use [Get project property keys](#api-rest-api-2-project-projectIdOrKey-properties-get)\
\ to get a list of all project property keys."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"key\":\"issue.support\",\"value\":{\"system.conversation.id\"\
:\"b1bf38be-5e94-4b40-a3b8-9278735ee1e6\",\"system.support.time\"\
:\"1m\"}}"
schema:
$ref: "#/components/schemas/EntityProperty"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect."
"403":
description: "Returned if the user does not have permission to view the\
\ project."
"404":
description: "Returned if the project or property is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project property"
tags:
- "Project properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project.property:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the value of the [project property](https://developer.atlassian.com/cloud/jira/platform/storing-data-without-a-database/#a-id-jira-entity-properties-a-jira-entity-properties).\
\ You can use project properties to store custom data against the project.\n\
\nThe value of the request body must be a [valid](http://tools.ietf.org/html/rfc4627),\
\ non-empty JSON blob. The maximum length is 32768 characters.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project in which the property is created."
operationId: "setProjectProperty"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The key of the project property. The maximum length is 255 characters."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
number: 5
string: "string-value"
schema: {}
description: "The value of the property. The value has to be a valid, non-empty\
\ [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length\
\ of the property value is 32768 bytes."
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the project property is updated."
"201":
content:
application/json:
schema: {}
description: "Returned if the project property is created."
"400":
description: "Returned if the project key or id is invalid."
"401":
description: "Returned if the authentication credentials are incorrect."
"403":
description: "Returned if the user does not have permission to administer\
\ the project."
"404":
description: "Returned if the project is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Set project property"
tags:
- "Project properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project.property:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/restore:
post:
deprecated: false
description: "Restores a project that has been archived or placed in the Jira\
\ recycle bin.\n\n**[Permissions](#permissions) required:**\n\n * *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)for\
\ Company managed projects.\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project for Team managed projects."
operationId: "restore"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"assigneeType\":\"PROJECT_LEAD\",\"avatarUrls\":{\"16x16\"\
:\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"components\":[{\"ari\":\"ari:cloud:compass:fdb3fdec-4e70-be56-11ee-0242ac120002:component/fdb3fdec-4e70-11ee-be56-0242ac120002/fdb3fdec-11ee-4e70-be56-0242ac120002\"\
,\"assignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"assigneeType\":\"PROJECT_LEAD\",\"description\":\"This is a Jira\
\ component\",\"id\":\"10000\",\"isAssigneeTypeValid\":false,\"lead\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"metadata\":{\"icon\":\"https://www.example.com/icon.png\"},\"\
name\":\"Component 1\",\"project\":\"HSP\",\"projectId\":10000,\"\
realAssignee\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"realAssigneeType\":\"PROJECT_LEAD\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/component/10000\"\
}],\"description\":\"This project was created as an example for REST.\"\
,\"email\":\"from-jira@example.com\",\"id\":\"10000\",\"insight\"\
:{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\",\"totalIssueCount\"\
:100},\"issueTypes\":[{\"avatarId\":1,\"description\":\"A task that\
\ needs to be done.\",\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10299&avatarType=issuetype\\\
\",\",\"id\":\"3\",\"name\":\"Task\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/3\"\
,\"subtask\":false},{\"avatarId\":10002,\"description\":\"A problem\
\ with the software.\",\"entityId\":\"9d7dd6f7-e8b6-4247-954b-7b2c9b2a5ba2\"\
,\"hierarchyLevel\":0,\"iconUrl\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10316&avatarType=issuetype\\\
\",\",\"id\":\"1\",\"name\":\"Bug\",\"scope\":{\"project\":{\"id\"\
:\"10000\"},\"type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/1\"\
,\"subtask\":false}],\"key\":\"EX\",\"lead\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"name\":\"Example\",\"projectCategory\":{\"description\":\"First\
\ Project Category\",\"id\":\"10000\",\"name\":\"FIRST\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"properties\":{\"propertyKey\":\"propertyValue\"},\"roles\":{\"\
Developers\":\"https://your-domain.atlassian.net/rest/api/2/project/EX/role/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\",\"url\":\"https://www.example.com\"\
,\"versions\":[]}"
schema:
$ref: "#/components/schemas/Project"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or the user does not\
\ have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Restore deleted or archived project"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type:jira"
- "read:project:jira"
- "read:project.property:jira"
- "read:user:jira"
- "write:project:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type-hierarchy:jira"
- "read:project-category:jira"
- "read:project-version:jira"
- "read:project.component:jira"
state: "Beta"
x-experimental: true
/rest/api/2/project/{projectIdOrKey}/role:
get:
deprecated: false
description: "Returns a list of [project roles](https://support.atlassian.com/jira-cloud-administration/docs/manage-project-roles/)\
\ for the project returning the name and self URL for each role.\n\nNote that\
\ all project roles are shared with all projects in Jira Cloud. See [Get all\
\ project roles](#api-rest-api-2-role-get) for more information.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for any project on the site or *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getProjectRoles"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"Administrators\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10002\"\
,\"Developers\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10000\"\
,\"Users\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10001\"\
}"
schema:
additionalProperties:
format: "uri"
type: "string"
type: "object"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing or if the user lacks administrative permissions for the project."
"404":
description: "Returned if the project is not found or or if the user does\
\ not have administrative permissions for the project."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project roles for project"
tags:
- "Project roles"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-role:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/role/{id}:
delete:
deprecated: false
description: "Deletes actors from a project role for the project.\n\nTo remove\
\ default actors from the project role, use [Delete default actors from project\
\ role](#api-rest-api-2-role-id-actors-delete).\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:** *Administer Projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for the\
\ project or *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteActor"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the project role. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The user account ID of the user to remove from the project role."
in: "query"
name: "user"
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "group"
schema:
type: "string"
- description: "The ID of the group to remove from the project role. This parameter\
\ cannot be used with the `group` parameter."
in: "query"
name: "groupId"
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"404":
description: "Returned if:\n\n * the project or project role is not found.\n\
\ * the calling user does not have administrative permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Delete actors from project role"
tags:
- "Project role actors"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:project-role:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a project role's details and actors associated with the\
\ project. The list of actors is sorted by display name.\n\nTo check whether\
\ a user belongs to a role based on their group memberships, use [Get user](#api-rest-api-2-user-get)\
\ with the `groups` expand parameter selected. Then check whether the user\
\ keys and groups match with the actors returned for the project.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project or *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getProjectRole"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the project role. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "Exclude inactive users."
in: "query"
name: "excludeInactiveUsers"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"actors\":[{\"actorGroup\":{\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\",\"name\":\"\
jira-developers\"},\"displayName\":\"jira-developers\",\"id\":10240,\"\
name\":\"jira-developers\",\"type\":\"atlassian-group-role-actor\"\
,\"user\":\"jira-developers\"},{\"actorUser\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
},\"displayName\":\"Mia Krystof\",\"id\":10241,\"type\":\"atlassian-user-role-actor\"\
}],\"description\":\"A project role that represents developers in\
\ a project\",\"id\":10360,\"name\":\"Developers\",\"scope\":{\"project\"\
:{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"},\"\
type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
}"
schema:
$ref: "#/components/schemas/ProjectRole"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the project or project role is not found.\n\
\ * the user does not have administrative permission."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project role for project"
tags:
- "Project roles"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:group:jira"
- "read:project-role:jira"
- "read:project:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
post:
deprecated: false
description: "Adds actors to a project role for the project.\n\nTo replace all\
\ actors for the project, use [Set actors for project role](#api-rest-api-2-project-projectIdOrKey-role-id-put).\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project or *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "addActorUsers"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the project role. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
groupId:
- "952d12c3-5b5b-4d04-bb32-44d383afc4b2"
schema:
$ref: "#/components/schemas/ActorsMap"
description: "The groups or users to associate with the project role for this\
\ project. Provide the user account ID, group name, or group ID. As a group's\
\ name can change, use of group ID is recommended."
required: true
responses:
"200":
content:
application/json:
example: "{\"actors\":[{\"actorGroup\":{\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\",\"name\":\"\
jira-developers\"},\"displayName\":\"jira-developers\",\"id\":10240,\"\
name\":\"jira-developers\",\"type\":\"atlassian-group-role-actor\"\
,\"user\":\"jira-developers\"},{\"actorUser\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
},\"displayName\":\"Mia Krystof\",\"id\":10241,\"type\":\"atlassian-user-role-actor\"\
}],\"description\":\"A project role that represents developers in\
\ a project\",\"id\":10360,\"name\":\"Developers\",\"scope\":{\"project\"\
:{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"},\"\
type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
}"
schema:
$ref: "#/components/schemas/ProjectRole"
description: "Returned if the request is successful. The complete list of\
\ actors for the project is returned.\n\nFor 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."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing or if the calling user lacks administrative permissions for\
\ the project."
"404":
description: "Returned if:\n\n * the project is not found.\n * the user\
\ or group is not found.\n * the group or user is not active."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Add actors to project role"
tags:
- "Project role actors"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:group:jira"
- "read:project-role:jira"
- "read:project:jira"
- "write:project-role:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the actors for a project role for a project, replacing all\
\ existing actors.\n\nTo add actors to the project without overwriting the\
\ existing list, use [Add actors to project role](#api-rest-api-2-project-projectIdOrKey-role-id-post).\n\
\n**[Permissions](#permissions) required:** *Administer Projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project or\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setActors"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The ID of the project role. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
categorisedActors:
atlassian-group-role-actor-id:
- "952d12c3-5b5b-4d04-bb32-44d383afc4b2"
atlassian-user-role-actor:
- "12345678-9abc-def1-2345-6789abcdef12"
schema:
$ref: "#/components/schemas/ProjectRoleActorsUpdateBean"
description: "The groups or users to associate with the project role for this\
\ project. Provide the user account ID, group name, or group ID. As a group's\
\ name can change, use of group ID is recommended."
required: true
responses:
"200":
content:
application/json:
example: "{\"actors\":[{\"actorGroup\":{\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\",\"name\":\"\
jira-developers\"},\"displayName\":\"jira-developers\",\"id\":10240,\"\
name\":\"jira-developers\",\"type\":\"atlassian-group-role-actor\"\
,\"user\":\"jira-developers\"},{\"actorUser\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
},\"displayName\":\"Mia Krystof\",\"id\":10241,\"type\":\"atlassian-user-role-actor\"\
}],\"description\":\"A project role that represents developers in\
\ a project\",\"id\":10360,\"name\":\"Developers\",\"scope\":{\"project\"\
:{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"},\"\
type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
}"
schema:
$ref: "#/components/schemas/ProjectRole"
description: "Returned if the request is successful. The complete list of\
\ actors for the project is returned."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing or if the calling user lacks administrative permissions for\
\ the project."
"404":
description: "Returned if:\n\n * the project is not found.\n * a user\
\ or group is not found.\n * a group or user is not active."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Set actors for project role"
tags:
- "Project role actors"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:group:jira"
- "read:project-role:jira"
- "read:project:jira"
- "write:project-role:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/roledetails:
get:
deprecated: false
description: "Returns all [project roles](https://support.atlassian.com/jira-cloud-administration/docs/manage-project-roles/)\
\ and the details for each role. Note that the list of project roles is common\
\ to all projects.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getProjectRoleDetails"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "Whether the roles should be filtered to include only those the\
\ user is assigned to."
in: "query"
name: "currentMember"
schema:
default: false
type: "boolean"
- in: "query"
name: "excludeConnectAddons"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "[{\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
,\"name\":\"Developers\",\"id\":10360,\"description\":\"A project\
\ role that represents developers in a project\",\"admin\":false,\"\
default\":true,\"roleConfigurable\":true,\"translatedName\":\"Developers\"\
}]"
schema:
items:
$ref: "#/components/schemas/ProjectRoleDetails"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or if the user does not\
\ have the necessary permissions for the project."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project role details"
tags:
- "Project roles"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-category:jira"
- "read:project-role:jira"
- "read:project:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/statuses:
get:
deprecated: false
description: "Returns the valid statuses for a project. The statuses are grouped\
\ by issue type, as each project has a set of valid issue types and each issue\
\ type has a set of valid statuses.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getAllStatuses"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "[{\"id\":\"3\",\"name\":\"Task\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issueType/3\"\
,\"statuses\":[{\"description\":\"The issue is currently being worked\
\ on.\",\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/progress.gif\"\
,\"id\":\"10000\",\"name\":\"In Progress\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/status/10000\"\
},{\"description\":\"The issue is closed.\",\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/closed.gif\"\
,\"id\":\"5\",\"name\":\"Closed\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/status/5\"\
}],\"subtask\":false}]"
schema:
items:
$ref: "#/components/schemas/IssueTypeWithStatus"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get all statuses for project"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-status:jira"
- "read:issue-type:jira"
- "read:status:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/version:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of all versions in a project.\
\ See the [Get project versions](#api-rest-api-2-project-projectIdOrKey-versions-get)\
\ resource if you want to get a full list of versions without pagination.\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getProjectVersionsPaginated"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "[Order](#ordering) the results by a field:\n\n * `description`\
\ Sorts by version description.\n * `name` Sorts by version name.\n * \
\ `releaseDate` Sorts by release date, starting with the oldest date. Versions\
\ with no release date are listed last.\n * `sequence` Sorts by the order\
\ of appearance in the user interface.\n * `startDate` Sorts by start date,\
\ starting with the oldest date. Versions with no start date are listed\
\ last."
in: "query"
name: "orderBy"
schema:
enum:
- "description"
- "-description"
- "+description"
- "name"
- "-name"
- "+name"
- "releaseDate"
- "-releaseDate"
- "+releaseDate"
- "sequence"
- "-sequence"
- "+sequence"
- "startDate"
- "-startDate"
- "+startDate"
type: "string"
- description: "Filter the results using a literal string. Versions with matching\
\ `name` or `description` are returned (case insensitive)."
in: "query"
name: "query"
schema:
type: "string"
- description: "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`."
in: "query"
name: "status"
schema:
type: "string"
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `issuesstatus` Returns the number of issues in each status\
\ category for each version.\n * `operations` Returns actions that can\
\ be performed on the specified version.\n * `driver` Returns the Atlassian\
\ account ID of the version driver.\n * `approvers` Returns a list containing\
\ the approvers for this version."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":2,\"nextPage\":\"https://your-domain.atlassian.net/rest/api/2/project/PR/version?startAt=2&maxResults=2\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/PR/version?startAt=0&maxResults=2\"\
,\"startAt\":0,\"total\":7,\"values\":[{\"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/2/version/10000\"\
,\"userReleaseDate\":\"6/Jul/2010\"},{\"archived\":false,\"description\"\
:\"Minor Bugfix version\",\"id\":\"10010\",\"issuesStatusForFixVersion\"\
:{\"done\":100,\"inProgress\":20,\"toDo\":10,\"unmapped\":0},\"name\"\
:\"Next Version\",\"overdue\":false,\"projectId\":10000,\"released\"\
:false,\"self\":\"https://your-domain.atlassian.net/rest/api/2/version/10010\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanVersion"
description: "Returned if the request is successful."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project versions paginated"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-version:jira"
state: "Beta"
/rest/api/2/project/{projectIdOrKey}/versions:
get:
deprecated: false
description: "Returns all versions in a project. The response is not paginated.\
\ Use [Get project versions paginated](#api-rest-api-2-project-projectIdOrKey-version-get)\
\ if you want to get the versions in a project with pagination.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ *Browse Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getProjectVersions"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectIdOrKey"
required: true
schema:
type: "string"
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts `operations`, which returns actions\
\ that can be performed on the version."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "[{\"archived\":false,\"description\":\"An excellent version\"\
,\"id\":\"10000\",\"name\":\"New Version 1\",\"overdue\":true,\"projectId\"\
:10000,\"releaseDate\":1278385482288,\"releaseDateSet\":false,\"released\"\
:true,\"self\":\"https://your-domain.atlassian.net/rest/api/2/version/10000\"\
,\"startDateSet\":false,\"userReleaseDate\":\"6/Jul/2010\"},{\"archived\"\
:false,\"description\":\"Minor Bugfix version\",\"id\":\"10010\",\"\
issuesStatusForFixVersion\":{\"done\":100,\"inProgress\":20,\"toDo\"\
:10,\"unmapped\":0},\"name\":\"Next Version\",\"overdue\":false,\"\
projectId\":10000,\"releaseDateSet\":false,\"released\":false,\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/version/10010\",\"\
startDateSet\":false}]"
schema:
items:
$ref: "#/components/schemas/Version"
type: "array"
description: "Returned if the request is successful."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project versions"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-version:jira"
state: "Beta"
/rest/api/2/project/{projectId}/email:
get:
deprecated: false
description: "Returns the [project's sender email address](https://confluence.atlassian.com/x/dolKLg).\n\
\n**[Permissions](#permissions) required:** *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getProjectEmail"
parameters:
- description: "The project ID."
in: "path"
name: "projectId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"emailAddress\":\"jira@example.customdomain.com\",\"emailAddressStatus\"\
:[\"Email address or domain not verified.\"]}"
schema:
$ref: "#/components/schemas/ProjectEmailAddress"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to read project."
"404":
description: "Returned if the project or project's sender email address\
\ is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Get project's sender email"
tags:
- "Project email"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project.email:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the [project's sender email address](https://confluence.atlassian.com/x/dolKLg).\n\
\nIf `emailAddress` is an empty string, the default email address is restored.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Administer Projects* [project permission.](https://confluence.atlassian.com/x/yodKLg)"
operationId: "updateProjectEmail"
parameters:
- description: "The project ID."
in: "path"
name: "projectId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
emailAddress: "jira@example.atlassian.net"
schema:
$ref: "#/components/schemas/ProjectEmailAddress"
description: "The project's sender email address to be set."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the project's sender email address is successfully\
\ set."
"400":
description: "Returned if the request is not valid, if the email address\
\ is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to administer\
\ the project."
"404":
description: "Returned if the project is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Set project's sender email"
tags:
- "Project email"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project.email:jira"
state: "Beta"
/rest/api/2/project/{projectId}/hierarchy:
get:
deprecated: false
description: "Get the issue type hierarchy for a next-gen project.\n\nThe issue\
\ type hierarchy for a project consists of:\n\n * *Epic* at level 1 (optional).\n\
\ * One or more issue types at level 0 such as *Story*, *Task*, or *Bug*.\
\ Where the issue type *Epic* is defined, these issue types are used to break\
\ down the content of an epic.\n * *Subtask* at level -1 (optional). This\
\ issue type enables level 0 issue types to be broken down into components.\
\ Issues based on a level -1 issue type must have a parent issue.\n\n**[Permissions](#permissions)\
\ required:** *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project."
operationId: "getHierarchy"
parameters:
- description: "The ID of the project."
in: "path"
name: "projectId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"hierarchy\":[{\"issueTypes\":[{\"avatarId\":10324,\"entityId\"\
:\"ce32639b-8911-4689-81da-65681f451516\",\"id\":10008,\"name\":\"\
Story\"},{\"avatarId\":10324,\"entityId\":\"ffdbced5-fbfc-4370-a848-94e2ce3751af\"\
,\"id\":10001,\"name\":\"Bug\"}],\"level\":0,\"name\":\"Base\"},{\"\
issueTypes\":[{\"avatarId\":10179,\"entityId\":\"80f20d47-34dc-4680-8937-936b7e762a35\"\
,\"id\":10007,\"name\":\"Epic\"}],\"level\":1,\"name\":\"Epic\"},{\"\
issueTypes\":[{\"avatarId\":10573,\"entityId\":\"210b4879-15cc-414c-9746-f8f6b6be0a72\"\
,\"id\":10009,\"name\":\"Subtask\"}],\"level\":-1,\"name\":\"Subtask\"\
}],\"projectId\":10030}"
schema:
$ref: "#/components/schemas/ProjectIssueTypeHierarchy"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or the user does not\
\ have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get project issue type hierarchy"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-type:jira"
- "read:issue-type-hierarchy:jira"
state: "Beta"
/rest/api/2/project/{projectKeyOrId}/issuesecuritylevelscheme:
get:
deprecated: false
description: "Returns the [issue security scheme](https://confluence.atlassian.com/x/J4lKLg)\
\ associated with the project.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or the *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)."
operationId: "getProjectIssueSecurityScheme"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectKeyOrId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"defaultSecurityLevelId\":10021,\"description\":\"Description\
\ for the default issue security scheme\",\"id\":10000,\"levels\"\
:[{\"description\":\"Only the reporter and internal staff can see\
\ this issue.\",\"id\":\"10021\",\"name\":\"Reporter Only\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/securitylevel/10021\"\
}],\"name\":\"Default Issue Security Scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issuesecurityschemes/10000\"\
}"
schema:
$ref: "#/components/schemas/SecurityScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the project is visible to the user but the user\
\ doesn't have administrative permissions."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get project issue security scheme"
tags:
- "Project permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-security-level:jira"
- "read:issue-security-scheme:jira"
state: "Beta"
/rest/api/2/project/{projectKeyOrId}/notificationscheme:
get:
deprecated: false
description: "Gets a [notification scheme](https://confluence.atlassian.com/x/8YdKLg)\
\ associated with the project.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)."
operationId: "getNotificationSchemeForProject"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectKeyOrId"
required: true
schema:
type: "string"
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `all` Returns all expandable information\n * `field`\
\ Returns information about any custom fields assigned to receive an event\n\
\ * `group` Returns information about any groups assigned to receive an\
\ event\n * `notificationSchemeEvents` Returns a list of event associations.\
\ This list is returned for all expandable information\n * `projectRole`\
\ Returns information about any project roles assigned to receive an event\n\
\ * `user` Returns information about any users assigned to receive an event"
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"description\":\"description\",\"expand\":\"notificationSchemeEvents,user,group,projectRole,field,all\"\
,\"id\":10100,\"name\":\"notification scheme name\",\"notificationSchemeEvents\"\
:[{\"event\":{\"description\":\"Event published when an issue is created\"\
,\"id\":1,\"name\":\"Issue created\"},\"notifications\":[{\"expand\"\
:\"group\",\"group\":{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\"\
,\"name\":\"jira-administrators\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
},\"id\":1,\"notificationType\":\"Group\",\"parameter\":\"jira-administrators\"\
,\"recipient\":\"276f955c-63d7-42c8-9520-92d01dca0625\"},{\"id\":2,\"\
notificationType\":\"CurrentAssignee\"},{\"expand\":\"projectRole\"\
,\"id\":3,\"notificationType\":\"ProjectRole\",\"parameter\":\"10360\"\
,\"projectRole\":{\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
,\"name\":\"Developers\",\"id\":10360,\"description\":\"A project\
\ role that represents developers in a project\",\"actors\":[{\"actorGroup\"\
:{\"name\":\"jira-developers\",\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"},\"displayName\"\
:\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\",\"\
type\":\"atlassian-group-role-actor\"},{\"actorUser\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\"},\"displayName\":\"Mia Krystof\",\"\
id\":10241,\"type\":\"atlassian-user-role-actor\"}],\"scope\":{\"\
project\":{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"\
},\"type\":\"PROJECT\"}},\"recipient\":\"10360\"},{\"emailAddress\"\
:\"rest-developer@atlassian.com\",\"id\":4,\"notificationType\":\"\
EmailAddress\",\"parameter\":\"rest-developer@atlassian.com\",\"recipient\"\
:\"rest-developer@atlassian.com\"},{\"expand\":\"user\",\"id\":5,\"\
notificationType\":\"User\",\"parameter\":\"5b10a2844c20165700ede21g\"\
,\"recipient\":\"5b10a2844c20165700ede21g\",\"user\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\":\"\
Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}},{\"expand\":\"field\",\"field\":{\"clauseNames\":[\"cf[10101]\"\
,\"New custom field\"],\"custom\":true,\"id\":\"customfield_10101\"\
,\"key\":\"customfield_10101\",\"name\":\"New custom field\",\"navigable\"\
:true,\"orderable\":true,\"schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:project\"\
,\"customId\":10101,\"type\":\"project\"},\"searchable\":true,\"untranslatedName\"\
:\"New custom field\"},\"id\":6,\"notificationType\":\"GroupCustomField\"\
,\"parameter\":\"customfield_10101\",\"recipient\":\"customfield_10101\"\
}]},{\"event\":{\"description\":\"Custom event that is published together\
\ with an issue created event\",\"id\":20,\"name\":\"Custom event\"\
,\"templateEvent\":{\"description\":\"Event published when an issue\
\ is created\",\"id\":1,\"name\":\"Issue created\"}},\"notifications\"\
:[{\"expand\":\"group\",\"group\":{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\"\
,\"name\":\"jira-administrators\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
},\"id\":1,\"notificationType\":\"Group\",\"parameter\":\"jira-administrators\"\
,\"recipient\":\"276f955c-63d7-42c8-9520-92d01dca0625\"},{\"id\":2,\"\
notificationType\":\"CurrentAssignee\"},{\"expand\":\"projectRole\"\
,\"id\":3,\"notificationType\":\"ProjectRole\",\"parameter\":\"10360\"\
,\"projectRole\":{\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
,\"name\":\"Developers\",\"id\":10360,\"description\":\"A project\
\ role that represents developers in a project\",\"actors\":[{\"actorGroup\"\
:{\"name\":\"jira-developers\",\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"},\"displayName\"\
:\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\",\"\
type\":\"atlassian-group-role-actor\"},{\"actorUser\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\"},\"displayName\":\"Mia Krystof\",\"\
id\":10241,\"type\":\"atlassian-user-role-actor\"}],\"scope\":{\"\
project\":{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"\
},\"type\":\"PROJECT\"}},\"recipient\":\"10360\"},{\"emailAddress\"\
:\"rest-developer@atlassian.com\",\"id\":4,\"notificationType\":\"\
EmailAddress\",\"parameter\":\"rest-developer@atlassian.com\",\"recipient\"\
:\"rest-developer@atlassian.com\"},{\"expand\":\"user\",\"id\":5,\"\
notificationType\":\"User\",\"parameter\":\"5b10a2844c20165700ede21g\"\
,\"recipient\":\"5b10a2844c20165700ede21g\",\"user\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\":\"\
Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}},{\"expand\":\"field\",\"field\":{\"clauseNames\":[\"cf[10101]\"\
,\"New custom field\"],\"custom\":true,\"id\":\"customfield_10101\"\
,\"key\":\"customfield_10101\",\"name\":\"New custom field\",\"navigable\"\
:true,\"orderable\":true,\"schema\":{\"custom\":\"com.atlassian.jira.plugin.system.customfieldtypes:project\"\
,\"customId\":10101,\"type\":\"project\"},\"searchable\":true,\"untranslatedName\"\
:\"New custom field\"},\"id\":6,\"notificationType\":\"GroupCustomField\"\
,\"parameter\":\"customfield_10101\",\"recipient\":\"customfield_10101\"\
}]}],\"projects\":[10001,10002],\"self\":\"https://your-domain.atlassian.net/rest/api/2/notificationscheme\"\
}"
schema:
$ref: "#/components/schemas/NotificationScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project is not found or the user is not an\
\ administrator."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get project notification scheme"
tags:
- "Projects"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-category:jira"
- "read:project-role:jira"
- "read:project:jira"
- "read:user:jira"
- "read:group:jira"
- "read:field:jira"
- "read:avatar:jira"
- "read:field-configuration:jira"
- "read:notification-scheme:jira"
state: "Beta"
/rest/api/2/project/{projectKeyOrId}/permissionscheme:
get:
deprecated: false
description: "Gets the [permission scheme](https://confluence.atlassian.com/x/yodKLg)\
\ associated with the project.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)."
operationId: "getAssignedPermissionScheme"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectKeyOrId"
required: true
schema:
type: "string"
- description: "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:\n\
\n * `all` Returns all expandable information.\n * `field` Returns information\
\ about the custom field granted the permission.\n * `group` Returns information\
\ about the group that is granted the permission.\n * `permissions` Returns\
\ all permission grants for each permission scheme.\n * `projectRole` Returns\
\ information about the project role granted the permission.\n * `user`\
\ Returns information about the user who is granted the permission."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"description\":\"description\",\"id\":10000,\"name\":\"\
Example permission scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/permissionscheme/10000\"\
}"
schema:
$ref: "#/components/schemas/PermissionScheme"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have permission to view the\
\ project's configuration."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view the project."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get assigned permission scheme"
tags:
- "Project permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:application-role:jira"
- "read:field:jira"
- "read:group:jira"
- "read:permission-scheme:jira"
- "read:permission:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
put:
deprecated: false
description: "Assigns a permission scheme with a project. See [Managing project\
\ permissions](https://confluence.atlassian.com/x/yodKLg) for more information\
\ about permission schemes.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)"
operationId: "assignPermissionScheme"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectKeyOrId"
required: true
schema:
type: "string"
- description: "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:\n\
\n * `all` Returns all expandable information.\n * `field` Returns information\
\ about the custom field granted the permission.\n * `group` Returns information\
\ about the group that is granted the permission.\n * `permissions` Returns\
\ all permission grants for each permission scheme.\n * `projectRole` Returns\
\ information about the project role granted the permission.\n * `user`\
\ Returns information about the user who is granted the permission."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
id: 10000
schema:
$ref: "#/components/schemas/IdBean"
required: true
responses:
"200":
content:
application/json:
example: "{\"description\":\"description\",\"id\":10000,\"name\":\"\
Example permission scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/permissionscheme/10000\"\
}"
schema:
$ref: "#/components/schemas/PermissionScheme"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if:\n\n * the user does not have the necessary permission\
\ to edit the project's configuration.\n * the Jira instance is Jira\
\ Core Free or Jira Software Free. Permission schemes cannot be assigned\
\ to projects on free plans."
"404":
description: "Returned if the project or permission scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Assign permission scheme"
tags:
- "Project permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:application-role:jira"
- "read:field:jira"
- "read:group:jira"
- "read:permission-scheme:jira"
- "read:permission:jira"
- "read:project-role:jira"
- "read:user:jira"
- "write:project:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/project/{projectKeyOrId}/securitylevel:
get:
deprecated: false
description: "Returns all [issue security](https://confluence.atlassian.com/x/J4lKLg)\
\ levels for the project that the user has access to.\n\nThis operation can\
\ be accessed anonymously.\n\n**[Permissions](#permissions) required:** *Browse\
\ projects* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ for the project, however, issue security levels are only returned for authenticated\
\ user with *Set Issue Security* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ for the project."
operationId: "getSecurityLevelsForProject"
parameters:
- description: "The project ID or project key (case sensitive)."
in: "path"
name: "projectKeyOrId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"levels\":[{\"description\":\"Only the reporter and internal\
\ staff can see this issue.\",\"id\":\"100000\",\"name\":\"Reporter\
\ Only\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/securitylevel/100000\"\
},{\"description\":\"Only internal staff can see this issue.\",\"\
id\":\"100001\",\"name\":\"Staff Only\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/securitylevel/100001\"\
}]}"
schema:
$ref: "#/components/schemas/ProjectIssueSecurityLevels"
description: "Returned if the request is successful."
"404":
description: "Returned if the project is not found or the user does not\
\ have permission to view it."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get project issue security levels"
tags:
- "Project permission schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-security-level:jira"
state: "Beta"
/rest/api/2/projectCategory:
get:
deprecated: false
description: "Returns all project categories.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "getAllProjectCategories"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"description\":\"First Project Category\",\"id\":\"10000\"\
,\"name\":\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},{\"description\":\"Second Project Category\",\"id\":\"10001\",\"\
name\":\"SECOND\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10001\"\
}]"
schema:
items:
$ref: "#/components/schemas/ProjectCategory"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get all project categories"
tags:
- "Project categories"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-category:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a project category.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createProjectCategory"
parameters: []
requestBody:
content:
application/json:
example:
description: "Created Project Category"
name: "CREATED"
schema:
$ref: "#/components/schemas/ProjectCategory"
required: true
responses:
"201":
content:
application/json:
example: "{\"description\":\"Created Project Category\",\"id\":\"10100\"\
,\"name\":\"CREATED\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10100\"\
}"
schema:
$ref: "#/components/schemas/ProjectCategory"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * `name` is not provided or exceeds 255\
\ characters.\n * `description` exceeds 1000 characters."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"409":
description: "Returned if the project category name is in use."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Create project category"
tags:
- "Project categories"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project-category:jira"
- "read:project-category:jira"
state: "Beta"
/rest/api/2/projectCategory/{id}:
delete:
deprecated: false
description: "Deletes a project category.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "removeProjectCategory"
parameters:
- description: "ID of the project category to delete."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the project category is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Delete project category"
tags:
- "Project categories"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:project-category:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a project category.\n\n**[Permissions](#permissions) required:**\
\ Permission to access Jira."
operationId: "getProjectCategoryById"
parameters:
- description: "The ID of the project category."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"description\":\"First Project Category\",\"id\":\"10000\"\
,\"name\":\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
}"
schema:
$ref: "#/components/schemas/ProjectCategory"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project category is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get project category by ID"
tags:
- "Project categories"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-category:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a project category.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateProjectCategory"
parameters:
- in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
description: "Updated Project Category"
name: "UPDATED"
schema:
$ref: "#/components/schemas/ProjectCategory"
required: true
responses:
"200":
content:
application/json:
example: "{\"description\":\"Updated Project Category\",\"id\":\"10100\"\
,\"name\":\"UPDATED\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10100\"\
}"
schema:
$ref: "#/components/schemas/UpdatedProjectCategory"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * `name` has been modified and exceeds 255\
\ characters.\n * `description` has been modified and exceeds 1000 characters."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the project category is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Update project category"
tags:
- "Project categories"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-category:jira"
- "write:project-category:jira"
state: "Beta"
/rest/api/2/projectvalidate/key:
get:
deprecated: false
description: "Validates a project key by confirming the key is a valid string\
\ and not in use.\n\n**[Permissions](#permissions) required:** None."
operationId: "validateProjectKey"
parameters:
- description: "The project key."
in: "query"
name: "key"
schema:
example: "HSP"
type: "string"
x-showInExample: "true"
responses:
"200":
content:
application/json:
example: "{\"errorMessages\":[],\"errors\":{\"projectKey\":\"A project\
\ with that project key already exists.\"}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Validate project key"
tags:
- "Project key and name validation"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
state: "Beta"
/rest/api/2/projectvalidate/validProjectKey:
get:
deprecated: false
description: "Validates a project key and, if the key is invalid or in use,\
\ generates a valid random string for the project key.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getValidProjectKey"
parameters:
- description: "The project key."
in: "query"
name: "key"
schema:
example: "HSP"
type: "string"
x-showInExample: "true"
responses:
"200":
content:
application/json:
example: "\"VPNE\""
schema:
type: "string"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
security:
- basicAuth: []
summary: "Get valid project key"
tags:
- "Project key and name validation"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/projectvalidate/validProjectName:
get:
deprecated: false
description: "Checks that a project name isn't in use. If the name isn't in\
\ use, the passed string is returned. If the name is in use, this operation\
\ attempts to generate a valid project name based on the one supplied, usually\
\ by adding a sequence number. If a valid project name cannot be generated,\
\ a 404 response is returned.\n\n**[Permissions](#permissions) required:**\
\ None."
operationId: "getValidProjectName"
parameters:
- description: "The project name."
in: "query"
name: "name"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "\"Valid Project Name Example\""
schema:
type: "string"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
description: "Returned if a valid project name cannot be generated."
security:
- basicAuth: []
summary: "Get valid project name"
tags:
- "Project key and name validation"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/resolution:
get:
deprecated: true
description: "Returns a list of all issue resolution values.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "getResolutions"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"description\":\"A fix for this issue is checked into the\
\ tree and tested.\",\"id\":\"10000\",\"name\":\"Fixed\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/resolution/1\"},{\"\
description\":\"This is what it is supposed to do.\",\"id\":\"10001\"\
,\"name\":\"Works as designed\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/resolution/3\"\
}]"
schema:
items:
$ref: "#/components/schemas/Resolution"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get resolutions"
tags:
- "Issue resolutions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:resolution:jira"
state: "Beta"
x-changes:
- announced: "2022-10-20"
details: "https://developer.atlassian.com/cloud/jira/platform/changelog/#CHANGE-767"
effective: "2023-04-20"
type: "removed"
post:
deprecated: false
description: "Creates an issue resolution.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createResolution"
parameters: []
requestBody:
content:
application/json:
example:
description: "My resolution description"
name: "My new resolution"
schema:
$ref: "#/components/schemas/CreateResolutionDetails"
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"10001\"}"
schema:
$ref: "#/components/schemas/ResolutionId"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The length of the description must not\
\ exceed 255 characters.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create resolution"
tags:
- "Issue resolutions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/resolution/default:
put:
deprecated: false
description: "Sets default issue resolution.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setDefaultResolution"
parameters: []
requestBody:
content:
application/json:
example:
id: "3"
schema:
$ref: "#/components/schemas/SetDefaultResolutionRequest"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The id has to be provided.\"],\"errors\"\
:{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Priority with ID 10000 not found.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue resolution isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Set default resolution"
tags:
- "Issue resolutions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/resolution/move:
put:
deprecated: false
description: "Changes the order of issue resolutions.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "moveResolutions"
parameters: []
requestBody:
content:
application/json:
example:
after: "10002"
ids:
- "10000"
- "10001"
schema:
$ref: "#/components/schemas/ReorderIssueResolutionsRequest"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The IDs must contain no more than 1,000\
\ items.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Resolution with ID 10000 not found.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue resolution isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Move resolutions"
tags:
- "Issue resolutions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/resolution/search:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of resolutions. The list\
\ can contain all resolutions or a subset determined by any combination of\
\ these criteria:\n\n * a list of resolutions IDs.\n * whether the field\
\ configuration is a default. This returns resolutions from company-managed\
\ (classic) projects only, as there is no concept of default resolutions in\
\ team-managed projects.\n\n**[Permissions](#permissions) required:** Permission\
\ to access Jira."
operationId: "searchResolutions"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: "0"
type: "string"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: "50"
type: "string"
- description: "The list of resolutions IDs to be filtered out"
in: "query"
name: "id"
schema:
items:
default: ""
type: "string"
type: "array"
- description: "When set to true, return default only, when IDs provided, if\
\ none of them is default, return empty page. Default value is false"
in: "query"
name: "onlyDefault"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":50,\"startAt\":0,\"total\"\
:1,\"values\":[{\"description\":\"This is what it is supposed to do.\"\
,\"id\":\"10001\",\"isDefault\":true,\"name\":\"Works as designed\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanResolutionJsonBean"
description: "Returned if the request is successful."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Search resolutions"
tags:
- "Issue resolutions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:resolution:jira"
state: "Beta"
x-experimental: true
/rest/api/2/resolution/{id}:
delete:
deprecated: false
description: "Deletes an issue resolution.\n\nThis operation is [asynchronous](#async).\
\ Follow the `location` link in the response to determine the status of the\
\ task and use [Get task](#api-rest-api-2-task-taskId-get) to obtain subsequent\
\ updates.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteResolution"
parameters:
- description: "The ID of the issue resolution."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "The ID of the issue resolution that will replace the currently\
\ selected resolution."
in: "query"
name: "replaceWith"
required: true
schema:
default: ""
type: "string"
responses:
"303":
content:
application/json:
schema:
$ref: "#/components/schemas/TaskProgressBeanObject"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The id has to be provided.\"],\"errors\"\
:{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Priority with ID 10000 not found.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue resolution isn't found."
"409":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if a task to delete the issue resolution is already\
\ running."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete resolution"
tags:
- "Issue resolutions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
get:
deprecated: false
description: "Returns an issue resolution value.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "getResolution"
parameters:
- description: "The ID of the issue resolution value."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"description\":\"A fix for this issue is checked into the\
\ tree and tested.\",\"id\":\"10000\",\"name\":\"Fixed\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/resolution/1\"}"
schema:
$ref: "#/components/schemas/Resolution"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue resolution value is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get resolution"
tags:
- "Issue resolutions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:resolution:jira"
state: "Beta"
put:
deprecated: false
description: "Updates an issue resolution.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateResolution"
parameters:
- description: "The ID of the issue resolution."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
description: "My updated resolution description"
name: "My updated resolution"
schema:
$ref: "#/components/schemas/UpdateResolutionDetails"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The length of the description must not\
\ exceed 255 characters.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request isn't valid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"You are not authorized to perform this\
\ action. Administrator privileges are required.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user doesn't have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Resolution with ID 10000 not found.\"\
],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the issue resolution isn't found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update resolution"
tags:
- "Issue resolutions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/role:
get:
deprecated: false
description: "Gets a list of all project roles, complete with project role details\
\ and default actors.\n\n### About project roles ###\n\n[Project roles](https://support.atlassian.com/jira-cloud-administration/docs/manage-project-roles/)\
\ are a flexible way to to associate users and groups with projects. In Jira\
\ Cloud, the list of project roles is shared globally with all projects, but\
\ each project can have a different set of actors associated with it (unlike\
\ groups, which have the same membership throughout all Jira applications).\n\
\nProject roles are used in [permission schemes](#api-rest-api-2-permissionscheme-get),\
\ [email notification schemes](#api-rest-api-2-notificationscheme-get), [issue\
\ security levels](#api-rest-api-2-issuesecurityschemes-get), [comment visibility](#api-rest-api-2-comment-list-post),\
\ and workflow conditions.\n\n#### Members and actors ####\n\nIn the Jira\
\ REST API, a member of a project role is called an *actor*. An *actor* is\
\ a group or user associated with a project role.\n\nActors may be set as\
\ [default members](https://support.atlassian.com/jira-cloud-administration/docs/manage-project-roles/#Specifying-'default-members'-for-a-project-role)\
\ of the project role or set at the project level:\n\n * Default actors:\
\ Users and groups that are assigned to the project role for all newly created\
\ projects. The default actors can be removed at the project level later if\
\ desired.\n * Actors: Users and groups that are associated with a project\
\ role for a project, which may differ from the default actors. This enables\
\ you to assign a user to different roles in different projects.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAllProjectRoles"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"actors\":[{\"actorGroup\":{\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\",\"name\":\"\
jira-developers\"},\"displayName\":\"jira-developers\",\"id\":10240,\"\
name\":\"jira-developers\",\"type\":\"atlassian-group-role-actor\"\
,\"user\":\"jira-developers\"},{\"actorUser\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
},\"displayName\":\"Mia Krystof\",\"id\":10241,\"type\":\"atlassian-user-role-actor\"\
}],\"description\":\"A project role that represents developers in\
\ a project\",\"id\":10360,\"name\":\"Developers\",\"scope\":{\"project\"\
:{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"},\"\
type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
}]"
schema:
items:
$ref: "#/components/schemas/ProjectRole"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have administrative permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get all project roles"
tags:
- "Project roles"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:group:jira"
- "read:project-role:jira"
- "read:project:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a new project role with no [default actors](#api-rest-api-2-resolution-get).\
\ You can use the [Add default actors to project role](#api-rest-api-2-role-id-actors-post)\
\ operation to add default actors to the project role after creating it.\n\
\n*Note that although a new project role is available to all projects upon\
\ creation, any default actors that are associated with the project role are\
\ not added to projects that existed prior to the role being created.*<\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createProjectRole"
parameters: []
requestBody:
content:
application/json:
example:
description: "A project role that represents developers in a project"
name: "Developers"
schema:
$ref: "#/components/schemas/CreateUpdateRoleRequestBean"
required: true
responses:
"200":
content:
application/json:
example: "{\"description\":\"A project role that represents developers\
\ in a project\",\"id\":10360,\"name\":\"Developers\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
}"
schema:
$ref: "#/components/schemas/ProjectRole"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid. The `name` cannot be\
\ empty or start or end with whitespace."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have administrative permissions."
"409":
description: "Returned if a project role with the provided name already\
\ exists."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create project role"
tags:
- "Project roles"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:group:jira"
- "read:project:jira"
- "write:project-role:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project-role:jira"
state: "Beta"
/rest/api/2/role/{id}:
delete:
deprecated: false
description: "Deletes a project role. You must specify a replacement project\
\ role if you wish to delete a project role that is in use.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteProjectRole"
parameters:
- description: "The ID of the project role to delete. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the project role that will replace the one being deleted."
in: "query"
name: "swap"
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid or if the replacement project\
\ role is not found."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have administrative permissions."
"404":
description: "Returned if the project role being deleted is not found."
"409":
description: "Returned if the project role being deleted is in use and a\
\ replacement project role is not specified in the request."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete project role"
tags:
- "Project roles"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:project-role:jira"
state: "Beta"
get:
deprecated: false
description: "Gets the project role details and the default actors associated\
\ with the role. The list of default actors is sorted by display name.\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getProjectRoleById"
parameters:
- description: "The ID of the project role. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"actors\":[{\"actorGroup\":{\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\",\"name\":\"\
jira-developers\"},\"displayName\":\"jira-developers\",\"id\":10240,\"\
name\":\"jira-developers\",\"type\":\"atlassian-group-role-actor\"\
,\"user\":\"jira-developers\"},{\"actorUser\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
},\"displayName\":\"Mia Krystof\",\"id\":10241,\"type\":\"atlassian-user-role-actor\"\
}],\"description\":\"A project role that represents developers in\
\ a project\",\"id\":10360,\"name\":\"Developers\",\"scope\":{\"project\"\
:{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"},\"\
type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
}"
schema:
$ref: "#/components/schemas/ProjectRole"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have administrative permissions."
"404":
description: "Returned if the project role is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get project role by ID"
tags:
- "Project roles"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:group:jira"
- "read:project-role:jira"
- "read:project:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
post:
deprecated: false
description: "Updates either the project role's name or its description.\n\n\
You cannot update both the name and description at the same time using this\
\ operation. If you send a request with a name and a description only the\
\ name is updated.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "partialUpdateProjectRole"
parameters:
- description: "The ID of the project role. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
description: "A project role that represents developers in a project"
name: "Developers"
schema:
$ref: "#/components/schemas/CreateUpdateRoleRequestBean"
required: true
responses:
"200":
content:
application/json:
example: "{\"actors\":[{\"actorGroup\":{\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\",\"name\":\"\
jira-developers\"},\"displayName\":\"jira-developers\",\"id\":10240,\"\
name\":\"jira-developers\",\"type\":\"atlassian-group-role-actor\"\
,\"user\":\"jira-developers\"},{\"actorUser\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
},\"displayName\":\"Mia Krystof\",\"id\":10241,\"type\":\"atlassian-user-role-actor\"\
}],\"description\":\"A project role that represents developers in\
\ a project\",\"id\":10360,\"name\":\"Developers\",\"scope\":{\"project\"\
:{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"},\"\
type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
}"
schema:
$ref: "#/components/schemas/ProjectRole"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have administrative permissions."
"404":
description: "Returned if the project role is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Partial update project role"
tags:
- "Project roles"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:group:jira"
- "read:project:jira"
- "write:project-role:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project-role:jira"
state: "Beta"
put:
deprecated: false
description: "Updates the project role's name and description. You must include\
\ both a name and a description in the request.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "fullyUpdateProjectRole"
parameters:
- description: "The ID of the project role. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
description: "A project role that represents developers in a project"
name: "Developers"
schema:
$ref: "#/components/schemas/CreateUpdateRoleRequestBean"
required: true
responses:
"200":
content:
application/json:
example: "{\"actors\":[{\"actorGroup\":{\"displayName\":\"jira-developers\"\
,\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\",\"name\":\"\
jira-developers\"},\"displayName\":\"jira-developers\",\"id\":10240,\"\
name\":\"jira-developers\",\"type\":\"atlassian-group-role-actor\"\
,\"user\":\"jira-developers\"},{\"actorUser\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
},\"displayName\":\"Mia Krystof\",\"id\":10241,\"type\":\"atlassian-user-role-actor\"\
}],\"description\":\"A project role that represents developers in\
\ a project\",\"id\":10360,\"name\":\"Developers\",\"scope\":{\"project\"\
:{\"id\":\"10000\",\"key\":\"KEY\",\"name\":\"Next Gen Project\"},\"\
type\":\"PROJECT\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/MKY/role/10360\"\
}"
schema:
$ref: "#/components/schemas/ProjectRole"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid. The `name` cannot be\
\ empty or start or end with whitespace."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have administrative permissions."
"404":
description: "Returned if the project role is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Fully update project role"
tags:
- "Project roles"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:group:jira"
- "read:project:jira"
- "write:project-role:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project-role:jira"
state: "Beta"
/rest/api/2/role/{id}/actors:
delete:
deprecated: false
description: "Deletes the [default actors](#api-rest-api-2-resolution-get) from\
\ a project role. You may delete a group or user, but you cannot delete a\
\ group and a user in the same request.\n\nChanging a project role's default\
\ actors does not affect project role members for projects already created.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteProjectRoleActorsFromRole"
parameters:
- description: "The ID of the project role. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The user account ID of the user to remove as a default actor."
in: "query"
name: "user"
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
type: "string"
x-showInExample: "true"
- description: "The group ID of the group to be removed as a default actor.\
\ This parameter cannot be used with the `group` parameter."
in: "query"
name: "groupId"
schema:
type: "string"
- description: "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."
in: "query"
name: "group"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"actors\":[{\"actorGroup\":{\"name\":\"jira-developers\"\
,\"displayName\":\"jira-developers\",\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"\
},\"displayName\":\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\"\
,\"type\":\"atlassian-group-role-actor\"}]}"
schema:
$ref: "#/components/schemas/ProjectRole"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have administrative permissions."
"404":
description: "Returned if the project role is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete default actors from project role"
tags:
- "Project role actors"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project-role:jira"
- "read:user:jira"
- "read:group:jira"
- "read:project-role:jira"
- "read:project:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the [default actors](#api-rest-api-2-resolution-get) for\
\ the project role.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getProjectRoleActorsForRole"
parameters:
- description: "The ID of the project role. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"actors\":[{\"actorGroup\":{\"name\":\"jira-developers\"\
,\"displayName\":\"jira-developers\",\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"\
},\"displayName\":\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\"\
,\"type\":\"atlassian-group-role-actor\"}]}"
schema:
$ref: "#/components/schemas/ProjectRole"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have administrative permissions."
"404":
description: "Returned if the project role is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get default actors for project role"
tags:
- "Project role actors"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:group:jira"
- "read:project-role:jira"
- "read:project:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
post:
deprecated: false
description: "Adds [default actors](#api-rest-api-2-resolution-get) to a role.\
\ You may add groups or users, but you cannot add groups and users in the\
\ same request.\n\nChanging a project role's default actors does not affect\
\ project role members for projects already created.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "addProjectRoleActorsToRole"
parameters:
- description: "The ID of the project role. Use [Get all project roles](#api-rest-api-2-role-get)\
\ to get a list of project role IDs."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
user:
- "admin"
schema:
$ref: "#/components/schemas/ActorInputBean"
required: true
responses:
"200":
content:
application/json:
example: "{\"actors\":[{\"actorGroup\":{\"name\":\"jira-developers\"\
,\"displayName\":\"jira-developers\",\"groupId\":\"952d12c3-5b5b-4d04-bb32-44d383afc4b2\"\
},\"displayName\":\"jira-developers\",\"id\":10240,\"name\":\"jira-developers\"\
,\"type\":\"atlassian-group-role-actor\"}]}"
schema:
$ref: "#/components/schemas/ProjectRole"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have administrative permissions."
"404":
description: "Returned if the project role is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Add default actors to project role"
tags:
- "Project role actors"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:group:jira"
- "read:project-role:jira"
- "read:project:jira"
- "write:project-role:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
/rest/api/2/screens:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of all screens or those\
\ specified by one or more screen IDs.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getScreens"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 100
format: "int32"
type: "integer"
- description: "The list of screen IDs. To include multiple IDs, provide an\
\ ampersand-separated list. For example, `id=10000&id=10001`."
in: "query"
name: "id"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "String used to perform a case-insensitive partial match with\
\ screen name."
in: "query"
name: "queryString"
schema:
default: ""
type: "string"
- description: "The scope filter string. To filter by multiple scope, provide\
\ an ampersand-separated list. For example, `scope=GLOBAL&scope=PROJECT`."
in: "query"
name: "scope"
schema:
items:
default: ""
enum:
- "GLOBAL"
- "TEMPLATE"
- "PROJECT"
type: "string"
type: "array"
uniqueItems: true
- description: "[Order](#ordering) the results by a field:\n\n * `id` Sorts\
\ by screen ID.\n * `name` Sorts by screen name."
in: "query"
name: "orderBy"
schema:
enum:
- "name"
- "-name"
- "+name"
- "id"
- "-id"
- "+id"
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"self\":\"https://your-domain.atlassian.net/rest/api/2/screens\"\
,\"startAt\":0,\"total\":3,\"values\":[{\"id\":1,\"name\":\"Default\
\ Screen\",\"description\":\"Provides for the update all system fields.\"\
},{\"id\":2,\"name\":\"Workflow Screen\",\"description\":\"This screen\
\ is used in the workflow and enables you to assign issues.\"},{\"\
id\":3,\"name\":\"Resolve Issue Screen\",\"description\":\"Offers\
\ the ability to set resolution, change fix versions, and assign an\
\ issue.\"}]}"
schema:
$ref: "#/components/schemas/PageBeanScreen"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Get screens"
tags:
- "Screens"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:screen:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a screen with a default field tab.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createScreen"
parameters: []
requestBody:
content:
application/json:
example:
description: "Enables changes to resolution and linked issues."
name: "Resolve Security Issue Screen"
schema:
$ref: "#/components/schemas/ScreenDetails"
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":10005,\"name\":\"Resolve Security Issue Screen\",\"\
description\":\"Enables changes to resolution and linked issues.\"\
}"
schema:
$ref: "#/components/schemas/Screen"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The name is used by another screen.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can manage\
\ screens.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Create screen"
tags:
- "Screens"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:screen:jira"
- "write:screen:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
x-experimental: true
/rest/api/2/screens/addToDefault/{fieldId}:
post:
deprecated: false
description: "Adds a field to the default tab of the default screen.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "addFieldToDefaultScreen"
parameters:
- description: "The ID of the field."
in: "path"
name: "fieldId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the field it not found or the field is already\
\ present."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Add field to default screen"
tags:
- "Screens"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:screen:jira"
- "write:screen:jira"
state: "Beta"
/rest/api/2/screens/tabs:
get:
deprecated: false
description: "Returns the list of tabs for a bulk of screens.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getBulkScreenTabs"
parameters:
- description: "The list of screen IDs. To include multiple screen IDs, provide\
\ an ampersand-separated list. For example, `screenId=10000&screenId=10001`."
in: "query"
name: "screenId"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "The list of tab IDs. To include multiple tab IDs, provide an\
\ ampersand-separated list. For example, `tabId=10000&tabId=10001`."
in: "query"
name: "tabId"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page. The maximum\
\ number is 100,"
in: "query"
name: "maxResult"
schema:
default: 100
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:2,\"values\":[{\"screenId\":10000,\"tabId\":10001,\"tabName\":\"\
My Custom Tab 1\"},{\"screenId\":10001,\"tabId\":10002,\"tabName\"\
:\"My Custom Tab 2\"}]}"
description: "Returned if the request is successful."
"400":
description: "Returned if the screen ID or the tab ID is empty."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Get bulk screen tabs"
tags:
- "Screen tabs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:screen-tab:jira"
state: "Beta"
x-experimental: true
/rest/api/2/screens/{screenId}:
delete:
deprecated: false
description: "Deletes a screen. A screen cannot be deleted if it is used in\
\ a screen scheme, workflow, or workflow draft.\n\nOnly screens used in classic\
\ projects can be deleted."
operationId: "deleteScreen"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The screen is used in a screen scheme.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can manage\
\ screens.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The screen was not found.\"],\"errors\"\
:{}}"
description: "Returned if the screen is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Delete screen"
tags:
- "Screens"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:screen:jira"
state: "Beta"
x-experimental: true
put:
deprecated: false
description: "Updates a screen. Only screens used in classic projects can be\
\ updated.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateScreen"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
description: "Enables changes to resolution and linked issues for accessibility\
\ related issues."
name: "Resolve Accessibility Issue Screen"
schema:
$ref: "#/components/schemas/UpdateScreenDetails"
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":10005,\"name\":\"Resolve Security Issue Screen\",\"\
description\":\"Enables changes to resolution and linked issues.\"\
}"
schema:
$ref: "#/components/schemas/Screen"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The name is used by another screen.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can manage\
\ screens.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The screen was not found.\"],\"errors\"\
:{}}"
description: "Returned if the screen is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Update screen"
tags:
- "Screens"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:screen:jira"
- "write:screen:jira"
- "read:avatar:jira"
- "read:project-category:jira"
state: "Beta"
x-experimental: true
/rest/api/2/screens/{screenId}/availableFields:
get:
deprecated: false
description: "Returns the fields that can be added to a tab on a screen.\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAvailableScreenFields"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/ScreenableField"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the screen is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Get available screen fields"
tags:
- "Screens"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:screen-field:jira"
- "read:screenable-field:jira"
state: "Beta"
/rest/api/2/screens/{screenId}/tabs:
get:
deprecated: false
description: "Returns the list of tabs for a screen.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).\n\
\ * *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ when the project key is specified, providing that the screen is associated\
\ with the project through a Screen Scheme and Issue Type Screen Scheme."
operationId: "getAllScreenTabs"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The key of the project."
in: "query"
name: "projectKey"
schema:
type: "string"
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/ScreenableTab"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if the screen ID is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the screen is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Get all screen tabs"
tags:
- "Screen tabs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:screen-tab:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a tab for a screen.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "addScreenTab"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
name: "Fields Tab"
schema:
$ref: "#/components/schemas/ScreenableTab"
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":10000,\"name\":\"Fields Tab\"}"
schema:
$ref: "#/components/schemas/ScreenableTab"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the screen is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Create screen tab"
tags:
- "Screen tabs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:screen-tab:jira"
- "write:screen-tab:jira"
state: "Beta"
/rest/api/2/screens/{screenId}/tabs/{tabId}:
delete:
deprecated: false
description: "Deletes a screen tab.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteScreenTab"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the screen tab."
in: "path"
name: "tabId"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the screen or screen tab is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Delete screen tab"
tags:
- "Screen tabs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:screen-tab:jira"
state: "Beta"
put:
deprecated: false
description: "Updates the name of a screen tab.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "renameScreenTab"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the screen tab."
in: "path"
name: "tabId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ScreenableTab"
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":10000,\"name\":\"Fields Tab\"}"
schema:
$ref: "#/components/schemas/ScreenableTab"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the screen or screen tab is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Update screen tab"
tags:
- "Screen tabs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:screen-tab:jira"
- "write:screen-tab:jira"
state: "Beta"
/rest/api/2/screens/{screenId}/tabs/{tabId}/fields:
get:
deprecated: false
description: "Returns all fields for a screen tab.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).\n\
\ * *Administer projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ when the project key is specified, providing that the screen is associated\
\ with the project through a Screen Scheme and Issue Type Screen Scheme."
operationId: "getAllScreenTabFields"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the screen tab."
in: "path"
name: "tabId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The key of the project."
in: "query"
name: "projectKey"
schema:
type: "string"
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/ScreenableField"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the screen or screen tab is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Get all screen tab fields"
tags:
- "Screen tab fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:screenable-field:jira"
state: "Beta"
post:
deprecated: false
description: "Adds a field to a screen tab.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "addScreenTabField"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the screen tab."
in: "path"
name: "tabId"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
fieldId: "summary"
schema:
$ref: "#/components/schemas/AddFieldBean"
required: true
responses:
"200":
content:
application/json:
example: "{\"id\":\"summary\",\"name\":\"Summary\"}"
schema:
$ref: "#/components/schemas/ScreenableField"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the screen, screen tab, or field is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Add screen tab field"
tags:
- "Screen tab fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:screenable-field:jira"
- "write:screenable-field:jira"
state: "Beta"
/rest/api/2/screens/{screenId}/tabs/{tabId}/fields/{id}:
delete:
deprecated: false
description: "Removes a field from a screen tab.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "removeScreenTabField"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the screen tab."
in: "path"
name: "tabId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the field."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the screen, screen tab, or field is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Remove screen tab field"
tags:
- "Screen tab fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:screenable-field:jira"
state: "Beta"
/rest/api/2/screens/{screenId}/tabs/{tabId}/fields/{id}/move:
post:
deprecated: false
description: "Moves a screen tab field.\n\nIf `after` and `position` are provided\
\ in the request, `position` is ignored.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "moveScreenTabField"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the screen tab."
in: "path"
name: "tabId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the field."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/MoveFieldBean"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the screen, screen tab, or field is not found\
\ or the field can't be moved to the requested position."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Move screen tab field"
tags:
- "Screen tab fields"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:screenable-field:jira"
state: "Beta"
/rest/api/2/screens/{screenId}/tabs/{tabId}/move/{pos}:
post:
deprecated: false
description: "Moves a screen tab.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "moveScreenTab"
parameters:
- description: "The ID of the screen."
in: "path"
name: "screenId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the screen tab."
in: "path"
name: "tabId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The position of tab. The base index is 0."
in: "path"
name: "pos"
required: true
schema:
format: "int32"
type: "integer"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the screen or screen tab is not found or the position\
\ is invalid."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Move screen tab"
tags:
- "Screen tabs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:screen:jira"
state: "Beta"
/rest/api/2/screenscheme:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of screen schemes.\n\n\
Only screen schemes used in classic projects are returned.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getScreenSchemes"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 25
format: "int32"
type: "integer"
- description: "The list of screen scheme IDs. To include multiple IDs, provide\
\ an ampersand-separated list. For example, `id=10000&id=10001`."
in: "query"
name: "id"
schema:
items:
format: "int64"
type: "integer"
type: "array"
uniqueItems: true
- description: "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."
in: "query"
name: "expand"
schema:
default: ""
type: "string"
- description: "String used to perform a case-insensitive partial match with\
\ screen scheme name."
in: "query"
name: "queryString"
schema:
default: ""
type: "string"
- description: "[Order](#ordering) the results by a field:\n\n * `id` Sorts\
\ by screen scheme ID.\n * `name` Sorts by screen scheme name."
in: "query"
name: "orderBy"
schema:
enum:
- "name"
- "-name"
- "+name"
- "id"
- "-id"
- "+id"
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"self\":\"https://your-domain.atlassian.net/rest/api/2/screenscheme?maxResults=25&startAt=0\"\
,\"startAt\":0,\"total\":2,\"values\":[{\"id\":10010,\"name\":\"Employee\
\ screen scheme\",\"description\":\"Manage employee data\",\"screens\"\
:{\"default\":10017,\"edit\":10019,\"create\":10019,\"view\":10020},\"\
issueTypeScreenSchemes\":{\"isLast\":true,\"maxResults\":100,\"startAt\"\
:0,\"total\":1,\"values\":[{\"id\":\"10000\",\"name\":\"Office issue\
\ type screen scheme\",\"description\":\"Managing office projects\"\
}]}},{\"id\":10032,\"name\":\"Office screen scheme\",\"description\"\
:\"Manage office data\",\"screens\":{\"default\":10020}}]}"
schema:
$ref: "#/components/schemas/PageBeanScreenScheme"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Get screen schemes"
tags:
- "Screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:screen-scheme:jira"
- "read:issue-type-screen-scheme:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a screen scheme.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createScreenScheme"
parameters: []
requestBody:
content:
application/json:
example:
description: "Manage employee data"
name: "Employee screen scheme"
screens:
default: 10017
edit: 10019
view: 10020
schema:
$ref: "#/components/schemas/ScreenSchemeDetails"
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":10001}"
schema:
$ref: "#/components/schemas/ScreenSchemeId"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The name is used by another scheme.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ screen schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"One or more screens assigned to screen\
\ types was not found.\"],\"errors\":{}}"
description: "Returned if a screen used as one of the screen types in the\
\ screen scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create screen scheme"
tags:
- "Screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:screen-scheme:jira"
state: "Beta"
/rest/api/2/screenscheme/{screenSchemeId}:
delete:
deprecated: false
description: "Deletes a screen scheme. A screen scheme cannot be deleted if\
\ it is used in an issue type screen scheme.\n\nOnly screens schemes used\
\ in classic projects can be deleted.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteScreenScheme"
parameters:
- description: "The ID of the screen scheme."
in: "path"
name: "screenSchemeId"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the screen scheme is deleted."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The screen scheme cannot be deleted\
\ as it is in use in an issue type screen scheme.\"],\"errors\":{}}"
description: "Returned if the screen scheme is used in an issue type screen\
\ scheme."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ screen schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The screen scheme was not found.\"],\"\
errors\":{}}"
description: "Returned if the screen scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Delete screen scheme"
tags:
- "Screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:screen-scheme:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a screen scheme. Only screen schemes used in classic projects\
\ can be updated.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateScreenScheme"
parameters:
- description: "The ID of the screen scheme."
in: "path"
name: "screenSchemeId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
name: "Employee screen scheme v2"
screens:
create: "10019"
default: "10018"
schema:
$ref: "#/components/schemas/UpdateScreenSchemeDetails"
description: "The screen scheme update details."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The name is used by another scheme.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ screen schemes.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The screen scheme was not found.\"],\"\
errors\":{}}"
description: "Returned if the screen scheme or a screen used as one of the\
\ screen types is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update screen scheme"
tags:
- "Screen schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:screen-scheme:jira"
state: "Beta"
/rest/api/2/search:
get:
deprecated: false
description: "Searches for issues using [JQL](https://confluence.atlassian.com/x/egORLQ).\n\
\nIf the JQL query expression is too large to be encoded as a query parameter,\
\ use the [POST](#api-rest-api-2-search-post) version of this resource.\n\n\
This operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** Issues are included in the response where the user has:\n\n\
\ * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the issue.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "searchForIssuesUsingJql"
parameters:
- description: "The [JQL](https://confluence.atlassian.com/x/egORLQ) that defines\
\ the search. Note:\n\n * If no JQL expression is provided, all issues\
\ are returned.\n * `username` and `userkey` cannot be used as search terms\
\ due to privacy reasons. Use `accountId` instead.\n * 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."
in: "query"
name: "jql"
schema:
example: "project = HSP"
type: "string"
x-showInExample: "true"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of items to return per page. To manage page\
\ size, Jira may return fewer items per page where a large number of fields\
\ are requested. The greatest number of items returned per page is achieved\
\ when requesting `id` or `key` only."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "Determines how to validate the JQL query and treat the validation\
\ results. Supported values are:\n\n * `strict` Returns a 400 response\
\ code if any errors are found, along with a list of all errors (and warnings).\n\
\ * `warn` Returns all errors as warnings.\n * `none` No validation is\
\ performed.\n * `true` *Deprecated* A legacy synonym for `strict`.\n *\
\ `false` *Deprecated* A legacy synonym for `warn`.\n\nNote: If the JQL\
\ is not correctly formed a 400 response code is returned, regardless of\
\ the `validateQuery` value."
in: "query"
name: "validateQuery"
schema:
default: "strict"
enum:
- "strict"
- "warn"
- "none"
- "true"
- "false"
type: "string"
- description: "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:\n\n * `*all` Returns all fields.\n * `*navigable` Returns\
\ navigable fields.\n * Any issue field, prefixed with a minus to exclude.\n\
\nExamples:\n\n * `summary,comment` Returns only the summary and comments\
\ fields.\n * `-description` Returns all navigable (default) fields except\
\ description.\n * `*all,-comment` Returns all fields except comments.\n\
\nThis parameter may be specified multiple times. For example, `fields=field1,field2&fields=field3`.\n\
\nNote: All navigable fields are returned by default. This differs from\
\ [GET issue](#api-rest-api-2-issue-issueIdOrKey-get) where the default\
\ is all fields."
in: "query"
name: "fields"
schema:
items:
default: "*navigable"
type: "string"
type: "array"
- description: "Use [expand](#expansion) to include additional information about\
\ issues in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `renderedFields` Returns field values rendered\
\ in HTML format.\n * `names` Returns the display name of each field.\n\
\ * `schema` Returns the schema describing a field type.\n * `transitions`\
\ Returns all possible transitions for the issue.\n * `operations` Returns\
\ all possible operations for the issue.\n * `editmeta` Returns information\
\ about how each field can be edited.\n * `changelog` Returns a list of\
\ recent updates to an issue, sorted by date, starting from the most recent.\n\
\ * `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."
in: "query"
name: "expand"
schema:
type: "string"
- description: "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."
in: "query"
name: "properties"
schema:
items:
type: "string"
type: "array"
- description: "Reference fields by their key (rather than ID)."
in: "query"
name: "fieldsByKeys"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"expand\":\"names,schema\",\"issues\":[{\"expand\":\"\"\
,\"fields\":{\"watcher\":{\"isWatching\":false,\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/EX-1/watchers\"\
,\"watchCount\":1,\"watchers\":[{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}]},\"attachment\":[{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"content\":\"https://your-domain.atlassian.net/jira/rest/api/3/attachment/content/10001\"\
,\"created\":\"2023-06-24T19:24:50.000+0000\",\"filename\":\"debuglog.txt\"\
,\"id\":10001,\"mimeType\":\"text/plain\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/attachments/10001\"\
,\"size\":2460}],\"sub-tasks\":[{\"id\":\"10000\",\"outwardIssue\"\
:{\"fields\":{\"status\":{\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/statuses/open.png\"\
,\"name\":\"Open\"}},\"id\":\"10003\",\"key\":\"ED-2\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/issue/ED-2\"},\"type\"\
:{\"id\":\"10000\",\"inward\":\"Parent\",\"name\":\"\",\"outward\"\
:\"Sub-task\"}}],\"description\":\"Main order flow broken\",\"project\"\
:{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"First Project Category\",\"id\":\"10000\",\"name\"\
:\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\"},\"comment\":[{\"author\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\"\
:\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"body\":\"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.\",\"created\":\"2021-01-17T12:34:00.000+0000\",\"id\":\"\
10000\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/comment/10000\"\
,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\"\
:false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"Administrators\",\"type\":\"role\",\"value\":\"Administrators\"\
}}],\"issuelinks\":[{\"id\":\"10001\",\"outwardIssue\":{\"fields\"\
:{\"status\":{\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/statuses/open.png\"\
,\"name\":\"Open\"}},\"id\":\"10004L\",\"key\":\"PR-2\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/issue/PR-2\"},\"type\"\
:{\"id\":\"10000\",\"inward\":\"depends on\",\"name\":\"Dependent\"\
,\"outward\":\"is depended by\"}},{\"id\":\"10002\",\"inwardIssue\"\
:{\"fields\":{\"status\":{\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/statuses/open.png\"\
,\"name\":\"Open\"}},\"id\":\"10004\",\"key\":\"PR-3\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/issue/PR-3\"},\"type\"\
:{\"id\":\"10000\",\"inward\":\"depends on\",\"name\":\"Dependent\"\
,\"outward\":\"is depended by\"}}],\"worklog\":[{\"author\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\":\"\
Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"comment\":\"I did some work here.\",\"id\":\"100028\",\"issueId\"\
:\"10002\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/worklog/10000\"\
,\"started\":\"2021-01-17T12:34:00.000+0000\",\"timeSpent\":\"3h 20m\"\
,\"timeSpentSeconds\":12000,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"type\":\"\
group\",\"value\":\"jira-developers\"}}],\"updated\":1,\"timetracking\"\
:{\"originalEstimate\":\"10m\",\"originalEstimateSeconds\":600,\"\
remainingEstimate\":\"3m\",\"remainingEstimateSeconds\":200,\"timeSpent\"\
:\"6m\",\"timeSpentSeconds\":400}},\"id\":\"10002\",\"key\":\"ED-1\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10002\"\
}],\"maxResults\":50,\"startAt\":0,\"total\":1,\"warningMessages\"\
:[\"The value 'bar' does not exist for the field 'foo'.\"]}"
schema:
$ref: "#/components/schemas/SearchResults"
description: "Returned if the request is successful."
"400":
description: "Returned if the JQL query is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Search for issues using JQL (GET)"
tags:
- "Issue search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-details:jira"
- "read:audit-log:jira"
- "read:avatar:jira"
- "read:field-configuration:jira"
- "read:issue-meta:jira"
state: "Beta"
post:
deprecated: false
description: "Searches for issues using [JQL](https://confluence.atlassian.com/x/egORLQ).\n\
\nThere is a [GET](#api-rest-api-2-search-get) version of this resource that\
\ can be used for smaller JQL query expressions.\n\nThis operation can be\
\ accessed anonymously.\n\n**[Permissions](#permissions) required:** Issues\
\ are included in the response where the user has:\n\n * *Browse projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for the\
\ project containing the issue.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "searchForIssuesUsingJqlPost"
parameters: []
requestBody:
content:
application/json:
example:
expand:
- "names"
- "schema"
- "operations"
fields:
- "summary"
- "status"
- "assignee"
fieldsByKeys: false
jql: "project = HSP"
maxResults: 15
startAt: 0
schema:
$ref: "#/components/schemas/SearchRequestBean"
description: "A JSON object containing the search request."
required: true
responses:
"200":
content:
application/json:
example: "{\"expand\":\"names,schema\",\"issues\":[{\"expand\":\"\"\
,\"fields\":{\"watcher\":{\"isWatching\":false,\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/EX-1/watchers\"\
,\"watchCount\":1,\"watchers\":[{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
}]},\"attachment\":[{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"accountType\":\"atlassian\",\"active\":false,\"avatarUrls\":{\"\
16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"content\":\"https://your-domain.atlassian.net/jira/rest/api/3/attachment/content/10001\"\
,\"created\":\"2023-06-24T19:24:50.000+0000\",\"filename\":\"debuglog.txt\"\
,\"id\":10001,\"mimeType\":\"text/plain\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/attachments/10001\"\
,\"size\":2460}],\"sub-tasks\":[{\"id\":\"10000\",\"outwardIssue\"\
:{\"fields\":{\"status\":{\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/statuses/open.png\"\
,\"name\":\"Open\"}},\"id\":\"10003\",\"key\":\"ED-2\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/issue/ED-2\"},\"type\"\
:{\"id\":\"10000\",\"inward\":\"Parent\",\"name\":\"\",\"outward\"\
:\"Sub-task\"}}],\"description\":\"Main order flow broken\",\"project\"\
:{\"avatarUrls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/projectavatar?size=small&pid=10000\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/projectavatar?size=medium&pid=10000\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"insight\":{\"lastIssueUpdateTime\":\"2021-04-22T05:37:05.000+0000\"\
,\"totalIssueCount\":100},\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"First Project Category\",\"id\":\"10000\",\"name\"\
:\"FIRST\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/projectCategory/10000\"\
},\"self\":\"https://your-domain.atlassian.net/rest/api/2/project/EX\"\
,\"simplified\":false,\"style\":\"classic\"},\"comment\":[{\"author\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\"\
:\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"body\":\"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.\",\"created\":\"2021-01-17T12:34:00.000+0000\",\"id\":\"\
10000\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/comment/10000\"\
,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"active\"\
:false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"Administrators\",\"type\":\"role\",\"value\":\"Administrators\"\
}}],\"issuelinks\":[{\"id\":\"10001\",\"outwardIssue\":{\"fields\"\
:{\"status\":{\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/statuses/open.png\"\
,\"name\":\"Open\"}},\"id\":\"10004L\",\"key\":\"PR-2\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/issue/PR-2\"},\"type\"\
:{\"id\":\"10000\",\"inward\":\"depends on\",\"name\":\"Dependent\"\
,\"outward\":\"is depended by\"}},{\"id\":\"10002\",\"inwardIssue\"\
:{\"fields\":{\"status\":{\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/statuses/open.png\"\
,\"name\":\"Open\"}},\"id\":\"10004\",\"key\":\"PR-3\",\"self\":\"\
https://your-domain.atlassian.net/rest/api/2/issue/PR-3\"},\"type\"\
:{\"id\":\"10000\",\"inward\":\"depends on\",\"name\":\"Dependent\"\
,\"outward\":\"is depended by\"}}],\"worklog\":[{\"author\":{\"accountId\"\
:\"5b10a2844c20165700ede21g\",\"active\":false,\"displayName\":\"\
Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"comment\":\"I did some work here.\",\"id\":\"100028\",\"issueId\"\
:\"10002\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/worklog/10000\"\
,\"started\":\"2021-01-17T12:34:00.000+0000\",\"timeSpent\":\"3h 20m\"\
,\"timeSpentSeconds\":12000,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"type\":\"\
group\",\"value\":\"jira-developers\"}}],\"updated\":1,\"timetracking\"\
:{\"originalEstimate\":\"10m\",\"originalEstimateSeconds\":600,\"\
remainingEstimate\":\"3m\",\"remainingEstimateSeconds\":200,\"timeSpent\"\
:\"6m\",\"timeSpentSeconds\":400}},\"id\":\"10002\",\"key\":\"ED-1\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10002\"\
}],\"maxResults\":50,\"startAt\":0,\"total\":1,\"warningMessages\"\
:[\"The value 'bar' does not exist for the field 'foo'.\"]}"
schema:
$ref: "#/components/schemas/SearchResults"
description: "Returned if the request is successful."
"400":
description: "Returned if the JQL query is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Search for issues using JQL (POST)"
tags:
- "Issue search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-details:jira"
- "read:field.default-value:jira"
- "read:field.option:jira"
- "read:field:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/search/id:
post:
deprecated: false
description: "Searches for IDs of issues using [JQL](https://confluence.atlassian.com/x/egORLQ).\n\
\nUse the [Search](#api-rest-api-2-search-post) endpoint if you need to fetch\
\ more than just issue IDs. The Search endpoint returns more information,\
\ but may take much longer to respond to requests. This is because it uses\
\ a different mechanism for ordering results than this endpoint and doesn't\
\ provide the total number of results for your query.\n\nThis operation can\
\ be accessed anonymously.\n\n**[Permissions](#permissions) required:** Issues\
\ are included in the response where the user has:\n\n * *Browse projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for the\
\ project containing the issue.\n * If [issue-level security](https://confluence.atlassian.com/x/J4lKLg)\
\ is configured, issue-level security permission to view the issue."
operationId: "searchForIssuesIds"
parameters: []
requestBody:
content:
application/json:
example:
jql: "project = HSP"
maxResults: 1000
nextPageToken: "EgQIlMIC"
schema:
$ref: "#/components/schemas/IdSearchRequestBean"
description: "A JSON object containing the search request."
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/IdSearchResults"
description: "Returned if the request is successful."
"400":
description: "Returned if the JQL query is invalid."
"401":
description: "Returned if the authentication credentials are incorrect."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Search issue IDs using JQL"
tags:
- "Issue search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-details:jira"
- "read:field.default-value:jira"
- "read:field.option:jira"
- "read:field:jira"
- "read:group:jira"
state: "Beta"
x-experimental: true
/rest/api/2/securitylevel/{id}:
get:
deprecated: false
description: "Returns details of an issue security level.\n\nUse [Get issue\
\ security scheme](#api-rest-api-2-issuesecurityschemes-id-get) to obtain\
\ the IDs of issue security levels associated with the issue security scheme.\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getIssueSecurityLevel"
parameters:
- description: "The ID of the issue security level."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"description\":\"Only the reporter and internal staff can\
\ see this issue.\",\"id\":\"10021\",\"name\":\"Reporter Only\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/securitylevel/10021\"\
}"
schema:
$ref: "#/components/schemas/SecurityLevel"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
description: "Returned if the issue security level is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Get issue security level"
tags:
- "Issue security level"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:issue-security-level:jira"
- "read:project-role:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/serverInfo:
get:
deprecated: false
description: "Returns information about the Jira instance.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ None."
operationId: "getServerInfo"
parameters: []
responses:
"200":
content:
application/json:
example: "{\"baseUrl\":\"https://your-domain.atlassian.net\",\"buildDate\"\
:\"2020-03-26T22:20:59.000+0000\",\"buildNumber\":582,\"defaultLocale\"\
:{\"locale\":\"en_AU\"},\"displayUrl\":\"https://instance.jira.your-domain.com\"\
,\"displayUrlServicedeskHelpCenter\":\"https://instance.help.your-domain.com\"\
,\"scmInfo\":\"1f51473f5c7b75c1a69a0090f4832cdc5053702a\",\"serverTime\"\
:\"2020-03-31T16:43:50.000+0000\",\"serverTimeZone\":\"Australia/Sydney\"\
,\"serverTitle\":\"My Jira instance\",\"version\":\"1001.0.0-SNAPSHOT\"\
,\"versionNumbers\":[5,0,0]}"
schema:
$ref: "#/components/schemas/ServerInformation"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
security:
- basicAuth: []
- OAuth2: []
- {}
summary: "Get Jira instance info"
tags:
- "Server info"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
/rest/api/2/settings/columns:
get:
deprecated: false
description: "Returns the default issue navigator columns.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getIssueNavigatorDefaultColumns"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"label\":\"Key\",\"value\":\"issuekey\"},{\"label\":\"\
Summary\",\"value\":\"summary\"}]"
schema:
items:
$ref: "#/components/schemas/ColumnItem"
type: "array"
description: "Returned if the request is successful."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
summary: "Get issue navigator default columns"
tags:
- "Issue navigator settings"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
put:
deprecated: false
description: "Sets the default issue navigator columns.\n\nThe `columns` parameter\
\ accepts a navigable field value and is expressed as HTML form data. To specify\
\ multiple columns, pass multiple `columns` parameters. For example, in curl:\n\
\n`curl -X PUT -d columns=summary -d columns=description https://your-domain.atlassian.net/rest/api/2/settings/columns`\n\
\nIf no column details are sent, then all default columns are removed.\n\n\
A navigable field is one that can be used as a column on the issue navigator.\
\ Find details of navigable issue columns using [Get fields](#api-rest-api-2-field-get).\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setIssueNavigatorDefaultColumns"
parameters: []
requestBody:
content:
'*/*':
schema:
$ref: "#/components/schemas/ColumnRequestBody"
multipart/form-data:
schema:
$ref: "#/components/schemas/ColumnRequestBody"
description: "A navigable field value."
required: true
responses:
"200":
description: "Returned if the request is successful."
"400":
description: "Returned if invalid parameters are passed."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if a navigable field value is not found."
security:
- basicAuth: []
summary: "Set issue navigator default columns"
tags:
- "Issue navigator settings"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/status:
get:
deprecated: false
description: "Returns a list of all statuses associated with active workflows.\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getStatuses"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"description\":\"The issue is currently being worked on.\"\
,\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/progress.gif\"\
,\"id\":\"10000\",\"name\":\"In Progress\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/status/10000\"\
,\"statusCategory\":{\"colorName\":\"yellow\",\"id\":1,\"key\":\"\
in-flight\",\"name\":\"In Progress\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/statuscategory/1\"\
}},{\"description\":\"The issue is closed.\",\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/closed.gif\"\
,\"id\":\"5\",\"name\":\"Closed\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/status/5\"\
,\"statusCategory\":{\"colorName\":\"green\",\"id\":9,\"key\":\"completed\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/statuscategory/9\"\
}}]"
schema:
items:
$ref: "#/components/schemas/StatusDetails"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get all statuses"
tags:
- "Workflow statuses"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:status:jira"
state: "Beta"
/rest/api/2/status/{idOrName}:
get:
deprecated: false
description: "Returns a status. The status must be associated with an active\
\ workflow to be returned.\n\nIf a name is used on more than one status, only\
\ the status found first is returned. Therefore, identifying the status by\
\ its ID may be preferable.\n\nThis operation can be accessed anonymously.\n\
\n[Permissions](#permissions) required: None."
operationId: "getStatus"
parameters:
- description: "The ID or name of the status."
in: "path"
name: "idOrName"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"description\":\"The issue is currently being worked on.\"\
,\"iconUrl\":\"https://your-domain.atlassian.net/images/icons/progress.gif\"\
,\"id\":\"10000\",\"name\":\"In Progress\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/status/10000\"\
,\"statusCategory\":{\"colorName\":\"yellow\",\"id\":1,\"key\":\"\
in-flight\",\"name\":\"In Progress\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/statuscategory/1\"\
}}"
schema:
$ref: "#/components/schemas/StatusDetails"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the status is not found.\n * the status\
\ is not associated with a workflow.\n * the user does not have the required\
\ permissions."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get status"
tags:
- "Workflow statuses"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:status:jira"
state: "Beta"
/rest/api/2/statuscategory:
get:
deprecated: false
description: "Returns a list of all status categories.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "getStatusCategories"
parameters: []
responses:
"200":
content:
application/json:
example: "[{\"colorName\":\"yellow\",\"id\":1,\"key\":\"in-flight\"\
,\"name\":\"In Progress\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/statuscategory/1\"\
},{\"colorName\":\"green\",\"id\":9,\"key\":\"completed\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/statuscategory/9\"\
}]"
schema:
items:
$ref: "#/components/schemas/StatusCategory"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get all status categories"
tags:
- "Workflow status categories"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:status:jira"
state: "Beta"
/rest/api/2/statuscategory/{idOrKey}:
get:
deprecated: false
description: "Returns a status category. Status categories provided a mechanism\
\ for categorizing [statuses](#api-rest-api-2-status-idOrName-get).\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "getStatusCategory"
parameters:
- description: "The ID or key of the status category."
in: "path"
name: "idOrKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"colorName\":\"yellow\",\"id\":1,\"key\":\"in-flight\",\"\
name\":\"In Progress\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/statuscategory/1\"\
}"
schema:
$ref: "#/components/schemas/StatusCategory"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the status category is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get status category"
tags:
- "Workflow status categories"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:status:jira"
state: "Beta"
/rest/api/2/statuses:
delete:
deprecated: false
description: "Deletes statuses by ID.\n\n**[Permissions](#permissions) required:**\n\
\n * *Administer projects* [project permission.](https://confluence.atlassian.com/x/yodKLg)\n\
\ * *Administer Jira* [project permission.](https://confluence.atlassian.com/x/yodKLg)"
operationId: "deleteStatusesById"
parameters:
- description: "The list of status IDs. To include multiple IDs, provide an\
\ ampersand-separated list. For example, id=10000&id=10001.\n\nMin items\
\ `1`, Max items `50`"
in: "query"
name: "id"
required: true
schema:
items:
type: "string"
type: "array"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The name is too long, maxSize=255\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Bulk delete Statuses"
tags:
- "Status"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a list of the statuses specified by one or more status\
\ IDs.\n\n**[Permissions](#permissions) required:**\n\n * *Administer projects*\
\ [project permission.](https://confluence.atlassian.com/x/yodKLg)\n * *Administer\
\ Jira* [project permission.](https://confluence.atlassian.com/x/yodKLg)"
operationId: "getStatusesById"
parameters:
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `usages` Returns the project and issue types that use\
\ the status in their workflow.\n * `workflowUsages` Returns the workflows\
\ that use the status."
in: "query"
name: "expand"
schema:
type: "string"
- description: "The list of status IDs. To include multiple IDs, provide an\
\ ampersand-separated list. For example, id=10000&id=10001.\n\nMin items\
\ `1`, Max items `50`"
in: "query"
name: "id"
required: true
schema:
items:
type: "string"
type: "array"
responses:
"200":
content:
application/json:
example: "[{\"description\":\"The issue is resolved\",\"id\":\"1000\"\
,\"name\":\"Finished\",\"scope\":{\"project\":{\"id\":\"1\"},\"type\"\
:\"PROJECT\"},\"statusCategory\":\"DONE\",\"usages\":[{\"issueTypes\"\
:[\"10002\"],\"project\":{\"id\":\"1\"}}],\"workflowUsages\":[{\"\
workflowId\":\"545d80a3-91ff-4949-8b0d-a2bc484e70e5\",\"workflowName\"\
:\"Workflow 1\"}]}]"
schema:
items:
$ref: "#/components/schemas/JiraStatus"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Bulk get statuses"
tags:
- "Status"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow:jira"
state: "Beta"
post:
deprecated: false
description: "Creates statuses for a global or project scope.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer projects* [project permission.](https://confluence.atlassian.com/x/yodKLg)\n\
\ * *Administer Jira* [project permission.](https://confluence.atlassian.com/x/yodKLg)"
operationId: "createStatuses"
parameters: []
requestBody:
content:
application/json:
example:
scope:
project:
id: "1"
type: "PROJECT"
statuses:
- description: "The issue is resolved"
name: "Finished"
statusCategory: "DONE"
schema:
$ref: "#/components/schemas/StatusCreateRequest"
description: "Details of the statuses being created and their scope."
required: true
responses:
"200":
content:
application/json:
example: "[{\"description\":\"The issue is resolved\",\"id\":\"1000\"\
,\"name\":\"Finished\",\"scope\":{\"project\":{\"id\":\"1\"},\"type\"\
:\"PROJECT\"},\"statusCategory\":\"DONE\",\"usages\":[],\"workflowUsages\"\
:[]}]"
schema:
items:
$ref: "#/components/schemas/JiraStatus"
type: "array"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The name is too long, maxSize=255\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
"409":
description: "Returned if another workflow configuration update task is\
\ ongoing."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Bulk create statuses"
tags:
- "Status"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow:jira"
state: "Beta"
put:
deprecated: false
description: "Updates statuses by ID.\n\n**[Permissions](#permissions) required:**\n\
\n * *Administer projects* [project permission.](https://confluence.atlassian.com/x/yodKLg)\n\
\ * *Administer Jira* [project permission.](https://confluence.atlassian.com/x/yodKLg)"
operationId: "updateStatuses"
parameters: []
requestBody:
content:
application/json:
example:
statuses:
- description: "The issue is resolved"
id: "1000"
name: "Finished"
statusCategory: "DONE"
schema:
$ref: "#/components/schemas/StatusUpdateRequest"
description: "The list of statuses that will be updated."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The name is too long, maxSize=255\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
"409":
description: "Returned if another workflow configuration update task is\
\ ongoing."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Bulk update statuses"
tags:
- "Status"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow:jira"
state: "Beta"
/rest/api/2/statuses/search:
get:
deprecated: false
description: "Returns a [paginated](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#pagination)\
\ list of statuses that match a search on name or project.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer projects* [project permission.](https://confluence.atlassian.com/x/yodKLg)\n\
\ * *Administer Jira* [project permission.](https://confluence.atlassian.com/x/yodKLg)"
operationId: "search"
parameters:
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `usages` Returns the project and issue types that use\
\ the status in their workflow.\n * `workflowUsages` Returns the workflows\
\ that use the status."
in: "query"
name: "expand"
schema:
type: "string"
- description: "The project the status is part of or null for global statuses."
in: "query"
name: "projectId"
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 200
format: "int32"
type: "integer"
- description: "Term to match status names against or null to search for all\
\ statuses in the search scope."
in: "query"
name: "searchString"
schema:
maxLength: 255
type: "string"
- description: "Category of the status to filter by. The supported values are:\
\ `TODO`, `IN_PROGRESS`, and `DONE`."
in: "query"
name: "statusCategory"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":2,\"nextPage\":\"https://your-domain.atlassian.net/rest/api/2/statuses/search?startAt=2&maxResults=2\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/statuses/search?startAt=0&maxResults=2\"\
,\"startAt\":0,\"total\":5,\"values\":[{\"description\":\"The issue\
\ is resolved\",\"id\":\"1000\",\"name\":\"Finished\",\"scope\":{\"\
project\":{\"id\":\"1\"},\"type\":\"PROJECT\"},\"statusCategory\"\
:\"DONE\",\"usages\":[{\"issueTypes\":[\"10002\"],\"project\":{\"\
id\":\"1\"}}],\"workflowUsages\":[{\"workflowId\":\"545d80a3-91ff-4949-8b0d-a2bc484e70e5\"\
,\"workflowName\":\"Workflow 1\"}]}]}"
schema:
$ref: "#/components/schemas/PageOfStatuses"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Search statuses paginated"
tags:
- "Status"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow:jira"
state: "Beta"
/rest/api/2/task/{taskId}:
get:
deprecated: false
description: "Returns the status of a [long-running asynchronous task](#async).\n\
\nWhen a task has finished, this operation returns the JSON blob applicable\
\ to the task. See the documentation of the operation that created the task\
\ for details. Task details are not permanently retained. As of September\
\ 2019, details are retained for 14 days although this period may change without\
\ notice.\n\n**Deprecation notice:** The required OAuth 2.0 scopes will be\
\ updated on June 15, 2024.\n\n * `read:jira-work`\n\n**[Permissions](#permissions)\
\ required:** either of:\n\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).\n\
\ * Creator of the task."
operationId: "getTask"
parameters:
- description: "The ID of the task."
in: "path"
name: "taskId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"self\":\"https://your-domain.atlassian.net/rest/api/2/task/1\"\
,\"id\":\"1\",\"description\":\"Task description\",\"status\":\"COMPLETE\"\
,\"result\":\"the task result, this may be any JSON\",\"submittedBy\"\
:10000,\"progress\":100,\"elapsedRuntime\":156,\"submitted\":1501708132800,\"\
started\":1501708132900,\"finished\":1501708133000,\"lastUpdate\"\
:1501708133000}"
schema:
$ref: "#/components/schemas/TaskProgressBeanObject"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the task is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get task"
tags:
- "Tasks"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
/rest/api/2/task/{taskId}/cancel:
post:
deprecated: false
description: "Cancels a task.\n\n**[Permissions](#permissions) required:** either\
\ of:\n\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).\n\
\ * Creator of the task."
operationId: "cancelTask"
parameters:
- description: "The ID of the task."
in: "path"
name: "taskId"
required: true
schema:
type: "string"
responses:
"202":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
items:
type: "string"
type: "array"
description: "Returned if cancellation of the task is not possible."
"401":
content:
application/json:
schema:
items:
type: "string"
type: "array"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
items:
type: "string"
type: "array"
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
schema:
items:
type: "string"
type: "array"
description: "Returned if the task is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
summary: "Cancel task"
tags:
- "Tasks"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:async-task:jira"
state: "Beta"
x-experimental: true
/rest/api/2/uiModifications:
get:
deprecated: false
description: "Gets UI modifications. UI modifications can only be retrieved\
\ by Forge apps.\n\n**[Permissions](#permissions) required:** None."
operationId: "getUiModifications"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "Use expand to include additional information in the response.\
\ This parameter accepts a comma-separated list. Expand options include:\n\
\n * `data` Returns UI modification data.\n * `contexts` Returns UI modification\
\ contexts."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:3,\"values\":[{\"id\":\"d7dbda8a-6239-4b63-8e13-a5ef975c8e61\",\"\
name\":\"Reveal Story Points\",\"description\":\"Reveals Story Points\
\ field when any Sprint is selected.\",\"self\":\"https://api.atlassian.com/ex/jira/{cloudid}/rest/api/2/uiModifications/d7dbda8a-6239-4b63-8e13-a5ef975c8e61\"\
,\"data\":\"{field: 'Story Points', config: {hidden: false}}\",\"\
contexts\":[{\"id\":\"1533537a-bda3-4ac6-8481-846128cd9ef4\",\"projectId\"\
:\"10000\",\"issueTypeId\":\"10000\",\"viewType\":\"GIC\",\"isAvailable\"\
:true},{\"id\":\"c016fefa-6eb3-40c9-8596-4c4ef273e67c\",\"projectId\"\
:\"10000\",\"issueTypeId\":\"10001\",\"viewType\":\"IssueView\",\"\
isAvailable\":true}]},{\"id\":\"e4fe8db5-f82f-416b-a3aa-b260b55da577\"\
,\"name\":\"Set Assignee\",\"description\":\"Sets the Assignee field\
\ automatically.\",\"self\":\"https://api.atlassian.com/ex/jira/{cloudid}/rest/api/2/uiModifications/e4fe8db5-f82f-416b-a3aa-b260b55da577\"\
,\"contexts\":[{\"id\":\"8b3740f9-8780-4958-8228-69dcfbda11d9\",\"\
projectId\":\"10000\",\"issueTypeId\":\"10000\",\"viewType\":\"GIC\"\
,\"isAvailable\":true}]},{\"id\":\"1453f993-79ce-4389-a36d-eb72d5c85dd6\"\
,\"name\":\"Hide Labels\",\"description\":\"Hides Labels if any component\
\ is provided.\",\"self\":\"https://api.atlassian.com/ex/jira/{cloudid}/rest/api/2/uiModifications/1453f993-79ce-4389-a36d-eb72d5c85dd6\"\
,\"contexts\":[]},{\"id\":\"d3f4097e-8d8e-451e-9fb6-27c3c8c3bfff\"\
,\"name\":\"Wildcard example\",\"description\":\"This context is applied\
\ to all issue types\",\"self\":\"https://api.atlassian.com/ex/jira/{cloudid}/rest/api/2/uiModifications/d3f4097e-8d8e-451e-9fb6-27c3c8c3bfff\"\
,\"contexts\":[{\"id\":\"521f2181-5d5e-46ea-9fc9-871bbf245b8b\",\"\
projectId\":\"10000\",\"issueTypeId\":null,\"viewType\":\"GIC\",\"\
isAvailable\":true}]}]}"
schema:
$ref: "#/components/schemas/PageBeanUiModificationDetails"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the request is not from a Forge app."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get UI modifications"
tags:
- "UI modifications (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
post:
deprecated: false
description: "Creates a UI modification. UI modification can only be created\
\ by Forge apps.\n\nEach app can define up to 3000 UI modifications. Each\
\ UI modification can define up to 1000 contexts. The same context can be\
\ assigned to maximum 100 UI modifications.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *None* if the UI modification is created without contexts.\n\
\ * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for one or more projects, if the UI modification is created with contexts."
operationId: "createUiModification"
parameters: []
requestBody:
content:
application/json:
example:
contexts:
- issueTypeId: "10000"
projectId: "10000"
viewType: "GIC"
- issueTypeId: "10001"
projectId: "10000"
viewType: "IssueView"
- issueTypeId: "10002"
projectId: "10000"
viewType: null
data: "{field: 'Story Points', config: {hidden: false}}"
description: "Reveals Story Points field when any Sprint is selected."
name: "Reveal Story Points"
schema:
$ref: "#/components/schemas/CreateUiModificationDetails"
description: "Details of the UI modification."
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"d7dbda8a-6239-4b63-8e13-a5ef975c8e61\",\"self\"\
:\"https://api.atlassian.com/ex/jira/{cloudid}/rest/api/2/uiModifications/d7dbda8a-6239-4b63-8e13-a5ef975c8e61\"\
}"
schema:
$ref: "#/components/schemas/UiModificationIdentifiers"
description: "Returned if the UI modification is created."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the request is not from a Forge app."
"404":
content:
application/json:
example: "{\"details\":{\"issueTypesNotFound\":{\"10001\":[\"10000\"\
,\"10001\"]},\"projectNotFound\":[\"10000\"]},\"errorMessages\":[\"\
Project with ID '10000' was not found.\",\"Project with ID '10001'.\
\ The following issue types were not found: [10000, 10001]\"],\"errors\"\
:{}}"
schema:
$ref: "#/components/schemas/DetailedErrorCollection"
description: "Returned if a project or an issue type in the context are\
\ not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Create UI modification"
tags:
- "UI modifications (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/uiModifications/{uiModificationId}:
delete:
deprecated: false
description: "Deletes a UI modification. All the contexts that belong to the\
\ UI modification are deleted too. UI modification can only be deleted by\
\ Forge apps.\n\n**[Permissions](#permissions) required:** None."
operationId: "deleteUiModification"
parameters:
- description: "The ID of the UI modification."
in: "path"
name: "uiModificationId"
required: true
schema:
type: "string"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the UI modification is deleted."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the request is not from a Forge app."
"404":
description: "Returned if the UI modification is not found."
security:
- basicAuth: []
- OAuth2: []
summary: "Delete UI modification"
tags:
- "UI modifications (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
put:
deprecated: false
description: "Updates a UI modification. UI modification can only be updated\
\ by Forge apps.\n\nEach UI modification can define up to 1000 contexts. The\
\ same context can be assigned to maximum 100 UI modifications.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *None* if the UI modification is created without contexts.\n\
\ * *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for one or more projects, if the UI modification is created with contexts."
operationId: "updateUiModification"
parameters:
- description: "The ID of the UI modification."
in: "path"
name: "uiModificationId"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
contexts:
- issueTypeId: "10000"
projectId: "10000"
viewType: "GIC"
- issueTypeId: "10001"
projectId: "10000"
viewType: "IssueView"
data: "{field: 'Story Points', config: {hidden: true}}"
name: "Updated Reveal Story Points"
schema:
$ref: "#/components/schemas/UpdateUiModificationDetails"
description: "Details of the UI modification."
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the UI modification is updated."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the request is not from a Forge app."
"404":
content:
application/json:
example: "{\"details\":{\"issueTypesNotFound\":{\"10001\":[\"10000\"\
,\"10001\"]},\"projectNotFound\":[\"10000\"]},\"errorMessages\":[\"\
Project with ID '10000' was not found.\",\"Project with ID '10001'.\
\ The following issue types were not found: [10000, 10001]\"],\"errors\"\
:{}}"
schema:
$ref: "#/components/schemas/DetailedErrorCollection"
description: "Returned if the UI modification, a project or an issue type\
\ in the context are not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Update UI modification"
tags:
- "UI modifications (apps)"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/universal_avatar/type/{type}/owner/{entityId}:
get:
deprecated: false
description: "Returns the system and custom avatars for a project or issue type.\n\
\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * for custom project avatars, *Browse projects* [project\
\ permission](https://confluence.atlassian.com/x/yodKLg) for the project the\
\ avatar belongs to.\n * for custom issue type avatars, *Browse projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for at least\
\ one project the issue type is used in.\n * for system avatars, none."
operationId: "getAvatars"
parameters:
- description: "The avatar type."
in: "path"
name: "type"
required: true
schema:
enum:
- "project"
- "issuetype"
type: "string"
- description: "The ID of the item the avatar is associated with."
in: "path"
name: "entityId"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"custom\":[{\"id\":\"1010\",\"isDeletable\":true,\"isSelected\"\
:false,\"isSystemAvatar\":false,\"urls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10080&avatarType=project\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/viewavatar?size=small&avatarId=10080&avatarType=project\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/viewavatar?size=medium&avatarId=10080&avatarType=project\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/viewavatar?avatarId=10080&avatarType=project\"\
}}],\"system\":[{\"id\":\"1000\",\"isDeletable\":false,\"isSelected\"\
:false,\"isSystemAvatar\":true,\"urls\":{\"16x16\":\"https://your-domain.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10040&avatarType=project\"\
,\"24x24\":\"https://your-domain.atlassian.net/secure/viewavatar?size=small&avatarId=10040&avatarType=project\"\
,\"32x32\":\"https://your-domain.atlassian.net/secure/viewavatar?size=medium&avatarId=10040&avatarType=project\"\
,\"48x48\":\"https://your-domain.atlassian.net/secure/viewavatar?avatarId=10040&avatarType=project\"\
}}]}"
schema:
$ref: "#/components/schemas/Avatars"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the avatar type is invalid, the associated item\
\ ID is missing, or the item is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Get avatars"
tags:
- "Avatars"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:avatar:jira"
state: "Beta"
post:
deprecated: false
description: "Loads a custom avatar for a project or issue type.\n\nSpecify\
\ the avatar's local file location in the body of the request. Also, include\
\ the following headers:\n\n * `X-Atlassian-Token: no-check` To prevent XSRF\
\ protection blocking the request, for more information see [Special Headers](#special-request-headers).\n\
\ * `Content-Type: image/image type` Valid image types are JPEG, GIF, or\
\ PNG.\n\nFor example: \n`curl --request POST `\n\n`--user email@example.com:\
\ `\n\n`--header 'X-Atlassian-Token: no-check' `\n\n`--header 'Content-Type:\
\ image/< image_type>' `\n\n`--data-binary \"<@/path/to/file/with/your/avatar>\"\
\ `\n\n`--url 'https://your-domain.atlassian.net/rest/api/2/universal_avatar/type/{type}/owner/{entityId}'`\n\
\nThe avatar is cropped to a square. If no crop parameters are specified,\
\ the square originates at the top left of the image. The length of the square's\
\ sides is set to the smaller of the height or width of the image.\n\nThe\
\ cropped image is then used to create avatars of 16x16, 24x24, 32x32, and\
\ 48x48 in size.\n\nAfter creating the avatar use:\n\n * [Update issue type](#api-rest-api-2-issuetype-id-put)\
\ to set it as the issue type's displayed avatar.\n * [Set project avatar](#api-rest-api-2-project-projectIdOrKey-avatar-put)\
\ to set it as the project's displayed avatar.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "storeAvatar"
parameters:
- description: "The avatar type."
in: "path"
name: "type"
required: true
schema:
enum:
- "project"
- "issuetype"
type: "string"
- description: "The ID of the item the avatar is associated with."
in: "path"
name: "entityId"
required: true
schema:
type: "string"
- description: "The X coordinate of the top-left corner of the crop region."
in: "query"
name: "x"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The Y coordinate of the top-left corner of the crop region."
in: "query"
name: "y"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The length of each side of the crop region."
in: "query"
name: "size"
required: true
schema:
default: 0
format: "int32"
type: "integer"
requestBody:
content:
'*/*':
schema: {}
required: true
responses:
"201":
content:
application/json:
example: "{\"id\":\"1000\",\"isDeletable\":false,\"isSelected\":false,\"\
isSystemAvatar\":true,\"urls\":{\"16x16\":\"/secure/useravatar?size=xsmall&avatarId=10040&avatarType=project\"\
,\"24x24\":\"/secure/useravatar?size=small&avatarId=10040&avatarType=project\"\
,\"32x32\":\"/secure/useravatar?size=medium&avatarId=10040&avatarType=project\"\
,\"48x48\":\"/secure/useravatar?avatarId=10040&avatarType=project\"\
}}"
schema:
$ref: "#/components/schemas/Avatar"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * an image isn't included in the request.\n\
\ * the image type is unsupported.\n * the crop parameters extend the\
\ crop area beyond the edge of the image."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permissions."
"404":
description: "Returned if the avatar type is invalid, the associated item\
\ ID is missing, or the item is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Load avatar"
tags:
- "Avatars"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:avatar:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/universal_avatar/type/{type}/owner/{owningObjectId}/avatar/{id}:
delete:
deprecated: false
description: "Deletes an avatar from a project or issue type.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteAvatar"
parameters:
- description: "The avatar type."
in: "path"
name: "type"
required: true
schema:
enum:
- "project"
- "issuetype"
type: "string"
- description: "The ID of the item the avatar is associated with."
in: "path"
name: "owningObjectId"
required: true
schema:
type: "string"
- description: "The ID of the avatar."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"403":
description: "Returned if the user does not have permission to delete the\
\ avatar, the avatar is not deletable."
"404":
description: "Returned if the avatar type, associated item ID, or avatar\
\ ID is invalid."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
- {}
summary: "Delete avatar"
tags:
- "Avatars"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:avatar:jira"
state: "Beta"
/rest/api/2/universal_avatar/view/type/{type}:
get:
deprecated: false
description: "Returns the default project or issue type avatar image.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "getAvatarImageByType"
parameters:
- description: "The icon type of the avatar."
in: "path"
name: "type"
required: true
schema:
enum:
- "issuetype"
- "project"
type: "string"
x-showInExample: "true"
- description: "The size of the avatar image. If not provided the default size\
\ is returned."
in: "query"
name: "size"
schema:
enum:
- "xsmall"
- "small"
- "medium"
- "large"
- "xlarge"
type: "string"
x-showInExample: "true"
- description: "The format to return the avatar image in. If not provided the\
\ original content format is returned."
in: "query"
name: "format"
schema:
enum:
- "png"
- "svg"
type: "string"
x-showInExample: "true"
responses:
"200":
content:
'*/*': {}
application/json:
schema:
$ref: "#/components/schemas/StreamingResponseBody"
image/png: {}
image/svg+xml: {}
description: "Returned if the request is successful."
"401":
content:
'*/*':
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
image/png:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
image/svg+xml:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
description: "Returned if the authentication credentials are incorrect."
"403":
content:
'*/*':
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
image/png:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
image/svg+xml:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
description: "Returned if the user does not have the necessary permission."
"404":
content:
'*/*':
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
image/png:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
image/svg+xml:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
description: "Returned if an avatar is not found or an avatar matching the\
\ requested size is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get avatar image by type"
tags:
- "Avatars"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:avatar:jira"
state: "Beta"
x-experimental: true
/rest/api/2/universal_avatar/view/type/{type}/avatar/{id}:
get:
deprecated: false
description: "Returns a project or issue type avatar image by ID.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\n\
\n * For system avatars, none.\n * For custom project avatars, *Browse projects*\
\ [project permission](https://confluence.atlassian.com/x/yodKLg) for the\
\ project the avatar belongs to.\n * For custom issue type avatars, *Browse\
\ projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for at least one project the issue type is used in."
operationId: "getAvatarImageByID"
parameters:
- description: "The icon type of the avatar."
in: "path"
name: "type"
required: true
schema:
enum:
- "issuetype"
- "project"
type: "string"
x-showInExample: "true"
- description: "The ID of the avatar."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
x-showInExample: "true"
- description: "The size of the avatar image. If not provided the default size\
\ is returned."
in: "query"
name: "size"
schema:
enum:
- "xsmall"
- "small"
- "medium"
- "large"
- "xlarge"
type: "string"
x-showInExample: "true"
- description: "The format to return the avatar image in. If not provided the\
\ original content format is returned."
in: "query"
name: "format"
schema:
enum:
- "png"
- "svg"
type: "string"
x-showInExample: "true"
responses:
"200":
content:
'*/*': {}
application/json:
schema:
$ref: "#/components/schemas/StreamingResponseBody"
image/png: {}
image/svg+xml: {}
description: "Returned if the request is successful."
"400":
content:
'*/*':
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
image/png:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
image/svg+xml:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
description: "Returned if the request is not valid."
"401":
content:
'*/*':
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
image/png:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
image/svg+xml:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
description: "Returned if the authentication credentials are incorrect."
"403":
content:
'*/*':
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
image/png:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
image/svg+xml:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
description: "Returned if the user does not have the necessary permission."
"404":
content:
'*/*':
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
image/png:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
image/svg+xml:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
description: "Returned if an avatar is not found or an avatar matching the\
\ requested size is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get avatar image by ID"
tags:
- "Avatars"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:avatar:jira"
state: "Beta"
x-experimental: true
/rest/api/2/universal_avatar/view/type/{type}/owner/{entityId}:
get:
deprecated: false
description: "Returns the avatar image for a project or issue type.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * For system avatars, none.\n * For custom project avatars,\
\ *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project the avatar belongs to.\n * For custom issue type avatars,\
\ *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for at least one project the issue type is used in."
operationId: "getAvatarImageByOwner"
parameters:
- description: "The icon type of the avatar."
in: "path"
name: "type"
required: true
schema:
enum:
- "issuetype"
- "project"
type: "string"
x-showInExample: "true"
- description: "The ID of the project or issue type the avatar belongs to."
in: "path"
name: "entityId"
required: true
schema:
type: "string"
x-showInExample: "true"
- description: "The size of the avatar image. If not provided the default size\
\ is returned."
in: "query"
name: "size"
schema:
enum:
- "xsmall"
- "small"
- "medium"
- "large"
- "xlarge"
type: "string"
x-showInExample: "true"
- description: "The format to return the avatar image in. If not provided the\
\ original content format is returned."
in: "query"
name: "format"
schema:
enum:
- "png"
- "svg"
type: "string"
x-showInExample: "true"
responses:
"200":
content:
'*/*': {}
application/json:
schema:
$ref: "#/components/schemas/StreamingResponseBody"
image/png: {}
image/svg+xml: {}
description: "Returned if the request is successful."
"400":
content:
'*/*':
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
image/png:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
image/svg+xml:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
description: "Returned if the request is not valid."
"401":
content:
'*/*':
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
image/png:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
image/svg+xml:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
description: "Returned if the authentication credentials are incorrect."
"403":
content:
'*/*':
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
image/png:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
image/svg+xml:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
description: "Returned if the user does not have the necessary permission."
"404":
content:
'*/*':
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
image/png:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
image/svg+xml:
example: "{\"errorMessages\":[\"Human readable error message\"],\"errors\"\
:{}}"
description: "Returned if an avatar is not found or an avatar matching the\
\ requested size is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get avatar image by owner"
tags:
- "Avatars"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:avatar:jira"
state: "Beta"
x-experimental: true
/rest/api/2/user:
delete:
deprecated: false
description: "Deletes a user. If the operation completes successfully then the\
\ user is removed from Jira's user base. This operation does not delete the\
\ user's Atlassian account.\n\n**[Permissions](#permissions) required:** Site\
\ administration (that is, membership of the *site-admin* [group](https://confluence.atlassian.com/x/24xjL))."
operationId: "removeUser"
parameters:
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
in: "query"
name: "accountId"
required: true
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "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."
in: "query"
name: "key"
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"400":
description: "Returned if the user cannot be removed."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the user is not found."
security:
- basicAuth: []
- {}
summary: "Delete user"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
get:
deprecated: false
description: "Returns a user.\n\nPrivacy controls are applied to the response\
\ based on the user's preferences. This could mean, for example, that the\
\ user's email address is hidden. See the [Profile visibility overview](https://developer.atlassian.com/cloud/jira/platform/profile-visibility/)\
\ for more details.\n\n**[Permissions](#permissions) required:** *Browse users\
\ and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getUser"
parameters:
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*.\
\ Required."
in: "query"
name: "accountId"
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "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."
in: "query"
name: "key"
schema:
type: "string"
- description: "Use [expand](#expansion) to include additional information about\
\ users in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `groups` includes all groups and nested\
\ groups to which the user belongs.\n * `applicationRoles` includes details\
\ of all the applications to which the user has access."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":true,\"applicationRoles\":{\"items\":[],\"\
size\":1},\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"}"
schema:
$ref: "#/components/schemas/User"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the calling user does not have the *Browse users\
\ and groups* global permission."
"404":
description: "Returned if the user is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Get user"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:application-role:jira"
- "read:group:jira"
- "read:user:jira"
- "read:avatar:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a user. This resource is retained for legacy compatibility.\
\ As soon as a more suitable alternative is available this resource will be\
\ deprecated.\n\nIf the user exists and has access to Jira, the operation\
\ returns a 201 status. If the user exists but does not have access to Jira,\
\ the operation returns a 400 status.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createUser"
parameters: []
requestBody:
content:
application/json:
example:
emailAddress: "mia@atlassian.com"
schema:
$ref: "#/components/schemas/NewUserDetails"
description: "Details about the user to be created."
required: true
responses:
"201":
content:
application/json:
example: "{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":true,\"applicationRoles\":{\"items\":[],\"\
size\":1},\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"}"
schema:
$ref: "#/components/schemas/User"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid or the number of licensed\
\ users is exceeded."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- {}
summary: "Create user"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/api/2/user/assignable/multiProjectSearch:
get:
deprecated: false
description: "Returns a list of users who can be assigned issues in one or more\
\ projects. The list may be restricted to users whose attributes match a string.\n\
\nThis operation takes the users in the range defined by `startAt` and `maxResults`,\
\ up to the thousandth user, and then returns only the users from that range\
\ that can be assigned issues in the projects. This means the operation usually\
\ returns fewer users than specified in `maxResults`. To get all the users\
\ who can be assigned issues in the projects, use [Get all users](#api-rest-api-2-users-search-get)\
\ and filter the records in your code.\n\nPrivacy controls are applied to\
\ the response based on the users' preferences. This could mean, for example,\
\ that the user's email address is hidden. See the [Profile visibility overview](https://developer.atlassian.com/cloud/jira/platform/profile-visibility/)\
\ for more details.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** None."
operationId: "findBulkAssignableUsers"
parameters:
- description: "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."
in: "query"
name: "query"
schema:
example: "query"
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "A query string that is matched exactly against user `accountId`.\
\ Required, unless `query` is specified."
in: "query"
name: "accountId"
schema:
maxLength: 128
type: "string"
- description: "A list of project keys (case sensitive). This parameter accepts\
\ a comma-separated list."
in: "query"
name: "projectKeys"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "[{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},{\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=48&s=48\"\
},\"displayName\":\"Emma Richards\",\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10ac8d82e05b22cc7d4ef5\"\
}]"
schema:
items:
$ref: "#/components/schemas/User"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * `projectKeys` is missing.\n * `query`\
\ or `accountId` is missing.\n * `query` and `accountId` are provided."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if one or more of the projects is not found."
"429":
description: "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."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Find users assignable to projects"
tags:
- "User search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/user/assignable/search:
get:
deprecated: false
description: "Returns a list of users that can be assigned to an issue. Use\
\ this operation to find the list of users who can be assigned to:\n\n * \
\ a new issue, by providing the `projectKeyOrId`.\n * an updated issue, by\
\ providing the `issueKey`.\n * to an issue during a transition (workflow\
\ action), by providing the `issueKey` and the transition id in `actionDescriptorId`.\
\ You can obtain the IDs of an issue's valid transitions using the `transitions`\
\ option in the `expand` parameter of [ Get issue](#api-rest-api-2-issue-issueIdOrKey-get).\n\
\nIn all these cases, you can pass an account ID to determine if a user can\
\ be assigned to an issue. The user is returned in the response if they can\
\ be assigned to the issue or issue transition.\n\nThis operation takes the\
\ users in the range defined by `startAt` and `maxResults`, up to the thousandth\
\ user, and then returns only the users from that range that can be assigned\
\ the issue. This means the operation usually returns fewer users than specified\
\ in `maxResults`. To get all the users who can be assigned the issue, use\
\ [Get all users](#api-rest-api-2-users-search-get) and filter the records\
\ in your code.\n\nPrivacy controls are applied to the response based on the\
\ users' preferences. This could mean, for example, that the user's email\
\ address is hidden. See the [Profile visibility overview](https://developer.atlassian.com/cloud/jira/platform/profile-visibility/)\
\ for more details.\n\n**[Permissions](#permissions) required:** *Browse users\
\ and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Assign issues* [project permission](https://confluence.atlassian.com/x/yodKLg)"
operationId: "findAssignableUsers"
parameters:
- description: "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."
in: "query"
name: "query"
schema:
example: "query"
type: "string"
x-showInExample: "true"
- description: "The sessionId of this request. SessionId is the same until the\
\ assignee is set."
in: "query"
name: "sessionId"
schema:
type: "string"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "A query string that is matched exactly against user `accountId`.\
\ Required, unless `query` is specified."
in: "query"
name: "accountId"
schema:
maxLength: 128
type: "string"
- description: "The project ID or project key (case sensitive). Required, unless\
\ `issueKey` is specified."
in: "query"
name: "project"
schema:
type: "string"
- description: "The key of the issue. Required, unless `project` is specified."
in: "query"
name: "issueKey"
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "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."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The ID of the transition."
in: "query"
name: "actionDescriptorId"
schema:
format: "int32"
type: "integer"
- in: "query"
name: "recommend"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":true,\"applicationRoles\":{\"items\":[],\"\
size\":1},\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"}"
schema:
items:
$ref: "#/components/schemas/User"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * `issueKey` or `project` is missing.\n\
\ * `query` or `accountId` is missing.\n * `query` and `accountId` are\
\ provided."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the project, issue, or transition is not found."
"429":
description: "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."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Find users assignable to issues"
tags:
- "User search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue:jira"
- "read:project:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/user/bulk:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of the users specified\
\ by one or more account IDs.\n\n**[Permissions](#permissions) required:**\
\ Permission to access Jira."
operationId: "bulkGetUsers"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 10
format: "int32"
type: "integer"
- description: "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."
in: "query"
name: "username"
schema:
items:
type: "string"
type: "array"
- description: "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."
in: "query"
name: "key"
schema:
items:
type: "string"
type: "array"
- description: "The account ID of a user. To specify multiple users, pass multiple\
\ `accountId` parameters. For example, `accountId=5b10a2844c20165700ede21g&accountId=5b10ac8d82e05b22cc7d4ef5`."
in: "query"
name: "accountId"
required: true
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
items:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
maxLength: 128
type: "array"
x-showInExample: "true"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":100,\"startAt\":0,\"total\"\
:1,\"values\":[{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":true,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"}]}"
schema:
$ref: "#/components/schemas/PageBeanUser"
description: "Returned if the request is successful."
"400":
description: "Returned if `accountID` is missing."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
summary: "Bulk get users"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:application-role:jira"
- "read:group:jira"
- "read:user:jira"
- "read:avatar:jira"
state: "Beta"
x-experimental: true
/rest/api/2/user/bulk/migration:
get:
deprecated: false
description: "Returns the account IDs for the users specified in the `key` or\
\ `username` parameters. Note that multiple `key` or `username` parameters\
\ can be specified.\n\n**[Permissions](#permissions) required:** Permission\
\ to access Jira."
operationId: "bulkGetUsersMigration"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 10
format: "int32"
type: "integer"
- description: "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."
in: "query"
name: "username"
schema:
items:
type: "string"
type: "array"
- description: "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."
in: "query"
name: "key"
schema:
items:
type: "string"
type: "array"
responses:
"200":
content:
application/json:
example: "[{\"username\":\"mia\",\"accountId\":\"5b10a2844c20165700ede21g\"\
},{\"username\":\"emma\",\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\"\
}]"
schema:
items:
$ref: "#/components/schemas/UserMigrationBean"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if `key` or `username`"
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
summary: "Get account IDs for users"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
state: "Beta"
x-experimental: true
/rest/api/2/user/columns:
delete:
deprecated: false
description: "Resets the default [ issue table columns](https://confluence.atlassian.com/x/XYdKLg)\
\ for the user to the system default. If `accountId` is not passed, the calling\
\ user's default columns are reset.\n\n**[Permissions](#permissions) required:**\n\
\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg),\
\ to set the columns on any user.\n * Permission to access Jira, to set the\
\ calling user's columns."
operationId: "resetUserColumns"
parameters:
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
in: "query"
name: "accountId"
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission\
\ or is not accessing their user record."
security:
- basicAuth: []
- {}
summary: "Reset user default columns"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
get:
deprecated: false
description: "Returns the default [issue table columns](https://confluence.atlassian.com/x/XYdKLg)\
\ for the user. If `accountId` is not passed in the request, the calling user's\
\ details are returned.\n\n**[Permissions](#permissions) required:**\n\n *\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLgl),\
\ to get the column details for any user.\n * Permission to access Jira,\
\ to get the calling user's column details."
operationId: "getUserDefaultColumns"
parameters:
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
in: "query"
name: "accountId"
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/ColumnItem"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission\
\ or is not accessing their user record."
"404":
description: "Returned if the requested user is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Get user default columns"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user.columns:jira"
- "read:filter.column:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the default [ issue table columns](https://confluence.atlassian.com/x/XYdKLg)\
\ for the user. If an account ID is not passed, the calling user's default\
\ columns are set. If no column details are sent, then all default columns\
\ are removed.\n\nThe parameters for this resource are expressed as HTML form\
\ data. For example, in curl:\n\n`curl -X PUT -d columns=summary -d columns=description\
\ https://your-domain.atlassian.net/rest/api/2/user/columns?accountId=5b10ac8d82e05b22cc7d4ef5'`\n\
\n**[Permissions](#permissions) required:**\n\n * *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg), to set the columns\
\ on any user.\n * Permission to access Jira, to set the calling user's columns."
operationId: "setUserColumns"
parameters:
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
in: "query"
name: "accountId"
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
requestBody:
content:
'*/*':
schema:
$ref: "#/components/schemas/UserColumnRequestBody"
multipart/form-data:
schema:
$ref: "#/components/schemas/UserColumnRequestBody"
description: "The ID of a column to set. To set multiple columns, send multiple\
\ `columns` parameters."
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission\
\ or is not accessing their user record."
"404":
description: "Returned if the requested user is not found."
"429":
description: "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":
description: "Returned if an invalid issue table column ID is sent."
security:
- basicAuth: []
- {}
summary: "Set user default columns"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/user/email:
get:
deprecated: false
description: "Returns a user's email address. This API is only available to\
\ apps approved by Atlassian, according to these [guidelines](https://community.developer.atlassian.com/t/guidelines-for-requesting-access-to-email-address/27603)."
operationId: "getUserEmail"
parameters:
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, `5b10ac8d82e05b22cc7d4ef5`."
in: "query"
name: "accountId"
required: true
schema:
maxLength: 128
type: "string"
responses:
"200":
content:
application/json:
example: "name@example.com"
schema:
$ref: "#/components/schemas/UnrestrictedUserEmail"
description: "Returned if the request is successful."
"400":
description: "Returned if the calling app is not approved to use this API."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing from the request (for example if a user is trying to access\
\ this API)."
"404":
description: "Returned if a user with the given `accountId` doesn't exist"
"503":
description: "Indicates the API is not currently enabled"
security:
- basicAuth: []
summary: "Get user email"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/user/email/bulk:
get:
deprecated: false
description: "Returns a user's email address. This API is only available to\
\ apps approved by Atlassian, according to these [guidelines](https://community.developer.atlassian.com/t/guidelines-for-requesting-access-to-email-address/27603)."
operationId: "getUserEmailBulk"
parameters:
- description: "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)."
in: "query"
name: "accountId"
required: true
schema:
items:
maxLength: 128
type: "string"
maxLength: 128
type: "array"
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/UnrestrictedUserEmail"
description: "Returned if the request is successful."
"400":
description: "Returned if the calling app is not approved to use this API."
"401":
description: "Returned if the authentication credentials are incorrect,\
\ or missing from the request (for example if a user is trying to access\
\ this API)."
"503":
description: "Indicates the API is not currently enabled."
security:
- basicAuth: []
summary: "Get user email bulk"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/user/groups:
get:
deprecated: false
description: "Returns the groups to which a user belongs.\n\n**[Permissions](#permissions)\
\ required:** *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getUserGroups"
parameters:
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
in: "query"
name: "accountId"
required: true
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "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."
in: "query"
name: "key"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"groupId\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"name\"\
:\"jira-administrators\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/group?groupId=276f955c-63d7-42c8-9520-92d01dca0625\"\
}"
schema:
items:
$ref: "#/components/schemas/GroupName"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the calling user does not have the *Browse users\
\ and groups* global permission."
"404":
description: "Returned if the user is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Get user groups"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
state: "Beta"
/rest/api/2/user/permission/search:
get:
deprecated: false
description: "Returns a list of users who fulfill these criteria:\n\n * their\
\ user attributes match a search string.\n * they have a set of permissions\
\ for a project or issue.\n\nIf no search string is provided, a list of all\
\ users with the permissions is returned.\n\nThis operation takes the users\
\ in the range defined by `startAt` and `maxResults`, up to the thousandth\
\ user, and then returns only the users from that range that match the search\
\ string and have permission for the project or issue. This means the operation\
\ usually returns fewer users than specified in `maxResults`. To get all the\
\ users who match the search string and have permission for the project or\
\ issue, use [Get all users](#api-rest-api-2-users-search-get) and filter\
\ the records in your code.\n\nPrivacy controls are applied to the response\
\ based on the users' preferences. This could mean, for example, that the\
\ user's email address is hidden. See the [Profile visibility overview](https://developer.atlassian.com/cloud/jira/platform/profile-visibility/)\
\ for more details.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg),\
\ to get users for any project.\n * *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for a project, to get users for that project."
operationId: "findUsersWithAllPermissions"
parameters:
- description: "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."
in: "query"
name: "query"
schema:
example: "query"
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "A query string that is matched exactly against user `accountId`.\
\ Required, unless `query` is specified."
in: "query"
name: "accountId"
schema:
maxLength: 128
type: "string"
- description: "A comma separated list of permissions. Permissions can be specified\
\ as any:\n\n * permission returned by [Get all permissions](#api-rest-api-2-permissions-get).\n\
\ * custom project permission added by Connect apps.\n * (deprecated)\
\ one of the following:\n \n * ASSIGNABLE\\_USER\n * ASSIGN\\\
_ISSUE\n * ATTACHMENT\\_DELETE\\_ALL\n * ATTACHMENT\\_DELETE\\\
_OWN\n * BROWSE\n * CLOSE\\_ISSUE\n * COMMENT\\_DELETE\\\
_ALL\n * COMMENT\\_DELETE\\_OWN\n * COMMENT\\_EDIT\\_ALL\n \
\ * COMMENT\\_EDIT\\_OWN\n * COMMENT\\_ISSUE\n * CREATE\\_ATTACHMENT\n\
\ * CREATE\\_ISSUE\n * DELETE\\_ISSUE\n * EDIT\\_ISSUE\n\
\ * LINK\\_ISSUE\n * MANAGE\\_WATCHER\\_LIST\n * MODIFY\\\
_REPORTER\n * MOVE\\_ISSUE\n * PROJECT\\_ADMIN\n * RESOLVE\\\
_ISSUE\n * SCHEDULE\\_ISSUE\n * SET\\_ISSUE\\_SECURITY\n *\
\ TRANSITION\\_ISSUE\n * VIEW\\_VERSION\\_CONTROL\n * VIEW\\\
_VOTERS\\_AND\\_WATCHERS\n * VIEW\\_WORKFLOW\\_READONLY\n * WORKLOG\\\
_DELETE\\_ALL\n * WORKLOG\\_DELETE\\_OWN\n * WORKLOG\\_EDIT\\\
_ALL\n * WORKLOG\\_EDIT\\_OWN\n * WORK\\_ISSUE"
in: "query"
name: "permissions"
required: true
schema:
type: "string"
- description: "The issue key for the issue."
in: "query"
name: "issueKey"
schema:
type: "string"
- description: "The project key for the project (case sensitive)."
in: "query"
name: "projectKey"
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "[{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},{\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=48&s=48\"\
},\"displayName\":\"Emma Richards\",\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10ac8d82e05b22cc7d4ef5\"\
}]"
schema:
items:
$ref: "#/components/schemas/User"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * `issueKey` or `projectKey` is missing.\n\
\ * `query` or `accountId` is missing.\n * `query` and `accountId` are\
\ provided.\n * `permissions` is empty or contains an invalid entry."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the issue or project is not found."
"429":
description: "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."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Find users with permissions"
tags:
- "User search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue:jira"
- "read:project:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/user/picker:
get:
deprecated: false
description: "Returns a list of users whose attributes match the query term.\
\ The returned object includes the `html` field where the matched query term\
\ is highlighted with the HTML strong tag. A list of account IDs can be provided\
\ to exclude users from the results.\n\nThis operation takes the users in\
\ the range defined by `maxResults`, up to the thousandth user, and then returns\
\ only the users from that range that match the query term. This means the\
\ operation usually returns fewer users than specified in `maxResults`. To\
\ get all the users who match the query term, use [Get all users](#api-rest-api-2-users-search-get)\
\ and filter the records in your code.\n\nPrivacy controls are applied to\
\ the response based on the users' preferences. This could mean, for example,\
\ that the user's email address is hidden. See the [Profile visibility overview](https://developer.atlassian.com/cloud/jira/platform/profile-visibility/)\
\ for more details.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg).\
\ Anonymous calls and calls by users without the required permission return\
\ search results for an exact name match only."
operationId: "findUsersForPicker"
parameters:
- description: "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*."
in: "query"
name: "query"
required: true
schema:
type: "string"
- description: "The maximum number of items to return. The total number of matched\
\ users is returned in `total`."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "Include the URI to the user's avatar."
in: "query"
name: "showAvatar"
schema:
default: false
type: "boolean"
- description: "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."
in: "query"
name: "exclude"
schema:
items:
type: "string"
type: "array"
- description: "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`."
in: "query"
name: "excludeAccountIds"
schema:
items:
type: "string"
type: "array"
- in: "query"
name: "avatarSize"
schema:
type: "string"
- in: "query"
name: "excludeConnectUsers"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"header\":\"Showing 20 of 25 matching groups\",\"total\"\
:25,\"users\":[{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"avatarUrl\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"displayName\":\"Mia Krystof\",\"html\":\"Mia Krystof\
\ - mia@example.com (mia)\",\"key\"\
:\"mia\",\"name\":\"mia\"}]}"
schema:
$ref: "#/components/schemas/FoundUsers"
description: "Returned if the request is successful."
"400":
description: "Returned if `exclude` and `excludeAccountIds` are provided."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"429":
description: "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."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Find users for picker"
tags:
- "User search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
state: "Beta"
/rest/api/2/user/properties:
get:
deprecated: false
description: "Returns the keys of all properties for a user.\n\nNote: This operation\
\ does not access the [user properties](https://confluence.atlassian.com/x/8YxjL)\
\ created and maintained in Jira.\n\n**[Permissions](#permissions) required:**\n\
\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg),\
\ to access the property keys on any user.\n * Access to Jira, to access\
\ the calling user's property keys."
operationId: "getUserPropertyKeys"
parameters:
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
in: "query"
name: "accountId"
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "userKey"
schema:
type: "string"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"keys\":[{\"key\":\"issue.support\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/EX-2/properties/issue.support\"\
}]}"
schema:
$ref: "#/components/schemas/PropertyKeys"
description: "Returned if the request is successful."
"400":
description: "Returned if `accountId` is missing."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission\
\ or is not accessing their user record."
"404":
description: "Returned if the user is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
summary: "Get user property keys"
tags:
- "User properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user.property:jira"
state: "Beta"
/rest/api/2/user/properties/{propertyKey}:
delete:
deprecated: false
description: "Deletes a property from a user.\n\nNote: This operation does not\
\ access the [user properties](https://confluence.atlassian.com/x/8YxjL) created\
\ and maintained in Jira.\n\n**[Permissions](#permissions) required:**\n\n\
\ * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg),\
\ to delete a property from any user.\n * Access to Jira, to delete a property\
\ from the calling user's record."
operationId: "deleteUserProperty"
parameters:
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
in: "query"
name: "accountId"
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "userKey"
schema:
type: "string"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "The key of the user's property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the user property is deleted."
"400":
description: "Returned if `accountId` is missing."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission\
\ or is not accessing their user record."
"404":
description: "Returned if the user or the property is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
summary: "Delete user property"
tags:
- "User properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:user.property:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the value of a user's property. If no property key is\
\ provided [Get user property keys](#api-rest-api-2-user-properties-get) is\
\ called.\n\nNote: This operation does not access the [user properties](https://confluence.atlassian.com/x/8YxjL)\
\ created and maintained in Jira.\n\n**[Permissions](#permissions) required:**\n\
\n * *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg),\
\ to get a property from any user.\n * Access to Jira, to get a property\
\ from the calling user's record."
operationId: "getUserProperty"
parameters:
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
in: "query"
name: "accountId"
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "userKey"
schema:
type: "string"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "The key of the user's property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"key\":\"issue.support\",\"value\":{\"system.conversation.id\"\
:\"b1bf38be-5e94-4b40-a3b8-9278735ee1e6\",\"system.support.time\"\
:\"1m\"}}"
schema:
$ref: "#/components/schemas/EntityProperty"
description: "Returned if the request is successful."
"400":
description: "Returned if `accountId` is missing."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission\
\ or is not accessing their user record."
"404":
description: "Returned if the user is not found."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
summary: "Get user property"
tags:
- "User properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user.property:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the value of a user's property. Use this resource to store\
\ custom data against a user.\n\nNote: This operation does not access the\
\ [user properties](https://confluence.atlassian.com/x/8YxjL) created and\
\ maintained in Jira.\n\n**[Permissions](#permissions) required:**\n\n * \
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg),\
\ to set a property on any user.\n * Access to Jira, to set a property on\
\ the calling user's record."
operationId: "setUserProperty"
parameters:
- description: "The account ID of the user, which uniquely identifies the user\
\ across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*."
in: "query"
name: "accountId"
schema:
example: "5b10ac8d82e05b22cc7d4ef5"
maxLength: 128
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "userKey"
schema:
type: "string"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "The key of the user's property. The maximum length is 255 characters."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema: {}
description: "The value of the property. The value has to be a valid, non-empty\
\ [JSON](https://tools.ietf.org/html/rfc4627) value. The maximum length\
\ of the property value is 32768 bytes."
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the user property is updated."
"201":
content:
application/json:
schema: {}
description: "Returned if the user property is created."
"400":
description: "Returned if `accountId` is missing."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission\
\ or is not accessing their user record."
"404":
description: "Returned if the user is not found."
"405":
description: "Returned if the property key is not specified."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
summary: "Set user property"
tags:
- "User properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:user.property:jira"
state: "Beta"
/rest/api/2/user/search:
get:
deprecated: false
description: "Returns a list of active users that match the search string and\
\ property.\n\nThis operation first applies a filter to match the search string\
\ and property, and then takes the filtered users in the range defined by\
\ `startAt` and `maxResults`, up to the thousandth user. To get all the users\
\ who match the search string and property, use [Get all users](#api-rest-api-2-users-search-get)\
\ and filter the records in your code.\n\nThis operation can be accessed anonymously.\n\
\nPrivacy controls are applied to the response based on the users' preferences.\
\ This could mean, for example, that the user's email address is hidden. See\
\ the [Profile visibility overview](https://developer.atlassian.com/cloud/jira/platform/profile-visibility/)\
\ for more details.\n\n**[Permissions](#permissions) required:** *Browse users\
\ and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg).\
\ Anonymous calls or calls by users without the required permission return\
\ empty search results."
operationId: "findUsers"
parameters:
- description: "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."
in: "query"
name: "query"
schema:
example: "query"
type: "string"
x-showInExample: "true"
- in: "query"
name: "username"
schema:
type: "string"
- description: "A query string that is matched exactly against a user `accountId`.\
\ Required, unless `query` or `property` is specified."
in: "query"
name: "accountId"
schema:
maxLength: 128
type: "string"
- description: "The index of the first item to return in a page of filtered\
\ results (page offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "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."
in: "query"
name: "property"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "[{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},{\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=48&s=48\"\
},\"displayName\":\"Emma Richards\",\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10ac8d82e05b22cc7d4ef5\"\
}]"
schema:
items:
$ref: "#/components/schemas/User"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * `accountId`, `query` or `property` is\
\ missing.\n * `query` and `accountId` are provided.\n * `property`\
\ parameter is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"429":
description: "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."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Find users"
tags:
- "User search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:user.property:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/user/search/query:
get:
deprecated: false
description: "Finds users with a structured query and returns a [paginated](#pagination)\
\ list of user details.\n\nThis operation takes the users in the range defined\
\ by `startAt` and `maxResults`, up to the thousandth user, and then returns\
\ only the users from that range that match the structured query. This means\
\ the operation usually returns fewer users than specified in `maxResults`.\
\ To get all the users who match the structured query, use [Get all users](#api-rest-api-2-users-search-get)\
\ and filter the records in your code.\n\n**[Permissions](#permissions) required:**\
\ *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg).\n\
\nThe query statements are:\n\n * `is assignee of PROJ` Returns the users\
\ that are assignees of at least one issue in project *PROJ*.\n * `is assignee\
\ of (PROJ-1, PROJ-2)` Returns users that are assignees on the issues *PROJ-1*\
\ or *PROJ-2*.\n * `is reporter of (PROJ-1, PROJ-2)` Returns users that are\
\ reporters on the issues *PROJ-1* or *PROJ-2*.\n * `is watcher of (PROJ-1,\
\ PROJ-2)` Returns users that are watchers on the issues *PROJ-1* or *PROJ-2*.\n\
\ * `is voter of (PROJ-1, PROJ-2)` Returns users that are voters on the issues\
\ *PROJ-1* or *PROJ-2*.\n * `is commenter of (PROJ-1, PROJ-2)` Returns users\
\ that have posted a comment on the issues *PROJ-1* or *PROJ-2*.\n * `is\
\ transitioner of (PROJ-1, PROJ-2)` Returns users that have performed a transition\
\ on issues *PROJ-1* or *PROJ-2*.\n * `[propertyKey].entity.property.path\
\ is \"property value\"` Returns users with the entity property value.\n\n\
The list of issues can be extended as needed, as in *(PROJ-1, PROJ-2, ...\
\ PROJ-n)*. Statements can be combined using the `AND` and `OR` operators\
\ to form more complex queries. For example:\n\n`is assignee of PROJ AND [propertyKey].entity.property.path\
\ is \"property value\"`"
operationId: "findUsersByQuery"
parameters:
- description: "The search query."
in: "query"
name: "query"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 100
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PageBeanUser"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the query is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
"408":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the search is timed out."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
summary: "Find users by query"
tags:
- "User search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:comment:jira"
- "read:issue:jira"
- "read:issue.vote:jira"
- "read:issue.watcher:jira"
- "read:project:jira"
- "read:user:jira"
- "read:user.property:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/user/search/query/key:
get:
deprecated: false
description: "Finds users with a structured query and returns a [paginated](#pagination)\
\ list of user keys.\n\nThis operation takes the users in the range defined\
\ by `startAt` and `maxResults`, up to the thousandth user, and then returns\
\ only the users from that range that match the structured query. This means\
\ the operation usually returns fewer users than specified in `maxResults`.\
\ To get all the users who match the structured query, use [Get all users](#api-rest-api-2-users-search-get)\
\ and filter the records in your code.\n\n**[Permissions](#permissions) required:**\
\ *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg).\n\
\nThe query statements are:\n\n * `is assignee of PROJ` Returns the users\
\ that are assignees of at least one issue in project *PROJ*.\n * `is assignee\
\ of (PROJ-1, PROJ-2)` Returns users that are assignees on the issues *PROJ-1*\
\ or *PROJ-2*.\n * `is reporter of (PROJ-1, PROJ-2)` Returns users that are\
\ reporters on the issues *PROJ-1* or *PROJ-2*.\n * `is watcher of (PROJ-1,\
\ PROJ-2)` Returns users that are watchers on the issues *PROJ-1* or *PROJ-2*.\n\
\ * `is voter of (PROJ-1, PROJ-2)` Returns users that are voters on the issues\
\ *PROJ-1* or *PROJ-2*.\n * `is commenter of (PROJ-1, PROJ-2)` Returns users\
\ that have posted a comment on the issues *PROJ-1* or *PROJ-2*.\n * `is\
\ transitioner of (PROJ-1, PROJ-2)` Returns users that have performed a transition\
\ on issues *PROJ-1* or *PROJ-2*.\n * `[propertyKey].entity.property.path\
\ is \"property value\"` Returns users with the entity property value.\n\n\
The list of issues can be extended as needed, as in *(PROJ-1, PROJ-2, ...\
\ PROJ-n)*. Statements can be combined using the `AND` and `OR` operators\
\ to form more complex queries. For example:\n\n`is assignee of PROJ AND [propertyKey].entity.property.path\
\ is \"property value\"`"
operationId: "findUserKeysByQuery"
parameters:
- description: "The search query."
in: "query"
name: "query"
required: true
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResult"
schema:
default: 100
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/PageBeanUserKey"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the query is invalid."
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
"408":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the search is timed out."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
summary: "Find user keys by query"
tags:
- "User search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:comment:jira"
- "read:issue:jira"
- "read:issue.vote:jira"
- "read:issue.watcher:jira"
- "read:project:jira"
- "read:user.property:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/user/viewissue/search:
get:
deprecated: false
description: "Returns a list of users who fulfill these criteria:\n\n * their\
\ user attributes match a search string.\n * they have permission to browse\
\ issues.\n\nUse this resource to find users who can browse:\n\n * an issue,\
\ by providing the `issueKey`.\n * any issue in a project, by providing the\
\ `projectKey`.\n\nThis operation takes the users in the range defined by\
\ `startAt` and `maxResults`, up to the thousandth user, and then returns\
\ only the users from that range that match the search string and have permission\
\ to browse issues. This means the operation usually returns fewer users than\
\ specified in `maxResults`. To get all the users who match the search string\
\ and have permission to browse issues, use [Get all users](#api-rest-api-2-users-search-get)\
\ and filter the records in your code.\n\nPrivacy controls are applied to\
\ the response based on the users' preferences. This could mean, for example,\
\ that the user's email address is hidden. See the [Profile visibility overview](https://developer.atlassian.com/cloud/jira/platform/profile-visibility/)\
\ for more details.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Browse users and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg).\
\ Anonymous calls and calls by users without the required permission return\
\ empty search results."
operationId: "findUsersWithBrowsePermission"
parameters:
- description: "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."
in: "query"
name: "query"
schema:
example: "query"
type: "string"
x-showInExample: "true"
- description: "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."
in: "query"
name: "username"
schema:
type: "string"
- description: "A query string that is matched exactly against user `accountId`.\
\ Required, unless `query` is specified."
in: "query"
name: "accountId"
schema:
maxLength: 128
type: "string"
- description: "The issue key for the issue. Required, unless `projectKey` is\
\ specified."
in: "query"
name: "issueKey"
schema:
type: "string"
- description: "The project key for the project (case sensitive). Required,\
\ unless `issueKey` is specified."
in: "query"
name: "projectKey"
schema:
type: "string"
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "[{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},{\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=48&s=48\"\
},\"displayName\":\"Emma Richards\",\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10ac8d82e05b22cc7d4ef5\"\
}]"
schema:
items:
$ref: "#/components/schemas/User"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * `issueKey` or `projectKey` is missing.\n\
\ * `query` or `accountId` is missing.\n * `query` and `accountId` are\
\ provided."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the issue or project is not found."
"429":
description: "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."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Find users with browse permission"
tags:
- "User search"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue:jira"
- "read:project:jira"
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/users:
get:
deprecated: false
description: "Returns a list of all users, including active users, inactive\
\ users and previously deleted users that have an Atlassian account.\n\nPrivacy\
\ controls are applied to the response based on the users' preferences. This\
\ could mean, for example, that the user's email address is hidden. See the\
\ [Profile visibility overview](https://developer.atlassian.com/cloud/jira/platform/profile-visibility/)\
\ for more details.\n\n**[Permissions](#permissions) required:** *Browse users\
\ and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAllUsersDefault"
parameters:
- description: "The index of the first item to return."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of items to return."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "[{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},{\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=48&s=48\"\
},\"displayName\":\"Emma Richards\",\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10ac8d82e05b22cc7d4ef5\"\
}]"
schema:
items:
$ref: "#/components/schemas/User"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"403":
description: "Returned if the user doesn't have the necessary permission."
"409":
description: "Returned if the request takes longer than 10 seconds or is\
\ interrupted."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Get all users default"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/users/search:
get:
deprecated: false
description: "Returns a list of all users, including active users, inactive\
\ users and previously deleted users that have an Atlassian account.\n\nPrivacy\
\ controls are applied to the response based on the users' preferences. This\
\ could mean, for example, that the user's email address is hidden. See the\
\ [Profile visibility overview](https://developer.atlassian.com/cloud/jira/platform/profile-visibility/)\
\ for more details.\n\n**[Permissions](#permissions) required:** *Browse users\
\ and groups* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAllUsers"
parameters:
- description: "The index of the first item to return."
in: "query"
name: "startAt"
schema:
default: 0
format: "int32"
type: "integer"
- description: "The maximum number of items to return."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "[{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\"\
:\"atlassian\",\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"key\":\"\",\"name\":\"\",\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},{\"accountId\":\"5b10ac8d82e05b22cc7d4ef5\",\"accountType\":\"atlassian\"\
,\"active\":false,\"avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/AA-3.png?size=48&s=48\"\
},\"displayName\":\"Emma Richards\",\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10ac8d82e05b22cc7d4ef5\"\
}]"
schema:
items:
$ref: "#/components/schemas/User"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"403":
description: "Returned if the user doesn't have the necessary permission."
"409":
description: "Returned if the request takes longer than 10 seconds or is\
\ interrupted."
security:
- basicAuth: []
- OAuth2:
- "read:jira-user"
- {}
summary: "Get all users"
tags:
- "Users"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-user"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:user:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
state: "Beta"
/rest/api/2/version:
post:
deprecated: false
description: "Creates a project version.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project the version is added to."
operationId: "createVersion"
parameters: []
requestBody:
content:
application/json:
example:
archived: false
description: "An excellent version"
name: "New Version 1"
projectId: 10000
releaseDate: "2010-07-06"
released: true
schema:
$ref: "#/components/schemas/Version"
required: true
responses:
"201":
content:
application/json:
example: "{\"archived\":false,\"description\":\"An excellent version\"\
,\"id\":\"10000\",\"name\":\"New Version 1\",\"project\":\"PXA\",\"\
projectId\":10000,\"releaseDate\":\"2010-07-06\",\"released\":true,\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/version/10000\"\
,\"userReleaseDate\":\"6/Jul/2010\"}"
schema:
$ref: "#/components/schemas/Version"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the project is not found.\n * the user\
\ does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Create version"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project-version:jira"
- "read:project-version:jira"
state: "Beta"
/rest/api/2/version/{id}:
delete:
deprecated: true
description: "Deletes a project version.\n\nDeprecated, use [ Delete and replace\
\ version](#api-rest-api-2-version-id-removeAndSwap-post) that supports swapping\
\ version values in custom fields, in addition to the swapping for `fixVersion`\
\ and `affectedVersion` provided in this resource.\n\nAlternative versions\
\ can be provided to update issues that use the deleted version in `fixVersion`\
\ or `affectedVersion`. If alternatives are not provided, occurrences of `fixVersion`\
\ and `affectedVersion` that contain the deleted version are cleared.\n\n\
This operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that contains the version."
operationId: "deleteVersion"
parameters:
- description: "The ID of the version."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "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."
in: "query"
name: "moveFixIssuesTo"
schema:
type: "string"
- description: "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."
in: "query"
name: "moveAffectedIssuesTo"
schema:
type: "string"
responses:
"204":
description: "Returned if the version is deleted."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if:\n\n * the authentication credentials are incorrect.\n\
\ * the user does not have the required permissions."
"404":
description: "Returned if the version is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Delete version"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:project-version:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a project version.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the version."
operationId: "getVersion"
parameters:
- description: "The ID of the version."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "Use [expand](#expansion) to include additional information about\
\ version in the response. This parameter accepts a comma-separated list.\
\ Expand options include:\n\n * `operations` Returns the list of operations\
\ available for this version.\n * `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*.\n\
\ * `driver` Returns the Atlassian account ID of the version driver.\n\
\ * `approvers` Returns a list containing the Atlassian account IDs of\
\ approvers for this version."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"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/2/version/10000\",\"userReleaseDate\"\
:\"6/Jul/2010\"}"
schema:
$ref: "#/components/schemas/Version"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the version is not found or the user does not\
\ have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get version"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-version:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a project version.\n\nThis operation can be accessed anonymously.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that contains the version."
operationId: "updateVersion"
parameters:
- description: "The ID of the version."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/Version"
required: true
responses:
"200":
content:
application/json:
example: "{\"archived\":false,\"description\":\"An excellent version\"\
,\"id\":\"10000\",\"name\":\"New Version 1\",\"project\":\"PXA\",\"\
projectId\":10000,\"releaseDate\":\"2010-07-06\",\"released\":true,\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/version/10000\"\
,\"userReleaseDate\":\"6/Jul/2010\"}"
schema:
$ref: "#/components/schemas/Version"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * the request is invalid.\n * the user\
\ does not have the required permissions."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
description: "Returned if the version is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Update version"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project-version:jira"
- "read:project-version:jira"
state: "Beta"
/rest/api/2/version/{id}/mergeto/{moveIssuesTo}:
put:
deprecated: false
description: "Merges two project versions. The merge is completed by deleting\
\ the version specified in `id` and replacing any occurrences of its ID in\
\ `fixVersion` with the version ID specified in `moveIssuesTo`.\n\nConsider\
\ using [ Delete and replace version](#api-rest-api-2-version-id-removeAndSwap-post)\
\ instead. This resource supports swapping version values in `fixVersion`,\
\ `affectedVersion`, and custom fields.\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:** *Administer Jira*\
\ [global permission](https://confluence.atlassian.com/x/x4dKLg) or *Administer\
\ Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that contains the version."
operationId: "mergeVersions"
parameters:
- description: "The ID of the version to delete."
in: "path"
name: "id"
required: true
schema:
type: "string"
- description: "The ID of the version to merge into."
in: "path"
name: "moveIssuesTo"
required: true
schema:
type: "string"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the version is deleted."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if:\n\n * the authentication credentials are incorrect\
\ or missing.\n * the user does not have the required permissions."
"404":
description: "Returned if the version to be deleted or the version to merge\
\ to are not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Merge versions"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:project-version:jira"
- "write:project-version:jira"
state: "Beta"
/rest/api/2/version/{id}/move:
post:
deprecated: false
description: "Modifies the version's sequence within the project, which affects\
\ the display order of the versions in Jira.\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:** *Browse projects*\
\ project permission for the project that contains the version."
operationId: "moveVersion"
parameters:
- description: "The ID of the version to be moved."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
after: "https://your-domain.atlassian.net/rest/api/~ver~/version/10000"
schema:
$ref: "#/components/schemas/VersionMoveBean"
required: true
responses:
"200":
content:
application/json:
example: "{\"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/2/version/10000\",\"userReleaseDate\"\
:\"6/Jul/2010\"}"
schema:
$ref: "#/components/schemas/Version"
description: "Returned if the request is successful."
"400":
description: "Returned if:\n\n * no body parameters are provided.\n * \
\ `after` and `position` are provided.\n * `position` is invalid."
"401":
description: "Returned if:\n\n * the authentication credentials are incorrect\
\ or missing\n * the user does not have the required commissions."
"404":
description: "Returned if the version or move after version are not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Move version"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:project-version:jira"
- "read:project-version:jira"
state: "Beta"
/rest/api/2/version/{id}/relatedIssueCounts:
get:
deprecated: false
description: "Returns the following counts for a version:\n\n * Number of issues\
\ where the `fixVersion` is set to the version.\n * Number of issues where\
\ the `affectedVersion` is set to the version.\n * Number of issues where\
\ a version custom field is set to the version.\n\nThis operation can be accessed\
\ anonymously.\n\n**[Permissions](#permissions) required:** *Browse projects*\
\ project permission for the project that contains the version."
operationId: "getVersionRelatedIssues"
parameters:
- description: "The ID of the version."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"customFieldUsage\":[{\"customFieldId\":10000,\"fieldName\"\
:\"Field1\",\"issueCountWithVersionInCustomField\":2},{\"customFieldId\"\
:10010,\"fieldName\":\"Field2\",\"issueCountWithVersionInCustomField\"\
:3}],\"issueCountWithCustomFieldsShowingVersion\":54,\"issuesAffectedCount\"\
:101,\"issuesFixedCount\":23,\"self\":\"https://your-domain.atlassian.net/rest/api/2/version/10000\"\
}"
schema:
$ref: "#/components/schemas/VersionIssueCounts"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect."
"404":
description: "Returned if:\n\n * the version is not found.\n * the user\
\ does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get version's related issues count"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:project-version:jira"
state: "Beta"
/rest/api/2/version/{id}/relatedwork:
get:
deprecated: false
description: "Returns related work items for the given version id.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project containing the version."
operationId: "getRelatedWork"
parameters:
- description: "The ID of the version."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "[{\"category\":\"Design\",\"issueId\":10001,\"relatedWorkId\"\
:\"fabcdef6-7878-1234-beaf-43211234abcd\",\"title\":\"Design link\"\
,\"url\":\"https://www.atlassian.com\"},{\"category\":\"Communications\"\
,\"relatedWorkId\":\"fabcdef6-7878-1234-beaf-43211234abce\",\"title\"\
:\"Chat application\",\"url\":\"https://www.atlassian.com\"},{\"category\"\
:\"External Link\",\"issueId\":10003,\"relatedWorkId\":\"fabcdef6-7878-1234-beaf-43211234abcf\"\
,\"url\":\"https://www.atlassian.com\"}]"
schema:
items:
$ref: "#/components/schemas/VersionRelatedWork"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if the version is not found or the user does not\
\ have the necessary permission."
"500":
description: "Returned if reading related work fails"
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get related work"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-version:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a related work for the given version. You can only create\
\ a generic link type of related works via this API. relatedWorkId will be\
\ auto-generated UUID, that does not need to be provided.\n\nThis operation\
\ can be accessed anonymously.\n\n**[Permissions](#permissions) required:**\
\ *Resolve issues:* and *Edit issues* [Managing project permissions](https://confluence.atlassian.com/adminjiraserver/managing-project-permissions-938847145.html)\
\ for the project that contains the version."
operationId: "createRelatedWork"
parameters:
- in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
category: "Design"
title: "Design link"
url: "https://www.atlassian.com"
schema:
$ref: "#/components/schemas/VersionRelatedWork"
required: true
responses:
"201":
content:
application/json:
example: "{\"category\":\"Design\",\"relatedWorkId\":\"fabcdef6-7878-1234-beaf-43211234abcd\"\
,\"title\":\"Design link\",\"url\":\"https://www.atlassian.com\"}"
schema:
$ref: "#/components/schemas/VersionRelatedWork"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the required permissions."
"404":
description: "Returned if the version is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Create related work"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
state: "Beta"
put:
deprecated: false
description: "Updates the given related work. You can only update generic link\
\ related works via Rest APIs. Any archived version related works can't be\
\ edited.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Resolve issues:* and *Edit issues* [Managing project permissions](https://confluence.atlassian.com/adminjiraserver/managing-project-permissions-938847145.html)\
\ for the project that contains the version."
operationId: "updateRelatedWork"
parameters:
- description: "The ID of the version to update the related work on. For the\
\ related work id, pass it to the input JSON."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
category: "Design"
relatedWorkId: "fabcdef6-7878-1234-beaf-43211234abcd"
title: "Design link"
url: "https://www.atlassian.com"
schema:
$ref: "#/components/schemas/VersionRelatedWork"
required: true
responses:
"200":
content:
application/json:
example: "{\"category\":\"Design\",\"relatedWorkId\":\"fabcdef6-7878-1234-beaf-43211234abcd\"\
,\"title\":\"Design link\",\"url\":\"https://www.atlassian.com\"}"
schema:
$ref: "#/components/schemas/VersionRelatedWork"
description: "Returned if the request is successful together with updated\
\ related work."
"400":
description: "Returned if the request data is invalid"
"401":
description: "Returned if the authentication credentials are incorrect."
"403":
description: "Returned if the user does not have the required permissions."
"404":
description: "Returned if the version or the related work is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Update related work"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
state: "Beta"
/rest/api/2/version/{id}/removeAndSwap:
post:
deprecated: false
description: "Deletes a project version.\n\nAlternative versions can be provided\
\ to update issues that use the deleted version in `fixVersion`, `affectedVersion`,\
\ or any version picker custom fields. If alternatives are not provided, occurrences\
\ of `fixVersion`, `affectedVersion`, and any version picker custom field,\
\ that contain the deleted version, are cleared. Any replacement version must\
\ be in the same project as the version being deleted and cannot be the version\
\ being deleted.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ or *Administer Projects* [project permission](https://confluence.atlassian.com/x/yodKLg)\
\ for the project that contains the version."
operationId: "deleteAndReplaceVersion"
parameters:
- description: "The ID of the version."
in: "path"
name: "id"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DeleteAndReplaceVersionBean"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the version is deleted."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the version to delete is not found.\n\
\ * the user does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
- {}
summary: "Delete and replace version"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:project-version:jira"
- "write:project-version:jira"
state: "Beta"
/rest/api/2/version/{id}/unresolvedIssueCount:
get:
deprecated: false
description: "Returns counts of the issues and unresolved issues for the project\
\ version.\n\nThis operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Browse projects* project permission for the project that contains\
\ the version."
operationId: "getVersionUnresolvedIssues"
parameters:
- description: "The ID of the version."
in: "path"
name: "id"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"issuesCount\":30,\"issuesUnresolvedCount\":23,\"self\"\
:\"https://your-domain.atlassian.net/rest/api/2/version/10000\"}"
schema:
$ref: "#/components/schemas/VersionUnresolvedIssuesCount"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
description: "Returned if:\n\n * the version is not found.\n * the user\
\ does not have the required permissions."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- {}
summary: "Get version's unresolved issues count"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:project-version:jira"
state: "Beta"
/rest/api/2/version/{versionId}/relatedwork/{relatedWorkId}:
delete:
deprecated: false
description: "Deletes the given related work for the given version.\n\nThis\
\ operation can be accessed anonymously.\n\n**[Permissions](#permissions)\
\ required:** *Resolve issues:* and *Edit issues* [Managing project permissions](https://confluence.atlassian.com/adminjiraserver/managing-project-permissions-938847145.html)\
\ for the project that contains the version."
operationId: "deleteRelatedWork"
parameters:
- description: "The ID of the version that the target related work belongs to."
in: "path"
name: "versionId"
required: true
schema:
type: "string"
- description: "The ID of the related work to delete."
in: "path"
name: "relatedWorkId"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the related work is deleted."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if\n\nthe authentication credentials are incorrect."
"403":
description: "Returned if the user does not have the required permissions."
"404":
description: "Returned if the version/related work is not found."
security:
- basicAuth: []
- OAuth2:
- "write:jira-work"
- {}
summary: "Delete related work"
tags:
- "Project versions"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "write:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:issue:jira"
state: "Beta"
/rest/api/2/webhook:
delete:
deprecated: false
description: "Removes webhooks by ID. Only webhooks registered by the calling\
\ app are removed. If webhooks created by other apps are specified, they are\
\ ignored.\n\n**[Permissions](#permissions) required:** Only [Connect](https://developer.atlassian.com/cloud/jira/platform/#connect-apps)\
\ and [OAuth 2.0](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps)\
\ apps can use this operation."
operationId: "deleteWebhookById"
parameters: []
requestBody:
content:
application/json:
example:
webhookIds:
- 10000
- 10001
- 10042
schema:
$ref: "#/components/schemas/ContainerForWebhookIDs"
required: true
responses:
"202":
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the list of webhook IDs is missing."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the caller isn't an app."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- "manage:jira-webhook"
summary: "Delete webhooks by ID"
tags:
- "Webhooks"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
- "manage:jira-webhook"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:webhook:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of the webhooks registered\
\ by the calling app.\n\n**[Permissions](#permissions) required:** Only [Connect](https://developer.atlassian.com/cloud/jira/platform/#connect-apps)\
\ and [OAuth 2.0](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps)\
\ apps can use this operation."
operationId: "getDynamicWebhooksForApp"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 100
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":3,\"startAt\":0,\"total\"\
:3,\"values\":[{\"events\":[\"jira:issue_updated\",\"jira:issue_created\"\
],\"expirationDate\":\"2019-06-01T12:42:30.000+0000\",\"fieldIdsFilter\"\
:[\"summary\",\"customfield_10029\"],\"id\":10000,\"jqlFilter\":\"\
project = PRJ\"},{\"events\":[\"jira:issue_created\"],\"expirationDate\"\
:\"2019-06-01T12:42:30.000+0000\",\"id\":10001,\"jqlFilter\":\"issuetype\
\ = Bug\"},{\"events\":[\"issue_property_set\"],\"expirationDate\"\
:\"2019-06-01T12:42:30.000+0000\",\"id\":10002,\"issuePropertyKeysFilter\"\
:[\"my-issue-property-key\"],\"jqlFilter\":\"project = PRJ\"}]}"
schema:
$ref: "#/components/schemas/PageBeanWebhook"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the caller isn't an app."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- "manage:jira-webhook"
summary: "Get dynamic webhooks for app"
tags:
- "Webhooks"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
- "manage:jira-webhook"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:webhook:jira"
- "read:jql:jira"
state: "Beta"
post:
deprecated: false
description: "Registers webhooks.\n\n**NOTE:** for non-public OAuth apps, webhooks\
\ are delivered only if there is a match between the app owner and the user\
\ who registered a dynamic webhook.\n\n**[Permissions](#permissions) required:**\
\ Only [Connect](https://developer.atlassian.com/cloud/jira/platform/#connect-apps)\
\ and [OAuth 2.0](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps)\
\ apps can use this operation."
operationId: "registerDynamicWebhooks"
parameters: []
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/WebhookRegistrationDetails"
required: true
responses:
"200":
content:
application/json:
example: "{\"webhookRegistrationResult\":[{\"createdWebhookId\":1000},{\"\
errors\":[\"The clause watchCount is unsupported\"]},{\"createdWebhookId\"\
:1001}]}"
schema:
$ref: "#/components/schemas/ContainerForRegisteredWebhooks"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the caller isn't an app."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- "manage:jira-webhook"
summary: "Register dynamic webhooks"
tags:
- "Webhooks"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
- "manage:jira-webhook"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:field:jira"
- "read:project:jira"
- "write:webhook:jira"
state: "Beta"
/rest/api/2/webhook/failed:
get:
deprecated: false
description: "Returns webhooks that have recently failed to be delivered to\
\ the requesting app after the maximum number of retries.\n\nAfter 72 hours\
\ the failure may no longer be returned by this operation.\n\nThe oldest failure\
\ is returned first.\n\nThis method uses a cursor-based pagination. To request\
\ the next page use the failure time of the last webhook on the list as the\
\ `failedAfter` value or use the URL provided in `next`.\n\n**[Permissions](#permissions)\
\ required:** Only [Connect apps](https://developer.atlassian.com/cloud/jira/platform/index/#connect-apps)\
\ can use this operation."
operationId: "getFailedWebhooks"
parameters:
- description: "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."
in: "query"
name: "maxResults"
schema:
format: "int32"
type: "integer"
- description: "The time after which any webhook failure must have occurred\
\ for the record to be returned, expressed as milliseconds since the UNIX\
\ epoch."
in: "query"
name: "after"
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"values\":[{\"id\":\"1\",\"body\":\"{\\\"data\\\":\\\"webhook\
\ data\\\"}\",\"url\":\"https://example.com\",\"failureTime\":1573118132000},{\"\
id\":\"2\",\"url\":\"https://example.com\",\"failureTime\":1573540473480}],\"\
maxResults\":100,\"next\":\"https://your-domain.atlassian.net/rest/api/2/webhook/failed?failedAfter=1573540473480&maxResults=100\"\
}"
schema:
$ref: "#/components/schemas/FailedWebhooks"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "400 response"
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the caller is not a Connect app."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- "manage:jira-webhook"
summary: "Get failed webhooks"
tags:
- "Webhooks"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
- "manage:jira-webhook"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-details:jira"
- "read:webhook:jira"
- "read:comment.property:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-role:jira"
- "read:epic:jira-software"
state: "Beta"
x-experimental: true
/rest/api/2/webhook/refresh:
put:
deprecated: false
description: "Extends the life of webhook. Webhooks registered through the REST\
\ API expire after 30 days. Call this operation to keep them alive.\n\nUnrecognized\
\ webhook IDs (those that are not found or belong to other apps) are ignored.\n\
\n**[Permissions](#permissions) required:** Only [Connect](https://developer.atlassian.com/cloud/jira/platform/#connect-apps)\
\ and [OAuth 2.0](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps)\
\ apps can use this operation."
operationId: "refreshWebhooks"
parameters: []
requestBody:
content:
application/json:
example:
webhookIds:
- 10000
- 10001
- 10042
schema:
$ref: "#/components/schemas/ContainerForWebhookIDs"
required: true
responses:
"200":
content:
application/json:
example: "{\"expirationDate\":\"2019-06-01T12:42:30.000+0000\"}"
schema:
$ref: "#/components/schemas/WebhooksExpirationDate"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the caller isn't an app."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
- "manage:jira-webhook"
summary: "Extend webhook life"
tags:
- "Webhooks"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
- "manage:jira-webhook"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:webhook:jira"
- "read:webhook:jira"
state: "Beta"
/rest/api/2/workflow:
get:
deprecated: true
description: "Returns all workflows in Jira or a workflow. Deprecated, use [Get\
\ workflows paginated](#api-rest-api-2-workflow-search-get).\n\nIf the `workflowName`\
\ parameter is specified, the workflow is returned as an object (not in an\
\ array). Otherwise, an array of workflow objects is returned.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAllWorkflows"
parameters:
- description: "The name of the workflow to be returned. Only one workflow can\
\ be specified."
in: "query"
name: "workflowName"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "[{\"default\":true,\"description\":\"A classic Jira workflow\"\
,\"lastModifiedDate\":\"01-01-2011\",\"lastModifiedUser\":\"admin\"\
,\"lastModifiedUserAccountId\":\"5b10a2844c20165700ede21g\",\"name\"\
:\"classic workflow\",\"steps\":5}]"
schema:
items:
$ref: "#/components/schemas/DeprecatedWorkflow"
type: "array"
description: "Returned if the request is successful."
"401":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get all workflows"
tags:
- "Workflows"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow:jira"
- "read:project:jira"
- "read:project-category:jira"
- "read:avatar:jira"
state: "Beta"
post:
deprecated: true
description: "Creates a workflow. You can define transition rules using the\
\ shapes detailed in the following sections. If no transitional rules are\
\ specified the default system transition rules are used. Note: This only\
\ applies to company-managed scoped workflows. Use [bulk create workflows](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-workflows/#api-rest-api-3-workflows-create-post)\
\ to create both team and company-managed scoped workflows.\n\n#### Conditions\
\ ####\n\nConditions enable workflow rules that govern whether a transition\
\ can execute.\n\n##### Always false condition #####\n\nA condition that always\
\ fails.\n\n {\n \"type\": \"AlwaysFalseCondition\"\n }\n\n#####\
\ Block transition until approval #####\n\nA condition that blocks issue transition\
\ if there is a pending approval.\n\n {\n \"type\": \"BlockInProgressApprovalCondition\"\
\n }\n\n##### Compare number custom field condition #####\n\nA condition\
\ that allows transition if a comparison between a number custom field and\
\ a value is true.\n\n {\n \"type\": \"CompareNumberCFCondition\"\
,\n \"configuration\": {\n \"comparator\": \"=\",\n \
\ \"fieldId\": \"customfield_10029\",\n \"fieldValue\": 2\n \
\ }\n }\n\n * `comparator` One of the supported comparator: `=`, `>`,\
\ and `<`.\n * `fieldId` The custom numeric field ID. Allowed field types:\n\
\ \n * `com.atlassian.jira.plugin.system.customfieldtypes:float`\n\
\ * `com.pyxis.greenhopper.jira:jsw-story-points`\n * `fieldValue` The\
\ value for comparison.\n\n##### Hide from user condition #####\n\nA condition\
\ that hides a transition from users. The transition can only be triggered\
\ from a workflow function or REST API operation.\n\n {\n \"type\"\
: \"RemoteOnlyCondition\"\n }\n\n##### Only assignee condition #####\n\
\nA condition that allows only the assignee to execute a transition.\n\n \
\ {\n \"type\": \"AllowOnlyAssignee\"\n }\n\n##### Only Bamboo\
\ notifications workflow condition (deprecated) #####\n\nA condition that\
\ makes the transition available only to Bamboo build notifications.\n\n \
\ {\n \"type\": \"OnlyBambooNotificationsCondition\"\n }\n\n#####\
\ Only reporter condition #####\n\nA condition that allows only the reporter\
\ to execute a transition.\n\n {\n \"type\": \"AllowOnlyReporter\"\
\n }\n\n##### Permission condition #####\n\nA condition that allows only\
\ users with a permission to execute a transition.\n\n {\n \"type\"\
: \"PermissionCondition\",\n \"configuration\": {\n \"permissionKey\"\
: \"BROWSE_PROJECTS\"\n }\n }\n\n * `permissionKey` The permission\
\ required to perform the transition. Allowed values: [built-in](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-permission-schemes/#built-in-permissions)\
\ or app defined permissions.\n\n##### Previous status condition #####\n\n\
A condition that allows a transition based on whether an issue has or has\
\ not transitioned through a status.\n\n {\n \"type\": \"PreviousStatusCondition\"\
,\n \"configuration\": {\n \"ignoreLoopTransitions\": true,\n\
\ \"includeCurrentStatus\": true,\n \"mostRecentStatusOnly\"\
: true,\n \"reverseCondition\": true,\n \"previousStatus\"\
: {\n \"id\": \"5\"\n }\n }\n }\n\nBy default\
\ this condition allows the transition if the status, as defined by its ID\
\ in the `previousStatus` object, matches any previous issue status, unless:\n\
\n * `ignoreLoopTransitions` is `true`, then loop transitions (from and to\
\ the same status) are ignored.\n * `includeCurrentStatus` is `true`, then\
\ the current issue status is also checked.\n * `mostRecentStatusOnly` is\
\ `true`, then only the issue's preceding status (the one immediately before\
\ the current status) is checked.\n * `reverseCondition` is `true`, then\
\ the status must not be present.\n\n##### Separation of duties condition\
\ #####\n\nA condition that prevents a user to perform the transition, if\
\ the user has already performed a transition on the issue.\n\n {\n \
\ \"type\": \"SeparationOfDutiesCondition\",\n \"configuration\"\
: {\n \"fromStatus\": {\n \"id\": \"5\"\n },\n \
\ \"toStatus\": {\n \"id\": \"6\"\n }\n }\n\
\ }\n\n * `fromStatus` OPTIONAL. An object containing the ID of the source\
\ status of the transition that is blocked. If omitted any transition to `toStatus`\
\ is blocked.\n * `toStatus` An object containing the ID of the target status\
\ of the transition that is blocked.\n\n##### Subtask blocking condition #####\n\
\nA condition that blocks transition on a parent issue if any of its subtasks\
\ are in any of one or more statuses.\n\n {\n \"type\": \"SubTaskBlockingCondition\"\
,\n \"configuration\": {\n \"statuses\": [\n {\n \
\ \"id\": \"1\"\n },\n {\n \"id\"\
: \"3\"\n }\n ]\n }\n }\n\n * `statuses` A list\
\ of objects containing status IDs.\n\n##### User is in any group condition\
\ #####\n\nA condition that allows users belonging to any group from a list\
\ of groups to execute a transition.\n\n {\n \"type\": \"UserInAnyGroupCondition\"\
,\n \"configuration\": {\n \"groups\": [\n \"administrators\"\
,\n \"atlassian-addons-admin\"\n ]\n }\n }\n\n\
\ * `groups` A list of group names.\n\n##### User is in any project role\
\ condition #####\n\nA condition that allows only users with at least one\
\ project roles from a list of project roles to execute a transition.\n\n\
\ {\n \"type\": \"InAnyProjectRoleCondition\",\n \"configuration\"\
: {\n \"projectRoles\": [\n {\n \"id\": \"10002\"\
\n },\n {\n \"id\": \"10003\"\n \
\ },\n {\n \"id\": \"10012\"\n },\n \
\ {\n \"id\": \"10013\"\n }\n ]\n \
\ }\n }\n\n * `projectRoles` A list of objects containing project role\
\ IDs.\n\n##### User is in custom field condition #####\n\nA condition that\
\ allows only users listed in a given custom field to execute the transition.\n\
\n {\n \"type\": \"UserIsInCustomFieldCondition\",\n \"configuration\"\
: {\n \"allowUserInField\": false,\n \"fieldId\": \"customfield_10010\"\
\n }\n }\n\n * `allowUserInField` If `true` only a user who is\
\ listed in `fieldId` can perform the transition, otherwise, only a user who\
\ is not listed in `fieldId` can perform the transition.\n * `fieldId` The\
\ ID of the field containing the list of users.\n\n##### User is in group\
\ condition #####\n\nA condition that allows users belonging to a group to\
\ execute a transition.\n\n {\n \"type\": \"UserInGroupCondition\"\
,\n \"configuration\": {\n \"group\": \"administrators\"\n \
\ }\n }\n\n * `group` The name of the group.\n\n##### User is in\
\ group custom field condition #####\n\nA condition that allows users belonging\
\ to a group specified in a custom field to execute a transition.\n\n {\n\
\ \"type\": \"InGroupCFCondition\",\n \"configuration\": {\n \
\ \"fieldId\": \"customfield_10012\"\n }\n }\n\n * `fieldId`\
\ The ID of the field. Allowed field types:\n \n * `com.atlassian.jira.plugin.system.customfieldtypes:multigrouppicker`\n\
\ * `com.atlassian.jira.plugin.system.customfieldtypes:grouppicker`\n\
\ * `com.atlassian.jira.plugin.system.customfieldtypes:select`\n \
\ * `com.atlassian.jira.plugin.system.customfieldtypes:multiselect`\n \
\ * `com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons`\n \
\ * `com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes`\n\
\ * `com.pyxis.greenhopper.jira:gh-epic-status`\n\n##### User is in project\
\ role condition #####\n\nA condition that allows users with a project role\
\ to execute a transition.\n\n {\n \"type\": \"InProjectRoleCondition\"\
,\n \"configuration\": {\n \"projectRole\": {\n \"\
id\": \"10002\"\n }\n }\n }\n\n * `projectRole` An object\
\ containing the ID of a project role.\n\n##### Value field condition #####\n\
\nA conditions that allows a transition to execute if the value of a field\
\ is equal to a constant value or simply set.\n\n {\n \"type\": \"\
ValueFieldCondition\",\n \"configuration\": {\n \"fieldId\"\
: \"assignee\",\n \"fieldValue\": \"qm:6e1ecee6-8e64-4db6-8c85-916bb3275f51:54b56885-2bd2-4381-8239-78263442520f\"\
,\n \"comparisonType\": \"NUMBER\",\n \"comparator\": \"=\"\
\n }\n }\n\n * `fieldId` The ID of a field used in the comparison.\n\
\ * `fieldValue` The expected value of the field.\n * `comparisonType` The\
\ type of the comparison. Allowed values: `STRING`, `NUMBER`, `DATE`, `DATE_WITHOUT_TIME`,\
\ or `OPTIONID`.\n * `comparator` One of the supported comparator: `>`, `>=`,\
\ `=`, `<=`, `<`, `!=`.\n\n**Notes:**\n\n * If you choose the comparison\
\ type `STRING`, only `=` and `!=` are valid options.\n * You may leave `fieldValue`\
\ empty when comparison type is `!=` to indicate that a value is required\
\ in the field.\n * For date fields without time format values as `yyyy-MM-dd`,\
\ and for those with time as `yyyy-MM-dd HH:mm`. For example, for July 16\
\ 2021 use `2021-07-16`, for 8:05 AM use `2021-07-16 08:05`, and for 4 PM:\
\ `2021-07-16 16:00`.\n\n#### Validators ####\n\nValidators check that any\
\ input made to the transition is valid before the transition is performed.\n\
\n##### Date field validator #####\n\nA validator that compares two dates.\n\
\n {\n \"type\": \"DateFieldValidator\",\n \"configuration\"\
: {\n \"comparator\": \">\",\n \"date1\": \"updated\"\
,\n \"date2\": \"created\",\n \"expression\": \"1d\",\n\
\ \"includeTime\": true\n }\n }\n\n * `comparator`\
\ One of the supported comparator: `>`, `>=`, `=`, `<=`, `<`, or `!=`.\n *\
\ `date1` The date field to validate. Allowed field types:\n \n *\
\ `com.atlassian.jira.plugin.system.customfieldtypes:datepicker`\n *\
\ `com.atlassian.jira.plugin.system.customfieldtypes:datetime`\n * `com.atlassian.jpo:jpo-custom-field-baseline-end`\n\
\ * `com.atlassian.jpo:jpo-custom-field-baseline-start`\n * `duedate`\n\
\ * `created`\n * `updated`\n * `resolutiondate`\n * `date2`\
\ The second date field. Required, if `expression` is not passed. Allowed\
\ field types:\n \n * `com.atlassian.jira.plugin.system.customfieldtypes:datepicker`\n\
\ * `com.atlassian.jira.plugin.system.customfieldtypes:datetime`\n \
\ * `com.atlassian.jpo:jpo-custom-field-baseline-end`\n * `com.atlassian.jpo:jpo-custom-field-baseline-start`\n\
\ * `duedate`\n * `created`\n * `updated`\n * `resolutiondate`\n\
\ * `expression` An expression specifying an offset. Required, if `date2`\
\ is not passed. Offsets are built with a number, with `-` as prefix for the\
\ past, and one of these time units: `d` for day, `w` for week, `m` for month,\
\ or `y` for year. For example, -2d means two days into the past and 1w means\
\ one week into the future. The `now` keyword enables a comparison with the\
\ current date.\n * `includeTime` If `true`, then the time part of the data\
\ is included for the comparison. If the field doesn't have a time part, 00:00:00\
\ is used.\n\n##### Windows date validator #####\n\nA validator that checks\
\ that a date falls on or after a reference date and before or on the reference\
\ date plus a number of days.\n\n {\n \"type\": \"WindowsDateValidator\"\
,\n \"configuration\": {\n \"date1\": \"customfield_10009\"\
,\n \"date2\": \"created\",\n \"windowsDays\": 5\n \
\ }\n }\n\n * `date1` The date field to validate. Allowed field\
\ types:\n \n * `com.atlassian.jira.plugin.system.customfieldtypes:datepicker`\n\
\ * `com.atlassian.jira.plugin.system.customfieldtypes:datetime`\n \
\ * `com.atlassian.jpo:jpo-custom-field-baseline-end`\n * `com.atlassian.jpo:jpo-custom-field-baseline-start`\n\
\ * `duedate`\n * `created`\n * `updated`\n * `resolutiondate`\n\
\ * `date2` The reference date. Allowed field types:\n \n * `com.atlassian.jira.plugin.system.customfieldtypes:datepicker`\n\
\ * `com.atlassian.jira.plugin.system.customfieldtypes:datetime`\n \
\ * `com.atlassian.jpo:jpo-custom-field-baseline-end`\n * `com.atlassian.jpo:jpo-custom-field-baseline-start`\n\
\ * `duedate`\n * `created`\n * `updated`\n * `resolutiondate`\n\
\ * `windowsDays` A positive integer indicating a number of days.\n\n#####\
\ Field required validator #####\n\nA validator that checks fields are not\
\ empty. By default, if a field is not included in the current context it's\
\ ignored and not validated.\n\n {\n \"type\": \"FieldRequiredValidator\"\
,\n \"configuration\": {\n \"ignoreContext\": true,\n\
\ \"errorMessage\": \"Hey\",\n \"fieldIds\": [\n \
\ \"versions\",\n \"customfield_10037\",\n\
\ \"customfield_10003\"\n ]\n }\n \
\ }\n\n * `ignoreContext` If `true`, then the context is ignored and all\
\ the fields are validated.\n * `errorMessage` OPTIONAL. The error message\
\ displayed when one or more fields are empty. A default error message is\
\ shown if an error message is not provided.\n * `fieldIds` The list of fields\
\ to validate.\n\n##### Field changed validator #####\n\nA validator that\
\ checks that a field value is changed. However, this validation can be ignored\
\ for users from a list of groups.\n\n {\n \"type\": \"FieldChangedValidator\"\
,\n \"configuration\": {\n \"fieldId\": \"comment\",\n\
\ \"errorMessage\": \"Hey\",\n \"exemptedGroups\"\
: [\n \"administrators\",\n \"atlassian-addons-admin\"\
\n ]\n }\n }\n\n * `fieldId` The ID of a field.\n\
\ * `errorMessage` OPTIONAL. The error message displayed if the field is\
\ not changed. A default error message is shown if the error message is not\
\ provided.\n * `exemptedGroups` OPTIONAL. The list of groups.\n\n##### Field\
\ has single value validator #####\n\nA validator that checks that a multi-select\
\ field has only one value. Optionally, the validation can ignore values copied\
\ from subtasks.\n\n {\n \"type\": \"FieldHasSingleValueValidator\"\
,\n \"configuration\": {\n \"fieldId\": \"attachment,\n\
\ \"excludeSubtasks\": true\n }\n }\n\n * `fieldId`\
\ The ID of a field.\n * `excludeSubtasks` If `true`, then values copied\
\ from subtasks are ignored.\n\n##### Parent status validator #####\n\nA validator\
\ that checks the status of the parent issue of a subtask. Ìf the issue is\
\ not a subtask, no validation is performed.\n\n {\n \"type\":\
\ \"ParentStatusValidator\",\n \"configuration\": {\n \
\ \"parentStatuses\": [\n {\n \"id\":\"\
1\"\n },\n {\n \"id\":\"\
2\"\n }\n ]\n }\n }\n\n * `parentStatus`\
\ The list of required parent issue statuses.\n\n##### Permission validator\
\ #####\n\nA validator that checks the user has a permission.\n\n {\n \
\ \"type\": \"PermissionValidator\",\n \"configuration\": {\n \
\ \"permissionKey\": \"ADMINISTER_PROJECTS\"\n }\n }\n\n\
\ * `permissionKey` The permission required to perform the transition. Allowed\
\ values: [built-in](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-permission-schemes/#built-in-permissions)\
\ or app defined permissions.\n\n##### Previous status validator #####\n\n\
A validator that checks if the issue has held a status.\n\n {\n \"\
type\": \"PreviousStatusValidator\",\n \"configuration\": {\n \
\ \"mostRecentStatusOnly\": false,\n \"previousStatus\": {\n\
\ \"id\": \"15\"\n }\n }\n }\n\n * `mostRecentStatusOnly`\
\ If `true`, then only the issue's preceding status (the one immediately before\
\ the current status) is checked.\n * `previousStatus` An object containing\
\ the ID of an issue status.\n\n##### Regular expression validator #####\n\
\nA validator that checks the content of a field against a regular expression.\n\
\n {\n \"type\": \"RegexpFieldValidator\",\n \"configuration\"\
: {\n \"regExp\": \"[0-9]\",\n \"fieldId\": \"customfield_10029\"\
\n }\n }\n\n * `regExp`A regular expression.\n * `fieldId` The\
\ ID of a field. Allowed field types:\n \n * `com.atlassian.jira.plugin.system.customfieldtypes:select`\n\
\ * `com.atlassian.jira.plugin.system.customfieldtypes:multiselect`\n\
\ * `com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons`\n\
\ * `com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes`\n\
\ * `com.atlassian.jira.plugin.system.customfieldtypes:textarea`\n \
\ * `com.atlassian.jira.plugin.system.customfieldtypes:textfield`\n \
\ * `com.atlassian.jira.plugin.system.customfieldtypes:url`\n * `com.atlassian.jira.plugin.system.customfieldtypes:float`\n\
\ * `com.pyxis.greenhopper.jira:jsw-story-points`\n * `com.pyxis.greenhopper.jira:gh-epic-status`\n\
\ * `description`\n * `summary`\n\n##### User permission validator\
\ #####\n\nA validator that checks if a user has a permission. Obsolete. You\
\ may encounter this validator when getting transition rules and can pass\
\ it when updating or creating rules, for example, when you want to duplicate\
\ the rules from a workflow on a new workflow.\n\n {\n \"type\"\
: \"UserPermissionValidator\",\n \"configuration\": {\n \
\ \"permissionKey\": \"BROWSE_PROJECTS\",\n \"nullAllowed\"\
: false,\n \"username\": \"TestUser\"\n }\n }\n\n\
\ * `permissionKey` The permission to be validated. Allowed values: [built-in](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-permission-schemes/#built-in-permissions)\
\ or app defined permissions.\n * `nullAllowed` If `true`, allows the transition\
\ when `username` is empty.\n * `username` The username to validate against\
\ the `permissionKey`.\n\n#### Post functions ####\n\nPost functions carry\
\ out any additional processing required after a Jira workflow transition\
\ is executed.\n\n##### Fire issue event function #####\n\nA post function\
\ that fires an event that is processed by the listeners.\n\n {\n \
\ \"type\": \"FireIssueEventFunction\",\n \"configuration\": {\n \
\ \"event\": {\n \"id\":\"1\"\n }\n }\n \
\ }\n\n**Note:** If provided, this post function overrides the default `FireIssueEventFunction`.\
\ Can be included once in a transition.\n\n * `event` An object containing\
\ the ID of the issue event.\n\n##### Update issue status #####\n\nA post\
\ function that sets issue status to the linked status of the destination\
\ workflow status.\n\n {\n \"type\": \"UpdateIssueStatusFunction\"\
\n }\n\n**Note:** This post function is a default function in global and\
\ directed transitions. It can only be added to the initial transition and\
\ can only be added once.\n\n##### Create comment #####\n\nA post function\
\ that adds a comment entered during the transition to an issue.\n\n {\n\
\ \"type\": \"CreateCommentFunction\"\n }\n\n**Note:** This post\
\ function is a default function in global and directed transitions. It can\
\ only be added to the initial transition and can only be added once.\n\n\
##### Store issue #####\n\nA post function that stores updates to an issue.\n\
\n {\n \"type\": \"IssueStoreFunction\"\n }\n\n**Note:** This\
\ post function can only be added to the initial transition and can only be\
\ added once.\n\n##### Assign to current user function #####\n\nA post function\
\ that assigns the issue to the current user if the current user has the `ASSIGNABLE_USER`\
\ permission.\n\n {\n \"type\": \"AssignToCurrentUserFunction\"\
\n }\n\n**Note:** This post function can be included once in a transition.\n\
\n##### Assign to lead function #####\n\nA post function that assigns the\
\ issue to the project or component lead developer.\n\n {\n \"\
type\": \"AssignToLeadFunction\"\n }\n\n**Note:** This post function can\
\ be included once in a transition.\n\n##### Assign to reporter function #####\n\
\nA post function that assigns the issue to the reporter.\n\n {\n \
\ \"type\": \"AssignToReporterFunction\"\n }\n\n**Note:** This post\
\ function can be included once in a transition.\n\n##### Clear field value\
\ function #####\n\nA post function that clears the value from a field.\n\n\
\ {\n \"type\": \"ClearFieldValuePostFunction\",\n \"configuration\"\
: {\n \"fieldId\": \"assignee\"\n }\n }\n\n * `fieldId`\
\ The ID of the field.\n\n##### Copy value from other field function #####\n\
\nA post function that copies the value of one field to another, either within\
\ an issue or from parent to subtask.\n\n {\n \"type\": \"CopyValueFromOtherFieldPostFunction\"\
,\n \"configuration\": {\n \"sourceFieldId\": \"assignee\",\n\
\ \"destinationFieldId\": \"creator\",\n \"copyType\": \"\
same\"\n }\n }\n\n * `sourceFieldId` The ID of the source field.\n\
\ * `destinationFieldId` The ID of the destination field.\n * `copyType`\
\ Use `same` to copy the value from a field inside the issue, or `parent`\
\ to copy the value from the parent issue.\n\n##### Create Crucible review\
\ workflow function (deprecated) #####\n\nA post function that creates a Crucible\
\ review for all unreviewed code for the issue.\n\n {\n \"type\"\
: \"CreateCrucibleReviewWorkflowFunction\"\n }\n\n**Note:** This post\
\ function can be included once in a transition.\n\n##### Set issue security\
\ level based on user's project role function #####\n\nA post function that\
\ sets the issue's security level if the current user has a project role.\n\
\n {\n \"type\": \"SetIssueSecurityFromRoleFunction\",\n \"\
configuration\": {\n \"projectRole\": {\n \"id\":\"10002\"\
\n },\n \"issueSecurityLevel\": {\n \"id\":\"\
10000\"\n }\n }\n }\n\n * `projectRole` An object containing\
\ the ID of the project role.\n * `issueSecurityLevel` OPTIONAL. The object\
\ containing the ID of the security level. If not passed, then the security\
\ level is set to `none`.\n\n##### Trigger a webhook function #####\n\nA post\
\ function that triggers a webhook.\n\n {\n \"type\": \"TriggerWebhookFunction\"\
,\n \"configuration\": {\n \"webhook\": {\n \"id\"\
: \"1\"\n }\n }\n }\n\n * `webhook` An object containing\
\ the ID of the webhook listener to trigger.\n\n##### Update issue custom\
\ field function #####\n\nA post function that updates the content of an issue\
\ custom field.\n\n {\n \"type\": \"UpdateIssueCustomFieldPostFunction\"\
,\n \"configuration\": {\n \"mode\": \"append\",\n \"\
fieldId\": \"customfield_10003\",\n \"fieldValue\": \"yikes\"\n \
\ }\n }\n\n * `mode` Use `replace` to override the field content\
\ with `fieldValue` or `append` to add `fieldValue` to the end of the field\
\ content.\n * `fieldId` The ID of the field.\n * `fieldValue` The update\
\ content.\n\n##### Update issue field function #####\n\nA post function that\
\ updates a simple issue field.\n\n {\n \"type\": \"UpdateIssueFieldFunction\"\
,\n \"configuration\": {\n \"fieldId\": \"assignee\",\n \
\ \"fieldValue\": \"5f0c277e70b8a90025a00776\"\n }\n }\n\n *\
\ `fieldId` The ID of the field. Allowed field types:\n \n * `assignee`\n\
\ * `description`\n * `environment`\n * `priority`\n *\
\ `resolution`\n * `summary`\n * `timeoriginalestimate`\n *\
\ `timeestimate`\n * `timespent`\n * `fieldValue` The update value.\n\
\ * If the `fieldId` is `assignee`, the `fieldValue` should be one of these\
\ values:\n \n * an account ID.\n * `automatic`.\n * a blank\
\ string, which sets the value to `unassigned`.\n\n#### Connect rules ####\n\
\nConnect rules are conditions, validators, and post functions of a transition\
\ that are registered by Connect apps. To create a rule registered by the\
\ app, the app must be enabled and the rule's module must exist.\n\n {\n\
\ \"type\": \"appKey__moduleKey\",\n \"configuration\": {\n \
\ \"value\":\"{\\\"isValid\\\":\\\"true\\\"}\"\n }\n }\n\n\
\ * `type` A Connect rule key in a form of `appKey__moduleKey`.\n * `value`\
\ The stringified JSON configuration of a Connect rule.\n\n#### Forge rules\
\ ####\n\nForge transition rules are not yet supported.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createWorkflow"
parameters: []
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/CreateWorkflowDetails"
description: "The workflow details."
required: true
responses:
"201":
content:
application/json:
example: "{\"entityId\":\"d7178e8d-bf6c-4c0c-9e90-758a0b965b67\",\"\
name\":\"Workflow 1\"}"
schema:
$ref: "#/components/schemas/WorkflowIDs"
description: "Returned if the workflow is created."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"The request body parameters are missing.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ the workflow configuration.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Status with ID 10000 was not found\"\
],\"errors\":{}}"
description: "Returned if one or more statuses is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create workflow"
tags:
- "Workflows"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow:jira"
- "read:workflow:jira"
state: "Beta"
/rest/api/2/workflow/rule/config:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of workflows with transition\
\ rules. The workflows can be filtered to return only those containing workflow\
\ transition rules:\n\n * of one or more transition rule types, such as [workflow\
\ post functions](https://developer.atlassian.com/cloud/jira/platform/modules/workflow-post-function/).\n\
\ * matching one or more transition rule keys.\n\nOnly workflows containing\
\ transition rules created by the calling [Connect](https://developer.atlassian.com/cloud/jira/platform/index/#connect-apps)\
\ or [Forge](https://developer.atlassian.com/cloud/jira/platform/index/#forge-apps)\
\ app are returned.\n\nDue to server-side optimizations, workflows with an\
\ empty list of rules may be returned; these workflows can be ignored.\n\n\
**[Permissions](#permissions) required:** Only [Connect](https://developer.atlassian.com/cloud/jira/platform/index/#connect-apps)\
\ or [Forge](https://developer.atlassian.com/cloud/jira/platform/index/#forge-apps)\
\ apps can use this operation."
operationId: "getWorkflowTransitionRuleConfigurations"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 10
format: "int32"
maximum: 50
type: "integer"
- description: "The types of the transition rules to return."
in: "query"
name: "types"
required: true
schema:
items:
default: ""
enum:
- "postfunction"
- "condition"
- "validator"
type: "string"
type: "array"
uniqueItems: true
- description: "The transition rule class keys, as defined in the Connect or\
\ the Forge app descriptor, of the transition rules to return."
in: "query"
name: "keys"
schema:
items:
default: ""
type: "string"
type: "array"
uniqueItems: true
- description: "The list of workflow names to filter by."
in: "query"
name: "workflowNames"
schema:
items:
default: ""
maxLength: 50
type: "string"
maxLength: 50
type: "array"
uniqueItems: true
- description: "The list of `tags` to filter by."
in: "query"
name: "withTags"
schema:
items:
default: ""
maxLength: 20
type: "string"
maxLength: 20
type: "array"
uniqueItems: true
- description: "Whether draft or published workflows are returned. If not provided,\
\ both workflow types are returned."
in: "query"
name: "draft"
schema:
type: "boolean"
- description: "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."
in: "query"
name: "expand"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":10,\"startAt\":0,\"total\"\
:1,\"values\":[{\"workflowId\":{\"name\":\"My Workflow name\",\"draft\"\
:false},\"postFunctions\":[{\"id\":\"b4d6cbdc-59f5-11e9-8647-d663bd873d93\"\
,\"key\":\"postfunction-key\",\"configuration\":{\"value\":\"{ \\\"\
color\\\": \\\"red\\\" }\",\"disabled\":false,\"tag\":\"Sample tag\"\
},\"transition\":{\"id\":1,\"name\":\"Open\"}}],\"conditions\":[{\"\
id\":\"d663bd873d93-59f5-11e9-8647-b4d6cbdc\",\"key\":\"condition-key\"\
,\"configuration\":{\"value\":\"{ \\\"size\\\": \\\"medium\\\" }\"\
,\"disabled\":false,\"tag\":\"Another tag\"},\"transition\":{\"id\"\
:1,\"name\":\"Open\"}}],\"validators\":[{\"id\":\"11e9-59f5-b4d6cbdc-8647-d663bd873d93\"\
,\"key\":\"validator-key\",\"configuration\":{\"value\":\"\\\"{ \\\
\\\\\"shape\\\\\\\": \\\\\\\"square\\\\\\\" }\\\"\",\"disabled\":false},\"\
transition\":{\"id\":1,\"name\":\"Open\"}}]}]}"
schema:
$ref: "#/components/schemas/PageBeanWorkflowTransitionRules"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the caller is not a Connect or Forge app."
"404":
description: "Returned if any transition rule type is not supported."
"503":
description: "Returned if we encounter a problem while trying to access\
\ the required data."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get workflow transition rule configurations"
tags:
- "Workflow transition rules"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow:jira"
state: "Beta"
put:
deprecated: false
description: "Updates configuration of workflow transition rules. The following\
\ rule types are supported:\n\n * [post functions](https://developer.atlassian.com/cloud/jira/platform/modules/workflow-post-function/)\n\
\ * [conditions](https://developer.atlassian.com/cloud/jira/platform/modules/workflow-condition/)\n\
\ * [validators](https://developer.atlassian.com/cloud/jira/platform/modules/workflow-validator/)\n\
\nOnly rules created by the calling [Connect](https://developer.atlassian.com/cloud/jira/platform/index/#connect-apps)\
\ or [Forge](https://developer.atlassian.com/cloud/jira/platform/index/#forge-apps)\
\ app can be updated.\n\nTo assist with app migration, this operation can\
\ be used to:\n\n * Disable a rule.\n * Add a `tag`. Use this to filter\
\ rules in the [Get workflow transition rule configurations](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-workflow-transition-rules/#api-rest-api-3-workflow-rule-config-get).\n\
\nRules are enabled if the `disabled` parameter is not provided.\n\n**[Permissions](#permissions)\
\ required:** Only [Connect](https://developer.atlassian.com/cloud/jira/platform/index/#connect-apps)\
\ or [Forge](https://developer.atlassian.com/cloud/jira/platform/index/#forge-apps)\
\ apps can use this operation."
operationId: "updateWorkflowTransitionRuleConfigurations"
parameters: []
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/WorkflowTransitionRulesUpdate"
required: true
responses:
"200":
content:
application/json:
example: "{\"updateResults\":[{\"workflowId\":{\"name\":\"Workflow with\
\ one rule not updated\",\"draft\":false},\"ruleUpdateErrors\":{\"\
example-rule-id\":[\"The rule with this id does not exist: example-rule-id\"\
]},\"updateErrors\":[]},{\"workflowId\":{\"name\":\"Workflow with\
\ all rules successfully updated\",\"draft\":true},\"ruleUpdateErrors\"\
:{},\"updateErrors\":[]},{\"workflowId\":{\"name\":\"Non-existing\
\ workflow\",\"draft\":false},\"ruleUpdateErrors\":{},\"updateErrors\"\
:[\"Workflow not found: WorkflowIdBean{name=Non-existing workflow,\
\ draft=false}\"]}]}"
schema:
$ref: "#/components/schemas/WorkflowTransitionRulesUpdateErrors"
description: "Returned if the request is successful."
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the caller is not a Connect or Forge app."
"503":
description: "Returned if we encounter a problem while trying to access\
\ the required data."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update workflow transition rule configurations"
tags:
- "Workflow transition rules"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow:jira"
state: "Beta"
/rest/api/2/workflow/rule/config/delete:
put:
deprecated: false
description: "Deletes workflow transition rules from one or more workflows.\
\ These rule types are supported:\n\n * [post functions](https://developer.atlassian.com/cloud/jira/platform/modules/workflow-post-function/)\n\
\ * [conditions](https://developer.atlassian.com/cloud/jira/platform/modules/workflow-condition/)\n\
\ * [validators](https://developer.atlassian.com/cloud/jira/platform/modules/workflow-validator/)\n\
\nOnly rules created by the calling Connect app can be deleted.\n\n**[Permissions](#permissions)\
\ required:** Only Connect apps can use this operation."
operationId: "deleteWorkflowTransitionRuleConfigurations"
parameters: []
requestBody:
content:
application/json:
example:
workflows:
- workflowId:
draft: false
name: "Internal support workflow"
workflowRuleIds:
- "b4d6cbdc-59f5-11e9-8647-d663bd873d93"
- "d663bd873d93-59f5-11e9-8647-b4d6cbdc"
- "11e9-59f5-b4d6cbdc-8647-d663bd873d93"
schema:
$ref: "#/components/schemas/WorkflowsWithTransitionRulesDetails"
required: true
responses:
"200":
content:
application/json:
example: "{\"updateResults\":[{\"workflowId\":{\"name\":\"Workflow with\
\ one rule not updated\",\"draft\":false},\"ruleUpdateErrors\":{\"\
example-rule-id\":[\"The rule with this id does not exist: example-rule-id\"\
]},\"updateErrors\":[]},{\"workflowId\":{\"name\":\"Workflow with\
\ all rules successfully updated\",\"draft\":true},\"ruleUpdateErrors\"\
:{},\"updateErrors\":[]},{\"workflowId\":{\"name\":\"Non-existing\
\ workflow\",\"draft\":false},\"ruleUpdateErrors\":{},\"updateErrors\"\
:[\"Workflow not found: WorkflowIdBean{name=Non-existing workflow,\
\ draft=false}\"]}]}"
schema:
$ref: "#/components/schemas/WorkflowTransitionRulesUpdateErrors"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Jira Administration permission is required\
\ to access workflow configuration.\"],\"errors\":{},\"httpStatusCode\"\
:{\"empty\":false,\"present\":true}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the request is invalid."
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the caller is not a Connect app."
security:
- basicAuth: []
summary: "Delete workflow transition rule configurations"
tags:
- "Workflow transition rules"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/api/2/workflow/search:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of published classic workflows.\
\ When workflow names are specified, details of those workflows are returned.\
\ Otherwise, all published classic workflows are returned.\n\nThis operation\
\ does not return next-gen workflows.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getWorkflowsPaginated"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
- description: "The name of a workflow to return. To include multiple workflows,\
\ provide an ampersand-separated list. For example, `workflowName=name1&workflowName=name2`."
in: "query"
name: "workflowName"
schema:
items:
default: ""
type: "string"
type: "array"
uniqueItems: true
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `transitions` For each workflow, returns information about\
\ the transitions inside the workflow.\n * `transitions.rules` For each\
\ workflow transition, returns information about its rules. Transitions\
\ are included automatically if this expand is requested.\n * `transitions.properties`\
\ For each workflow transition, returns information about its properties.\
\ Transitions are included automatically if this expand is requested.\n\
\ * `statuses` For each workflow, returns information about the statuses\
\ inside the workflow.\n * `statuses.properties` For each workflow status,\
\ returns information about its properties. Statuses are included automatically\
\ if this expand is requested.\n * `default` For each workflow, returns\
\ information about whether this is the default workflow.\n * `schemes`\
\ For each workflow, returns information about the workflow schemes the\
\ workflow is assigned to.\n * `projects` For each workflow, returns information\
\ about the projects the workflow is assigned to, through workflow schemes.\n\
\ * `hasDraftWorkflow` For each workflow, returns information about whether\
\ the workflow has a draft version.\n * `operations` For each workflow,\
\ returns information about the actions that can be undertaken on the workflow."
in: "query"
name: "expand"
schema:
type: "string"
- description: "String used to perform a case-insensitive partial match with\
\ workflow name."
in: "query"
name: "queryString"
schema:
type: "string"
- description: "[Order](#ordering) the results by a field:\n\n * `name` Sorts\
\ by workflow name.\n * `created` Sorts by create time.\n * `updated`\
\ Sorts by update time."
in: "query"
name: "orderBy"
schema:
enum:
- "name"
- "-name"
- "+name"
- "created"
- "-created"
- "+created"
- "updated"
- "+updated"
- "-updated"
type: "string"
- description: "Filters active and inactive workflows."
in: "query"
name: "isActive"
schema:
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"isLast\":false,\"maxResults\":1,\"startAt\":0,\"total\"\
:5,\"values\":[{\"id\":{\"name\":\"SCRUM Workflow\",\"entityId\":\"\
5ed312c5-f7a6-4a78-a1f6-8ff7f307d063\"},\"description\":\"A workflow\
\ used for Software projects in the SCRUM methodology\",\"transitions\"\
:[{\"id\":\"5\",\"name\":\"In Progress\",\"description\":\"Start working\
\ on the issue.\",\"from\":[\"10\",\"13\"],\"to\":\"14\",\"type\"\
:\"directed\",\"screen\":{\"id\":\"10000\",\"name\":\"Issue screen\"\
},\"rules\":{\"conditionsTree\":{\"nodeType\":\"compound\",\"operator\"\
:\"AND\",\"conditions\":[{\"nodeType\":\"simple\",\"type\":\"PermissionCondition\"\
,\"configuration\":{\"permissionKey\":\"WORK_ON_ISSUES\"}},{\"nodeType\"\
:\"simple\",\"type\":\"PermissionCondition\",\"configuration\":{\"\
permissionKey\":\"RESOLVE_ISSUES\"}}]},\"validators\":[{\"type\":\"\
FieldRequiredValidator\",\"configuration\":{\"errorMessage\":\"A custom\
\ error message\",\"fields\":[\"description\",\"assignee\"],\"ignoreContext\"\
:true}}],\"postFunctions\":[{\"type\":\"UpdateIssueStatusFunction\"\
},{\"type\":\"GenerateChangeHistoryFunction\"},{\"type\":\"FireIssueEventFunction\"\
}]},\"properties\":{\"jira.fieldscreen.id\":1}}],\"statuses\":[{\"\
id\":\"3\",\"name\":\"In Progress\",\"properties\":{\"issueEditable\"\
:false,\"jira.issue.editable\":\"false\"}}],\"isDefault\":false,\"\
schemes\":[{\"id\":\"10001\",\"name\":\"Test Workflow Scheme\"}],\"\
projects\":[{\"avatarUrls\":{\"16x16\":\"secure/projectavatar?size=xsmall&pid=10000\"\
,\"24x24\":\"secure/projectavatar?size=small&pid=10000\",\"32x32\"\
:\"secure/projectavatar?size=medium&pid=10000\",\"48x48\":\"secure/projectavatar?size=large&pid=10000\"\
},\"id\":\"10000\",\"key\":\"EX\",\"name\":\"Example\",\"projectCategory\"\
:{\"description\":\"Project category description\",\"id\":\"10000\"\
,\"name\":\"A project category\"},\"projectTypeKey\":\"ProjectTypeKey{key='software'}\"\
,\"self\":\"project/EX\",\"simplified\":false}],\"hasDraftWorkflow\"\
:true,\"operations\":{\"canEdit\":true,\"canDelete\":false},\"created\"\
:\"2018-12-10T16:30:15.000+0000\",\"updated\":\"2018-12-11T11:45:13.000+0000\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanWorkflow"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ workflows.\"],\"errors\":{}}"
schema:
$ref: "#/components/schemas/ErrorCollection"
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-project"
summary: "Get workflows paginated"
tags:
- "Workflows"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-project"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
- "read:issue-security-level:jira"
- "read:project-role:jira"
- "read:screen:jira"
- "read:status:jira"
- "read:user:jira"
- "read:workflow:jira"
- "read:webhook:jira"
- "read:avatar:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/workflow/transitions/{transitionId}/properties:
delete:
deprecated: false
description: "Deletes a property from a workflow transition. Transition properties\
\ are used to change the behavior of a transition. For more information, see\
\ [Transition properties](https://confluence.atlassian.com/x/zIhKLg#Advancedworkflowconfiguration-transitionproperties)\
\ and [Workflow properties](https://confluence.atlassian.com/x/JYlKLg).\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteWorkflowTransitionProperty"
parameters:
- description: "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."
in: "path"
name: "transitionId"
required: true
schema:
format: "int64"
type: "integer"
- description: "The name of the transition property to delete, also known as\
\ the name of the property."
in: "query"
name: "key"
required: true
schema:
type: "string"
- description: "The name of the workflow that the transition belongs to."
in: "query"
name: "workflowName"
required: true
schema:
type: "string"
- description: "The workflow status. Set to `live` for inactive workflows or\
\ `draft` for draft workflows. Active workflows cannot be edited."
in: "query"
name: "workflowMode"
schema:
enum:
- "live"
- "draft"
type: "string"
responses:
"200":
description: "200 response"
"304":
description: "Returned if no changes were made by the request. For example,\
\ trying to delete a property that cannot be found."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow transition is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete workflow transition property"
tags:
- "Workflow transition properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:workflow.property:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the properties on a workflow transition. Transition properties\
\ are used to change the behavior of a transition. For more information, see\
\ [Transition properties](https://confluence.atlassian.com/x/zIhKLg#Advancedworkflowconfiguration-transitionproperties)\
\ and [Workflow properties](https://confluence.atlassian.com/x/JYlKLg).\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getWorkflowTransitionProperties"
parameters:
- description: "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."
in: "path"
name: "transitionId"
required: true
schema:
format: "int64"
type: "integer"
- description: "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*."
in: "query"
name: "includeReservedKeys"
schema:
default: false
type: "boolean"
- description: "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."
in: "query"
name: "key"
schema:
type: "string"
- description: "The name of the workflow that the transition belongs to."
in: "query"
name: "workflowName"
required: true
schema:
type: "string"
- description: "The workflow status. Set to *live* for active and inactive workflows,\
\ or *draft* for draft workflows."
in: "query"
name: "workflowMode"
schema:
default: "live"
enum:
- "live"
- "draft"
type: "string"
responses:
"200":
content:
application/json:
example: "[{\"id\":\"jira.i18n.title\",\"key\":\"jira.i18n.title\",\"\
value\":\"some.title\"},{\"id\":\"jira.permission\",\"key\":\"jira.permission\"\
,\"value\":\"createissue\"}]"
schema:
$ref: "#/components/schemas/WorkflowTransitionProperty"
description: "200 response"
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have admin permission"
"404":
description: "Returned if the workflow transition or property is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get workflow transition properties"
tags:
- "Workflow transition properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow.property:jira"
state: "Beta"
post:
deprecated: false
description: "Adds a property to a workflow transition. Transition properties\
\ are used to change the behavior of a transition. For more information, see\
\ [Transition properties](https://confluence.atlassian.com/x/zIhKLg#Advancedworkflowconfiguration-transitionproperties)\
\ and [Workflow properties](https://confluence.atlassian.com/x/JYlKLg).\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createWorkflowTransitionProperty"
parameters:
- description: "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."
in: "path"
name: "transitionId"
required: true
schema:
format: "int64"
type: "integer"
- description: "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."
in: "query"
name: "key"
required: true
schema:
type: "string"
- description: "The name of the workflow that the transition belongs to."
in: "query"
name: "workflowName"
required: true
schema:
type: "string"
- description: "The workflow status. Set to *live* for inactive workflows or\
\ *draft* for draft workflows. Active workflows cannot be edited."
in: "query"
name: "workflowMode"
schema:
default: "live"
enum:
- "live"
- "draft"
type: "string"
requestBody:
content:
application/json:
example:
value: "createissue"
schema:
$ref: "#/components/schemas/WorkflowTransitionProperty"
required: true
responses:
"200":
content:
application/json:
example: "{\"key\":\"jira.i18n.title\",\"value\":\"some.title\",\"id\"\
:\"jira.i18n.title\"}"
schema:
$ref: "#/components/schemas/WorkflowTransitionProperty"
description: "200 response"
"400":
description: "Returned if a workflow property with the same key is present\
\ on the transition."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow transition is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create workflow transition property"
tags:
- "Workflow transition properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow.property:jira"
- "read:workflow.property:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a workflow transition by changing the property value.\
\ Trying to update a property that does not exist results in a new property\
\ being added to the transition. Transition properties are used to change\
\ the behavior of a transition. For more information, see [Transition properties](https://confluence.atlassian.com/x/zIhKLg#Advancedworkflowconfiguration-transitionproperties)\
\ and [Workflow properties](https://confluence.atlassian.com/x/JYlKLg).\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateWorkflowTransitionProperty"
parameters:
- description: "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."
in: "path"
name: "transitionId"
required: true
schema:
format: "int64"
type: "integer"
- description: "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."
in: "query"
name: "key"
required: true
schema:
type: "string"
- description: "The name of the workflow that the transition belongs to."
in: "query"
name: "workflowName"
required: true
schema:
type: "string"
- description: "The workflow status. Set to `live` for inactive workflows or\
\ `draft` for draft workflows. Active workflows cannot be edited."
in: "query"
name: "workflowMode"
schema:
enum:
- "live"
- "draft"
type: "string"
requestBody:
content:
application/json:
example:
value: "createissue"
schema:
$ref: "#/components/schemas/WorkflowTransitionProperty"
required: true
responses:
"200":
content:
application/json:
example: "{\"key\":\"jira.i18n.title\",\"value\":\"some.title\",\"id\"\
:\"jira.i18n.title\"}"
schema:
$ref: "#/components/schemas/WorkflowTransitionProperty"
description: "200 response"
"304":
description: "Returned if no changes were made by the request. For example,\
\ attempting to update a property with its current value."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow transition is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update workflow transition property"
tags:
- "Workflow transition properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow.property:jira"
- "read:workflow.property:jira"
state: "Beta"
/rest/api/2/workflow/{entityId}:
delete:
deprecated: false
description: "Deletes a workflow.\n\nThe workflow cannot be deleted if it is:\n\
\n * an active workflow.\n * a system workflow.\n * associated with any\
\ workflow scheme.\n * associated with any draft workflow scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteInactiveWorkflow"
parameters:
- description: "The entity ID of the workflow."
in: "path"
name: "entityId"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the workflow is deleted."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Cannot delete an active workflow.\"\
],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ the workflow configuration.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The workflow was not found.\"],\"errors\"\
:{}}"
description: "Returned if the workflow is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete inactive workflow"
tags:
- "Workflows"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:workflow:jira"
state: "Beta"
x-experimental: true
/rest/api/2/workflows:
post:
deprecated: false
description: "Returns a list of workflows and related statuses by providing\
\ workflow names, workflow IDs, or project and issue types.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer Jira* global permission to access all, including\
\ project-scoped, workflows\n * At least one of the *Administer projects*\
\ and *View (read-only) workflow* project permissions to access project-scoped\
\ workflows"
operationId: "readWorkflows"
parameters:
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `workflows.usages` Returns the project and issue types\
\ that each workflow is associated with.\n * `statuses.usages` Returns\
\ the project and issue types that each status is associated with."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
projectAndIssueTypes: []
workflowIds: []
workflowNames:
- "Workflow 1"
- "Workflow 2"
schema:
$ref: "#/components/schemas/WorkflowReadRequest"
required: true
responses:
"200":
content:
application/json:
example: "{\"statuses\":[{\"description\":\"\",\"id\":\"10001\",\"name\"\
:\"To Do\",\"scope\":{\"type\":\"GLOBAL\"},\"statusCategory\":\"TODO\"\
,\"statusReference\":\"10001\",\"usages\":[]},{\"description\":\"\"\
,\"id\":\"10002\",\"name\":\"In Progress\",\"scope\":{\"type\":\"\
GLOBAL\"},\"statusCategory\":\"IN_PROGRESS\",\"statusReference\":\"\
10002\",\"usages\":[]},{\"description\":\"\",\"id\":\"10003\",\"name\"\
:\"Done\",\"scope\":{\"type\":\"GLOBAL\"},\"statusCategory\":\"DONE\"\
,\"statusReference\":\"10003\",\"usages\":[]}],\"workflows\":[{\"\
description\":\"\",\"id\":\"b9ff2384-d3b6-4d4e-9509-3ee19f607168\"\
,\"isEditable\":true,\"name\":\"Workflow 1\",\"scope\":{\"type\":\"\
GLOBAL\"},\"startPointLayout\":{\"x\":-100.00030899047852,\"y\":-153.00020599365234},\"\
statuses\":[{\"deprecated\":false,\"layout\":{\"x\":114.99993896484375,\"\
y\":-16.0},\"properties\":{},\"statusReference\":\"10001\"},{\"deprecated\"\
:false,\"layout\":{\"x\":317.0000915527344,\"y\":-16.0},\"properties\"\
:{},\"statusReference\":\"10002\"},{\"deprecated\":false,\"layout\"\
:{\"x\":508.000244140625,\"y\":-16.0},\"properties\":{},\"statusReference\"\
:\"10003\"}],\"transitions\":[{\"actions\":[],\"description\":\"\"\
,\"from\":[],\"id\":\"31\",\"name\":\"Done\",\"properties\":{},\"\
to\":{\"statusReference\":\"10003\"},\"triggers\":[],\"type\":\"GLOBAL\"\
,\"validators\":[]},{\"actions\":[],\"description\":\"\",\"from\"\
:[],\"id\":\"11\",\"name\":\"To Do\",\"properties\":{},\"to\":{\"\
statusReference\":\"10001\"},\"triggers\":[],\"type\":\"GLOBAL\",\"\
validators\":[]},{\"actions\":[],\"description\":\"\",\"from\":[],\"\
id\":\"21\",\"name\":\"In Progress\",\"properties\":{},\"to\":{\"\
statusReference\":\"10002\"},\"triggers\":[],\"type\":\"GLOBAL\",\"\
validators\":[]},{\"actions\":[],\"description\":\"\",\"from\":[],\"\
id\":\"1\",\"name\":\"Create\",\"properties\":{},\"to\":{\"statusReference\"\
:\"10001\"},\"triggers\":[],\"type\":\"INITIAL\",\"validators\":[]}],\"\
usages\":[],\"version\":{\"id\":\"f010ac1b-3dd3-43a3-aa66-0ee8a447f76e\"\
,\"versionNumber\":0}}]}"
schema:
$ref: "#/components/schemas/WorkflowReadResponse"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Bulk get workflows"
tags:
- "Workflows"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow:jira"
state: "Beta"
x-experimental: true
/rest/api/2/workflows/capabilities:
get:
deprecated: false
description: "Get the list of workflow capabilities for a specific workflow\
\ using either the workflow ID, or the project and issue type ID pair. The\
\ response includes the scope of the workflow, defined as global/project-based,\
\ and a list of project types that the workflow is scoped to. It also includes\
\ all rules organised into their broad categories (conditions, validators,\
\ actions, triggers, screens) as well as the source location (Atlassian-provided,\
\ Connect, Forge).\n\n**[Permissions](#permissions) required:**\n\n * *Administer\
\ Jira* project permission to access all, including global-scoped, workflows\n\
\ * *Administer projects* project permissions to access project-scoped workflows\n\
\nThe current list of Atlassian-provided rules:\n\n#### Validators ####\n\n\
A validator rule that checks if a user has the required permissions to execute\
\ the transition in the workflow.\n\n##### Permission validator #####\n\n\
A validator rule that checks if a user has the required permissions to execute\
\ the transition in the workflow.\n\n {\n \"ruleKey\": \"system:check-permission-validator\"\
,\n \"parameters\": {\n \"permissionKey\": \"ADMINISTER_PROJECTS\"\
\n }\n }\n\nParameters:\n\n * `permissionKey` The permission required\
\ to perform the transition. Allowed values: [built-in Jira permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-permission-schemes/#built-in-permissions).\n\
\n##### Parent or child blocking validator #####\n\nA validator to block the\
\ child issue\\\\u2019s transition depending on the parent issue\\\\u2019s\
\ status.\n\n {\n \"ruleKey\" : \"system:parent-or-child-blocking-validator\"\
\n \"parameters\" : {\n \"blocker\" : \"PARENT\"\n \"\
statusIds\" : \"1,2,3\"\n }\n }\n\nParameters:\n\n * `blocker`\
\ currently only supports `PARENT`.\n * `statusIds` a comma-separated list\
\ of status IDs.\n\n##### Previous status validator #####\n\nA validator that\
\ checks if an issue has transitioned through specified previous status(es)\
\ before allowing the current transition to occur.\n\n {\n \"ruleKey\"\
: \"system:previous-status-validator\",\n \"parameters\": {\n \
\ \"previousStatusIds\": \"10014\",\n \"mostRecentStatusOnly\":\
\ \"true\"\n }\n }\n\nParameters:\n\n * `previousStatusIds` a comma-separated\
\ list of status IDs, currently only support one ID.\n * `mostRecentStatusOnly`\
\ when `true` only considers the most recent status for the condition evaluation.\
\ Allowed values: `true`, `false`.\n\n##### Validate a field value #####\n\
\nA validation that ensures a specific field's value meets the defined criteria\
\ before allowing an issue to transition in the workflow.\n\nDepending on\
\ the rule type, the result will vary:\n\n###### Field required ######\n\n\
\ {\n \"ruleKey\": \"system:validate-field-value\",\n \"parameters\"\
: {\n \"ruleType\": \"fieldRequired\",\n \"fieldsRequired\"\
: \"assignee\",\n \"ignoreContext\": \"true\",\n \"errorMessage\"\
: \"An assignee must be set!\"\n }\n }\n\nParameters:\n\n * `fieldsRequired`\
\ the ID of the field that is required. For a custom field, it would look\
\ like `customfield_123`.\n * `ignoreContext` controls the impact of context\
\ settings on field validation. When set to `true`, the validator doesn't\
\ check a required field if its context isn't configured for the current issue.\
\ When set to `false`, the validator requires a field even if its context\
\ is invalid. Allowed values: `true`, `false`.\n * `errorMessage` is the\
\ error message to display if the user does not provide a value during the\
\ transition. A default error message will be shown if you don't provide one\
\ (Optional).\n\n###### Field changed ######\n\n {\n \"ruleKey\"\
: \"system:validate-field-value\",\n \"parameters\": {\n \"\
ruleType\": \"fieldChanged\",\n \"groupsExemptFromValidation\": \"\
6862ac20-8672-4f68-896d-4854f5efb79e\",\n \"fieldKey\": \"versions\"\
,\n \"errorMessage\": \"Affect versions must be modified before transition\"\
\n }\n }\n\nParameters:\n\n * `groupsExemptFromValidation` a comma-separated\
\ list of group IDs to be exempt from the validation.\n * `fieldKey` the\
\ ID of the field that has changed. For a custom field, it would look like\
\ `customfield_123`.\n * `errorMessage` the error message to display if the\
\ user does not provide a value during the transition. A default error message\
\ will be shown if you don't provide one (Optional).\n\n###### Field has a\
\ single value ######\n\n {\n \"ruleKey\": \"system:validate-field-value\"\
,\n \"parameters\": {\n \"ruleType\": \"fieldHasSingleValue\"\
,\n \"fieldKey\": \"created\",\n \"excludeSubtasks\": \"true\"\
\n }\n }\n\nParameters:\n\n * `fieldKey` the ID of the field to\
\ validate. For a custom field, it would look like `customfield_123`.\n *\
\ `excludeSubtasks` Option to exclude values copied from sub-tasks. Allowed\
\ values: `true`, `false`.\n\n###### Field matches regular expression ######\n\
\n {\n \"ruleKey\": \"system:validate-field-value\",\n \"parameters\"\
: {\n \"ruleType\": \"fieldMatchesRegularExpression\",\n \"\
regexp\": \"[0-9]{4}\",\n \"fieldKey\": \"description\"\n }\n\
\ }\n\nParameters:\n\n * `regexp` the regular expression used to validate\
\ the field\\\\u2019s content.\n * `fieldKey` the ID of the field to validate.\
\ For a custom field, it would look like `customfield_123`.\n\n###### Date\
\ field comparison ######\n\n {\n \"ruleKey\": \"system:validate-field-value\"\
,\n \"parameters\": {\n \"ruleType\": \"dateFieldComparison\"\
,\n \"date1FieldKey\": \"duedate\",\n \"date2FieldKey\": \"\
customfield_10054\",\n \"includeTime\": \"true\",\n \"conditionSelected\"\
: \">=\"\n }\n }\n\nParameters:\n\n * `date1FieldKey` the ID of\
\ the first field to compare. For a custom field, it would look like `customfield_123`.\n\
\ * `date2FieldKey` the ID of the second field to compare. For a custom field,\
\ it would look like `customfield_123`.\n * `includeTime` if `true`, compares\
\ both date and time. Allowed values: `true`, `false`.\n * `conditionSelected`\
\ the condition to compare with. Allowed values: `>`, `>=`, `=`, `<=`, `<`,\
\ `!=`.\n\n###### Date range comparison ######\n\n {\n \"ruleKey\"\
: \"system:validate-field-value\",\n \"parameters\": {\n \"\
ruleType\": \"windowDateComparison\",\n \"date1FieldKey\": \"customfield_10009\"\
,\n \"date2FieldKey\": \"customfield_10054\",\n \"numberOfDays\"\
: \"3\"\n }\n }\n\nParameters:\n\n * `date1FieldKey` the ID of\
\ the first field to compare. For a custom field, it would look like `customfield_123`.\n\
\ * `date2FieldKey` the ID of the second field to compare. For a custom field,\
\ it would look like `customfield_123`.\n * `numberOfDays` maximum number\
\ of days past the reference date (`date2FieldKey`) to pass validation.\n\n\
This rule is composed by aggregating the following legacy rules:\n\n * FieldRequiredValidator\n\
\ * FieldChangedValidator\n * FieldHasSingleValueValidator\n * RegexpFieldValidator\n\
\ * DateFieldValidator\n * WindowsDateValidator\n\n##### Proforma: Forms\
\ attached validator #####\n\nValidates that one or more forms are attached\
\ to the issue.\n\n {\n \"ruleKey\" : \"system:proforma-forms-attached\"\
\n \"parameters\" : {}\n }\n\n##### Proforma: Forms submitted validator\
\ #####\n\nValidates that all forms attached to the issue have been submitted.\n\
\n {\n \"ruleKey\" : \"system:proforma-forms-submitted\"\n \
\ \"parameters\" : {}\n }\n\n#### Conditions ####\n\nConditions enable\
\ workflow rules that govern whether a transition can execute.\n\n##### Check\
\ field value #####\n\nA condition rule evaluates as true if a specific field's\
\ value meets the defined criteria. This rule ensures that an issue can only\
\ transition to the next step in the workflow if the field's value matches\
\ the desired condition.\n\n {\n \"ruleKey\": \"system:check-field-value\"\
,\n \"parameters\": {\n \"fieldId\": \"description\",\n \
\ \"fieldValue\": \"[\\\"Done\\\"]\",\n \"comparator\": \"=\"\
,\n \"comparisonType\": \"STRING\"\n }\n }\n\nParameters:\n\
\n * `fieldId` The ID of the field to check the value of. For non-system\
\ fields, it will look like `customfield_123`. Note: `fieldId` is used interchangeably\
\ with the idea of `fieldKey` here, they refer to the same field.\n * `fieldValue`\
\ the list of values to check against the field\\\\u2019s value.\n * `comparator`\
\ The comparison logic. Allowed values: `>`, `>=`, `=`, `<=`, `<`, `!=`.\n\
\ * `comparisonType` The type of data being compared. Allowed values: `STRING`,\
\ `NUMBER`, `DATE`, `DATE_WITHOUT_TIME`, `OPTIONID`.\n\n##### Restrict issue\
\ transition #####\n\nThis rule ensures that issue transitions are restricted\
\ based on user accounts, roles, group memberships, and permissions, maintaining\
\ control over who can transition an issue. This condition evaluates as `true`\
\ if any of the following criteria is met.\n\n {\n \"ruleKey\": \"\
system:restrict-issue-transition\",\n \"parameters\": {\n \"\
accountIds\": \"allow-reporter,5e68ac137d64450d01a77fa0\",\n \"roleIds\"\
: \"10002,10004\",\n \"groupIds\": \"703ff44a-7dc8-4f4b-9aa6-a65bf3574fa4\"\
,\n \"permissionKeys\": \"ADMINISTER_PROJECTS\",\n \"groupCustomFields\"\
: \"customfield_10028\",\n \"allowUserCustomFields\": \"customfield_10072,customfield_10144,customfield_10007\"\
,\n \"denyUserCustomFields\": \"customfield_10107\"\n }\n \
\ }\n\nParameters:\n\n * `accountIds` a comma-separated list of the user\
\ account IDs. It also allows generic values like: `allow-assignee`, `allow-reporter`,\
\ and `accountIds` Note: This is only supported in team-managed projects\n\
\ * `roleIds` a comma-separated list of role IDs.\n * `groupIds` a comma-separated\
\ list of group IDs.\n * `permissionKeys` a comma-separated list of permission\
\ keys. Allowed values: [built-in Jira permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-permission-schemes/#built-in-permissions).\n\
\ * `groupCustomFields` a comma-separated list of group custom field IDs.\n\
\ * `allowUserCustomFields` a comma-separated list of user custom field IDs\
\ to allow for issue transition.\n * `denyUserCustomFields` a comma-separated\
\ list of user custom field IDs to deny for issue transition.\n\nThis rule\
\ is composed by aggregating the following legacy rules:\n\n * AllowOnlyAssignee\n\
\ * AllowOnlyReporter\n * InAnyProjectRoleCondition\n * InProjectRoleCondition\n\
\ * UserInAnyGroupCondition\n * UserInGroupCondition\n * PermissionCondtion\n\
\ * InGroupCFCondition\n * UserIsInCustomFieldCondition\n\n##### Previous\
\ status condition #####\n\nA condition that evaluates based on an issue's\
\ previous status(es) and specific criteria.\n\n {\n \"ruleKey\"\
\ : \"system:previous-status-condition\"\n \"parameters\" : {\n \
\ \"previousStatusIds\" : \"10004\",\n \"not\": \"true\",\n \
\ \"mostRecentStatusOnly\" : \"true\",\n \"includeCurrentStatus\"\
: \"true\",\n \"ignoreLoopTransitions\": \"true\"\n }\n \
\ }\n\nParameters:\n\n * `previousStatusIds` a comma-separated list of status\
\ IDs, current only support one ID.\n * `not` indicates if the condition\
\ should be reversed. When `true` it checks that the issue has not been in\
\ the selected statuses. Allowed values: `true`, `false`.\n * `mostRecentStatusOnly`\
\ when true only considers the most recent status for the condition evaluation.\
\ Allowed values: `true`, `false`.\n * `includeCurrentStatus` includes the\
\ current status when evaluating if the issue has been through the selected\
\ statuses. Allowed values: `true`, `false`.\n * `ignoreLoopTransitions`\
\ ignore loop transitions. Allowed values: `true`, `false`.\n\n##### Parent\
\ or child blocking condition #####\n\nA condition to block the parent\\\\\
u2019s issue transition depending on the child\\\\u2019s issue status.\n\n\
\ {\n \"ruleKey\" : \"system:parent-or-child-blocking-condition\"\
\n \"parameters\" : {\n \"blocker\" : \"CHILD\",\n \"\
statusIds\" : \"1,2,3\"\n }\n }\n\nParameters:\n\n * `blocker`\
\ currently only supports `CHILD`.\n * `statusIds` a comma-separated list\
\ of status IDs.\n\n##### Separation of duties #####\n\nA condition preventing\
\ the user from performing, if the user has already performed a transition\
\ on the issue.\n\n {\n \"ruleKey\": \"system:separation-of-duties\"\
,\n \"parameters\": {\n \"fromStatusId\": \"10161\",\n \
\ \"toStatusId\": \"10160\"\n }\n }\n\nParameters:\n\n * `fromStatusId`\
\ represents the status ID from which the issue is transitioning. It ensures\
\ that the user performing the current transition has not performed any actions\
\ when the issue was in the specified status.\n * `toStatusId` represents\
\ the status ID to which the issue is transitioning. It ensures that the user\
\ performing the current transition is not the same user who has previously\
\ transitioned the issue.\n\n##### Restrict transitions #####\n\nA condition\
\ preventing all users from transitioning the issue can also optionally include\
\ APIs as well.\n\n {\n \"ruleKey\": \"system:restrict-from-all-users\"\
,\n \"parameters\": {\n \"restrictMode\": \"users\"\n \
\ }\n }\n\nParameters:\n\n * `restrictMode` restricts the issue transition\
\ including/excluding APIs. Allowed values: `\"users\"`, `\"usersAndAPI\"\
`.\n\n##### Jira Service Management block until approved #####\n\nBlock an\
\ issue transition until approval. Note: This is only supported in team-managed\
\ projects.\n\n {\n \"ruleKey\": \"system:jsd-approvals-block-until-approved\"\
,\n \"parameters\": {\n \"approvalConfigurationJson\": \"{\"\
statusExternalUuid...}\"\n }\n }\n\nParameters:\n\n * `approvalConfigurationJson`\
\ a stringified JSON holding the Jira Service Management approval configuration.\n\
\n##### Jira Service Management block until rejected #####\n\nBlock an issue\
\ transition until rejected. Note: This is only supported in team-managed\
\ projects.\n\n {\n \"ruleKey\": \"system:jsd-approvals-block-until-rejected\"\
,\n \"parameters\": {\n \"approvalConfigurationJson\": \"{\"\
statusExternalUuid...}\"\n }\n }\n\nParameters:\n\n * `approvalConfigurationJson`\
\ a stringified JSON holding the Jira Service Management approval configuration.\n\
\n##### Block in progress approval #####\n\nCondition to block issue transition\
\ if there is pending approval. Note: This is only supported in company-managed\
\ projects.\n\n {\n \"ruleKey\": \"system:block-in-progress-approval\"\
,\n \"parameters\": {}\n }\n\n#### Post functions ####\n\nPost functions\
\ carry out any additional processing required after a workflow transition\
\ is executed.\n\n##### Change assignee #####\n\nA post function rule that\
\ changes the assignee of an issue after a transition.\n\n {\n \"\
ruleKey\": \"system:change-assignee\",\n \"parameters\": {\n \
\ \"type\": \"to-selected-user\",\n \"accountId\": \"example-account-id\"\
\n }\n }\n\nParameters:\n\n * `type` the parameter used to determine\
\ the new assignee. Allowed values: `to-selected-user`, `to-unassigned`, `to-current-user`,\
\ `to-current-user`, `to-default-user`, `to-default-user`\n * `accountId`\
\ the account ID of the user to assign the issue to. This parameter is required\
\ only when the type is `\"to-selected-user\"`.\n\n##### Copy field value\
\ #####\n\nA post function that automates the process of copying values between\
\ fields during a specific transition, ensuring data consistency and reducing\
\ manual effort.\n\n {\n \"ruleKey\": \"system:copy-value-from-other-field\"\
,\n \"parameters\": {\n \"sourceFieldKey\": \"description\"\
,\n \"targetFieldKey\": \"components\",\n \"issueSource\"\
: \"SAME\"\n }\n }\n\nParameters:\n\n * `sourceFieldKey` the field\
\ key to copy from. For a custom field, it would look like `customfield_123`\n\
\ * `targetFieldKey` the field key to copy to. For a custom field, it would\
\ look like `customfield_123`\n * `issueSource` `SAME` or `PARENT`. Defaults\
\ to `SAME` if no value is provided.\n\n##### Update field #####\n\nA post\
\ function that updates or appends a specific field with the given value.\n\
\n {\n \"ruleKey\": \"system:update-field\",\n \"parameters\"\
: {\n \"field\": \"customfield_10056\",\n \"value\": \"asdf\"\
,\n \"mode\": \"append\"\n }\n }\n\nParameters:\n\n * `field`\
\ the ID of the field to update. For a custom field, it would look like `customfield_123`\n\
\ * `value` the value to update the field with.\n * `mode` `append` or `replace`.\
\ Determines if a value will be appended to the current value, or if the current\
\ value will be replaced.\n\n##### Trigger webhook #####\n\nA post function\
\ that automatically triggers a predefined webhook when a transition occurs\
\ in the workflow.\n\n {\n \"ruleKey\": \"system:trigger-webhook\"\
,\n \"parameters\": {\n \"webhookId\": \"1\"\n }\n \
\ }\n\nParameters:\n\n * `webhookId` the ID of the webhook.\n\n#### Screen\
\ ####\n\n##### Remind people to update fields #####\n\nA screen rule that\
\ prompts users to update a specific field when they interact with an issue\
\ screen during a transition. This rule is useful for ensuring that users\
\ provide or modify necessary information before moving an issue to the next\
\ step in the workflow.\n\n {\n \"ruleKey\": \"system:remind-people-to-update-fields\"\
,\n \"params\": {\n \"remindingFieldIds\": \"assignee,customfield_10025\"\
,\n \"remindingMessage\": \"The message\",\n \"remindingAlwaysAsk\"\
: \"true\"\n }\n }\n\nParameters:\n\n * `remindingFieldIds` a comma-separated\
\ list of field IDs. Note: `fieldId` is used interchangeably with the idea\
\ of `fieldKey` here, they refer to the same field.\n * `remindingMessage`\
\ the message to display when prompting the users to update the fields.\n\
\ * `remindingAlwaysAsk` always remind to update fields. Allowed values:\
\ `true`, `false`.\n\n##### Shared transition screen #####\n\nA common screen\
\ that is shared between transitions in a workflow.\n\n {\n \"ruleKey\"\
: \"system:transition-screen\",\n \"params\": {\n \"screenId\"\
: \"3\"\n }\n }\n\nParameters:\n\n * `screenId` the ID of the screen.\n\
\n#### Connect & Forge ####\n\n##### Connect rules #####\n\nValidator/Condition/Post\
\ function for Connect app.\n\n {\n \"ruleKey\": \"connect:expression-validator\"\
,\n \"parameters\": {\n \"appKey\": \"com.atlassian.app\",\n\
\ \"config\": \"\",\n \"id\": \"90ce590f-e90c-4cd3-8281-165ce41f2ac3\"\
,\n \"disabled\": \"false\",\n \"tag\": \"\"\n }\n \
\ }\n\nParameters:\n\n * `ruleKey` Validator: `connect:expression-validator`,\
\ Condition: `connect:expression-condition`, and Post function: `connect:remote-workflow-function`\n\
\ * `appKey` the reference to the Connect app\n * `config` a JSON payload\
\ string describing the configuration\n * `id` the ID of the rule\n * `disabled`\
\ determine if the Connect app is disabled. Allowed values: `true`, `false`.\n\
\ * `tag` additional tags for the Connect app\n\n##### Forge rules #####\n\
\nValidator/Condition/Post function for Forge app.\n\n {\n \"ruleKey\"\
: \"forge:expression-validator\",\n \"parameters\": {\n \"key\"\
: \"ari:cloud:ecosystem::extension/{appId}/{environmentId}/static/{moduleKey}\"\
,\n \"config\": \"{\"searchString\":\"workflow validator\"}\",\n \
\ \"id\": \"a865ddf6-bb3f-4a7b-9540-c2f8b3f9f6c2\"\n }\n \
\ }\n\nParameters:\n\n * `ruleKey` Validator: `forge:expression-validator`,\
\ Condition: `forge:expression-condition`, and Post function: `forge:workflow-post-function`\n\
\ * `key` the identifier for the Forge app\n * `config` the persistent stringified\
\ JSON configuration for the Forge rule\n * `id` the ID of the Forge rule"
operationId: "workflowCapabilities"
parameters:
- in: "query"
name: "workflowId"
schema:
type: "string"
- in: "query"
name: "projectId"
schema:
type: "string"
- in: "query"
name: "issueTypeId"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"connectRules\":[{\"addonKey\":\"com.atlassian.jira.refapp\"\
,\"createUrl\":\"/validators/jira-expression/create?id={validator.id}\"\
,\"description\":\"Validates if the given Jira expression is true.\"\
,\"editUrl\":\"/validators/jira-expression/edit?id={validator.id}\"\
,\"moduleKey\":\"jiraExpressionValidator\",\"name\":\"Jira expression\
\ validator (by APPNAME)\",\"ruleKey\":\"connect:expression-validator\"\
,\"ruleType\":\"Validator\",\"viewUrl\":\"/validators/jira-expression/view?id={validator.id}\"\
}],\"editorScope\":\"GLOBAL\",\"forgeRules\":[{\"description\":\"\
A Jira workflow validator example.\",\"id\":\"ari:cloud:ecosystem::extension/9df6d15f-1bbe-443e-be08-150309e8dbb0/f6a3bed3-737f-4e7a-8942-130df302b749/static/workflow-validator-example-workflow-validator\"\
,\"name\":\"workflow-validator\",\"ruleKey\":\"forge:expression-validator\"\
,\"ruleType\":\"Validator\"}],\"projectTypes\":[\"software\",\"business\"\
],\"systemRules\":[{\"description\":\"Automatically assign a request\
\ to someone after moving the request using a particular transition.\"\
,\"incompatibleRuleKeys\":[],\"isAvailableForInitialTransition\":true,\"\
isVisible\":true,\"name\":\"Assign a request\",\"ruleKey\":\"system:change-assignee\"\
,\"ruleType\":\"Function\"}],\"triggerRules\":[{\"availableTypes\"\
:[{\"description\":\"Automatically transitions the issue when a related\
\ branch is created in a connected repository\",\"name\":\"Branch\
\ created\",\"type\":\"com.atlassian.jira.plugins.jira-development-integration-plugin:branch-created-trigger\"\
}],\"ruleKey\":\"system:development-triggers\"}]}"
schema:
$ref: "#/components/schemas/WorkflowCapabilities"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get available workflow capabilities"
tags:
- "Workflows"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow:jira"
state: "Beta"
x-experimental: true
/rest/api/2/workflows/create:
post:
deprecated: false
description: "Create workflows and related statuses.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer Jira* project permission to create all, including\
\ global-scoped, workflows\n * *Administer projects* project permissions\
\ to create project-scoped workflows"
operationId: "createWorkflows"
parameters: []
requestBody:
content:
application/json:
example:
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.0
properties: {}
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
- layout:
x: 317.0000915527344
"y": -16.0
properties: {}
statusReference: "c7a35bf0-c127-4aa6-869f-4033730c61d8"
- layout:
x: 508.000244140625
"y": -16.0
properties: {}
statusReference: "6b3fc04d-3316-46c5-a257-65751aeb8849"
transitions:
- actions: []
description: ""
from: []
id: "1"
name: "Create"
properties: {}
to:
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
triggers: []
type: "INITIAL"
validators: []
- actions: []
description: ""
from: []
id: "11"
name: "To Do"
properties: {}
to:
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
triggers: []
type: "GLOBAL"
validators: []
- actions: []
description: ""
from: []
id: "21"
name: "In Progress"
properties: {}
to:
statusReference: "c7a35bf0-c127-4aa6-869f-4033730c61d8"
triggers: []
type: "GLOBAL"
validators: []
- actions: []
description: ""
from: []
id: "31"
name: "Done"
properties: {}
to:
statusReference: "6b3fc04d-3316-46c5-a257-65751aeb8849"
triggers: []
type: "GLOBAL"
validators: []
schema:
$ref: "#/components/schemas/WorkflowCreateRequest"
required: true
responses:
"200":
content:
application/json:
example: "{\"statuses\":[{\"description\":\"\",\"id\":\"10001\",\"name\"\
:\"To Do\",\"scope\":{\"type\":\"GLOBAL\"},\"statusCategory\":\"TODO\"\
,\"statusReference\":\"10001\",\"usages\":[]},{\"description\":\"\"\
,\"id\":\"10002\",\"name\":\"In Progress\",\"scope\":{\"type\":\"\
GLOBAL\"},\"statusCategory\":\"IN_PROGRESS\",\"statusReference\":\"\
10002\",\"usages\":[]},{\"description\":\"\",\"id\":\"10003\",\"name\"\
:\"Done\",\"scope\":{\"type\":\"GLOBAL\"},\"statusCategory\":\"DONE\"\
,\"statusReference\":\"10003\",\"usages\":[]}],\"workflows\":[{\"\
description\":\"\",\"id\":\"b9ff2384-d3b6-4d4e-9509-3ee19f607168\"\
,\"isEditable\":true,\"name\":\"Software workflow 1\",\"scope\":{\"\
type\":\"GLOBAL\"},\"startPointLayout\":{\"x\":-100.00030899047852,\"\
y\":-153.00020599365234},\"statuses\":[{\"deprecated\":false,\"layout\"\
:{\"x\":114.99993896484375,\"y\":-16.0},\"properties\":{},\"statusReference\"\
:\"10001\"},{\"deprecated\":false,\"layout\":{\"x\":317.0000915527344,\"\
y\":-16.0},\"properties\":{},\"statusReference\":\"10002\"},{\"deprecated\"\
:false,\"layout\":{\"x\":508.000244140625,\"y\":-16.0},\"properties\"\
:{},\"statusReference\":\"10003\"}],\"transitions\":[{\"actions\"\
:[],\"description\":\"\",\"from\":[],\"id\":\"31\",\"name\":\"Done\"\
,\"properties\":{},\"to\":{\"statusReference\":\"10003\"},\"triggers\"\
:[],\"type\":\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\"\
:\"\",\"from\":[],\"id\":\"11\",\"name\":\"To Do\",\"properties\"\
:{},\"to\":{\"statusReference\":\"10001\"},\"triggers\":[],\"type\"\
:\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\"\
,\"from\":[],\"id\":\"21\",\"name\":\"In Progress\",\"properties\"\
:{},\"to\":{\"statusReference\":\"10002\"},\"triggers\":[],\"type\"\
:\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\"\
,\"from\":[],\"id\":\"1\",\"name\":\"Create\",\"properties\":{},\"\
to\":{\"statusReference\":\"10001\"},\"triggers\":[],\"type\":\"INITIAL\"\
,\"validators\":[]}],\"usages\":[],\"version\":{\"id\":\"f010ac1b-3dd3-43a3-aa66-0ee8a447f76e\"\
,\"versionNumber\":0}}]}"
schema:
$ref: "#/components/schemas/WorkflowCreateResponse"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Bulk create workflows"
tags:
- "Workflows"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow:jira"
state: "Beta"
x-experimental: true
/rest/api/2/workflows/create/validation:
post:
deprecated: false
description: "Validate the payload for bulk create workflows.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer Jira* project permission to create all, including\
\ global-scoped, workflows\n * *Administer projects* project permissions\
\ to create project-scoped workflows"
operationId: "validateCreateWorkflows"
parameters: []
requestBody:
content:
application/json:
example:
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.0
properties: {}
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
- layout:
x: 317.0000915527344
"y": -16.0
properties: {}
statusReference: "c7a35bf0-c127-4aa6-869f-4033730c61d8"
- layout:
x: 508.000244140625
"y": -16.0
properties: {}
statusReference: "6b3fc04d-3316-46c5-a257-65751aeb8849"
transitions:
- actions: []
description: ""
from: []
id: "1"
name: "Create"
properties: {}
to:
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
triggers: []
type: "INITIAL"
validators: []
- actions: []
description: ""
from: []
id: "11"
name: "To Do"
properties: {}
to:
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
triggers: []
type: "GLOBAL"
validators: []
- actions: []
description: ""
from: []
id: "21"
name: "In Progress"
properties: {}
to:
statusReference: "c7a35bf0-c127-4aa6-869f-4033730c61d8"
triggers: []
type: "GLOBAL"
validators: []
- actions: []
description: ""
from: []
id: "31"
name: "Done"
properties: {}
to:
statusReference: "6b3fc04d-3316-46c5-a257-65751aeb8849"
triggers: []
type: "GLOBAL"
validators: []
validationOptions:
levels:
- "ERROR"
- "WARNING"
schema:
$ref: "#/components/schemas/WorkflowCreateValidateRequest"
required: true
responses:
"200":
content:
application/json:
example: "{\"errors\":[{\"code\":\"NON_UNIQUE_STATUS_NAME\",\"elementReference\"\
:{\"statusReference\":\"1f0443ff-47e4-4306-9c26-0af696059a43\"},\"\
level\":\"ERROR\",\"message\":\"You must use a unique status name.\"\
,\"type\":\"STATUS\"}]}"
schema:
$ref: "#/components/schemas/WorkflowValidationErrorList"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Validate create workflows"
tags:
- "Workflows"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow:jira"
state: "Beta"
x-experimental: true
/rest/api/2/workflows/update:
post:
deprecated: false
description: "Update workflows and related statuses.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer Jira* project permission to create all, including\
\ global-scoped, workflows\n * *Administer projects* project permissions\
\ to create project-scoped workflows"
operationId: "updateWorkflows"
parameters:
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `workflows.usages` Returns the project and issue types\
\ that each workflow is associated with.\n * `statuses.usages` Returns\
\ the project and issue types that each status is associated with."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
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.0
properties: {}
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
- layout:
x: 317.0000915527344
"y": -16.0
properties: {}
statusReference: "c7a35bf0-c127-4aa6-869f-4033730c61d8"
- layout:
x: 508.000244140625
"y": -16.0
properties: {}
statusReference: "6b3fc04d-3316-46c5-a257-65751aeb8849"
transitions:
- actions: []
description: ""
from: []
id: "1"
name: "Create"
properties: {}
to:
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
triggers: []
type: "INITIAL"
validators: []
- actions: []
description: ""
from: []
id: "11"
name: "To Do"
properties: {}
to:
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
triggers: []
type: "GLOBAL"
validators: []
- actions: []
description: ""
from: []
id: "21"
name: "In Progress"
properties: {}
to:
statusReference: "c7a35bf0-c127-4aa6-869f-4033730c61d8"
triggers: []
type: "GLOBAL"
validators: []
- actions: []
description: ""
from: []
id: "31"
name: "Done"
properties: {}
to:
statusReference: "6b3fc04d-3316-46c5-a257-65751aeb8849"
triggers: []
type: "GLOBAL"
validators: []
version:
id: "6f6c988b-2590-4358-90c2-5f7960265592"
versionNumber: 1
schema:
$ref: "#/components/schemas/WorkflowUpdateRequest"
required: true
responses:
"200":
content:
application/json:
example: "{\"statuses\":[{\"description\":\"\",\"id\":\"10001\",\"name\"\
:\"To Do\",\"scope\":{\"type\":\"GLOBAL\"},\"statusCategory\":\"TODO\"\
,\"statusReference\":\"10001\",\"usages\":[]},{\"description\":\"\"\
,\"id\":\"10002\",\"name\":\"In Progress\",\"scope\":{\"type\":\"\
GLOBAL\"},\"statusCategory\":\"IN_PROGRESS\",\"statusReference\":\"\
10002\",\"usages\":[]},{\"description\":\"\",\"id\":\"10003\",\"name\"\
:\"Done\",\"scope\":{\"type\":\"GLOBAL\"},\"statusCategory\":\"DONE\"\
,\"statusReference\":\"10003\",\"usages\":[]}],\"taskId\":\"10001\"\
,\"workflows\":[{\"description\":\"\",\"id\":\"b9ff2384-d3b6-4d4e-9509-3ee19f607168\"\
,\"isEditable\":true,\"name\":\"Software workflow 1\",\"scope\":{\"\
type\":\"GLOBAL\"},\"startPointLayout\":{\"x\":-100.00030899047852,\"\
y\":-153.00020599365234},\"statuses\":[{\"deprecated\":false,\"layout\"\
:{\"x\":114.99993896484375,\"y\":-16.0},\"properties\":{},\"statusReference\"\
:\"10001\"},{\"deprecated\":false,\"layout\":{\"x\":317.0000915527344,\"\
y\":-16.0},\"properties\":{},\"statusReference\":\"10002\"},{\"deprecated\"\
:false,\"layout\":{\"x\":508.000244140625,\"y\":-16.0},\"properties\"\
:{},\"statusReference\":\"10003\"}],\"transitions\":[{\"actions\"\
:[],\"description\":\"\",\"from\":[],\"id\":\"31\",\"name\":\"Done\"\
,\"properties\":{},\"to\":{\"statusReference\":\"10003\"},\"triggers\"\
:[],\"type\":\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\"\
:\"\",\"from\":[],\"id\":\"11\",\"name\":\"To Do\",\"properties\"\
:{},\"to\":{\"statusReference\":\"10001\"},\"triggers\":[],\"type\"\
:\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\"\
,\"from\":[],\"id\":\"21\",\"name\":\"In Progress\",\"properties\"\
:{},\"to\":{\"statusReference\":\"10002\"},\"triggers\":[],\"type\"\
:\"GLOBAL\",\"validators\":[]},{\"actions\":[],\"description\":\"\"\
,\"from\":[],\"id\":\"1\",\"name\":\"Create\",\"properties\":{},\"\
to\":{\"statusReference\":\"10001\"},\"triggers\":[],\"type\":\"INITIAL\"\
,\"validators\":[]}],\"usages\":[],\"version\":{\"id\":\"f010ac1b-3dd3-43a3-aa66-0ee8a447f76e\"\
,\"versionNumber\":0}}]}"
schema:
$ref: "#/components/schemas/WorkflowUpdateResponse"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Bulk update workflows"
tags:
- "Workflows"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow:jira"
state: "Beta"
x-experimental: true
/rest/api/2/workflows/update/validation:
post:
deprecated: false
description: "Validate the payload for bulk update workflows.\n\n**[Permissions](#permissions)\
\ required:**\n\n * *Administer Jira* project permission to create all, including\
\ global-scoped, workflows\n * *Administer projects* project permissions\
\ to create project-scoped workflows"
operationId: "validateUpdateWorkflows"
parameters: []
requestBody:
content:
application/json:
example:
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.0
properties: {}
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
- layout:
x: 317.0000915527344
"y": -16.0
properties: {}
statusReference: "c7a35bf0-c127-4aa6-869f-4033730c61d8"
- layout:
x: 508.000244140625
"y": -16.0
properties: {}
statusReference: "6b3fc04d-3316-46c5-a257-65751aeb8849"
transitions:
- actions: []
description: ""
from: []
id: "1"
name: "Create"
properties: {}
to:
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
triggers: []
type: "INITIAL"
validators: []
- actions: []
description: ""
from: []
id: "11"
name: "To Do"
properties: {}
to:
statusReference: "f0b24de5-25e7-4fab-ab94-63d81db6c0c0"
triggers: []
type: "GLOBAL"
validators: []
- actions: []
description: ""
from: []
id: "21"
name: "In Progress"
properties: {}
to:
statusReference: "c7a35bf0-c127-4aa6-869f-4033730c61d8"
triggers: []
type: "GLOBAL"
validators: []
- actions: []
description: ""
from: []
id: "31"
name: "Done"
properties: {}
to:
statusReference: "6b3fc04d-3316-46c5-a257-65751aeb8849"
triggers: []
type: "GLOBAL"
validators: []
version:
id: "6f6c988b-2590-4358-90c2-5f7960265592"
versionNumber: 1
validationOptions:
levels:
- "ERROR"
- "WARNING"
schema:
$ref: "#/components/schemas/WorkflowUpdateValidateRequestBean"
required: true
responses:
"200":
content:
application/json:
example: "{\"errors\":[{\"code\":\"NON_UNIQUE_STATUS_NAME\",\"elementReference\"\
:{\"statusReference\":\"1f0443ff-47e4-4306-9c26-0af696059a43\"},\"\
level\":\"ERROR\",\"message\":\"You must use a unique status name.\"\
,\"type\":\"STATUS\"}]}"
schema:
$ref: "#/components/schemas/WorkflowValidationErrorList"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Validate update workflows"
tags:
- "Workflows"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow:jira"
state: "Beta"
x-experimental: true
/rest/api/2/workflowscheme:
get:
deprecated: false
description: "Returns a [paginated](#pagination) list of all workflow schemes,\
\ not including draft workflow schemes.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getAllWorkflowSchemes"
parameters:
- description: "The index of the first item to return in a page of results (page\
\ offset)."
in: "query"
name: "startAt"
schema:
default: 0
format: "int64"
type: "integer"
- description: "The maximum number of items to return per page."
in: "query"
name: "maxResults"
schema:
default: 50
format: "int32"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"isLast\":true,\"maxResults\":50,\"startAt\":0,\"total\"\
:2,\"values\":[{\"defaultWorkflow\":\"jira\",\"description\":\"The\
\ description of the example workflow scheme.\",\"id\":101010,\"issueTypeMappings\"\
:{\"10000\":\"scrum workflow\",\"10001\":\"builds workflow\"},\"name\"\
:\"Example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101010\"\
},{\"defaultWorkflow\":\"jira\",\"description\":\"The description\
\ of the another example workflow scheme.\",\"id\":101011,\"issueTypeMappings\"\
:{\"10000\":\"scrum workflow\",\"10001\":\"builds workflow\"},\"name\"\
:\"Another example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101011\"\
}]}"
schema:
$ref: "#/components/schemas/PageBeanWorkflowScheme"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get all workflow schemes"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
post:
deprecated: false
description: "Creates a workflow scheme.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createWorkflowScheme"
parameters: []
requestBody:
content:
application/json:
example:
defaultWorkflow: "jira"
description: "The description of the example workflow scheme."
issueTypeMappings:
"10000": "scrum workflow"
"10001": "builds workflow"
name: "Example workflow scheme"
schema:
$ref: "#/components/schemas/WorkflowScheme"
required: true
responses:
"201":
content:
application/json:
example: "{\"defaultWorkflow\":\"jira\",\"description\":\"The description\
\ of the example workflow scheme.\",\"draft\":false,\"id\":101010,\"\
issueTypeMappings\":{\"10000\":\"scrum workflow\",\"10001\":\"builds\
\ workflow\"},\"name\":\"Example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101010\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create workflow scheme"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow-scheme:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
- "read:workflow-scheme:jira"
state: "Beta"
/rest/api/2/workflowscheme/project:
get:
deprecated: false
description: "Returns a list of the workflow schemes associated with a list\
\ of projects. Each returned workflow scheme includes a list of the requested\
\ projects associated with it. Any team-managed or non-existent projects in\
\ the request are ignored and no errors are returned.\n\nIf the project is\
\ associated with the `Default Workflow Scheme` no ID is returned. This is\
\ because the way the `Default Workflow Scheme` is stored means it has no\
\ ID.\n\n**[Permissions](#permissions) required:** *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getWorkflowSchemeProjectAssociations"
parameters:
- description: "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`."
in: "query"
name: "projectId"
required: true
schema:
items:
example: 10010
format: "int64"
type: "integer"
maxItems: 100
minItems: 1
type: "array"
uniqueItems: true
responses:
"200":
content:
application/json:
example: "{\"values\":[{\"projectIds\":[\"10010\",\"10020\"],\"workflowScheme\"\
:{\"defaultWorkflow\":\"jira\",\"description\":\"The description of\
\ the example workflow scheme.\",\"id\":101010,\"issueTypeMappings\"\
:{\"10000\":\"scrum workflow\",\"10001\":\"builds workflow\"},\"name\"\
:\"Example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101010\"\
}}]}"
schema:
$ref: "#/components/schemas/ContainerOfWorkflowSchemeAssociations"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[],\"errors\":{\"projectId\":\"The ID of\
\ a project has to be provided.\"}}"
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ workflow scheme associations.\"],\"errors\":{}}"
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get workflow scheme project associations"
tags:
- "Workflow scheme project associations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
put:
deprecated: false
description: "Assigns a workflow scheme to a project. This operation is performed\
\ only when there are no issues in the project.\n\nWorkflow schemes can only\
\ be assigned to classic projects.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "assignSchemeToProject"
parameters: []
requestBody:
content:
application/json:
example:
projectId: "10001"
workflowSchemeId: "10032"
schema:
$ref: "#/components/schemas/WorkflowSchemeProjectAssociation"
required: true
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Only classic projects can have workflow\
\ schemes assigned.\"],\"errors\":{}}"
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example: "{\"errorMessages\":[\"Only Jira administrators can access\
\ workflow scheme associations.\"],\"errors\":{}}"
description: "Returned if the user does not have the required permissions."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"The workflow scheme was not found.\"\
],\"errors\":{}}"
description: "Returned if the workflow scheme or the project are not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Assign workflow scheme to project"
tags:
- "Workflow scheme project associations"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow-scheme:jira"
state: "Beta"
/rest/api/2/workflowscheme/read:
post:
deprecated: false
description: "Returns a list of workflow schemes by providing workflow scheme\
\ IDs or project IDs.\n\n**[Permissions](#permissions) required:**\n\n * \
\ *Administer Jira* global permission to access all, including project-scoped,\
\ workflow schemes\n * *Administer projects* project permissions to access\
\ project-scoped workflow schemes"
operationId: "readWorkflowSchemes"
parameters:
- description: "Use [expand](#expansion) to include additional information in\
\ the response. This parameter accepts a comma-separated list. Expand options\
\ include:\n\n * `workflows.usages` Returns the project and issue types\
\ that each workflow in the workflow scheme is associated with."
in: "query"
name: "expand"
schema:
type: "string"
requestBody:
content:
application/json:
example:
projectIds:
- "10047"
- "10048"
workflowSchemeIds:
- "3e59db0f-ed6c-47ce-8d50-80c0c4572677"
schema:
$ref: "#/components/schemas/WorkflowSchemeReadRequest"
required: true
responses:
"200":
content:
application/json:
example: "[{\"defaultWorkflow\":{\"description\":\"This is the default\
\ workflow for Software Development projects.\",\"id\":\"3e59db0f-ed6c-47ce-8d50-80c0c4572677\"\
,\"name\":\"Default Software Development Workflow\",\"usage\":[{\"\
issueTypeIds\":[],\"projectId\":\"10047\"}],\"version\":{\"id\":\"\
657812fc-bc72-400f-aae0-df8d88db3d9g\",\"versionNumber\":1}},\"description\"\
:\"This is the workflow scheme for the Software Development project\
\ type.\",\"id\":\"3g78dg2a-ns2n-56ab-9812-42h5j1464567\",\"name\"\
:\"Software Developer Workflow Scheme\",\"projectIdsUsingScheme\"\
:[\"10047\"],\"scope\":{\"project\":{\"id\":\"10047\"},\"type\":\"\
GLOBAL\"},\"taskId\":\"3f83dg2a-ns2n-56ab-9812-42h5j1461629\",\"version\"\
:{\"id\":\"527213fc-bc72-400f-aae0-df8d88db2c8a\",\"versionNumber\"\
:1},\"workflowsForIssueTypes\":[{\"issueTypeIds\":[\"10013\"],\"workflow\"\
:{\"description\":\"This is the workflow for the Software Development\
\ bug issue type.\",\"id\":\"5e79ae0f-ed6c-47ce-8d50-80c0c4572745\"\
,\"name\":\"Software Development Bug Workflow\",\"usage\":[{\"issueTypeIds\"\
:[\"10013\"],\"projectId\":\"10047\"}],\"version\":{\"id\":\"897812dc-bc72-400f-aae0-df8d88fe3d8f\"\
,\"versionNumber\":1}}}]}]"
schema:
items:
$ref: "#/components/schemas/WorkflowSchemeReadResponse"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Bulk get workflow schemes"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
state: "Beta"
x-experimental: true
/rest/api/2/workflowscheme/update:
post:
deprecated: false
description: "Updates company-managed and team-managed project workflow schemes.\
\ This API doesn't have a concept of draft, so any changes made to a workflow\
\ scheme are immediately available. When changing the available statuses for\
\ issue types, an [asynchronous task](#async) migrates the issues as defined\
\ in the provided mappings.\n\n**[Permissions](#permissions) required:**\n\
\n * *Administer Jira* project permission to update all, including global-scoped,\
\ workflow schemes.\n * *Administer projects* project permission to update\
\ project-scoped workflow schemes."
operationId: "updateSchemes"
parameters: []
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/WorkflowSchemeUpdateRequest"
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the request is successful and there is no asynchronous\
\ task."
"303":
content:
application/json:
schema:
$ref: "#/components/schemas/TaskProgressBeanObject"
description: "Returned if the request is successful and there is an asynchronous\
\ task for the migrations."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update workflow scheme"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow-scheme:jira"
state: "Beta"
x-experimental: true
/rest/api/2/workflowscheme/update/mappings:
post:
deprecated: false
description: "Gets the required status mappings for the desired changes to a\
\ workflow scheme. The results are provided per issue type and workflow. When\
\ updating a workflow scheme, status mappings can be provided per issue type,\
\ per workflow, or both.\n\n**[Permissions](#permissions) required:**\n\n\
\ * *Administer Jira* permission to update all, including global-scoped,\
\ workflow schemes.\n * *Administer projects* project permission to update\
\ project-scoped workflow schemes."
operationId: "updateWorkflowSchemeMappings"
parameters: []
requestBody:
content:
application/json:
example:
defaultWorkflowId: "10010"
id: "10001"
workflowsForIssueTypes:
- issueTypeIds:
- "10010"
- "10011"
workflowId: "10001"
schema:
$ref: "#/components/schemas/WorkflowSchemeUpdateRequiredMappingsRequest"
required: true
responses:
"200":
content:
application/json:
example: "{\"statusMappingsByIssueTypes\":[{\"issueTypeId\":\"10000\"\
,\"statusIds\":[\"10000\",\"10001\"]}],\"statusMappingsByWorkflows\"\
:[{\"sourceWorkflowId\":\"10000\",\"statusIds\":[\"10000\",\"10001\"\
],\"targetWorkflowId\":\"10001\"}],\"statuses\":[{\"category\":\"\
TODO\",\"id\":\"10000\",\"name\":\"To Do\"}],\"statusesPerWorkflow\"\
:[{\"initialStatusId\":\"10000\",\"statuses\":[\"10000\",\"10001\"\
],\"workflowId\":\"10000\"}]}"
schema:
$ref: "#/components/schemas/WorkflowSchemeUpdateRequiredMappingsResponse"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing, or the caller doesn't have permissions to perform the operation."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get required status mappings for workflow scheme update"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow-scheme:jira"
state: "Beta"
x-experimental: true
/rest/api/2/workflowscheme/{id}:
delete:
deprecated: false
description: "Deletes a workflow scheme. Note that a workflow scheme cannot\
\ be deleted if it is active (that is, being used by at least one project).\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteWorkflowScheme"
parameters:
- description: "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*."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the scheme is active."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete workflow scheme"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:workflow-scheme:jira"
state: "Beta"
get:
deprecated: false
description: "Returns a workflow scheme.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getWorkflowScheme"
parameters:
- description: "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*."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "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."
in: "query"
name: "returnDraftIfExists"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"jira\",\"description\":\"The description\
\ of the example workflow scheme.\",\"draft\":false,\"id\":101010,\"\
issueTypeMappings\":{\"10000\":\"scrum workflow\",\"10001\":\"builds\
\ workflow\"},\"name\":\"Example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101010\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get workflow scheme"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a company-manged project workflow scheme, including the\
\ name, default workflow, issue type to project mappings, and more. If the\
\ workflow scheme is active (that is, being used by at least one project),\
\ then a draft workflow scheme is created or updated instead, provided that\
\ `updateDraftIfNeeded` is set to `true`.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateWorkflowScheme"
parameters:
- description: "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*."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
defaultWorkflow: "jira"
description: "The description of the example workflow scheme."
issueTypeMappings:
"10000": "scrum workflow"
name: "Example workflow scheme"
updateDraftIfNeeded: false
schema:
$ref: "#/components/schemas/WorkflowScheme"
required: true
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"jira\",\"description\":\"The description\
\ of the example workflow scheme.\",\"draft\":false,\"id\":101010,\"\
issueTypeMappings\":{\"10000\":\"scrum workflow\",\"10001\":\"builds\
\ workflow\"},\"name\":\"Example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101010\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Classic update workflow scheme"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "write:workflow-scheme:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/workflowscheme/{id}/createdraft:
post:
deprecated: false
description: "Create a draft workflow scheme from an active workflow scheme,\
\ by copying the active workflow scheme. Note that an active workflow scheme\
\ can only have one draft workflow scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "createWorkflowSchemeDraftFromParent"
parameters:
- description: "The ID of the active workflow scheme that the draft is created\
\ from."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"201":
content:
application/json:
example: "{\"defaultWorkflow\":\"scrum workflow\",\"description\":\"\
The description of the example workflow scheme.\",\"draft\":true,\"\
id\":17218781,\"issueTypeMappings\":{\"10000\":\"jira\",\"10001\"\
:\"jira\"},\"lastModified\":\"Today 6:38 PM\",\"lastModifiedUser\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":true,\"applicationRoles\":{\"items\":[],\"size\":1},\"\
avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"name\":\"Example workflow scheme\"\
,\"originalDefaultWorkflow\":\"jira\",\"originalIssueTypeMappings\"\
:{\"10001\":\"builds workflow\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/17218781/draft\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Create draft workflow scheme"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
- "read:issue-security-level:jira"
- "read:project-role:jira"
- "read:screen:jira"
- "read:status:jira"
- "read:user:jira"
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "write:workflow-scheme:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/workflowscheme/{id}/default:
delete:
deprecated: false
description: "Resets the default workflow for a workflow scheme. That is, the\
\ default workflow is set to Jira's system workflow (the *jira* workflow).\n\
\nNote that active workflow schemes cannot be edited. If the workflow scheme\
\ is active, set `updateDraftIfNeeded` to `true` and a draft workflow scheme\
\ is created or updated with the default workflow reset. The draft workflow\
\ scheme can be published in Jira.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteDefaultWorkflow"
parameters:
- description: "The ID of the workflow scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "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`."
in: "query"
name: "updateDraftIfNeeded"
schema:
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"jira\",\"description\":\"The description\
\ of the example workflow scheme.\",\"draft\":false,\"id\":101010,\"\
issueTypeMappings\":{\"10000\":\"scrum workflow\",\"10001\":\"builds\
\ workflow\"},\"name\":\"Example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101010\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the workflow scheme cannot be edited and `updateDraftIfNeeded`\
\ is not `true`."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete default workflow"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "write:workflow-scheme:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the default workflow for a workflow scheme. The default\
\ workflow is the workflow that is assigned any issue types that have not\
\ been mapped to any other workflow. The default workflow has *All Unassigned\
\ Issue Types* listed in its issue types for the workflow scheme in Jira.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getDefaultWorkflow"
parameters:
- description: "The ID of the workflow scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "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."
in: "query"
name: "returnDraftIfExists"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"workflow\":\"jira\"}"
schema:
$ref: "#/components/schemas/DefaultWorkflow"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get default workflow"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "read:workflow:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the default workflow for a workflow scheme.\n\nNote that\
\ active workflow schemes cannot be edited. If the workflow scheme is active,\
\ set `updateDraftIfNeeded` to `true` in the request object and a draft workflow\
\ scheme is created or updated with the new default workflow. The draft workflow\
\ scheme can be published in Jira.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateDefaultWorkflow"
parameters:
- description: "The ID of the workflow scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
updateDraftIfNeeded: false
workflow: "jira"
schema:
$ref: "#/components/schemas/DefaultWorkflow"
description: "The new default workflow."
required: true
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"jira\",\"description\":\"The description\
\ of the example workflow scheme.\",\"draft\":false,\"id\":101010,\"\
issueTypeMappings\":{\"10000\":\"scrum workflow\",\"10001\":\"builds\
\ workflow\"},\"name\":\"Example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101010\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the workflow scheme cannot be edited and `updateDraftIfNeeded`\
\ is not `true`."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update default workflow"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "write:workflow-scheme:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/workflowscheme/{id}/draft:
delete:
deprecated: false
description: "Deletes a draft workflow scheme.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteWorkflowSchemeDraft"
parameters:
- description: "The ID of the active workflow scheme that the draft was created\
\ from."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"204":
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission.."
"404":
description: "Returned if:\n\n * the original active workflow scheme is\
\ not found.\n * the original active workflow scheme does not have a\
\ draft."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete draft workflow scheme"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:workflow-scheme:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the draft workflow scheme for an active workflow scheme.\
\ Draft workflow schemes allow changes to be made to the active workflow schemes:\
\ When an active workflow scheme is updated, a draft copy is created. The\
\ draft is modified, then the changes in the draft are copied back to the\
\ active workflow scheme. See [Configuring workflow schemes](https://confluence.atlassian.com/x/tohKLg)\
\ for more information. \nNote that:\n\n * Only active workflow schemes\
\ can have draft workflow schemes.\n * An active workflow scheme can only\
\ have one draft workflow scheme.\n\n**[Permissions](#permissions) required:**\
\ *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getWorkflowSchemeDraft"
parameters:
- description: "The ID of the active workflow scheme that the draft was created\
\ from."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"scrum workflow\",\"description\":\"\
The description of the example workflow scheme.\",\"draft\":true,\"\
id\":17218781,\"issueTypeMappings\":{\"10000\":\"jira\",\"10001\"\
:\"jira\"},\"lastModified\":\"Today 6:38 PM\",\"lastModifiedUser\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":true,\"applicationRoles\":{\"items\":[],\"size\":1},\"\
avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"name\":\"Example workflow scheme\"\
,\"originalDefaultWorkflow\":\"jira\",\"originalIssueTypeMappings\"\
:{\"10001\":\"builds workflow\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/17218781/draft\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if:\n\n * the original active workflow scheme is\
\ not found.\n * the original active workflow scheme does not have a\
\ draft."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get draft workflow scheme"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
- "read:issue-security-level:jira"
- "read:project-role:jira"
- "read:screen:jira"
- "read:status:jira"
- "read:user:jira"
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
put:
deprecated: false
description: "Updates a draft workflow scheme. If a draft workflow scheme does\
\ not exist for the active workflow scheme, then a draft is created. Note\
\ that an active workflow scheme can only have one draft workflow scheme.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateWorkflowSchemeDraft"
parameters:
- description: "The ID of the active workflow scheme that the draft was created\
\ from."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
defaultWorkflow: "jira"
description: "The description of the example workflow scheme."
issueTypeMappings:
"10000": "scrum workflow"
name: "Example workflow scheme"
updateDraftIfNeeded: false
schema:
$ref: "#/components/schemas/WorkflowScheme"
required: true
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"scrum workflow\",\"description\":\"\
The description of the example workflow scheme.\",\"draft\":true,\"\
id\":17218781,\"issueTypeMappings\":{\"10000\":\"jira\",\"10001\"\
:\"jira\"},\"lastModified\":\"Today 6:38 PM\",\"lastModifiedUser\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":true,\"applicationRoles\":{\"items\":[],\"size\":1},\"\
avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"name\":\"Example workflow scheme\"\
,\"originalDefaultWorkflow\":\"jira\",\"originalIssueTypeMappings\"\
:{\"10001\":\"builds workflow\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/17218781/draft\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if:\n\n * the original active workflow scheme is\
\ not found.\n * the original active workflow scheme does not have a\
\ draft."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update draft workflow scheme"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:group:jira"
- "read:issue-security-level:jira"
- "read:project-role:jira"
- "read:screen:jira"
- "read:status:jira"
- "read:user:jira"
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "write:workflow-scheme:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
state: "Beta"
/rest/api/2/workflowscheme/{id}/draft/default:
delete:
deprecated: false
description: "Resets the default workflow for a workflow scheme's draft. That\
\ is, the default workflow is set to Jira's system workflow (the *jira* workflow).\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteDraftDefaultWorkflow"
parameters:
- description: "The ID of the workflow scheme that the draft belongs to."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"scrum workflow\",\"description\":\"\
The description of the example workflow scheme.\",\"draft\":true,\"\
id\":17218781,\"issueTypeMappings\":{\"10000\":\"jira\",\"10001\"\
:\"jira\"},\"lastModified\":\"Today 6:38 PM\",\"lastModifiedUser\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":true,\"applicationRoles\":{\"items\":[],\"size\":1},\"\
avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"name\":\"Example workflow scheme\"\
,\"originalDefaultWorkflow\":\"jira\",\"originalIssueTypeMappings\"\
:{\"10001\":\"builds workflow\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/17218781/draft\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if any of the following is true:\n\n * The workflow\
\ scheme is not found.\n * The workflow scheme does not have a draft."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete draft default workflow"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:workflow-scheme:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
- "read:workflow-scheme:jira"
- "read:workflow:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the default workflow for a workflow scheme's draft. The\
\ default workflow is the workflow that is assigned any issue types that have\
\ not been mapped to any other workflow. The default workflow has *All Unassigned\
\ Issue Types* listed in its issue types for the workflow scheme in Jira.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getDraftDefaultWorkflow"
parameters:
- description: "The ID of the workflow scheme that the draft belongs to."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"workflow\":\"jira\"}"
schema:
$ref: "#/components/schemas/DefaultWorkflow"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission.."
"404":
description: "Returned if any of the following is true:\n\n * The workflow\
\ scheme is not found.\n * The workflow scheme does not have a draft."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get draft default workflow"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "read:workflow:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the default workflow for a workflow scheme's draft.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateDraftDefaultWorkflow"
parameters:
- description: "The ID of the workflow scheme that the draft belongs to."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
requestBody:
content:
application/json:
example:
updateDraftIfNeeded: false
workflow: "jira"
schema:
$ref: "#/components/schemas/DefaultWorkflow"
description: "The object for the new default workflow."
required: true
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"scrum workflow\",\"description\":\"\
The description of the example workflow scheme.\",\"draft\":true,\"\
id\":17218781,\"issueTypeMappings\":{\"10000\":\"jira\",\"10001\"\
:\"jira\"},\"lastModified\":\"Today 6:38 PM\",\"lastModifiedUser\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":true,\"applicationRoles\":{\"items\":[],\"size\":1},\"\
avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"name\":\"Example workflow scheme\"\
,\"originalDefaultWorkflow\":\"jira\",\"originalIssueTypeMappings\"\
:{\"10001\":\"builds workflow\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/17218781/draft\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if any of the following is true:\n\n * The workflow\
\ scheme is not found.\n * The workflow scheme does not have a draft."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Update draft default workflow"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow-scheme:jira"
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/workflowscheme/{id}/draft/issuetype/{issueType}:
delete:
deprecated: false
description: "Deletes the issue type-workflow mapping for an issue type in a\
\ workflow scheme's draft.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteWorkflowSchemeDraftIssueType"
parameters:
- description: "The ID of the workflow scheme that the draft belongs to."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the issue type."
in: "path"
name: "issueType"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"scrum workflow\",\"description\":\"\
The description of the example workflow scheme.\",\"draft\":true,\"\
id\":17218781,\"issueTypeMappings\":{\"10000\":\"jira\",\"10001\"\
:\"jira\"},\"lastModified\":\"Today 6:38 PM\",\"lastModifiedUser\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":true,\"applicationRoles\":{\"items\":[],\"size\":1},\"\
avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"name\":\"Example workflow scheme\"\
,\"originalDefaultWorkflow\":\"jira\",\"originalIssueTypeMappings\"\
:{\"10001\":\"builds workflow\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/17218781/draft\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme or issue type is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete workflow for issue type in draft workflow scheme"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:workflow-scheme:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
- "read:workflow-scheme:jira"
- "read:workflow:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the issue type-workflow mapping for an issue type in a\
\ workflow scheme's draft.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getWorkflowSchemeDraftIssueType"
parameters:
- description: "The ID of the workflow scheme that the draft belongs to."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the issue type."
in: "path"
name: "issueType"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"issueType\":\"10000\",\"workflow\":\"jira\"}"
schema:
$ref: "#/components/schemas/IssueTypeWorkflowMapping"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme or issue type is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get workflow for issue type in draft workflow scheme"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "read:issue-type:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the workflow for an issue type in a workflow scheme's draft.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setWorkflowSchemeDraftIssueType"
parameters:
- description: "The ID of the workflow scheme that the draft belongs to."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the issue type."
in: "path"
name: "issueType"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
issueType: "10000"
updateDraftIfNeeded: false
workflow: "jira"
schema:
$ref: "#/components/schemas/IssueTypeWorkflowMapping"
description: "The issue type-project mapping."
required: true
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"scrum workflow\",\"description\":\"\
The description of the example workflow scheme.\",\"draft\":true,\"\
id\":17218781,\"issueTypeMappings\":{\"10000\":\"jira\",\"10001\"\
:\"jira\"},\"lastModified\":\"Today 6:38 PM\",\"lastModifiedUser\"\
:{\"accountId\":\"5b10a2844c20165700ede21g\",\"accountType\":\"atlassian\"\
,\"active\":true,\"applicationRoles\":{\"items\":[],\"size\":1},\"\
avatarUrls\":{\"16x16\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16\"\
,\"24x24\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24\"\
,\"32x32\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32\"\
,\"48x48\":\"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48\"\
},\"displayName\":\"Mia Krystof\",\"emailAddress\":\"mia@example.com\"\
,\"groups\":{\"items\":[],\"size\":3},\"key\":\"\",\"name\":\"\",\"\
self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
,\"timeZone\":\"Australia/Sydney\"},\"name\":\"Example workflow scheme\"\
,\"originalDefaultWorkflow\":\"jira\",\"originalIssueTypeMappings\"\
:{\"10001\":\"builds workflow\"},\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/17218781/draft\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme or issue type is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Set workflow for issue type in draft workflow scheme"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow-scheme:jira"
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/workflowscheme/{id}/draft/publish:
post:
deprecated: false
description: "Publishes a draft workflow scheme.\n\nWhere the draft workflow\
\ includes new workflow statuses for an issue type, mappings are provided\
\ to update issues with the original workflow status to the new workflow status.\n\
\nThis operation is [asynchronous](#async). Follow the `location` link in\
\ the response to determine the status of the task and use [Get task](#api-rest-api-2-task-taskId-get)\
\ to obtain updates.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "publishDraftWorkflowScheme"
parameters:
- description: "The ID of the workflow scheme that the draft belongs to."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "Whether the request only performs a validation."
in: "query"
name: "validateOnly"
schema:
default: false
type: "boolean"
requestBody:
content:
application/json:
example:
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"
schema:
$ref: "#/components/schemas/PublishDraftWorkflowScheme"
description: "Details of the status mappings."
required: true
responses:
"204":
description: "Returned if the request is only for validation and is successful."
"303":
content:
application/json:
schema:
$ref: "#/components/schemas/TaskProgressBeanObject"
description: "Returned if the request is successful."
"400":
content:
application/json:
example: "{\"errorMessages\":[\"Issue type with ID '2','4' is missing\
\ the mappings required for statuses with IDs 10004.\"],\"errors\"\
:{}}"
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
content:
application/json:
example: "{\"errorMessages\":[\"Draft workflow scheme was not found.\"\
],\"errors\":{}}"
description: "Returned if any of these are true:\n\n * The workflow scheme\
\ is not found.\n * The workflow scheme does not have a draft.\n * A\
\ new status in the draft workflow scheme is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Publish draft workflow scheme"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow-scheme:jira"
state: "Beta"
/rest/api/2/workflowscheme/{id}/draft/workflow:
delete:
deprecated: false
description: "Deletes the workflow-issue type mapping for a workflow in a workflow\
\ scheme's draft.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteDraftWorkflowMapping"
parameters:
- description: "The ID of the workflow scheme that the draft belongs to."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The name of the workflow."
in: "query"
name: "workflowName"
required: true
schema:
type: "string"
responses:
"200":
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if any of the following is true:\n\n * The workflow\
\ scheme is not found.\n * The workflow scheme does not have a draft.\n\
\ * The workflow is not found.\n * The workflow is not specified."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete issue types for workflow in draft workflow scheme"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:workflow-scheme:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the workflow-issue type mappings for a workflow scheme's\
\ draft.\n\n**[Permissions](#permissions) required:** *Administer Jira* [global\
\ permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getDraftWorkflow"
parameters:
- description: "The ID of the workflow scheme that the draft belongs to."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The name of a workflow in the scheme. Limits the results to\
\ the workflow-issue type mapping for the specified workflow."
in: "query"
name: "workflowName"
schema:
type: "string"
responses:
"200":
content:
application/json:
example: "{\"defaultMapping\":false,\"issueTypes\":[\"10000\",\"10001\"\
],\"workflow\":\"jira\"}"
schema:
$ref: "#/components/schemas/IssueTypesWorkflowMapping"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if either the workflow scheme or workflow (if specified)\
\ is not found. session."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue types for workflows in draft workflow scheme"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "read:issue-type:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the issue types for a workflow in a workflow scheme's draft.\
\ The workflow can also be set as the default workflow for the draft workflow\
\ scheme. Unmapped issues types are mapped to the default workflow.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateDraftWorkflowMapping"
parameters:
- description: "The ID of the workflow scheme that the draft belongs to."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The name of the workflow."
in: "query"
name: "workflowName"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
issueTypes:
- "10000"
updateDraftIfNeeded: true
workflow: "jira"
schema:
$ref: "#/components/schemas/IssueTypesWorkflowMapping"
required: true
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"jira\",\"description\":\"The description\
\ of the example workflow scheme.\",\"draft\":false,\"id\":101010,\"\
issueTypeMappings\":{\"10000\":\"scrum workflow\",\"10001\":\"builds\
\ workflow\"},\"name\":\"Example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101010\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if any of the following is true:\n\n * The workflow\
\ scheme is not found.\n * The workflow scheme does not have a draft.\n\
\ * The workflow is not found.\n * The workflow is not specified."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Set issue types for workflow in workflow scheme"
tags:
- "Workflow scheme drafts"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow-scheme:jira"
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/workflowscheme/{id}/issuetype/{issueType}:
delete:
deprecated: false
description: "Deletes the issue type-workflow mapping for an issue type in a\
\ workflow scheme.\n\nNote that active workflow schemes cannot be edited.\
\ If the workflow scheme is active, set `updateDraftIfNeeded` to `true` and\
\ a draft workflow scheme is created or updated with the issue type-workflow\
\ mapping deleted. The draft workflow scheme can be published in Jira.\n\n\
**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteWorkflowSchemeIssueType"
parameters:
- description: "The ID of the workflow scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the issue type."
in: "path"
name: "issueType"
required: true
schema:
type: "string"
- description: "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`."
in: "query"
name: "updateDraftIfNeeded"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"jira\",\"description\":\"The description\
\ of the example workflow scheme.\",\"draft\":false,\"id\":101010,\"\
issueTypeMappings\":{\"10000\":\"scrum workflow\",\"10001\":\"builds\
\ workflow\"},\"name\":\"Example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101010\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the workflow cannot be edited and `updateDraftIfNeeded`\
\ is false."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme or issue type is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete workflow for issue type in workflow scheme"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:workflow-scheme:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
- "read:workflow-scheme:jira"
- "read:workflow:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the issue type-workflow mapping for an issue type in a\
\ workflow scheme.\n\n**[Permissions](#permissions) required:** *Administer\
\ Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getWorkflowSchemeIssueType"
parameters:
- description: "The ID of the workflow scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the issue type."
in: "path"
name: "issueType"
required: true
schema:
type: "string"
- description: "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."
in: "query"
name: "returnDraftIfExists"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"issueType\":\"10000\",\"workflow\":\"jira\"}"
schema:
$ref: "#/components/schemas/IssueTypeWorkflowMapping"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme or issue type is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get workflow for issue type in workflow scheme"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "read:issue-type:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the workflow for an issue type in a workflow scheme.\n\n\
Note that active workflow schemes cannot be edited. If the workflow scheme\
\ is active, set `updateDraftIfNeeded` to `true` in the request body and a\
\ draft workflow scheme is created or updated with the new issue type-workflow\
\ mapping. The draft workflow scheme can be published in Jira.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "setWorkflowSchemeIssueType"
parameters:
- description: "The ID of the workflow scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The ID of the issue type."
in: "path"
name: "issueType"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
issueType: "10000"
updateDraftIfNeeded: false
workflow: "jira"
schema:
$ref: "#/components/schemas/IssueTypeWorkflowMapping"
description: "The issue type-project mapping."
required: true
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"jira\",\"description\":\"The description\
\ of the example workflow scheme.\",\"draft\":false,\"id\":101010,\"\
issueTypeMappings\":{\"10000\":\"scrum workflow\",\"10001\":\"builds\
\ workflow\"},\"name\":\"Example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101010\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the workflow cannot be edited and `updateDraftIfNeeded`\
\ is false."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if the workflow scheme or issue type is not found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Set workflow for issue type in workflow scheme"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow-scheme:jira"
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/workflowscheme/{id}/workflow:
delete:
deprecated: false
description: "Deletes the workflow-issue type mapping for a workflow in a workflow\
\ scheme.\n\nNote that active workflow schemes cannot be edited. If the workflow\
\ scheme is active, set `updateDraftIfNeeded` to `true` and a draft workflow\
\ scheme is created or updated with the workflow-issue type mapping deleted.\
\ The draft workflow scheme can be published in Jira.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "deleteWorkflowMapping"
parameters:
- description: "The ID of the workflow scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The name of the workflow."
in: "query"
name: "workflowName"
required: true
schema:
type: "string"
- description: "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`."
in: "query"
name: "updateDraftIfNeeded"
schema:
default: false
type: "boolean"
responses:
"200":
description: "Returned if the request is successful."
"400":
description: "Returned if the workflow cannot be edited and `updateDraftIfNeeded`\
\ is not true."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if any of the following is true:\n\n * The workflow\
\ scheme is not found.\n * The workflow is not found.\n * The workflow\
\ is not specified."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Delete issue types for workflow in workflow scheme"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "delete:workflow-scheme:jira"
state: "Beta"
get:
deprecated: false
description: "Returns the workflow-issue type mappings for a workflow scheme.\n\
\n**[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "getWorkflow"
parameters:
- description: "The ID of the workflow scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The name of a workflow in the scheme. Limits the results to\
\ the workflow-issue type mapping for the specified workflow."
in: "query"
name: "workflowName"
schema:
type: "string"
- description: "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."
in: "query"
name: "returnDraftIfExists"
schema:
default: false
type: "boolean"
responses:
"200":
content:
application/json:
example: "{\"defaultMapping\":false,\"issueTypes\":[\"10000\",\"10001\"\
],\"workflow\":\"jira\"}"
schema:
$ref: "#/components/schemas/IssueTypesWorkflowMapping"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if either the workflow scheme or workflow is not\
\ found."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Get issue types for workflows in workflow scheme"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "read:issue-type:jira"
state: "Beta"
put:
deprecated: false
description: "Sets the issue types for a workflow in a workflow scheme. The\
\ workflow can also be set as the default workflow for the workflow scheme.\
\ Unmapped issues types are mapped to the default workflow.\n\nNote that active\
\ workflow schemes cannot be edited. If the workflow scheme is active, set\
\ `updateDraftIfNeeded` to `true` in the request body and a draft workflow\
\ scheme is created or updated with the new workflow-issue types mappings.\
\ The draft workflow scheme can be published in Jira.\n\n**[Permissions](#permissions)\
\ required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)."
operationId: "updateWorkflowMapping"
parameters:
- description: "The ID of the workflow scheme."
in: "path"
name: "id"
required: true
schema:
format: "int64"
type: "integer"
- description: "The name of the workflow."
in: "query"
name: "workflowName"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
example:
issueTypes:
- "10000"
updateDraftIfNeeded: true
workflow: "jira"
schema:
$ref: "#/components/schemas/IssueTypesWorkflowMapping"
required: true
responses:
"200":
content:
application/json:
example: "{\"defaultWorkflow\":\"jira\",\"description\":\"The description\
\ of the example workflow scheme.\",\"draft\":false,\"id\":101010,\"\
issueTypeMappings\":{\"10000\":\"scrum workflow\",\"10001\":\"builds\
\ workflow\"},\"name\":\"Example workflow scheme\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/workflowscheme/101010\"\
}"
schema:
$ref: "#/components/schemas/WorkflowScheme"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
description: "Returned if the user does not have the necessary permission."
"404":
description: "Returned if any of the following is true:\n\n * The workflow\
\ scheme is not found.\n * The workflow is not found.\n * The workflow\
\ is not specified."
security:
- basicAuth: []
- OAuth2:
- "manage:jira-configuration"
summary: "Set issue types for workflow in workflow scheme"
tags:
- "Workflow schemes"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "manage:jira-configuration"
state: "Current"
- scheme: "OAuth2"
scopes:
- "write:workflow-scheme:jira"
- "read:workflow-scheme:jira"
- "read:workflow:jira"
- "read:application-role:jira"
- "read:avatar:jira"
- "read:group:jira"
- "read:issue-type:jira"
- "read:project-category:jira"
- "read:project:jira"
- "read:user:jira"
state: "Beta"
/rest/api/2/worklog/deleted:
get:
deprecated: false
description: "Returns a list of IDs and delete timestamps for worklogs deleted\
\ after a date and time.\n\nThis resource is paginated, with a limit of 1000\
\ worklogs per page. Each page lists worklogs from oldest to youngest. If\
\ the number of items in the date range exceeds 1000, `until` indicates the\
\ timestamp of the youngest item on the page. Also, `nextPage` provides the\
\ URL for the next page of worklogs. The `lastPage` parameter is set to true\
\ on the last page of worklogs.\n\nThis resource does not return worklogs\
\ deleted during the minute preceding the request.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira."
operationId: "getIdsOfWorklogsDeletedSince"
parameters:
- description: "The date and time, as a UNIX timestamp in milliseconds, after\
\ which deleted worklogs are returned."
in: "query"
name: "since"
schema:
default: 0
format: "int64"
type: "integer"
responses:
"200":
content:
application/json:
example: "{\"lastPage\":true,\"nextPage\":\"https://your-domain.atlassian.net/api/~ver~/worklog/deleted?since=1438013693136\"\
,\"self\":\"https://your-domain.atlassian.net/api/~ver~/worklog/deleted?since=1438013671562\"\
,\"since\":1438013671562,\"until\":1438013693136,\"values\":[{\"properties\"\
:[],\"updatedTime\":1438013671562,\"worklogId\":103},{\"properties\"\
:[],\"updatedTime\":1438013672165,\"worklogId\":104},{\"properties\"\
:[],\"updatedTime\":1438013693136,\"worklogId\":105}]}"
schema:
$ref: "#/components/schemas/ChangedWorklogs"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get IDs of deleted worklogs"
tags:
- "Issue worklogs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-worklog:jira"
- "read:issue-worklog.property:jira"
state: "Beta"
/rest/api/2/worklog/list:
post:
deprecated: false
description: "Returns worklog details for a list of worklog IDs.\n\nThe returned\
\ list of worklogs is limited to 1000 items.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira, however, worklogs are only returned\
\ where either of the following is true:\n\n * the worklog is set as *Viewable\
\ by All Users*.\n * the user is a member of a project role or group with\
\ permission to view the worklog."
operationId: "getWorklogsForIds"
parameters:
- description: "Use [expand](#expansion) to include additional information about\
\ worklogs in the response. This parameter accepts `properties` that returns\
\ the properties of each worklog."
in: "query"
name: "expand"
schema:
default: ""
type: "string"
requestBody:
content:
application/json:
example:
ids:
- 1
- 2
- 5
- 10
schema:
$ref: "#/components/schemas/WorklogIdsRequestBean"
description: "A JSON object containing a list of worklog IDs."
required: true
responses:
"200":
content:
application/json:
example: "[{\"author\":{\"accountId\":\"5b10a2844c20165700ede21g\",\"\
active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"comment\":\"I did some work here.\",\"id\":\"100028\",\"issueId\"\
:\"10002\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/issue/10010/worklog/10000\"\
,\"started\":\"2021-01-17T12:34:00.000+0000\",\"timeSpent\":\"3h 20m\"\
,\"timeSpentSeconds\":12000,\"updateAuthor\":{\"accountId\":\"5b10a2844c20165700ede21g\"\
,\"active\":false,\"displayName\":\"Mia Krystof\",\"self\":\"https://your-domain.atlassian.net/rest/api/2/user?accountId=5b10a2844c20165700ede21g\"\
},\"updated\":\"2021-01-18T23:45:00.000+0000\",\"visibility\":{\"\
identifier\":\"276f955c-63d7-42c8-9520-92d01dca0625\",\"type\":\"\
group\",\"value\":\"jira-developers\"}}]"
schema:
items:
$ref: "#/components/schemas/Worklog"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if the request contains more than 1000 worklog IDs\
\ or is empty."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get worklogs"
tags:
- "Issue worklogs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:comment:jira"
- "read:group:jira"
- "read:issue-worklog:jira"
- "read:issue-worklog.property:jira"
- "read:project-role:jira"
- "read:user:jira"
- "read:avatar:jira"
state: "Beta"
/rest/api/2/worklog/updated:
get:
deprecated: false
description: "Returns a list of IDs and update timestamps for worklogs updated\
\ after a date and time.\n\nThis resource is paginated, with a limit of 1000\
\ worklogs per page. Each page lists worklogs from oldest to youngest. If\
\ the number of items in the date range exceeds 1000, `until` indicates the\
\ timestamp of the youngest item on the page. Also, `nextPage` provides the\
\ URL for the next page of worklogs. The `lastPage` parameter is set to true\
\ on the last page of worklogs.\n\nThis resource does not return worklogs\
\ updated during the minute preceding the request.\n\n**[Permissions](#permissions)\
\ required:** Permission to access Jira, however, worklogs are only returned\
\ where either of the following is true:\n\n * the worklog is set as *Viewable\
\ by All Users*.\n * the user is a member of a project role or group with\
\ permission to view the worklog."
operationId: "getIdsOfWorklogsModifiedSince"
parameters:
- description: "The date and time, as a UNIX timestamp in milliseconds, after\
\ which updated worklogs are returned."
in: "query"
name: "since"
schema:
default: 0
format: "int64"
type: "integer"
- description: "Use [expand](#expansion) to include additional information about\
\ worklogs in the response. This parameter accepts `properties` that returns\
\ the properties of each worklog."
in: "query"
name: "expand"
schema:
default: ""
type: "string"
responses:
"200":
content:
application/json:
example: "{\"lastPage\":true,\"nextPage\":\"https://your-domain.atlassian.net/api/~ver~/worklog/updated?since=1438013693136\"\
,\"self\":\"https://your-domain.atlassian.net/api/~ver~/worklog/updated?since=1438013671562\"\
,\"since\":1438013671562,\"until\":1438013693136,\"values\":[{\"properties\"\
:[],\"updatedTime\":1438013671562,\"worklogId\":103},{\"properties\"\
:[],\"updatedTime\":1438013672165,\"worklogId\":104},{\"properties\"\
:[],\"updatedTime\":1438013693136,\"worklogId\":105}]}"
schema:
$ref: "#/components/schemas/ChangedWorklogs"
description: "Returned if the request is successful."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2:
- "read:jira-work"
summary: "Get IDs of updated worklogs"
tags:
- "Issue worklogs"
x-atlassian-data-security-policy:
- app-access-rule-exempt: false
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes:
- "read:jira-work"
state: "Current"
- scheme: "OAuth2"
scopes:
- "read:issue-worklog:jira"
- "read:issue-worklog.property:jira"
state: "Beta"
/rest/atlassian-connect/1/addons/{addonKey}/properties:
get:
deprecated: false
description: "Gets all the properties of an app.\n\n**[Permissions](#permissions)\
\ required:** Only a Connect app whose key matches `addonKey` can make this\
\ request.\nAdditionally, Forge apps can access Connect app properties (stored\
\ against the same `app.connect.key`)."
operationId: "AddonPropertiesResource.getAddonProperties_get"
parameters:
- description: "The key of the app, as defined in its descriptor."
in: "path"
name: "addonKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example:
keys:
- self: "https://your-domain.atlassian.net/jira/rest/atlassian-connect/1/addon/example.app.key/properties/propertyKey"
key: "propertyKey"
schema:
$ref: "#/components/schemas/PropertyKeys"
description: "Returned if the request is successful."
"401":
content:
application/json:
example:
message: "Access to this resource must be authenticated as an app."
statusCode: 401
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2: []
summary: "Get app properties"
tags:
- "App properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
/rest/atlassian-connect/1/addons/{addonKey}/properties/{propertyKey}:
delete:
deprecated: false
description: "Deletes an app's property.\n\n**[Permissions](#permissions) required:**\
\ Only a Connect app whose key matches `addonKey` can make this request.\n\
Additionally, Forge apps can access Connect app properties (stored against\
\ the same `app.connect.key`)."
operationId: "AddonPropertiesResource.deleteAddonProperty_delete"
parameters:
- description: "The key of the app, as defined in its descriptor."
in: "path"
name: "addonKey"
required: true
schema:
type: "string"
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"400":
content:
application/json:
example:
message: "The property key cannot be longer than 127 characters."
statusCode: 400
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the property key is longer than 127 characters."
"401":
content:
application/json:
example:
message: "Access to this resource must be authenticated as an app."
statusCode: 401
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
example:
message: "Property with key not found."
statusCode: 404
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the property is not found or doesn't belong to\
\ the app."
security:
- basicAuth: []
- OAuth2: []
summary: "Delete app property"
tags:
- "App properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
get:
deprecated: false
description: "Returns the key and value of an app's property.\n\n**[Permissions](#permissions)\
\ required:** Only a Connect app whose key matches `addonKey` can make this\
\ request.\nAdditionally, Forge apps can access Connect app properties (stored\
\ against the same `app.connect.key`)."
operationId: "AddonPropertiesResource.getAddonProperty_get"
parameters:
- description: "The key of the app, as defined in its descriptor."
in: "path"
name: "addonKey"
required: true
schema:
type: "string"
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"200":
content:
application/json:
example:
self: "https://your-domain.atlassian.net/jira/rest/atlassian-connect/1/addon/example.app.key/properties/propertyKey"
key: "propertyKey"
value: "propertyValue"
schema:
$ref: "#/components/schemas/EntityProperty"
description: "Returned if the request is successful."
"400":
content:
application/json:
example:
message: "The property key cannot be longer than 127 characters."
statusCode: 400
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the property key is longer than 127 characters."
"401":
content:
application/json:
example:
message: "Access to this resource must be authenticated as an app."
statusCode: 401
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"404":
content:
application/json:
example:
message: "Property with key not found."
statusCode: 404
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the property is not found or doesn't belong to\
\ the app."
security:
- basicAuth: []
- OAuth2: []
summary: "Get app property"
tags:
- "App properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
put:
deprecated: false
description: "Sets the value of an app's property. Use this resource to store\
\ custom data for your app.\n\nThe value of the request body must be a [valid](http://tools.ietf.org/html/rfc4627),\
\ non-empty JSON blob. The maximum length is 32768 characters.\n\n**[Permissions](#permissions)\
\ required:** Only a Connect app whose key matches `addonKey` can make this\
\ request.\nAdditionally, Forge apps can access Connect app properties (stored\
\ against the same `app.connect.key`)."
operationId: "AddonPropertiesResource.putAddonProperty_put"
parameters:
- description: "The key of the app, as defined in its descriptor."
in: "path"
name: "addonKey"
required: true
schema:
type: "string"
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema: {}
required: true
responses:
"200":
content:
application/json:
example:
message: "Property updated."
statusCode: 200
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the property is updated."
"201":
content:
application/json:
example:
message: "Property created."
statusCode: 201
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned is the property is created."
"400":
content:
application/json:
example:
message: "The property key cannot be longer than 127 characters."
statusCode: 400
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if:\n * the property key is longer than 127 characters.\n\
\ * the value is not valid JSON.\n * the value is longer than 32768\
\ characters."
"401":
content:
application/json:
example:
message: "Access to this resource must be authenticated as an app."
statusCode: 401
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the authentication credentials are incorrect or\
\ missing."
security:
- basicAuth: []
- OAuth2: []
summary: "Set app property"
tags:
- "App properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
/rest/atlassian-connect/1/app/module/dynamic:
delete:
deprecated: false
description: "Remove all or a list of modules registered by the calling app.\n\
\n**[Permissions](#permissions) required:** Only Connect apps can make this\
\ request."
operationId: "DynamicModulesResource.removeModules_delete"
parameters:
- description: "The key of the module to remove. To include multiple module\
\ keys, provide multiple copies of this parameter.\nFor example, `moduleKey=dynamic-attachment-entity-property&moduleKey=dynamic-select-field`.\n\
Nonexistent keys are ignored."
in: "query"
name: "moduleKey"
required: false
schema:
items:
type: "string"
type: "array"
responses:
"204":
description: "Returned if the request is successful."
"401":
content:
application/json:
example:
message: "The request is not from a Connect app."
schema:
$ref: "#/components/schemas/ErrorMessage"
description: "Returned if the call is not from a Connect app."
summary: "Remove modules"
tags:
- "Dynamic modules"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
get:
deprecated: false
description: "Returns all modules registered dynamically by the calling app.\n\
\n**[Permissions](#permissions) required:** Only Connect apps can make this\
\ request."
operationId: "DynamicModulesResource.getModules_get"
parameters: []
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectModules"
description: "Returned if the request is successful."
"401":
content:
application/json:
example:
message: "The request is not from a Connect app."
schema:
$ref: "#/components/schemas/ErrorMessage"
description: "Returned if the call is not from a Connect app."
summary: "Get modules"
tags:
- "Dynamic modules"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
post:
deprecated: false
description: "Registers a list of modules.\n\n**[Permissions](#permissions)\
\ required:** Only Connect apps can make this request."
operationId: "DynamicModulesResource.registerModules_post"
parameters: []
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectModules"
required: true
responses:
"200":
description: "Returned if the request is successful."
"400":
content:
application/json:
example:
message: "Installation failed. The app com.example.app.key has duplicate\
\ module keys: [module-key]. Please contact the app vendor."
schema:
$ref: "#/components/schemas/ErrorMessage"
description: "Returned if:\n* any of the provided modules is invalid. For\
\ example, required properties are missing.\n* any of the modules conflict\
\ with registered dynamic modules or modules defined in the app descriptor.\
\ For example, there are duplicate keys.\n\nDetails of the issues encountered\
\ are included in the error message."
"401":
content:
application/json:
example:
message: "The request is not from a Connect app."
schema:
$ref: "#/components/schemas/ErrorMessage"
description: "Returned if the call is not from a Connect app."
summary: "Register modules"
tags:
- "Dynamic modules"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/atlassian-connect/1/migration/field:
put:
deprecated: false
description: "Updates the value of a custom field added by Connect apps on one\
\ or more issues.\nThe values of up to 200 custom fields can be updated.\n\
\n**[Permissions](#permissions) required:** Only Connect apps can make this\
\ request"
operationId: "AppIssueFieldValueUpdateResource.updateIssueFields_put"
parameters:
- description: "The ID of the transfer."
in: "header"
name: "Atlassian-Transfer-Id"
required: true
schema:
format: "uuid"
type: "string"
requestBody:
content:
application/json:
example:
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.0
schema:
$ref: "#/components/schemas/ConnectCustomFieldValues"
required: true
responses:
"200":
content:
application/json:
schema: {}
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"403":
description: "Returned if:\n* the transfer ID is not found.\n* the authorisation\
\ credentials are incorrect or missing."
summary: "Bulk update custom field value"
tags:
- "App migration"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/atlassian-connect/1/migration/properties/{entityType}:
put:
description: "Updates the values of multiple entity properties for an object,\
\ up to 50 updates per request. This operation is for use by Connect apps\
\ during app migration."
operationId: "MigrationResource.updateEntityPropertiesValue_put"
parameters:
- description: "The app migration transfer ID."
in: "header"
name: "Atlassian-Transfer-Id"
required: true
schema:
format: "uuid"
type: "string"
- description: "The type indicating the object that contains the entity properties."
in: "path"
name: "entityType"
required: true
schema:
enum:
- "IssueProperty"
- "CommentProperty"
- "DashboardItemProperty"
- "IssueTypeProperty"
- "ProjectProperty"
- "UserProperty"
- "WorklogProperty"
- "BoardProperty"
- "SprintProperty"
type: "string"
requestBody:
content:
application/json:
schema:
items:
$ref: "#/components/schemas/EntityPropertyDetails"
maxItems: 50
minItems: 1
type: "array"
required: true
responses:
"200":
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"403":
description: "Returned if the authorisation credentials are incorrect or\
\ missing."
summary: "Bulk update entity properties"
tags:
- "App migration"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/atlassian-connect/1/migration/workflow/rule/search:
post:
description: "Returns configurations for workflow transition rules migrated\
\ from server to cloud and owned by the calling Connect app."
operationId: "MigrationResource.workflowRuleSearch_post"
parameters:
- description: "The app migration transfer ID."
in: "header"
name: "Atlassian-Transfer-Id"
required: true
schema:
format: "uuid"
type: "string"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkflowRulesSearch"
required: true
responses:
"200":
content:
application/json:
example:
workflowEntityId: "a498d711-685d-428d-8c3e-bc03bb450ea7"
invalidRules:
- "55d44f1d-c859-42e5-9c27-2c5ec3f340b1"
validRules:
- workflowId:
name: "Workflow name"
draft: true
postFunctions:
- id: "123"
key: "WorkflowKey"
configuration:
value: "WorkflowValidator"
transition:
name: "transition"
id: 123
conditions:
- id: "123"
key: "WorkflowKey"
configuration:
value: "WorkflowValidator"
transition:
name: "transition"
id: 123
validators:
- id: "123"
key: "WorkflowKey"
configuration:
value: "WorkflowValidator"
transition:
name: "transition"
id: 123
schema:
$ref: "#/components/schemas/WorkflowRulesSearchDetails"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is not valid."
"403":
description: "Returned if the authorisation credentials are incorrect or\
\ missing."
summary: "Get workflow transition rule configurations"
tags:
- "App migration"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
/rest/atlassian-connect/1/service-registry:
get:
deprecated: false
description: "Retrieve the attributes of given service registries.\n\n**[Permissions](#permissions)\
\ required:** Only Connect apps can make this request and the servicesIds\
\ belong to the tenant you are requesting"
operationId: "ServiceRegistryResource.services_get"
parameters:
- description: "The ID of the services (the strings starting with \"b:\" need\
\ to be decoded in Base64)."
example: "[\"ari:cloud:graph::service/ca075ed7-6ea7-4563-acb3-000000000000/f51d7252-61e0-11ee-b94d-000000000000\"\
, \"ari:cloud:graph::service/ca075ed7-6ea7-4563-acb3-000000000000/f51d7252-61e0-11ee-b94d-000000000001\"\
]"
explode: true
in: "query"
name: "serviceIds"
required: true
schema:
items:
type: "string"
maxItems: 20
minItems: 1
type: "array"
style: "form"
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/ServiceRegistry"
type: "array"
description: "Returned if the request is successful."
"400":
description: "Returned if the request is invalid."
"401":
description: "The request needs to be authenticated."
"403":
description: "The request isn't authorized."
"500":
description: "The endpoint failed internally."
"501":
description: "The endpoint isn't ready for receiving requests."
"504":
description: "The upstream service is busy."
summary: "Retrieve the attributes of service registries"
tags:
- "Service Registry"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-experimental: true
/rest/forge/1/app/properties/{propertyKey}:
delete:
deprecated: false
description: "Deletes a Forge app's property.\n\n**[Permissions](#permissions)\
\ required:** Only Forge apps can make this request."
operationId: "deleteForgeAppProperty"
parameters:
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
responses:
"204":
description: "Returned if the request is successful."
"400":
content:
application/json:
example:
message: "The property key cannot be longer than 127 characters."
statusCode: 400
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the property key is longer than 127 characters."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example:
errorMessages:
- "Access to this resource must be authenticated as an app."
description: "Returned if the request isn't made directly by an app or if\
\ it's an impersonated request."
"404":
content:
application/json:
example:
message: "Property with key not found."
statusCode: 404
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the property isn't found or doesn't belong to\
\ the app."
security:
- basicAuth: []
- OAuth2: []
summary: "Delete app property (Forge)"
tags:
- "App properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
x-experimental: true
put:
deprecated: false
description: "Sets the value of a Forge app's property.\nThese values can be\
\ retrieved in [Jira expressions](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/)\n\
through the `app` [context variable](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/#context-variables).\n\
\nFor other use cases, use the [Storage API](https://developer.atlassian.com/platform/forge/runtime-reference/storage-api/).\n\
\nThe value of the request body must be a [valid](http://tools.ietf.org/html/rfc4627),\
\ non-empty JSON blob. The maximum length is 32768 characters.\n\n**[Permissions](#permissions)\
\ required:** Only Forge apps can make this request."
operationId: "putForgeAppProperty"
parameters:
- description: "The key of the property."
in: "path"
name: "propertyKey"
required: true
schema:
type: "string"
requestBody:
content:
application/json:
schema: {}
required: true
responses:
"200":
content:
application/json:
example:
message: "Property updated."
statusCode: 200
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if the property is updated."
"201":
content:
application/json:
example:
message: "Property created."
statusCode: 201
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned is the property is created."
"400":
content:
application/json:
example:
message: "The property key can't be longer than 127 characters."
statusCode: 400
schema:
$ref: "#/components/schemas/OperationMessage"
description: "Returned if:\n * the property key is longer than 127 characters.\n\
\ * the value isn't valid JSON.\n * the value is longer than 32768 characters."
"401":
description: "Returned if the authentication credentials are incorrect or\
\ missing."
"403":
content:
application/json:
example:
errorMessages:
- "Access to this resource must be authenticated as an app."
description: "Returned if the request isn't made directly by an app or if\
\ it's an impersonated request."
security:
- basicAuth: []
- OAuth2: []
summary: "Set app property (Forge)"
tags:
- "App properties"
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: "OAuth2"
scopes: []
state: "Current"
- scheme: "OAuth2"
scopes: []
state: "Beta"
x-experimental: true
servers:
- url: "https://your-domain.atlassian.net"
tags:
- description: "This resource represents an announcement banner. Use it to retrieve\
\ and update banner configuration."
name: "Announcement banner"
- description: "This resource represents app access rule data policies."
name: "App data policies (EAP)"
- description: "This resource represents application roles. Use it to get details\
\ of an application role or all application roles."
name: "Application roles"
- description: "This resource represents audits that record activities undertaken\
\ in Jira. Use it to get a list of audit records."
name: "Audit records"
- description: "This resource represents system and custom avatars. Use it to obtain\
\ the details of system or custom avatars, add and remove avatars from a project\
\ or issue type, and obtain avatar images."
name: "Avatars"
- description: "This resource represents classification levels."
name: "Classification levels"
- description: "This resource represents dashboards. Use it to obtain the details\
\ of dashboards as well as get, create, update, or remove item properties and\
\ gadgets from dashboards."
name: "Dashboards"
- description: "This resource represents [filters](https://confluence.atlassian.com/x/eQiiLQ).\
\ Use it to get, create, update, or delete filters. Also use it to configure the\
\ columns for a filter and set favorite filters."
name: "Filters"
- description: "This resource represents options for sharing [filters](#api-group-Filters).\
\ Use it to get share scopes as well as add and remove share scopes from filters."
name: "Filter sharing"
- description: "This resource represents a list of users and a list of groups. Use\
\ it to obtain the details to populate user and group picker suggestions list."
name: "Group and user picker"
- description: "This resource represents groups of users. Use it to get, create, find,\
\ and delete groups as well as add and remove users from groups. (\\[WARNING\\\
] The standard Atlassian group names are default names only and can be edited\
\ or deleted. For example, an admin or Atlassian support could delete the default\
\ group jira-software-users or rename it to jsw-users at any point. See https://support.atlassian.com/user-management/docs/create-and-update-groups/\
\ for details.)"
name: "Groups"
- description: "This resource represents Jira issues. Use it to:\n\n * create or\
\ edit issues, individually or in bulk.\n * retrieve metadata about the options\
\ for creating or editing issues.\n * delete an issue.\n * assign a user to\
\ an issue.\n * get issue changelogs.\n * send notifications about an issue.\n\
\ * get details of the transitions available for an issue.\n * transition an\
\ issue.\n * Archive issues.\n * Unarchive issues.\n * Export archived issues."
name: "Issues"
- description: "UI modifications is a feature available for **Forge apps only**. It\
\ enables Forge apps to control how selected Jira fields behave on the following\
\ views: global issue create, issue view. For example: hide specific fields, set\
\ them as required, etc."
name: "UI modifications (apps)"
- description: "This resource represents issue attachments and the attachment settings\
\ for Jira. Use it to get the metadata for an attachment, delete an attachment,\
\ and view the metadata for the contents of an attachment. Also, use it to get\
\ the attachment settings for Jira."
name: "Issue attachments"
- description: "This resource represents issue comments. Use it to:\n\n * get, create,\
\ update, and delete a comment from an issue.\n * get all comments from issue.\n\
\ * get a list of comments by comment ID."
name: "Issue comments"
- description: "This resource represents [issue comment](#api-group-Issue-comments)\
\ properties, which provides for storing custom data against an issue comment.\
\ Use is to get, set, and delete issue comment properties as well as obtain the\
\ keys of all properties on a comment. Comment properties are a type of [entity\
\ property](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/)."
name: "Issue comment properties"
- description: "This resource represents issue fields, both system and custom fields.\
\ Use it to get fields, field configurations, and create custom fields."
name: "Issue fields"
- description: "This resource represents issue field configurations. Use it to get,\
\ set, and delete field configurations and field configuration schemes."
name: "Issue field configurations"
- description: "This resource represents issue custom field contexts. Use it to:\n\
\n * get, create, update, and delete custom field contexts.\n * get context\
\ to issue types and projects mappings.\n * get custom field contexts for projects\
\ and issue types.\n * assign custom field contexts to projects.\n * remove\
\ custom field contexts from projects.\n * add issue types to custom field contexts."
name: "Issue custom field contexts"
- description: "This resource represents custom issue field select list options created\
\ in Jira or using the REST API. This resource supports the following field types:\n\
\n * Checkboxes.\n * Radio Buttons.\n * Select List (single choice).\n * Select\
\ List (multiple choices).\n * Select List (cascading).\n\nSee [Issue custom\
\ field options (apps)](#api-group-Issue-custom-field-options--apps-) to manipulate\
\ custom issue field select list options created by a Connect app.\n\nUse it to\
\ retrieve, create, update, order, and delete custom field options."
name: "Issue custom field options"
- description: "This resource represents custom issue field select list options created\
\ by a Connect app. See [Issue custom field options](#api-group-Issue-custom-field-options)\
\ to manipulate options created in Jira or using the REST API.\n\nA select list\
\ issue field is a type of [issue field](https://developer.atlassian.com/cloud/jira/platform/modules/issue-field/)\
\ that enables a user to select an option from a list. Use it to add, remove,\
\ and update the options of a select list issue field."
name: "Issue custom field options (apps)"
- description: "This resource represents the values of custom fields added by [Forge\
\ apps](https://developer.atlassian.com/platform/forge/). Use it to update the\
\ value of a custom field on issues."
name: "Issue custom field values (apps)"
- description: "This resource represents configurations stored against a custom field\
\ context by a [Forge app](https://developer.atlassian.com/platform/forge/). Configurations\
\ are information used by the Forge app at runtime to determine how to handle\
\ or process the data in a custom field in a given context. Use this resource\
\ to set and read configurations."
name: "Issue custom field configuration (apps)"
- description: "This resource represents links between issues. Use it to get, create,\
\ and delete links between issues.\n\nTo use it, the site must have [issue linking](https://confluence.atlassian.com/x/yoXKM)\
\ enabled."
name: "Issue links"
- description: "This resource represents [issue link](#api-group-Issue-links) types.\
\ Use it to get, create, update, and delete link issue types as well as get lists\
\ of all link issue types.\n\nTo use it, the site must have [issue linking](https://confluence.atlassian.com/x/yoXKM)\
\ enabled."
name: "Issue link types"
- description: "This resource represents issue navigator settings. Use it to get and\
\ set issue navigator default columns."
name: "Issue navigator settings"
- description: "This resource represents notification schemes, lists of events and\
\ the recipients who will receive notifications for those events. Use it to get\
\ details of a notification scheme and a list of notification schemes.\n\n###\
\ About notification schemes ###\n\nA notification scheme is a list of events\
\ and recipients who will receive notifications for those events. The list is\
\ contained within the `notificationSchemeEvents` object and contains pairs of\
\ `events` and `notifications`:\n\n * `event` Identifies the type of event. The\
\ events can be [Jira system events](https://support.atlassian.com/jira-cloud-administration/docs/configure-notification-schemes/)\
\ (see the *Events* section) or [custom events](https://support.atlassian.com/jira-cloud-administration/docs/add-a-custom-event/).\n\
\ * `notifications` Identifies the [recipients](https://confluence.atlassian.com/x/8YdKLg#Creatinganotificationscheme-recipientsRecipients)\
\ of notifications for each event. Recipients can be any of the following types:\n\
\ \n * `CurrentAssignee`\n * `Reporter`\n * `CurrentUser`\n\
\ * `ProjectLead`\n * `ComponentLead`\n * `User` (the `parameter`\
\ is the user key)\n * `Group` (the `parameter` is the group name)\n \
\ * `ProjectRole` (the `parameter` is the project role ID)\n * `EmailAddress`\
\ *(deprecated)*\n * `AllWatchers`\n * `UserCustomField` (the `parameter`\
\ is the ID of the custom field)\n * `GroupCustomField`(the `parameter` is\
\ the ID of the custom field)"
name: "Issue notification schemes"
- description: "This resource represents issue priorities. Use it to get, create and\
\ update issue priorities and details for individual issue priorities."
name: "Issue priorities"
- description: "This resource represents [issue](#api-group-Issues) properties, which\
\ provides for storing custom data against an issue. Use it to get, set, and delete\
\ issue properties as well as obtain details of all properties on an issue. Operations\
\ to bulk update and delete issue properties are also provided. Issue properties\
\ are a type of [entity property](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/)."
name: "Issue properties"
- description: "This resource represents remote issue links, a way of linking Jira\
\ to information in other systems. Use it to get, create, update, and delete remote\
\ issue links either by ID or global ID. The global ID provides a way of accessing\
\ remote issue links using information about the item's remote system host and\
\ remote system identifier."
name: "Issue remote links"
- description: "This resource represents issue resolution values. Use it to obtain\
\ a list of all issue resolution values and the details of individual resolution\
\ values."
name: "Issue resolutions"
- description: "This resource represents various ways to search for issues. Use it\
\ to search for issues with a JQL query and find issues to populate an issue picker."
name: "Issue search"
- description: "This resource represents issue security levels. Use it to obtain the\
\ details of any issue security level. For more information about issue security\
\ levels, see [Configuring issue-level security](https://confluence.atlassian.com/x/J4lKLg)."
name: "Issue security level"
- description: "This resource represents issue security schemes. Use it to get an\
\ issue security scheme or a list of issue security schemes.\n\nIssue security\
\ schemes control which users or groups of users can view an issue. When an issue\
\ security scheme is associated with a project, its security levels can be applied\
\ to issues in that project. Sub-tasks also inherit the security level of their\
\ parent issue."
name: "Issue security schemes"
- description: "This resource represents issue security schemes, issue security levels,\
\ and issue security level members. Use it to get, create, update, and delete\
\ issue security schemes or issue security scheme details. Note that only company-managed\
\ (classic) projects are supported.\n\n### About issue security schemes ###\n\n\
Issue security schemes control which users or groups of users can view an issue.\
\ An issue security scheme is made up of multiple security levels. Each level\
\ can have users or groups of users assigned to it. The following are valid security\
\ level members:\n\n * Individual users\n * Groups of users\n * Project roles\n\
\ * Issue roles\n * \"Anyone\", for example to allow anonymous access\n * A\
\ (multi-)user or (multi-)group picker custom field"
name: "Issue security scheme"
- description: "This resource represents issues types. Use it to:\n\n * get, create,\
\ update, and delete issue types.\n * get all issue types for a user.\n * get\
\ alternative issue types.\n * set an avatar for an issue type."
name: "Issue types"
- description: "This resource represents issue type schemes in classic projects. Use\
\ it to:\n\n * get issue type schemes and a list of the projects that use them.\n\
\ * associate issue type schemes with projects.\n * add issue types to issue\
\ type schemes.\n * delete issue types from issue type schemes.\n * create,\
\ update, and delete issue type schemes.\n * change the order of issue types\
\ in issue type schemes."
name: "Issue type schemes"
- description: "This resource represents issue type screen schemes. Use it to:\n\n\
\ * get issue type screen schemes and a list of the projects that use them.\n\
\ * create issue type screen schemes.\n * update issue type screen schemes.\n\
\ * delete issue type screen schemes.\n * associate issue type screen schemes\
\ with projects.\n * append issue type to screen scheme mappings to issue type\
\ screen schemes.\n * remove issue type to screen scheme mappings from issue\
\ type screen schemes.\n * update default screen scheme of issue type screen\
\ scheme."
name: "Issue type screen schemes"
- description: "This resource represents [issue type](#api-group-Issue-types) properties,\
\ which provides for storing custom data against an issue type. Use it to get,\
\ create, and delete issue type properties as well as obtain the keys of all properties\
\ on a issues type. Issue type properties are a type of [entity property](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/)."
name: "Issue type properties"
- description: "This resource represents votes cast by users on an issue. Use it to\
\ get details of votes on an issue as well as cast and withdrawal votes."
name: "Issue votes"
- description: "This resource represents users watching an issue. Use it to get details\
\ of users watching an issue as well as start and stop a user watching an issue."
name: "Issue watchers"
- description: "This resource represents issue worklogs. Use it to:\n\n * get, create,\
\ update, and delete worklogs.\n * obtain lists of updated or deleted worklogs."
name: "Issue worklogs"
- description: "This resource represents [issue worklog](#api-group-Issue-worklogs)\
\ properties, which provides for storing custom data against an issue worklog.\
\ Use it to get, create, and delete issue worklog properties as well as obtain\
\ the keys of all properties on a issue worklog. Issue worklog properties are\
\ a type of [entity property](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/)."
name: "Issue worklog properties"
- description: "This resource is a collection of operations for [Jira expressions](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/)."
name: "Jira expressions"
- description: "This resource represents various settings in Jira. Use it to get and\
\ update Jira settings and properties."
name: "Jira settings"
- description: "This resource represents JQL search auto-complete details. Use it\
\ to obtain JQL search auto-complete data and suggestions for use in programmatic\
\ construction of queries or custom query builders. It also provides operations\
\ to:\n\n * convert one or more JQL queries with user identifiers (username or\
\ user key) to equivalent JQL queries with account IDs.\n * convert readable\
\ details in one or more JQL queries to IDs where a user doesn't have permission\
\ to view the entity whose details are readable."
name: "JQL"
- description: "This resource represents JQL function's precomputations. Precomputation\
\ is a mapping between custom function call and JQL fragment returned by this\
\ function. Use it to get and update precomputations."
name: "JQL functions (apps)"
- description: "This resource represents available labels. Use it to get available\
\ labels for the global label field."
name: "Labels"
- description: "This resource represents license metrics. Use it to get available\
\ metrics for Jira licences."
name: "License metrics"
- description: "This resource represents information about the current user, such\
\ as basic details, group membership, application roles, preferences, and locale.\
\ Use it to get, create, update, and delete (restore default) values of the user's\
\ preferences and locale."
name: "Myself"
- description: "This resource represents permissions. Use it to obtain details of\
\ all permissions and determine whether the user has certain permissions."
name: "Permissions"
- description: "This resource represents permission schemes. Use it to get, create,\
\ update, and delete permission schemes as well as get, create, update, and delete\
\ details of the permissions granted in those schemes."
name: "Permission schemes"
- description: "This resource represents projects. Use it to get, create, update,\
\ and delete projects. Also get statuses available to a project, a project's notification\
\ schemes, and update a project's type."
name: "Projects"
- description: "This resource represents avatars associated with a project. Use it\
\ to get, load, set, and remove project avatars."
name: "Project avatars"
- description: "This resource represents project categories. Use it to create, update,\
\ and delete project categories as well as obtain a list of all project categories\
\ and details of individual categories. For more information on managing project\
\ categories, see [Adding, assigning, and deleting project categories](https://confluence.atlassian.com/x/-A5WMg)."
name: "Project categories"
- description: "This resource represents classification levels used in a project.\
\ Use it to view and manage classification levels in your projects."
name: "Project classification levels"
- description: "This resource represents project components. Use it to get, create,\
\ update, and delete project components. Also get components for project and get\
\ a count of issues by component."
name: "Project components"
- description: "This resource represents the email address used to send a project's\
\ notifications. Use it to get and set the [project's sender email address](https://confluence.atlassian.com/x/dolKLg)."
name: "Project email"
- description: "This resource represents project features. Use it to get the list\
\ of features for a project and modify the state of a feature. The project feature\
\ endpoint is available only for Jira Software, both for team- and company-managed\
\ projects."
name: "Project features"
- description: "This resource provides validation for project keys and names."
name: "Project key and name validation"
- description: "This resource represents permission schemes for a project. Use this\
\ resource to:\n\n * get details of a project's issue security levels available\
\ to the calling user.\n * get the permission scheme associated with the project\
\ or assign different permission scheme to the project.\n * get details of a\
\ project's issue security scheme.\n\nSee [Managing project permissions](https://confluence.atlassian.com/x/yodKLg)\
\ for more information about permission schemes."
name: "Project permission schemes"
- description: "This resource represents [project](#api-group-Projects) properties,\
\ which provides for storing custom data against a project. Use it to get, create,\
\ and delete project properties as well as get a list of property keys for a project.\
\ Project properties are a type of [entity property](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/)."
name: "Project properties"
- description: "This resource represents the roles that users can play in projects.\
\ Use this resource to get, create, update, and delete project roles."
name: "Project roles"
- description: "This resource represents the users assigned to [project roles](#api-group-Issue-comments).\
\ Use it to get, add, and remove default users from project roles. Also use it\
\ to add and remove users from a project role associated with a project."
name: "Project role actors"
- description: "This resource represents project types. Use it to obtain a list of\
\ all project types, a list of project types accessible to the calling user, and\
\ details of a project type."
name: "Project types"
- description: "This resource represents project versions. Use it to get, get lists\
\ of, create, update, move, merge, and delete project versions. This resource\
\ also provides counts of issues by version."
name: "Project versions"
- description: "This resource represents the screens used to record issue details.\
\ Use it to:\n\n * get details of all screens.\n * get details of all the fields\
\ available for use on screens.\n * create screens.\n * delete screens.\n *\
\ update screens.\n * add a field to the default screen."
name: "Screens"
- description: "This resource represents the screen tabs used to record issue details.\
\ Use it to get, create, update, move, and delete screen tabs."
name: "Screen tabs"
- description: "This resource represents the screen tab fields used to record issue\
\ details. Use it to get, add, move, and remove fields from screen tabs."
name: "Screen tab fields"
- description: "This resource represents screen schemes in classic projects. Use it\
\ to get, create, update, and delete screen schemes."
name: "Screen schemes"
- description: "This resource provides information about the Jira instance."
name: "Server info"
- description: "This resource represents statuses. Use it to search, get, create,\
\ delete, and change statuses."
name: "Status"
- description: "This resource represents a [long-running asynchronous tasks](#async-operations).\
\ Use it to obtain details about the progress of a long-running task or cancel\
\ a long-running task."
name: "Tasks"
- description: "This resource represents time tracking and time tracking providers.\
\ Use it to get and set the time tracking provider, get and set the time tracking\
\ options, and disable time tracking."
name: "Time tracking"
- description: "This resource represent users. Use it to:\n\n * get, get a list of,\
\ create, and delete users.\n * get, set, and reset a user's default issue table\
\ columns.\n * get a list of the groups the user belongs to.\n * get a list\
\ of user account IDs for a list of usernames or user keys."
name: "Users"
- description: "This resource represents [user](#api-group-Users) properties and provides\
\ for storing custom data against a user. Use it to get, create, and delete user\
\ properties as well as get a list of property keys for a user. This resourse\
\ is designed for integrations and apps to store per-user data and settings. This\
\ enables data used to customized the user experience to be kept in the Jira Cloud\
\ instance's database. User properties are a type of [entity property](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/).\n\
\nThis resource does not access the [user properties](https://confluence.atlassian.com/x/8YxjL)\
\ created and maintained in Jira."
name: "User properties"
- description: "This resource represents various ways to search for and find users.\
\ Use it to obtain list of users including users assignable to projects and issues,\
\ users with permissions, user lists for pickup fields, and user lists generated\
\ using structured queries. Note that the operations in this resource only return\
\ users found within the first 1000 users."
name: "User search"
- description: "This resource represents webhooks. Webhooks are calls sent to a URL\
\ when an event occurs in Jira for issues specified by a JQL query. Only Connect\
\ and OAuth 2.0 apps can register and manage webhooks. For more information, see\
\ [Webhooks](https://developer.atlassian.com/cloud/jira/platform/webhooks/#registering-a-webhook-via-the-jira-rest-api-for-connect-apps)."
name: "Webhooks"
- description: "This resource represents workflows. Use it to:\n\n * Get workflows\n\
\ * Create workflows\n * Update workflows\n * Delete inactive workflows\n *\
\ Get workflow capabilities"
name: "Workflows"
- description: "This resource represents workflow transition rules. Workflow transition\
\ rules define a Connect or a Forge app routine, such as a [workflow post functions](https://developer.atlassian.com/cloud/jira/platform/modules/workflow-post-function/)\
\ that is executed in association with the workflow. Use it to read and modify\
\ configuration of workflow transition rules."
name: "Workflow transition rules"
- description: "This resource represents workflow schemes. Use it to manage workflow\
\ schemes and the workflow scheme's workflows and issue types.\n\nA workflow scheme\
\ maps issue types to workflows. A workflow scheme can be associated with one\
\ or more projects, which enables the projects to use the workflow-issue type\
\ mappings.\n\nActive workflow schemes (workflow schemes that are used by projects)\
\ cannot be edited. When an active workflow scheme is edited, a draft copy of\
\ the scheme is created. The draft workflow scheme is then be edited and published\
\ (replacing the active scheme).\n\nSee [Configuring workflow schemes](https://confluence.atlassian.com/x/tohKLg)\
\ for more information."
name: "Workflow schemes"
- description: "This resource represents the associations between workflow schemes\
\ and projects.\n\nFor more information, see [Managing your workflows](https://confluence.atlassian.com/x/q4hKLg)."
name: "Workflow scheme project associations"
- description: "This resource represents draft workflow schemes. Use it to manage\
\ drafts of workflow schemes.\n\nA workflow scheme maps issue types to workflows.\
\ A workflow scheme can be associated with one or more projects, which enables\
\ the projects to use the workflow-issue type mappings.\n\nActive workflow schemes\
\ (workflow schemes that are used by projects) cannot be edited. Editing an active\
\ workflow scheme creates a draft copy of the scheme. The draft workflow scheme\
\ can then be edited and published (replacing the active scheme).\n\nSee [Configuring\
\ workflow schemes](https://confluence.atlassian.com/x/tohKLg) for more information."
name: "Workflow scheme drafts"
- description: "This resource represents issue workflow statuses. Use it to obtain\
\ a list of all statuses associated with workflows and the details of a status."
name: "Workflow statuses"
- description: "This resource represents status categories. Use it to obtain a list\
\ of all status categories and the details of a category. Status categories provided\
\ a mechanism for categorizing [statuses](#api-group-Workflow-statuses)."
name: "Workflow status categories"
- description: "This resource represents workflow transition properties, which provides\
\ for storing custom data against a workflow transition. Use it to get, create,\
\ and delete workflow transition properties as well as get a list of property\
\ keys for a workflow transition. Workflow transition properties are a type of\
\ [entity property](https://developer.atlassian.com/cloud/jira/platform/jira-entity-properties/)."
name: "Workflow transition properties"
- description: "This resource represents app properties. Use it to store arbitrary\
\ data for your\n[Connect app](https://developer.atlassian.com/cloud/jira/platform/index/#connect-apps)."
name: "App properties"
- description: "This resource represents [modules registered dynamically](https://developer.atlassian.com/cloud/jira/platform/dynamic-modules/)\n\
by [Connect apps](https://developer.atlassian.com/cloud/jira/platform/index/#connect-apps)."
name: "Dynamic modules"
- description: "This resource supports [app migrations](https://developer.atlassian.com/platform/app-migration/).\
\ Use it to:\n- [to request migrated workflow rules details](https://developer.atlassian.com/platform/app-migration/tutorials/migration-app-workflow-rules/).\n\
- [perform bulk updates of entity properties](https://developer.atlassian.com/platform/app-migration/tutorials/entity-properties-bulk-api/).\n\
- [perform bulk updates of issue custom field values](https://developer.atlassian.com/platform/app-migration/tutorials/migrating-app-custom-fields/)."
name: "App migration"
- description: "This resource represents a service registry. Use it to retrieve attributes\
\ related to a [service registry](https://support.atlassian.com/jira-service-management-cloud/docs/what-is-services/)\
\ in JSM."
name: "Service Registry"
x-atlassian-narrative:
documents:
- anchor: "about"
body: "The Jira REST API enables you to interact with Jira programmatically. Use\
\ this API to \n[build apps](https://developer.atlassian.com/cloud/jira/platform/integrating-with-jira-cloud/),\
\ script interactions with \nJira, or develop any other type of integration.\
\ This page documents the REST resources available in Jira Cloud, including\
\ \nthe HTTP response codes and example requests and responses."
title: "About"
- anchor: "version"
body: "This documentation is for **version 2** of the Jira Cloud platform REST\
\ API. \n\nThe latest version of the Jira Cloud platform REST API is [version\
\ 3](https://developer.atlassian.com/cloud/jira/platform/rest/v3/), \nwhich\
\ is in beta. Version 2 and 3 of the API offer the same collection of operations.\
\ However, version 3\nprovides support for the [Atlassian Document Format](https://developer.atlassian.com/cloud/jira/platform/apis/document/structure/)\
\ \n(ADF). The ADF features in version 3 are under development.\n"
title: "Version"
- anchor: "authentication"
body: "### Forge apps\n\nFor Forge apps, [REST API scopes](https://developer.atlassian.com/cloud/jira/platform/scopes-for-oauth-2-3LO-and-forge-apps/)\
\ \nare used when authenticating with Jira Cloud platform. See [Add scopes to\
\ call an Atlassian REST API](https://developer.atlassian.com/platform/forge/add-scopes-to-call-an-atlassian-rest-api/)\
\ for more details.\n\nThe URIs for Forge app REST API calls have this structure:\n\
\n`/rest/api/3/`\n\nFor example, `/rest/api/3/issue/DEMO-1`\n\
\n### Connect apps\n\nFor Connect apps, authentication (JWT-based) is built\
\ into the Connect libraries. Authorization is implemented using either \nscopes\
\ (shown as _App scope required_ for operations on this page) or user impersonation.\
\ See \n[Security for Connect apps](https://developer.atlassian.com/cloud/jira/platform/security-for-connect-apps/)\
\ \nfor details.\n\nThe URIs for Connect app REST API calls have this structure:\n\
\n`https:///rest/api/3/`\n\nFor example, `https://your-domain.atlassian.net/rest/api/3/issue/DEMO-1`\n\
\n### Other integrations\n\nFor integrations that are not Forge or Connect apps,\
\ use OAuth 2.0 authorization code grants (3LO) for security \n(3LO scopes are\
\ shown as for operations _OAuth scopes required_). See \n[OAuth 2.0 (3LO) apps](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/)\
\ \nfor details.\n\nThe URIs for OAuth 2.0 (3LO) app REST API calls have this\
\ structure:\n\n`https://api.atlassian.com/ex/jira//rest/api/3/`\n\
\nFor example, `https://api.atlassian.com/ex/jira/35273b54-3f06-40d2-880f-dd28cf8daafa/rest/api/3/issue/DEMO-1`\n\
\n### Ad-hoc API calls\n\nFor personal scripts, bots, and ad-hoc execution of\
\ the REST APIs use basic authentication. See [Basic auth for REST APIs](https://developer.atlassian.com/cloud/jira/platform/basic-auth-for-rest-apis/)\
\ for details. \n\nThe URIs for basic authentication REST API calls have this\
\ structure:\n\n`https:///rest/api/3/`\n\nFor example,\
\ `https://your-domain.atlassian.net/rest/api/3/issue/DEMO-1`\n"
title: "Authentication and authorization"
- anchor: "permissions"
body: "### Operation permissions\n\nMost operations in this API require permissions.\
\ The calling user must have the required permissions for an operation to \n\
use it. Note that for Connect apps, the app user must have the required permissions\
\ for the operation and the app must \nhave scopes that permit the operation.\n\
\nA permission can be granted to a group, project role, or issue role that the\
\ user is a member of, or granted directly to a user. \nSee [Permissions overview](https://confluence.atlassian.com/x/FQiiLQ)\
\ for details. The most common permissions are:\n\n- **Administer the Cloud\
\ site**: Users in the _site-admins_ group have this \npermission. See [Manage\
\ groups](https://confluence.atlassian.com/x/24xjL) for details.\n- **Administer\
\ Jira**: Granted by the _Jira Administrators_ global permission. There is a\
\ default group for this permission. \nSee [Manage groups](https://confluence.atlassian.com/x/24xjL)\
\ and [Managing global permissions](https://confluence.atlassian.com/x/x4dKLg)\
\ for details.\n- **Administer a project in Jira**: Granted by the _Administer\
\ projects_ project permission for a project. This can be \ngranted to a user,\
\ a group, a project role, and more. \nSee [Managing project permissions](https://confluence.atlassian.com/x/yodKLg)\
\ for details.\n- **Access a project in Jira**: Granted by the _Browse projects_\
\ project permission for a project. This can be \ngranted to a user, a group,\
\ a project role, and more. \nSee [Managing project permissions](https://confluence.atlassian.com/x/yodKLg)\
\ for details.\n- **Access Jira**: Granted by the _Jira Users_ global permission.\
\ Users in the default product access group (for example, \n_jira-software-users-acmesite_)\
\ have this permission. \nSee [Manage groups](https://confluence.atlassian.com/x/24xjL)\
\ and \n[Managing global permissions](https://confluence.atlassian.com/x/x4dKLg)\
\ for details.\n\n### Anonymous access\n\nSome operations provide support for\
\ anonymous access. However, anonymous access is only available if \nthe Jira\
\ permission needed to access the object or records returned by the operation\
\ is granted to \nthe _Public_ group. See [Allowing anonymous access to your\
\ project](https://confluence.atlassian.com/x/GDxxLg) \nfor details.\n\nIf an\
\ operation is called anonymously and anonymous access is not available, the\
\ operation will return \nan error. Note that not all operations that correspond\
\ to objects that can be given public access \nprovide for anonymous access.\n"
title: "Permissions"
- anchor: "expansion"
body: "### Expansion\n\nThe Jira REST API uses resource expansion, which means\
\ that some parts of a resource are not returned unless specified \nin the request.\
\ This simplifies responses and minimizes network traffic.\n\nTo expand part\
\ of a resource in a request, use the expand query parameter and specify the\
\ object(s) to be expanded. \nIf you need to expand nested objects, use the\
\ `.` dot notation. If you need to expand multiple objects, use a \ncomma-separated\
\ list. \n\nFor example, the following request expands the `names` and `renderedFields`\
\ properties for the _JRACLOUD-34423_ issue:\n\n`GET issue/JRACLOUD-34423?expand=names,renderedFields`\n\
\nTo discover which object can be expanded, refer to the `expand` property in\
\ the object. \nIn the JSON example below, the resource declares `widgets` as\
\ expandable.\n\n```json\n{\n \"expand\": \"widgets\", \n \"self\": \"https://your-domain.atlassian.net/rest/api/3/resource/KEY-1\"\
, \n \"widgets\": {\n \"widgets\": [],\n \"size\": 5\n }\n}\n```\n\n\
### Pagination\n\nThe Jira REST API uses pagination to improve performance.\
\ Pagination is enforced for operations that could return a large \ncollection\
\ of items. When you make a request to a paginated resource, the response wraps\
\ the returned array of values in \na JSON object with paging metadata. For\
\ example:\n\n```json\n{\n \"startAt\" : 0,\n \"maxResults\" : 10,\n \
\ \"total\": 200,\n \"isLast\": false,\n \"values\": [\n { /*\
\ result 0 */ },\n { /* result 1 */ },\n { /* result 2 */ }\n\
\ ]\n}\n```\n\n* `startAt` is the index of the first item returned in the\
\ page.\n* `maxResults` is the maximum number of items that a page can return.\
\ Each operation can have a different limit for\n the number of items returned,\
\ and these limits may change without notice. To find the maximum number of\
\ items \n that an operation could return, set `maxResults` to a large number—\
for example, over 1000—and if the returned value of `maxResults` is less than\
\ the requested value, the returned value is the maximum.\n* `total` is the\
\ total number of items contained in all pages. This number **_may change_**\
\ as the client \nrequests the subsequent pages, therefore the client should\
\ always assume that the requested page can be empty. Note \nthat this property\
\ is not returned for all operations.\n* `isLast` indicates whether the page\
\ returned is the last one. Note that this property is not returned for all\
\ operations.\n\n### Ordering\n\nSome operations support ordering the elements\
\ of a response by a field. Check the documentation for the operation to \n\
confirm whether ordering of a response is supported and which fields can be\
\ used. Responses are listed in ascending order \nby default. You can change\
\ the order using the `orderby` query parameter with a `-` or `+` symbol. For\
\ example:\n\n* `?orderBy=name` to order by `name` field ascending.\n* `?orderBy=+name`\
\ to order by `name` field ascending.\n* `?orderBy=-name` to order by `name`\
\ field descending.\n\n\n"
title: "Expansion, pagination, and ordering"
- anchor: "timestamps"
body: "By default, top-level timestamps (e.g. updated and created) are returned\
\ in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format, in the system default\
\ user time zone.\n\nTo return date time data in the logged in user's timezone,\
\ please refer to `renderedFields` property under the `expand` query parameter\
\ in relevant APIs.\n"
title: "Timestamps"
- anchor: "special-request-headers"
body: "The following request and response headers define important metadata for\
\ the Jira Cloud REST API resources.\n\n- `X-Atlassian-Token` (request): Operations\
\ that accept multipart/form-data must include the `X-Atlassian-Token: no-check`\n\
header in requests. Otherwise the request is blocked by cross-site request forgery\
\ (CSRF/XSRF) protection.\n- `X-Force-Accept-Language` (request): controls\
\ how the standard HTTP `Accept-Language` header is processed.\nBy default `Accept-Language`\
\ is ignored and the response is in the language configured in the user's profile\
\ or,\nwhen no language is configured for the user, the default Jira instance\
\ language. For the response to recognize\n`Accept-Language` send `X-Force-Accept-Language\
\ = true` as well. If `Accept-Language` requests a language that Jira\ncan return\
\ the response is in that language, otherwise Jira returns the response in the\
\ default language. If\n`Accept-Language` is not specified the response is in\
\ the default language.\n- `X-AAccountId` (response): This response header\
\ contains the Atlassian account ID of the authenticated user."
title: "Special headers"
- anchor: "anonymous-operations"
body: " Jira provides for all permissions, except the [global permission](https://confluence.atlassian.com/x/x4dKLg)\
\ Administer Jira, to be assigned to *Anyone*. Once a permission is assigned\
\ to *Anyone*, anyone knowing a project's URL is able to use the features in\
\ Jira enabled by the permission. However, the Jira REST API does not enable\
\ anonymous access for operations by default. This means that an anonymous user\
\ who may be able to perform an action through Jira, may not be able to perform\
\ the same action where it's enabled by the REST API. \n\n The operations that\
\ provide anonymous access are annotated \"This operation can be accessed anonymously.\""
title: "Anonymous operations"
- anchor: "async-operations"
body: "Some Jira REST API operations may trigger long-running or computationally\
\ expensive tasks. In these cases, the operation \nwill schedule an asynchronous\
\ task and return a `303 (See Other)` response, indicating the location of the\
\ queued task \nin the `Location` header. You can query this task to get progress\
\ updates.\n\nWhen the task finishes, the response object will contain the `result`\
\ field. The content of the field is specific to the \noperation that created\
\ the task. Refer to the operation’s documentation for more information.\n\n\
Note that asynchronous tasks are not guaranteed to be run in order. In other\
\ words, if you need your tasks to execute \nin a certain order, you should\
\ start a task only after the prerequisite task(s) have finished."
title: "Asynchronous operations"
- anchor: "experimental"
body: "Features and methods marked as experimental may change without notice.\
\ Feedback on experimental functionality is welcome. \nReport your suggestions\
\ and bugs in the [ACJIRA project](https://ecosystem.atlassian.net/projects/ACJIRA)\
\ (preferred) or use the \n**Give docs feedback** link at the top of this page.\
\ \n"
title: "Experimental features"
- anchor: "status-codes"
body: "The Jira Cloud platform REST API uses the [standard HTTP status codes](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).\n\
\nOperations that return an error status code may also return a response body\
\ containing details of the error or errors. \nThe schema for the response body\
\ is shown below:\n\n\n```json\n{\n \"id\": \"https://docs.atlassian.com/jira/REST/schema/error-collection#\"\
,\n \"title\": \"Error Collection\",\n \"type\": \"object\",\n \"properties\"\
: {\n \"errorMessages\": {\n \"type\": \"array\",\n \"items\":\
\ {\n \"type\": \"string\"\n }\n },\n \"errors\": {\n \
\ \"type\": \"object\",\n \"patternProperties\": {\n \".+\": {\n\
\ \"type\": \"string\"\n }\n },\n \"additionalProperties\"\
: false\n },\n \"status\": { \n \"type\": \"integer\"\n }\n },\n\
\ \"additionalProperties\": false\n}\n```"
title: "Status codes"