swagger: "2.0"
schemes:
  - http
host: jira.local:8080
basePath: /jira/rest/
x-hasEquivalentPaths: true
info:
  contact:
    x-twitter: Atlassian
  title: JIRA 7.6.1
  version: 1.0.0
  x-apisguru-categories:
    - developer_tools
  x-logo:
    url: https://twitter.com/Atlassian/profile_image?size=original
  x-origin:
    - converter:
        url: https://github.com/lucybot/api-spec-converter
        version: 2.7.18
      format: wadl
      url: https://docs.atlassian.com/jira/REST/server/jira-rest-plugin.wadl
      version: "1.0"
  x-providerName: jira.local
paths:
  /api/2/application-properties:
    get:
      description: Returns an application property.
      parameters:
        - description: a String containing the property key
          in: query
          name: key
          required: false
          type: string
        - description: |-
            when fetching a list specifies the permission level of all items in the list
                                    see {@link com.atlassian.jira.bc.admin.ApplicationPropertiesService.EditPermissionLevel}
          in: query
          name: permissionLevel
          required: false
          type: string
        - description: |-
            when fetching a list allows the list to be filtered by the property's start of key
                                    e.g. "jira.lf.*" whould fetch only those permissions that are editable and whose keys start with
                                    "jira.lf.". This is a regex.
          in: query
          name: keyFilter
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/application-properties/advanced-settings:
    get:
      description: Returns the properties that are displayed on the "General Configuration > Advanced Settings" page.
      operationId: getAdvancedSettings
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/application-properties/{id}":
    parameters:
      - in: path
        name: id
        required: true
        type: string
    put:
      description: Modify an application property via PUT. The "value" field present in the PUT will override the existing value.
      operationId: setPropertyViaRestfulTable
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/applicationrole:
    get:
      description: |-
        Returns all ApplicationRoles in the system. Will also return an ETag header containing a version hash of the
         collection of ApplicationRoles.
      operationId: getAll
      responses:
        "200":
          description: Successful Response
    parameters: []
    put:
      description: |-
        Updates the ApplicationRoles with the passed data if the version hash is the same as the server.
         Only the groups and default groups setting of the role may be updated. Requests to change the key
         or the name of the role will be silently ignored. It is acceptable to pass only the roles that are updated
         as roles that are present in the server but not in data to update with, will not be deleted.
      operationId: putBulk
      parameters:
        - in: header
          name: If-Match
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/applicationrole/{key}":
    get:
      description: Returns the ApplicationRole with passed key if it exists.
      operationId: get
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the key of the role to update.
        in: path
        name: key
        required: true
        type: string
    put:
      description: |-
        Updates the ApplicationRole with the passed data. Only the groups and default groups setting of the
         role may be updated. Requests to change the key or the name of the role will be silently ignored.
         <p>
         Optional: If versionHash is passed through the If-Match header the request will be rejected if not the
         same as server
      operationId: put
      parameters:
        - description: the hash of the version to update. Optional Param
          in: header
          name: If-Match
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/attachment/meta:
    get:
      description: |-
        Returns the meta information for an attachments, specifically if they are enabled and the maximum upload size
         allowed.
      operationId: getAttachmentMeta
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/attachment/{id}":
    delete:
      description: Remove an attachment from an issue.
      operationId: removeAttachment
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns the meta-data for an attachment, including the URI of the actual attached file.
      operationId: getAttachment
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: id of the attachment to remove
        in: path
        name: id
        required: true
        type: string
  "/api/2/attachment/{id}/expand/human":
    get:
      description: Tries to expand an attachment. Output is human-readable and subject to change.
      operationId: expandForHumans
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the id of the attachment to expand.
        in: path
        name: id
        required: true
        type: string
  "/api/2/attachment/{id}/expand/raw":
    get:
      description: Tries to expand an attachment. Output is raw and should be backwards-compatible through the course of time.
      operationId: expandForMachines
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the id of the attachment to expand.
        in: path
        name: id
        required: true
        type: string
  /api/2/auditing/record:
    get:
      description: Returns auditing records filtered using provided parameters
      operationId: getRecords
      parameters:
        - description: "- the number of record from which search starts"
          format: int32
          in: query
          name: offset
          required: false
          type: integer
        - description: "- maximum number of returned results (if is limit is <= 0 or > 1000, it will be set do default value: 1000)"
          format: int32
          in: query
          name: limit
          required: false
          type: integer
        - description: "- text query; each record that will be returned must contain the provided text in one of its fields"
          in: query
          name: filter
          required: false
          type: string
        - description: |-
            - timestamp in past; 'from' must be less or equal 'to', otherwise the result set will be empty
                           only records that where created in the same moment or after the 'from' timestamp will be provided in response
          in: query
          name: from
          required: false
          type: string
        - description: |-
            - timestamp in past; 'from' must be less or equal 'to', otherwise the result set will be empty
                           only records that where created in the same moment or earlier than the 'to' timestamp will be provided in response
          in: query
          name: to
          required: false
          type: string
        - description: "- list of project ids to look for"
          in: query
          name: projectIds
          required: false
          type: string
        - description: "- list of user ids to look for"
          in: query
          name: userIds
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: Store a record in Audit Log
      operationId: addRecord
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/avatar/{type}/system":
    get:
      description: Returns all system avatars of the given type.
      operationId: getAllSystemAvatars
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the avatar type
        in: path
        name: type
        required: true
        type: string
  "/api/2/avatar/{type}/temporary":
    parameters:
      - description: the avatar type
        in: path
        name: type
        required: true
        type: string
    post:
      description: Creates temporary avatar
      operationId: storeTemporaryAvatar
      parameters:
        - description: name of file being uploaded
          in: query
          name: filename
          required: false
          type: string
        - description: size of file
          format: int64
          in: query
          name: size
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
  "/api/2/avatar/{type}/temporaryCrop":
    parameters:
      - description: the avatar type
        in: path
        name: type
        required: true
        type: string
    post:
      description: Updates the cropping instructions of the temporary avatar.
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/cluster/zdu/approve:
    parameters: []
    post:
      operationId: approveUpgrade
      responses:
        "200":
          description: Successful Response
  /api/2/cluster/zdu/cancel:
    parameters: []
    post:
      operationId: cancelUpgrade
      responses:
        "200":
          description: Successful Response
  /api/2/cluster/zdu/retryUpgrade:
    parameters: []
    post:
      operationId: acknowledgeErrors
      responses:
        "200":
          description: Successful Response
  /api/2/cluster/zdu/start:
    parameters: []
    post:
      operationId: setReadyToUpgrade
      responses:
        "200":
          description: Successful Response
  /api/2/cluster/zdu/state:
    get:
      operationId: getState
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/comment/{commentId}/properties":
    get:
      description: Returns the keys of all properties for the comment identified by the key or by the id.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the comment from which keys will be returned.
        in: path
        name: commentId
        required: true
        type: string
  "/api/2/comment/{commentId}/properties/{propertyKey}":
    delete:
      description: |-
        Removes the property from the comment identified by the key or by the id. Ths user removing the property is required
         to have permissions to administer the comment.
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns the value of the property with a given key from the comment identified by the key or by the id. The user who retrieves
         the property is required to have permissions to read the comment.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the comment from which keys will be returned.
        in: path
        name: commentId
        required: true
        type: string
      - description: the key of the property to return.
        in: path
        name: propertyKey
        required: true
        type: string
    put:
      description: |-
        Sets the value of the specified comment's property.
         <p>
         You can use this resource to store a custom data against the comment identified by the key or by the id. The user
         who stores the data is required to have permissions to administer the comment.
         </p>
      responses:
        "200":
          description: Successful Response
  /api/2/component:
    parameters: []
    post:
      description: Create a component via POST.
      operationId: createComponent
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/component/{id}":
    delete:
      description: Delete a project component.
      parameters:
        - description: |-
            The new component applied to issues whose 'id' component will be deleted.
                                 If this value is null, then the 'id' component is simply removed from the related isues.
          in: query
          name: moveIssuesTo
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns a project component.
      operationId: getComponent
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: The component to delete.
        in: path
        name: id
        required: true
        type: string
    put:
      description: |-
        Modify a component via PUT. Any fields present in the PUT will override existing values. As a convenience, if a field
         is not present, it is silently ignored.
         <p>
         If leadUserName is an empty string ("") the component lead will be removed.
      operationId: updateComponent
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/component/{id}/relatedIssueCounts":
    get:
      description: Returns counts of issues related to this component.
      operationId: getComponentRelatedIssues
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a String containing the component id
        in: path
        name: id
        required: true
        type: string
  /api/2/configuration:
    get:
      description: |-
        Returns the information if the optional features in JIRA are enabled or disabled. If the time tracking is enabled,
         it also returns the detailed information about time tracking configuration.
      operationId: getConfiguration
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/customFieldOption/{id}":
    get:
      description: Returns a full representation of the Custom Field Option that has the given id.
      operationId: getCustomFieldOption
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a String containing an Custom Field Option id
        in: path
        name: id
        required: true
        type: string
  /api/2/dashboard:
    get:
      description: Returns a list of all dashboards, optionally filtering them.
      operationId: list
      parameters:
        - description: |-
            an optional filter that is applied to the list of dashboards. Valid values include
                                    <code>"favourite"</code> for returning only favourite dashboards, and <code>"my"</code> for returning
                                    dashboards that are owned by the calling user.
          in: query
          name: filter
          required: false
          type: string
        - description: |-
            the index of the first dashboard to return (0-based). must be 0 or a multiple of
                                    <code>maxResults</code>
          format: int32
          in: query
          name: startAt
          required: false
          type: integer
        - description: |-
            a hint as to the the maximum number of dashboards to return in each call. Note that the
                                    JIRA server reserves the right to impose a <code>maxResults</code> limit that is lower than the value that a
                                    client provides, dues to lack or resources or any other condition. When this happens, your results will be
                                    truncated. Callers should always check the returned <code>maxResults</code> to determine the value that is
                                    effectively being used.
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/dashboard/{dashboardId}/items/{itemId}/properties":
    get:
      description: Returns the keys of all properties for the dashboard item identified by the id.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the dashboard item from which keys will be returned.
        in: path
        name: itemId
        required: true
        type: string
      - in: path
        name: dashboardId
        required: true
        type: string
  "/api/2/dashboard/{dashboardId}/items/{itemId}/properties/{propertyKey}":
    delete:
      description: |-
        Removes the property from the dashboard item identified by the key or by the id. Ths user removing the property is required
         to have permissions to administer the dashboard item.
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns the value of the property with a given key from the dashboard item identified by the id.
         The user who retrieves the property is required to have permissions to read the dashboard item.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the dashboard item from which keys will be returned.
        in: path
        name: itemId
        required: true
        type: string
      - in: path
        name: dashboardId
        required: true
        type: string
      - description: the key of the property to return.
        in: path
        name: propertyKey
        required: true
        type: string
    put:
      description: |-
        Sets the value of the specified dashboard item's property.
         <p>
         You can use this resource to store a custom data against the dashboard item identified by the id.
         The user who stores the data is required to have permissions to administer the dashboard item.
         </p>
      responses:
        "200":
          description: Successful Response
  "/api/2/dashboard/{id}":
    get:
      description: Returns a single dashboard.
      operationId: getDashboard
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the dashboard id
        in: path
        name: id
        required: true
        type: string
  /api/2/field:
    get:
      description: Returns a list of all fields, both System and Custom
      operationId: getFields
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: Creates a custom field using a definition (object encapsulating custom field data)
      operationId: createCustomField
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/filter:
    parameters: []
    post:
      description: |-
        Creates a new filter, and returns newly created filter.
         Currently sets permissions just using the users default sharing permissions
      operationId: createFilter
      parameters:
        - description: the parameters to expand
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/filter/defaultShareScope:
    get:
      description: Returns the default share scope of the logged-in user.
      operationId: getDefaultShareScope
      responses:
        "200":
          description: Successful Response
    parameters: []
    put:
      description: Sets the default share scope of the logged-in user. Available values are GLOBAL and PRIVATE.
      operationId: setDefaultShareScope
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/filter/favourite:
    get:
      description: Returns the favourite filters of the logged-in user.
      operationId: getFavouriteFilters
      parameters:
        - description: the parameters to expand
          in: query
          name: expand
          required: false
          type: string
        - default: true
          description: enable calculating shared users collection
          in: query
          name: enableSharedUsers
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/filter/{id}":
    delete:
      description: Delete a filter.
      operationId: deleteFilter
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns a filter given an id
      operationId: getFilter
      parameters:
        - description: the parameters to expand
          in: query
          name: expand
          required: false
          type: string
        - default: true
          description: enable calculating shared users collection
          in: query
          name: enableSharedUsers
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the id of the filter being looked up
        format: int64
        in: path
        name: id
        required: true
        type: integer
    put:
      description: Updates an existing filter, and returns its new value.
      operationId: editFilter
      parameters:
        - description: the parameters to expand
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/filter/{id}/columns":
    delete:
      description: Resets the columns for the given filter such that the filter no longer has its own column config.
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns the default columns for the given filter. Currently logged in user will be used as
         the user making such request.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: id of the filter
        format: int64
        in: path
        name: id
        required: true
        type: integer
    put:
      description: Sets the default columns for the given filter.
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/filter/{id}/permission":
    get:
      description: Returns all share permissions of the given filter.
      operationId: getSharePermissions
      responses:
        "200":
          description: Successful Response
    parameters:
      - format: int64
        in: path
        name: id
        required: true
        type: integer
    post:
      description: Adds a share permissions to the given filter. Adding a global permission removes all previous permissions from the filter.
      operationId: addSharePermission
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/filter/{id}/permission/{permission-id}":
    delete:
      description: Removes a share permissions from the given filter.
      operationId: deleteSharePermission
      responses:
        "200":
          description: Successful Response
    parameters:
      - format: int64
        in: path
        name: id
        required: true
        type: integer
      - format: int64
        in: path
        name: permission-id
        required: true
        type: integer
  "/api/2/filter/{id}/permission/{permissionId}":
    get:
      description: Returns a single share permission of the given filter.
      operationId: getSharePermission
      responses:
        "200":
          description: Successful Response
    parameters:
      - format: int64
        in: path
        name: permissionId
        required: true
        type: integer
      - format: int64
        in: path
        name: id
        required: true
        type: integer
  /api/2/group:
    delete:
      description: |-
        Deletes a group by given group parameter.
         <p>
         Returns no content
      operationId: removeGroup
      parameters:
        - description: (mandatory) The name of the group to delete.
          in: query
          name: groupname
          required: false
          type: string
        - description: |-
            If you delete a group and content is restricted to that group, the content will be hidden from all users. 
             To prevent this, use this parameter to specify a different group to transfer the restrictions (comments and worklogs only) to.
          in: query
          name: swapGroup
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns REST representation for the requested group. Allows to get list of active users belonging to the
         specified group and its subgroups if "users" expand option is provided. You can page through users list by using
         indexes in expand param. For example to get users from index 10 to index 15 use "users[10:15]" expand value. This
         will return 6 users (if there are at least 16 users in this group). Indexes are 0-based and inclusive.
         <p>
         This resource is deprecated, please use group/member API instead.
      operationId: getGroup
      parameters:
        - description: A name of requested group.
          in: query
          name: groupname
          required: false
          type: string
        - description: List of fields to expand. Currently only available expand is "users".
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: |-
        Creates a group by given group parameter
         <p>
         Returns REST representation for the requested group.
      operationId: createGroup
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/group/member:
    get:
      description: |-
        This resource returns a <a href="#pagination">paginated</a> list of users who are members of the specified group and its subgroups.
         Users in the page are ordered by user names. User of this resource is required to have sysadmin or admin permissions.
      operationId: getUsersFromGroup
      parameters:
        - description: a name of the group for which members will be returned.
          in: query
          name: groupname
          required: false
          type: string
        - default: false
          description: inactive users will be included in the response if set to true.
          in: query
          name: includeInactiveUsers
          required: false
          type: boolean
        - default: 0
          description: the index of the first user in group to return (0 based).
          format: int64
          in: query
          name: startAt
          required: false
          type: integer
        - default: 50
          description: the maximum number of users to return (max 50).
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/group/user:
    delete:
      description: |-
        Removes given user from a group.
         <p>
         Returns no content
      operationId: removeUserFromGroup
      parameters:
        - description: A name of requested group.
          in: query
          name: groupname
          required: false
          type: string
        - description: User to remove from a group
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: |-
        Adds given user to a group.
         <p>
         Returns the current state of the group.
      operationId: addUserToGroup
      parameters:
        - description: A name of requested group.
          in: query
          name: groupname
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/groups/picker:
    get:
      description: |-
        Returns groups with substrings matching a given query. This is mainly for use with
         the group picker, so the returned groups contain html to be used as picker suggestions.
         The groups are also wrapped in a single response object that also contains a header for
         use in the picker, specifically <i>Showing X of Y matching groups</i>.
         <p>
         The number of groups returned is limited by the system property "jira.ajax.autocomplete.limit"
         <p>
         The groups will be unique and sorted.
      operationId: findGroups
      parameters:
        - description: a String to match groups agains
          in: query
          name: query
          required: false
          type: string
        - in: query
          name: exclude
          required: false
          type: string
        - format: int32
          in: query
          name: maxResults
          required: false
          type: integer
        - in: query
          name: userName
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/groupuserpicker:
    get:
      description: |-
        Returns a list of users and groups matching query with highlighting. This resource cannot be accessed
         anonymously.
      operationId: findUsersAndGroups
      parameters:
        - description: A string used to search username, Name or e-mail address
          in: query
          name: query
          required: false
          type: string
        - description: |-
            the maximum number of users to return (defaults to 50). The maximum allowed value is 1000. If
                                you specify a value that is higher than this number, your search results will be truncated.
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
        - in: query
          name: showAvatar
          required: false
          type: boolean
        - description: The custom field id, if this request comes from a custom field, such as a user picker. Optional.
          in: query
          name: fieldId
          required: false
          type: string
        - description: |-
            The list of project ids to further restrict the search
                                This parameter can occur multiple times to pass in multiple project ids.
                                Comma separated value is not supported.
                                This parameter is only used when fieldId is present.
          in: query
          name: projectId
          required: false
          type: string
        - description: |-
            The list of issue type ids to further restrict the search.
                                This parameter can occur multiple times to pass in multiple issue type ids.
                                Comma separated value is not supported.
                                Special values such as -1 (all standard issue types), -2 (all subtask issue types) are supported.
                                This parameter is only used when fieldId is present.
          in: query
          name: issueTypeId
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/index/summary:
    get:
      description: |-
        Summarizes index condition of current node.
         <p/>
         Returned data consists of:
         <ul>
         <li><code>nodeId</code> - Node identifier.</li>
         <li><code>reportTime</code> - Time of this report creation.</li>
         <li><code>issueIndex</code> - Summary of issue index status.</li>
         <li><code>replicationQueues</code> - Map of index replication queues, where
         keys represent nodes from which replication operations came from.</li>
         </ul>
         <p/>
         <code>issueIndex</code> can contain:
         <ul>
         <li><code>indexReadable</code> - If <code>false</code> the end point failed to read data from issue index
         (check JIRA logs for detailed stack trace), otherwise <code>true</code>.
         When <code>false</code> other fields of <code>issueIndex</code> can be not visible.</li>
         <li><code>countInDatabase</code> - Count of issues found in database.</li>
         <li><code>countInIndex</code> - Count of issues found while querying index.</li>
         <li><code>lastUpdatedInDatabase</code> - Time of last update of issue found in database.</li>
         <li><code>lastUpdatedInIndex</code> - Time of last update of issue found while querying index.</li>
         </ul>
         <p/>
         <code>replicationQueues</code>'s map values can contain:
         <ul>
         <li><code>lastConsumedOperation</code> - Last executed index replication operation by current node from sending node's queue.</li>
         <li><code>lastConsumedOperation.id</code> - Identifier of the operation.</li>
         <li><code>lastConsumedOperation.replicationTime</code> - Time when the operation was sent to other nodes.</li>
         <li><code>lastOperationInQueue</code> - Last index replication operation in sending node's queue.</li>
         <li><code>lastOperationInQueue.id</code> - Identifier of the operation.</li>
         <li><code>lastOperationInQueue.replicationTime</code> - Time when the operation was sent to other nodes.</li>
         <li><code>queueSize</code> - Number of operations in queue from sending node to current node.</li>
         </ul>
      operationId: getIndexSummary
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/issue:
    parameters: []
    post:
      description: |-
        Creates an issue or a sub-task from a JSON representation.
         <p/>
         The fields that can be set on create, in either the fields parameter or the update parameter can be determined
         using the <b>/rest/api/2/issue/createmeta</b> resource.
         If a field is not configured to appear on the create screen, then it will not be in the createmeta, and a field
         validation error will occur if it is submitted.
         <p/>
         Creating a sub-task is similar to creating a regular issue, with two important differences:
         <ul>
         <li>the <code>issueType</code> field must correspond to a sub-task issue type (you can use
         <code>/issue/createmeta</code> to discover sub-task issue types), and</li>
         <li>you must provide a <code>parent</code> field in the issue create request containing the id or key of the
         parent issue.</li>
         </ul>
      operationId: createIssue
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/issue/bulk:
    parameters: []
    post:
      description: |-
        Creates issues or sub-tasks from a JSON representation.
         <p/>
         Creates many issues in one bulk operation.
         <p/>
         Creating a sub-task is similar to creating a regular issue. More details can be found in createIssue section:
         {@link IssueResource#createIssue(IssueUpdateBean)}}
      operationId: createIssues
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/issue/createmeta:
    get:
      description: |-
        Returns the meta data for creating issues. This includes the available projects, issue types and fields,
         including field types and whether or not those fields are required.
         Projects will not be returned if the user does not have permission to create issues in that project.
         <p/>
         The fields in the createmeta correspond to the fields in the create screen for the project/issuetype.
         Fields not in the screen will not be in the createmeta.
         <p/>
         Fields will only be returned if <code>expand=projects.issuetypes.fields</code>.
         <p/>
         The results can be filtered by project and/or issue type, given by the query params.
      operationId: getCreateIssueMeta
      parameters:
        - description: |-
            combined with the projectKeys param, lists the projects with which to filter the results. If absent, all projects are returned.
                                   This parameter can be specified multiple times, and/or be a comma-separated list.
                                   Specifiying a project that does not exist (or that you cannot create issues in) is not an error, but it will not be in the results.
          in: query
          name: projectIds
          required: false
          type: string
        - description: |-
            combined with the projectIds param, lists the projects with which to filter the results. If null, all projects are returned.
                                   This parameter can be specified multiple times, and/or be a comma-separated list.
                                   Specifiying a project that does not exist (or that you cannot create issues in) is not an error, but it will not be in the results.
          in: query
          name: projectKeys
          required: false
          type: string
        - description: |-
            combinded with issuetypeNames, lists the issue types with which to filter the results. If null, all issue types are returned.
                                   This parameter can be specified multiple times, and/or be a comma-separated list.
                                   Specifiying an issue type that does not exist is not an error.
          in: query
          name: issuetypeIds
          required: false
          type: string
        - description: |-
            combinded with issuetypeIds, lists the issue types with which to filter the results. If null, all issue types are returned.
                                   This parameter can be specified multiple times, but is NOT interpreted as a comma-separated list.
                                   Specifiying an issue type that does not exist is not an error.
          in: query
          name: issuetypeNames
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/issue/picker:
    get:
      description: |-
        Returns suggested issues which match the auto-completion query for the user which executes this request. This REST
         method will check the user's history and the user's browsing context and select this issues, which match the query.
      operationId: getIssuePickerResource
      parameters:
        - description: the query.
          in: query
          name: query
          required: false
          type: string
        - description: the JQL in context of which the request is executed. Only issues which match this JQL query will be included in results.
          in: query
          name: currentJQL
          required: false
          type: string
        - description: the key of the issue in context of which the request is executed. The issue which is in context will not be included in the auto-completion result, even if it matches the query.
          in: query
          name: currentIssueKey
          required: false
          type: string
        - description: the id of the project in context of which the request is executed. Suggested issues will be only from this project.
          in: query
          name: currentProjectId
          required: false
          type: string
        - description: if set to false, subtasks will not be included in the list.
          in: query
          name: showSubTasks
          required: false
          type: boolean
        - description: if set to false and request is executed in context of a subtask, the parent issue will not be included in the auto-completion result, even if it matches the query.
          in: query
          name: showSubTaskParent
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/issue/{issueIdOrKey}":
    delete:
      description: |-
        Delete an issue.
         <p/>
         If the issue has subtasks you must set the parameter deleteSubtasks=true to delete the issue.
         You cannot delete an issue without its subtasks also being deleted.
      operationId: deleteIssue
      parameters:
        - description: |-
            a String of true or false indicating that any subtasks should also be deleted.  If the
                                   issue has no subtasks this parameter is ignored.  If the issue has subtasks and this parameter is missing or false,
                                   then the issue will not be deleted and an error will be returned.
          in: query
          name: deleteSubtasks
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns a full representation of the issue for the given issue key.
         <p>
         An issue JSON consists of the issue key, a collection of fields,
         a link to the workflow transition sub-resource, and (optionally) the HTML rendered values of any fields that support it
         (e.g. if wiki syntax is enabled for the description or comments).
         <p>
         The <code>fields</code> param (which can be specified multiple times) gives a comma-separated list of fields
         to include in the response. This can be used to retrieve a subset of fields.
         A particular field can be excluded by prefixing it with a minus.
         <p>
         By default, all (<code>*all</code>) fields are returned in this get-issue resource. Note: the default is different
         when doing a jql search -- the default there is just navigable fields (<code>*navigable</code>).
         <ul>
         <li><code>*all</code> - include all fields</li>
         <li><code>*navigable</code> - include just navigable fields</li>
         <li><code>summary,comment</code> - include just the summary and comments</li>
         <li><code>-comment</code> - include everything except comments (the default is <code>*all</code> for get-issue)</li>
         <li><code>*all,-comment</code> - include everything except comments</li>
         </ul>
         <p>
         The {@code properties} param is similar to {@code fields} and specifies a comma-separated list of issue
         properties to include. Unlike {@code fields}, properties are not included by default. To include them all
         send {@code ?properties=*all}. You can also include only specified properties or exclude some properties
         with a minus (-) sign.
         <p>
         <ul>
         <li>{@code *all} - include all properties</li>
         <li>{@code *all, -prop1} - include all properties except {@code prop1} </li>
         <li>{@code prop1, prop1} - include {@code prop1} and {@code prop2} properties </li>
         </ul>
         </p>
         <p/>
         JIRA will attempt to identify the issue by the <code>issueIdOrKey</code> path parameter. This can be an issue id,
         or an issue key. If the issue cannot be found via an exact match, JIRA will also look for the issue in a case-insensitive way, or
         by looking to see if the issue was moved. In either of these cases, the request will proceed as normal (a 302 or other redirect
         will <b>not</b> be returned). The issue key contained in the response will indicate the current value of issue's key.
         <p/>
         The <code>expand</code> param is used to include, hidden by default, parts of response. This can be used to include:
         <ul>
         <li><code>renderedFields</code> - field values in HTML format</li>
         <li><code>names</code> - display name of each field</li>
         <li><code>schema</code> - schema for each field which describes a type of the field</li>
         <li><code>transitions</code> - all possible transitions for the given issue</li>
         <li><code>operations</code> - all possibles operations which may be applied on issue</li>
         <li><code>editmeta</code> - information about how each field may be edited. It contains field's schema as well.</li>
         <li><code>changelog</code> - history of all changes of the given issue</li>
         <li><code>versionedRepresentations</code> -
         REST representations of all fields. Some field may contain more recent versions. RESET representations are numbered.
         The greatest number always represents the most recent version. It is recommended that the most recent version is used.
         version for these fields which provide a more recent REST representation.
         After including <code>versionedRepresentations</code> "fields" field become hidden.</li>
         </ul>
      operationId: getIssue
      parameters:
        - description: the list of fields to return for the issue. By default, all fields are returned.
          in: query
          name: fields
          required: false
          type: string
        - in: query
          name: expand
          required: false
          type: string
        - description: the list of properties to return for the issue. By default no properties are returned.
          in: query
          name: properties
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue id or key to update (i.e. JRA-1330)
        in: path
        name: issueIdOrKey
        required: true
        type: string
    put:
      description: |-
        Edits an issue from a JSON representation.
         <p/>
         The issue can either be updated by setting explicit the field value(s)
         or by using an operation to change the field value.
         <p/>
         The fields that can be updated, in either the fields parameter or the update parameter, can be determined
         using the <b>/rest/api/2/issue/{issueIdOrKey}/editmeta</b> resource.<br>
         If a field is not configured to appear on the edit screen, then it will not be in the editmeta, and a field
         validation error will occur if it is submitted.
         <p/>
         Specifying a "field_id": field_value in the "fields" is a shorthand for a "set" operation in the "update" section.<br>
         Field should appear either in "fields" or "update", not in both.
      operationId: editIssue
      parameters:
        - default: true
          description: |-
            send the email with notification that the issue was updated to users that watch it.
                                Admin or project admin permissions are required to disable the notification.
          in: query
          name: notifyUsers
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/assignee":
    parameters:
      - description: a String containing an issue key
        in: path
        name: issueIdOrKey
        required: true
        type: string
    put:
      description: |-
        Assigns an issue to a user.
         You can use this resource to assign issues when the user submitting the request has the assign permission but not the
         edit issue permission.
         If the name is "-1" automatic assignee is used.  A null name will remove the assignee.
      operationId: assign
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/attachments":
    parameters:
      - description: the issue that you want to add the attachments to
        in: path
        name: issueIdOrKey
        required: true
        type: string
    post:
      description: |-
        Add one or more attachments to an issue.
         <p>
         This resource expects a multipart post. The media-type multipart/form-data is defined in RFC 1867. Most client
         libraries have classes that make dealing with multipart posts simple. For instance, in Java the Apache HTTP Components
         library provides a
         <a href="http://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntity.html">MultiPartEntity</a>
         that makes it simple to submit a multipart POST.
         <p>
         In order to protect against XSRF attacks, because this method accepts multipart/form-data, it has XSRF protection
         on it.  This means you must submit a header of X-Atlassian-Token: no-check with the request, otherwise it will be
         blocked.
         <p>
         The name of the multipart/form-data parameter that contains attachments must be "file"
         <p>
         A simple example to upload a file called "myfile.txt" to issue REST-123:
         <pre>curl -D- -u admin:admin -X POST -H "X-Atlassian-Token: no-check" -F "file=@myfile.txt" http://myhost/rest/api/2/issue/TEST-123/attachments</pre>
      operationId: addAttachment
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/comment":
    get:
      description: |-
        Returns all comments for an issue.
         <p>
         Results can be ordered by the "created" field which means the date a comment was added.
         </p>
      operationId: getComments
      parameters:
        - description: the page offset, if not specified then defaults to 0
          format: int64
          in: query
          name: startAt
          required: false
          type: integer
        - description: how many results on the page should be included. Defaults to 50.
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
        - description: ordering of the results.
          in: query
          name: orderBy
          required: false
          type: string
        - description: "optional flags: renderedBody (provides body rendered in HTML)"
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a string containing the issue id or key the comment will be added to
        in: path
        name: issueIdOrKey
        required: true
        type: string
    post:
      description: Adds a new comment to an issue.
      operationId: addComment
      parameters:
        - description: "optional flags: renderedBody (provides body rendered in HTML)"
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/comment/{id}":
    delete:
      description: Deletes an existing comment .
      operationId: deleteComment
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns a single comment.
      operationId: getComment
      parameters:
        - description: "optional flags: renderedBody (provides body rendered in HTML)"
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: of the issue the comment belongs to
        in: path
        name: issueIdOrKey
        required: true
        type: string
      - description: the ID of the comment to request
        in: path
        name: id
        required: true
        type: string
    put:
      description: Updates an existing comment using its JSON representation.
      operationId: updateComment
      parameters:
        - description: "optional flags: renderedBody (provides body rendered in HTML)"
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/editmeta":
    get:
      description: |-
        Returns the meta data for editing an issue.
         <p/>
         The fields in the editmeta correspond to the fields in the edit screen for the issue.
         Fields not in the screen will not be in the editmeta.
      operationId: getEditIssueMeta
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue whose edit meta data you want to view
        in: path
        name: issueIdOrKey
        required: true
        type: string
  "/api/2/issue/{issueIdOrKey}/notify":
    parameters:
      - description: a string containing the issue id or key the comment will be added to
        in: path
        name: issueIdOrKey
        required: true
        type: string
    post:
      description: Sends a notification (email) to the list or recipients defined in the request.
      operationId: notify
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/properties":
    get:
      description: Returns the keys of all properties for the issue identified by the key or by the id.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue from which keys will be returned.
        in: path
        name: issueIdOrKey
        required: true
        type: string
  "/api/2/issue/{issueIdOrKey}/properties/{propertyKey}":
    delete:
      description: |-
        Removes the property from the issue identified by the key or by the id. Ths user removing the property is required
         to have permissions to edit the issue.
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns the value of the property with a given key from the issue identified by the key or by the id. The user who retrieves
         the property is required to have permissions to read the issue.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue from which keys will be returned.
        in: path
        name: issueIdOrKey
        required: true
        type: string
      - description: the key of the property to return.
        in: path
        name: propertyKey
        required: true
        type: string
    put:
      description: |-
        Sets the value of the specified issue's property.
         <p>
         You can use this resource to store a custom data against the issue identified by the key or by the id. The user
         who stores the data is required to have permissions to edit the issue.
         </p>
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/remotelink":
    delete:
      description: Delete the remote issue link with the given global id on the issue.
      operationId: deleteRemoteIssueLinkByGlobalId
      parameters:
        - description: the global id of the remote issue link
          in: query
          name: globalId
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: A REST sub-resource representing the remote issue links on the issue.
      operationId: getRemoteIssueLinks
      parameters:
        - description: |-
            The id of the remote issue link to be returned.  If null (not provided) all remote links for the
                                 issue are returned.
                                 <p>For a fullexplanation of Issue Link fields please refer to
                                 <a href="https://developer.atlassian.com/display/JIRADEV/Fields+in+Remote+Issue+Links">https://developer.atlassian.com/display/JIRADEV/Fields+in+Remote+Issue+Links</a></p>
          in: query
          name: globalId
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue to create the remote issue link for
        in: path
        name: issueIdOrKey
        required: true
        type: string
    post:
      description: |-
        Creates or updates a remote issue link from a JSON representation. If a globalId is provided and a remote issue link
         exists with that globalId, the remote issue link is updated. Otherwise, the remote issue link is created.
      operationId: createOrUpdateRemoteIssueLink
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/remotelink/{linkId}":
    delete:
      description: Delete the remote issue link with the given id on the issue.
      operationId: deleteRemoteIssueLinkById
      responses:
        "200":
          description: Successful Response
    get:
      description: Get the remote issue link with the given id on the issue.
      operationId: getRemoteIssueLinkById
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the id of the remote issue link
        in: path
        name: linkId
        required: true
        type: string
      - description: the issue to create the remote issue link for
        in: path
        name: issueIdOrKey
        required: true
        type: string
    put:
      description: Updates a remote issue link from a JSON representation. Any fields not provided are set to null.
      operationId: updateRemoteIssueLink
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/subtask":
    get:
      description: Returns an issue's subtask list
      operationId: getSubTasks
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: The parent issue's key or id
        in: path
        name: issueIdOrKey
        required: true
        type: string
  "/api/2/issue/{issueIdOrKey}/subtask/move":
    get:
      operationId: canMoveSubTask
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: The parent issue's key or id
        in: path
        name: issueIdOrKey
        required: true
        type: string
    post:
      description: |-
        Reorders an issue's subtasks by moving the subtask at index "from"
         to index "to".
      operationId: moveSubTasks
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/transitions":
    get:
      description: |-
        Get a list of the transitions possible for this issue by the current user, along with fields that are required and their types.
         <p/>
         Fields will only be returned if <code>expand=transitions.fields</code>.
         <p/>
         The fields in the metadata correspond to the fields in the transition screen for that transition.
         Fields not in the screen will not be in the metadata.
      operationId: getTransitions
      parameters:
        - in: query
          name: transitionId
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue whose transitions you want to view
        in: path
        name: issueIdOrKey
        required: true
        type: string
    post:
      description: |-
        Perform a transition on an issue.
         When performing the transition you can update or set other issue fields.
         <p/>
         The fields that can be set on transtion, in either the fields parameter or the update parameter can be determined
         using the <b>/rest/api/2/issue/{issueIdOrKey}/transitions?expand=transitions.fields</b> resource.
         If a field is not configured to appear on the transition screen, then it will not be in the transition metadata, and a field
         validation error will occur if it is submitted.
      operationId: doTransition
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/votes":
    delete:
      description: Remove your vote from an issue. (i.e. "unvote")
      operationId: removeVote
      responses:
        "200":
          description: Successful Response
    get:
      description: A REST sub-resource representing the voters on the issue.
      operationId: getVotes
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue to view voting information for
        in: path
        name: issueIdOrKey
        required: true
        type: string
    post:
      description: Cast your vote in favour of an issue.
      operationId: addVote
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/watchers":
    delete:
      description: Removes a user from an issue's watcher list.
      operationId: removeWatcher
      parameters:
        - description: a String containing the name of the user to remove from the watcher list. Must not be null.
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns the list of watchers for the issue with the given key.
      operationId: getIssueWatchers
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a String containing an issue key.
        in: path
        name: issueIdOrKey
        required: true
        type: string
    post:
      description: Adds a user to an issue's watcher list.
      operationId: addWatcher
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/worklog":
    get:
      description: |-
        Returns all work logs for an issue. <br/>
         <strong>Note:</strong> Work logs won't be returned if the Log work field is hidden for the project.
      operationId: getIssueWorklog
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a string containing the issue id or key the worklog will be added to
        in: path
        name: issueIdOrKey
        required: true
        type: string
    post:
      description: Adds a new worklog entry to an issue.
      operationId: addWorklog
      parameters:
        - description: |-
            (optional) allows you to provide specific instructions to update the remaining time estimate of the issue.  Valid values are
                                   <ul>
                                   <li>"new" - sets the estimate to a specific value</li>
                                   <li>"leave"- leaves the estimate as is</li>
                                   <li>"manual" - specify a specific amount to increase remaining estimate by</li>
                                   <li>"auto"- Default option.  Will automatically adjust the value based on the new timeSpent specified on the worklog</li> </ul>
          in: query
          name: adjustEstimate
          required: false
          type: string
        - description: (required when "new" is selected for adjustEstimate) the new value for the remaining estimate field. e.g. "2d"
          in: query
          name: newEstimate
          required: false
          type: string
        - description: (required when "manual" is selected for adjustEstimate) the amount to reduce the remaining estimate by e.g. "2d"
          in: query
          name: reduceBy
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/issue/{issueIdOrKey}/worklog/{id}":
    delete:
      description: Deletes an existing worklog entry.
      operationId: deleteWorklog
      parameters:
        - description: |-
            (optional) allows you to provide specific instructions to update the remaining time estimate of the issue.  Valid values are
                                   <ul>
                                   <li>"new" - sets the estimate to a specific value</li>
                                   <li>"leave"- leaves the estimate as is</li>
                                   <li>"manual" - specify a specific amount to increase remaining estimate by</li>
                                   <li>"auto"- Default option.  Will automatically adjust the value based on the new timeSpent specified on the worklog</li> </ul>
          in: query
          name: adjustEstimate
          required: false
          type: string
        - description: (required when "new" is selected for adjustEstimate) the new value for the remaining estimate field. e.g. "2d"
          in: query
          name: newEstimate
          required: false
          type: string
        - description: (required when "manual" is selected for adjustEstimate) the amount to increase the remaining estimate by e.g. "2d"
          in: query
          name: increaseBy
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns a specific worklog. <br/>
         <strong>Note:</strong> The work log won't be returned if the Log work field is hidden for the project.
      operationId: getWorklog
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a string containing the issue id or key the worklog belongs to
        in: path
        name: issueIdOrKey
        required: true
        type: string
      - description: id of the worklog to be deleted
        in: path
        name: id
        required: true
        type: string
    put:
      description: |-
        Updates an existing worklog entry.
         <p>Note that:</p>
          <ul>
              <li>Fields possible for editing are: comment, visibility, started, timeSpent and timeSpentSeconds.</li>
              <li>Either timeSpent or timeSpentSeconds can be set.</li>
              <li>Fields which are not set will not be updated.</li>
              <li>For a request to be valid, it has to have at least one field change.</li>
          </ul>
      operationId: updateWorklog
      parameters:
        - description: |-
            (optional) allows you to provide specific instructions to update the remaining time estimate of the issue.  Valid values are
                                   <ul>
                                   <li>"new" - sets the estimate to a specific value</li>
                                   <li>"leave"- leaves the estimate as is</li>
                                   <li>"auto"- Default option.  Will automatically adjust the value based on the new timeSpent specified on the worklog</li> </ul>
          in: query
          name: adjustEstimate
          required: false
          type: string
        - description: (required when "new" is selected for adjustEstimate) the new value for the remaining estimate field.
          in: query
          name: newEstimate
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/issueLink:
    parameters: []
    post:
      description: |-
        Creates an issue link between two issues.
         The user requires the link issue permission for the issue which will be linked to another issue.
         The specified link type in the request is used to create the link and will create a link from the first issue
         to the second issue using the outward description. It also create a link from the second issue to the first issue using the
         inward description of the issue link type.
         It will add the supplied comment to the first issue. The comment can have a restriction who can view it.
         If group is specified, only users of this group can view this comment, if roleLevel is specified only users who have the specified role can view this comment.
         The user who creates the issue link needs to belong to the specified group or have the specified role.
      operationId: linkIssues
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issueLink/{linkId}":
    delete:
      description: |-
        Deletes an issue link with the specified id.
         To be able to delete an issue link you must be able to view both issues and must have the link issue permission
         for at least one of the issues.
      operationId: deleteIssueLink
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns an issue link with the specified id.
      operationId: getIssueLink
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue link id.
        in: path
        name: linkId
        required: true
        type: string
  /api/2/issueLinkType:
    get:
      description: |-
        Returns a list of available issue link types, if issue linking is enabled.
         Each issue link type has an id, a name and a label for the outward and inward link relationship.
      operationId: getIssueLinkTypes
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: Create a new issue link type.
      operationId: createIssueLinkType
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issueLinkType/{issueLinkTypeId}":
    delete:
      description: Delete the specified issue link type.
      operationId: deleteIssueLinkType
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns for a given issue link type id all information about this issue link type.
      operationId: getIssueLinkType
      responses:
        "200":
          description: Successful Response
    parameters:
      - in: path
        name: issueLinkTypeId
        required: true
        type: string
    put:
      description: Update the specified issue link type.
      operationId: updateIssueLinkType
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/issuesecurityschemes:
    get:
      description: Returns all issue security schemes that are defined.
      operationId: getIssueSecuritySchemes
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/issuesecurityschemes/{id}":
    get:
      description: Returns the issue security scheme along with that are defined.
      responses:
        "200":
          description: Successful Response
    parameters:
      - format: int64
        in: path
        name: id
        required: true
        type: integer
  /api/2/issuetype:
    get:
      description: Returns a list of all issue types visible to the user
      operationId: getIssueAllTypes
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: |-
        Creates an issue type from a JSON representation and adds the issue newly created issue type to the default issue
         type scheme.
      operationId: createIssueType
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issuetype/{id}":
    delete:
      description: |-
        Deletes the specified issue type. If the issue type has any associated issues, these issues will be migrated to
         the alternative issue type specified in the parameter. You can determine the alternative issue types by calling
         the <b>/rest/api/2/issuetype/{id}/alternatives</b> resource.
      parameters:
        - description: the id of an issue type to which issues associated with the removed issue type will be migrated.
          in: query
          name: alternativeIssueTypeId
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns a full representation of the issue type that has the given id.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the id of the issue type to update.
        in: path
        name: id
        required: true
        type: string
    put:
      description: Updates the specified issue type from a JSON representation.
      operationId: updateIssueType
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issuetype/{id}/alternatives":
    get:
      description: |-
        Returns a list of all alternative issue types for the given issue type id. The list will contain these issues types, to which
         issues assigned to the given issue type can be migrated. The suitable alternatives are issue types which are assigned
         to the same workflow, the same field configuration and the same screen scheme.
      operationId: getAlternativeIssueTypes
      responses:
        "200":
          description: Successful Response
    parameters:
      - in: path
        name: id
        required: true
        type: string
  "/api/2/issuetype/{id}/avatar":
    parameters:
      - description: the id of the issue type, which avatar is updated.
        in: path
        name: id
        required: true
        type: string
    post:
      description: Converts temporary avatar into a real avatar
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/issuetype/{id}/avatar/temporary":
    parameters:
      - description: the id of the issue type, which avatar is updated.
        in: path
        name: id
        required: true
        type: string
    post:
      description: |-
        Creates temporary avatar using multipart. The response is sent back as JSON stored in a textarea. This is because
         the client uses remote iframing to submit avatars using multipart. So we must send them a valid HTML page back from
         which the client parses the JSON from.
         <p>
         Creating a temporary avatar is part of a 3-step process in uploading a new
         avatar for an issue type: upload, crop, confirm. This endpoint allows you to use a multipart upload
         instead of sending the image directly as the request body.
         </p>
         <p>
         You *must* use "avatar" as the name of the upload parameter:</p>
         <p>
         <pre>
         curl -c cookiejar.txt -X POST -u admin:admin -H "X-Atlassian-Token: no-check" \
           -F "avatar=@mynewavatar.png;type=image/png" \
           'http://localhost:8090/jira/rest/api/2/issuetype/1/avatar/temporary'
         </pre>
      responses:
        "200":
          description: Successful Response
  "/api/2/issuetype/{issueTypeId}/properties":
    get:
      description: Returns the keys of all properties for the issue type identified by the id.
      operationId: getPropertyKeys
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue type from which the keys will be returned
        in: path
        name: issueTypeId
        required: true
        type: string
  "/api/2/issuetype/{issueTypeId}/properties/{propertyKey}":
    delete:
      description: |-
        Removes the property from the issue type identified by the id. Ths user removing the property is required
         to have permissions to edit the issue type.
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns the value of the property with a given key from the issue type identified by the id. The user who retrieves
         the property is required to have permissions to view the issue type.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue type from which the keys will be returned
        in: path
        name: issueTypeId
        required: true
        type: string
      - description: the key of the property to return
        in: path
        name: propertyKey
        required: true
        type: string
    put:
      description: |-
        Sets the value of the specified issue type's property.
         <p>
         You can use this resource to store a custom data against an issue type identified by the id. The user
         who stores the data is required to have permissions to edit an issue type.
         </p>
      responses:
        "200":
          description: Successful Response
  /api/2/jql/autocompletedata:
    get:
      description: Returns the auto complete data required for JQL searches.
      operationId: getAutoComplete
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/jql/autocompletedata/suggestions:
    get:
      description: Returns auto complete suggestions for JQL search.
      operationId: getFieldAutoCompleteForQueryString
      parameters:
        - description: the field name for which the suggestions are generated.
          in: query
          name: fieldName
          required: false
          type: string
        - description: the portion of the field value that has already been provided by the user.
          in: query
          name: fieldValue
          required: false
          type: string
        - description: 'the predicate for which the suggestions are generated. Suggestions are generated only for: "by", "from" and "to".'
          in: query
          name: predicateName
          required: false
          type: string
        - description: the portion of the predicate value that has already been provided by the user.
          in: query
          name: predicateValue
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/licenseValidator:
    parameters: []
    post:
      operationId: validate
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/monitoring/jmx/areMetricsExposed:
    get:
      operationId: areMetricsExposed
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/monitoring/jmx/getAvailableMetrics:
    get:
      operationId: getAvailableMetrics
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/monitoring/jmx/startExposing:
    get:
      operationId: start
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/monitoring/jmx/stopExposing:
    get:
      operationId: stop
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/mypermissions:
    get:
      description: |-
        Returns all permissions in the system and whether the currently logged in user has them. You can optionally provide a specific context to get permissions for
         (projectKey OR projectId OR issueKey OR issueId)
         <ul>
         <li> When no context supplied the project related permissions will return true if the user has that permission in ANY project </li>
         <li> If a project context is provided, project related permissions will return true if the user has the permissions in the specified project.
         For permissions that are determined using issue data (e.g Current Assignee), true will be returned if the user meets the permission criteria in ANY issue in that project </li>
         <li> If an issue context is provided, it will return whether or not the user has each permission in that specific issue</li>
         </ul>
         <p>
         NB: The above means that for issue-level permissions (EDIT_ISSUE for example), hasPermission may be true when no context is provided, or when a project context is provided,
         <b>but</b> may be false for any given (or all) issues. This would occur (for example) if Reporters were given the EDIT_ISSUE permission. This is because
         any user could be a reporter, except in the context of a concrete issue, where the reporter is known.
         </p>
         <p>
         Global permissions will still be returned for all scopes.
         </p>
         <p>
         Prior to version 6.4 this service returned project permissions with keys corresponding to com.atlassian.jira.security.Permissions.Permission constants.
         Since 6.4 those keys are considered deprecated and this service returns system project permission keys corresponding to constants defined in com.atlassian.jira.permission.ProjectPermissions.
         Permissions with legacy keys are still also returned for backwards compatibility, they are marked with an attribute deprecatedKey=true.
         The attribute is missing for project permissions with the current keys.
         </p>
      operationId: getPermissions
      parameters:
        - description: "- key of project to scope returned permissions for."
          in: query
          name: projectKey
          required: false
          type: string
        - description: "- id of project to scope returned permissions for."
          in: query
          name: projectId
          required: false
          type: string
        - description: "- key of the issue to scope returned permissions for."
          in: query
          name: issueKey
          required: false
          type: string
        - description: "- id of the issue to scope returned permissions for."
          in: query
          name: issueId
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/mypreferences:
    delete:
      description: |-
        Removes preference of the currently logged in user. Preference key must be provided as input parameters (key). If
         key parameter is not provided or wrong - status code 404. If preference is unset - status code 204.
      operationId: removePreference
      parameters:
        - description: "- key of the preference to be removed."
          in: query
          name: key
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns preference of the currently logged in user. Preference key must be provided as input parameter (key). The
         value is returned exactly as it is. If key parameter is not provided or wrong - status code 404. If value is
         found  - status code 200.
      operationId: getPreference
      parameters:
        - description: "- key of the preference to be returned."
          in: query
          name: key
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
    put:
      description: |-
        Sets preference of the currently logged in user. Preference key must be provided as input parameters (key). Value
         must be provided as post body. If key or value parameter is not provided - status code 404. If preference is set
         - status code 204.
      operationId: setPreference
      parameters:
        - description: "- key of the preference to be set."
          in: query
          name: key
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/myself:
    get:
      description: Returns currently logged user. This resource cannot be accessed anonymously.
      responses:
        "200":
          description: Successful Response
    parameters: []
    put:
      description: |-
        Modify currently logged user. The "value" fields present will override the existing value.
         Fields skipped in request will not be changed. Only email and display name can be change that way.
         Requires user password.
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/myself/password:
    parameters: []
    put:
      description: Modify caller password.
      operationId: changeMyPassword
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/notificationscheme:
    get:
      description: |-
        Returns a <a href="#pagination">paginated</a> list of notification schemes. In order to access notification scheme, the calling user is
         required to have permissions to administer at least one project associated with the requested notification scheme. Each scheme contains
         a list of events and recipient configured to receive notifications for these events. Consumer should allow events without recipients to appear in response.
         The list is ordered by the scheme's name.
         Follow the documentation of /notificationscheme/{id} resource for all details about returned value.
      operationId: getNotificationSchemes
      parameters:
        - description: the index of the first notification scheme to return (0 based).
          format: int64
          in: query
          name: startAt
          required: false
          type: integer
        - description: the maximum number of notification schemes to return (max 50).
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/notificationscheme/{id}":
    get:
      description: |-
        Returns a full representation of the notification scheme for the given id. This resource will return a
         notification scheme containing a list of events and recipient configured to receive notifications for these events. Consumer
         should allow events without recipients to appear in response. User accessing
         the data is required to have permissions to administer at least one project associated with the requested notification scheme.
         <p>
         Notification recipients can be:
         <ul>
         <li>current assignee - the value of the notificationType is CurrentAssignee</li>
         <li>issue reporter - the value of the notificationType is Reporter</li>
         <li>current user - the value of the notificationType is CurrentUser</li>
         <li>project lead - the value of the notificationType is ProjectLead</li>
         <li>component lead - the value of the notificationType is ComponentLead</li>
         <li>all watchers - the value of the notification type is AllWatchers</li>
         <li>configured user - the value of the notification type is User. Parameter will contain key of the user. Information about the user will be provided
         if <b>user</b> expand parameter is used. </li>
         <li>configured group - the value of the notification type is Group. Parameter will contain name of the group. Information about the group will be provided
         if <b>group</b> expand parameter is used. </li>
         <li>configured email address - the value of the notification type is EmailAddress, additionally information about the email will be provided.</li>
         <li>users or users in groups in the configured custom fields - the value of the notification type is UserCustomField or GroupCustomField. Parameter
         will contain id of the custom field. Information about the field will be provided if <b>field</b> expand parameter is used. </li>
         <li>configured project role - the value of the notification type is ProjectRole. Parameter will contain project role id. Information about the project role
         will be provided if <b>projectRole</b> expand parameter is used. </li>
         </ul>
         Please see the example for reference.
         </p>
         The events can be JIRA system events or events configured by administrator. In case of the system events, data about theirs
         ids, names and descriptions is provided. In case of custom events, the template event is included as well.
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: an id of the notification scheme to retrieve
        format: int64
        in: path
        name: id
        required: true
        type: integer
  /api/2/password/policy:
    get:
      description: |-
        Returns the list of requirements for the current password policy. For example, "The password must have at least 10 characters.",
         "The password must not be similar to the user's name or email address.", etc.
      operationId: getPasswordPolicy
      parameters:
        - default: false
          description: |-
            whether or not the user will be required to enter their current password.  Use
                                   {@code false} (the default) if this is a new user or if an administrator is forcibly changing
                                   another user's password.
          in: query
          name: hasOldPassword
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/password/policy/createUser:
    parameters: []
    post:
      description: |-
        Returns a list of statements explaining why the password policy would disallow a proposed password for a new user.
         <p>
         You can use this method to test the password policy validation. This could be done prior to an action 
         where a new user and related password are created, using methods like the ones in 
         <a href="https://docs.atlassian.com/jira/latest/com/atlassian/jira/bc/user/UserService.html">UserService</a>.      
         For example, you could use this to validate a password in a create user form in the user interface, as the user enters it.<br/>
         The username and new password must be not empty to perform the validation.<br/>
         Note, this method will help you validate against the policy only. It won't check any other validations that might be performed 
         when creating a new user, e.g. checking whether a user with the same name already exists.
         </p>
      operationId: policyCheckCreateUser
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/password/policy/updateUser:
    parameters: []
    post:
      description: |-
        Returns a list of statements explaining why the password policy would disallow a proposed new password for a user with an existing password.
         <p>
         You can use this method to test the password policy validation. This could be done prior to an action where the password 
         is actually updated, using methods like <a href="https://docs.atlassian.com/jira/latest/com/atlassian/jira/web/action/user/ChangePassword.html">ChangePassword</a>      
         or <a href="https://docs.atlassian.com/jira/latest/com/atlassian/jira/web/action/user/ResetPassword.html">ResetPassword</a>. 
         For example, you could use this to validate a password in a change password form in the user interface, as the user enters it.<br/>
         The user must exist and the username and new password must be not empty, to perform the validation.<br/>
         Note, this method will help you validate against the policy only. It won't check any other validations that might be performed 
         when submitting a password change/reset request, e.g. verifying whether the old password is valid.
         </p>
      operationId: policyCheckUpdateUser
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/permissions:
    get:
      description: Returns all permissions that are present in the JIRA instance - Global, Project and the global ones added by plugins
      operationId: getAllPermissions
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/permissionscheme:
    get:
      description: |-
        Returns a list of all permission schemes.
         <p>
         By default only shortened beans are returned. If you want to include permissions of all the schemes,
         then specify the <b>permissions</b> expand parameter. Permissions will be included also if you specify
         any other expand parameter.
         </p>
      operationId: getPermissionSchemes
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: |-
        Create a new permission scheme.
         This method can create schemes with a defined permission set, or without.
      operationId: createPermissionScheme
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/permissionscheme/{permissionSchemeId}/attribute/{attributeKey}":
    get:
      operationId: getSchemeAttribute
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: permission scheme id
        format: int64
        in: path
        name: permissionSchemeId
        required: true
        type: integer
      - description: permission scheme attribute key
        in: path
        name: attributeKey
        required: true
        type: string
  "/api/2/permissionscheme/{permissionSchemeId}/attribute/{key}":
    parameters:
      - description: permission scheme id
        format: int64
        in: path
        name: permissionSchemeId
        required: true
        type: integer
      - description: permission scheme attribute key
        in: path
        name: key
        required: true
        type: string
    put:
      description: |-
        Updates or inserts the attribute for a permission scheme specified by permission scheme id.
         The attribute consists of the key and the value. The value will be converted to Boolean using Boolean#valueOf.
      operationId: setSchemeAttribute
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/permissionscheme/{schemeId}":
    delete:
      description: Deletes a permission scheme identified by the given id.
      operationId: deletePermissionScheme
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns a permission scheme identified by the given id.
      operationId: getPermissionScheme
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - format: int64
        in: path
        name: schemeId
        required: true
        type: integer
    put:
      description: |-
        Updates a permission scheme.
         <p>
         If the permissions list is present then it will be set in the permission scheme, which basically means it will overwrite any permission grants that
         existed in the permission scheme. Sending an empty list will remove all permission grants from the permission scheme.
         </p>
         <p>
         To update just the name and description, do not send permissions list at all.
         </p>
         <p>
         To add or remove a single permission grant instead of updating the whole list at once use the <b>{schemeId}/permission/</b> resource.
         </p>
      operationId: updatePermissionScheme
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/permissionscheme/{schemeId}/permission":
    get:
      description: Returns all permission grants of the given permission scheme.
      operationId: getPermissionSchemeGrants
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - format: int64
        in: path
        name: schemeId
        required: true
        type: integer
    post:
      description: Creates a permission grant in a permission scheme.
      operationId: createPermissionGrant
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/permissionscheme/{schemeId}/permission/{permissionId}":
    delete:
      description: Deletes a permission grant from a permission scheme.
      operationId: deletePermissionSchemeEntity
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns a permission grant identified by the given id.
      operationId: getPermissionSchemeGrant
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - format: int64
        in: path
        name: permissionId
        required: true
        type: integer
      - format: int64
        in: path
        name: schemeId
        required: true
        type: integer
  /api/2/priority:
    get:
      description: Returns a list of all issue priorities.
      operationId: getPriorities
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/priority/{id}":
    get:
      description: Returns an issue priority.
      operationId: getPriority
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a String containing the priority id
        in: path
        name: id
        required: true
        type: string
  /api/2/project:
    get:
      description: |-
        Returns all projects which are visible for the currently logged in user. If no user is logged in, it returns the
         list of projects that are visible when using anonymous access.
      operationId: getAllProjects
      parameters:
        - description: the parameters to expand
          in: query
          name: expand
          required: false
          type: string
        - description: if this parameter is set then only projects recently accessed by the current user (if not logged in then based on HTTP session) will be returned (maximum count limited to the specified number but no more than 20).
          format: int32
          in: query
          name: recent
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: Creates a new project.
      operationId: createProject
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/project/type:
    get:
      description: |-
        Returns all the project types defined on the JIRA instance, not taking into account whether
         the license to use those project types is valid or not.
      operationId: getAllProjectTypes
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/project/type/{projectTypeKey}":
    get:
      description: Returns the project type with the given key.
      operationId: getProjectTypeByKey
      responses:
        "200":
          description: Successful Response
    parameters:
      - in: path
        name: projectTypeKey
        required: true
        type: string
  "/api/2/project/type/{projectTypeKey}/accessible":
    get:
      description: |-
        Returns the project type with the given key, if it is accessible to the logged in user.
         This takes into account whether the user is licensed on the Application that defines the project type.
      operationId: getAccessibleProjectTypeByKey
      responses:
        "200":
          description: Successful Response
    parameters:
      - in: path
        name: projectTypeKey
        required: true
        type: string
  "/api/2/project/{projectIdOrKey}":
    delete:
      description: Deletes a project.
      operationId: deleteProject
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Contains a full representation of a project in JSON format.
         <p>
         All project keys associated with the project will only be returned if <code>expand=projectKeys</code>.
         <p>
      parameters:
        - description: the parameters to expand
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the project id or project key
        in: path
        name: projectIdOrKey
        required: true
        type: string
    put:
      description: |-
        Updates a project.
         <p>
         Only non null values sent in JSON will be updated in the project.</p>
         <p>
         Values available for the assigneeType field are: "PROJECT_LEAD" and "UNASSIGNED".</p>
      operationId: updateProject
      parameters:
        - description: the parameters to expand in returned project
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/project/{projectIdOrKey}/avatar":
    parameters:
      - in: path
        name: projectIdOrKey
        required: true
        type: string
    post:
      description: Converts temporary avatar into a real avatar
      parameters: []
      responses:
        "200":
          description: Successful Response
    put:
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/project/{projectIdOrKey}/avatar/temporary":
    parameters:
      - description: Project id or project key
        in: path
        name: projectIdOrKey
        required: true
        type: string
    post:
      description: |-
        Creates temporary avatar using multipart. The response is sent back as JSON stored in a textarea. This is because
         the client uses remote iframing to submit avatars using multipart. So we must send them a valid HTML page back from
         which the client parses the JSON.
      responses:
        "200":
          description: Successful Response
  "/api/2/project/{projectIdOrKey}/avatar/{id}":
    delete:
      description: Deletes avatar
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: Project id or project key
        in: path
        name: projectIdOrKey
        required: true
        type: string
      - description: database id for avatar
        format: int64
        in: path
        name: id
        required: true
        type: integer
  "/api/2/project/{projectIdOrKey}/avatars":
    get:
      description: |-
        Returns all avatars which are visible for the currently logged in user.  The avatars are grouped into
         system and custom.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: project id or project key
        in: path
        name: projectIdOrKey
        required: true
        type: string
  "/api/2/project/{projectIdOrKey}/components":
    get:
      description: Contains a full representation of a the specified project's components.
      operationId: getProjectComponents
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the project id or project key
        in: path
        name: projectIdOrKey
        required: true
        type: string
  "/api/2/project/{projectIdOrKey}/properties":
    get:
      description: Returns the keys of all properties for the project identified by the key or by the id.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the project from which keys will be returned.
        in: path
        name: projectIdOrKey
        required: true
        type: string
  "/api/2/project/{projectIdOrKey}/properties/{propertyKey}":
    delete:
      description: |-
        Removes the property from the project identified by the key or by the id. Ths user removing the property is required
         to have permissions to administer the project.
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns the value of the property with a given key from the project identified by the key or by the id. The user who retrieves
         the property is required to have permissions to read the project.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the project from which keys will be returned.
        in: path
        name: projectIdOrKey
        required: true
        type: string
      - description: the key of the property to return.
        in: path
        name: propertyKey
        required: true
        type: string
    put:
      description: |-
        Sets the value of the specified project's property.
         <p>
         You can use this resource to store a custom data against the project identified by the key or by the id. The user
         who stores the data is required to have permissions to administer the project.
         </p>
      responses:
        "200":
          description: Successful Response
  "/api/2/project/{projectIdOrKey}/role":
    get:
      description: Returns all roles in the given project Id or key, with links to full details on each role.
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the project id or project key
        in: path
        name: projectIdOrKey
        required: true
        type: string
  "/api/2/project/{projectIdOrKey}/role/{id}":
    delete:
      description: |-
        Deletes actors (users or groups) from a project role.
         <p>
         <ul>
         <li>Delete a user from the role: <code>/rest/api/2/project/{projectIdOrKey}/role/{roleId}?user={username}</code></li>
         <li>Delete a group from the role: <code>/rest/api/2/project/{projectIdOrKey}/role/{roleId}?group={groupname}</code></li>
         </ul>
      operationId: deleteActor
      parameters:
        - description: the username to remove from the project role
          in: query
          name: user
          required: false
          type: string
        - description: the groupname to remove from the project role
          in: query
          name: group
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns the details for a given project role in a project.
      operationId: getProjectRole
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the project id or project key
        in: path
        name: projectIdOrKey
        required: true
        type: string
      - description: the project role id
        format: int64
        in: path
        name: id
        required: true
        type: integer
    post:
      description: Adds an actor (user or group) to a project role.
      operationId: addActorUsers
      parameters: []
      responses:
        "200":
          description: Successful Response
    put:
      description: Updates a project role to include the specified actors (users or groups).
      operationId: setActors
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/project/{projectIdOrKey}/statuses":
    get:
      description: Get all issue types with valid status values for a project
      operationId: getAllStatuses
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: Project id or project key
        in: path
        name: projectIdOrKey
        required: true
        type: string
  "/api/2/project/{projectIdOrKey}/type/{newProjectTypeKey}":
    parameters:
      - description: identity of the project to update
        in: path
        name: projectIdOrKey
        required: true
        type: string
      - description: The key of the new project type
        in: path
        name: newProjectTypeKey
        required: true
        type: string
    put:
      description: Updates the type of a project.
      operationId: updateProjectType
      responses:
        "200":
          description: Successful Response
  "/api/2/project/{projectIdOrKey}/version":
    get:
      description: |-
        Returns all versions for the specified project. Results are <a href="#pagination">paginated</a>.
         <p>
         Results can be ordered by the following fields:
         <ul>
         <li>sequence</li>
         <li>name</li>
         <li>startDate</li>
         <li>releaseDate</li>
         </ul>
         </p>
      operationId: getProjectVersionsPaginated
      parameters:
        - description: the page offset, if not specified then defaults to 0
          format: int64
          in: query
          name: startAt
          required: false
          type: integer
        - description: how many results on the page should be included. Defaults to 50.
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
        - description: ordering of the results.
          in: query
          name: orderBy
          required: false
          type: string
        - description: the parameters to expand
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the project id or project key
        in: path
        name: projectIdOrKey
        required: true
        type: string
  "/api/2/project/{projectIdOrKey}/versions":
    get:
      description: Contains a full representation of a the specified project's versions.
      operationId: getProjectVersions
      parameters:
        - description: the parameters to expand
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the project id or project key
        in: path
        name: projectIdOrKey
        required: true
        type: string
  "/api/2/project/{projectKeyOrId}/issuesecuritylevelscheme":
    get:
      description: Returns the issue security scheme for project.
      responses:
        "200":
          description: Successful Response
    parameters:
      - in: path
        name: projectKeyOrId
        required: true
        type: string
  "/api/2/project/{projectKeyOrId}/notificationscheme":
    get:
      description: |-
        Gets a notification scheme associated with the project.
         Follow the documentation of /notificationscheme/{id} resource for all details about returned value.
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: key or id of the project
        in: path
        name: projectKeyOrId
        required: true
        type: string
  "/api/2/project/{projectKeyOrId}/permissionscheme":
    get:
      description: Gets a permission scheme assigned with a project.
      operationId: getAssignedPermissionScheme
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: key or id of the project
        in: path
        name: projectKeyOrId
        required: true
        type: string
    put:
      description: Assigns a permission scheme with a project.
      operationId: assignPermissionScheme
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/project/{projectKeyOrId}/securitylevel":
    get:
      description: |-
        Returns all security levels for the project that the current logged in user has access to.
         If the user does not have the Set Issue Security permission, the list will be empty.
      operationId: getSecurityLevelsForProject
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: "- key or id of project to list the security levels for"
        in: path
        name: projectKeyOrId
        required: true
        type: string
  /api/2/projectCategory:
    get:
      description: Returns all project categories
      operationId: getAllProjectCategories
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: Create a project category via POST.
      operationId: createProjectCategory
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/projectCategory/{id}":
    delete:
      description: Delete a project category.
      operationId: removeProjectCategory
      responses:
        "200":
          description: Successful Response
    get:
      description: Contains a representation of a project category in JSON format.
      operationId: getProjectCategoryById
      responses:
        "200":
          description: Successful Response
    parameters:
      - format: int64
        in: path
        name: id
        required: true
        type: integer
    put:
      description: |-
        Modify a project category via PUT. Any fields present in the PUT will override existing values. As a convenience, if a field
         is not present, it is silently ignored.
      operationId: updateProjectCategory
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/projectvalidate/key:
    get:
      description: Validates a project key.
      parameters:
        - description: the project key
          in: query
          name: key
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/reindex:
    get:
      description: |-
        Returns information on the system reindexes.  If a reindex is currently taking place then information about this reindex is returned.
         If there is no active index task, then returns information about the latest reindex task run, otherwise returns a 404
         indicating that no reindex has taken place.
      operationId: getReindexInfo
      parameters:
        - description: |-
            the id of an indexing task you wish to obtain details on.  If omitted, then defaults to the standard behaviour and
                           returns information on the active reindex task, or the last task to run if no reindex is taking place. .  If there is no
                           reindexing task with that id then a 404 is returned.
          format: int64
          in: query
          name: taskId
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: Kicks off a reindex.  Need Admin permissions to perform this reindex.
      operationId: reindex
      parameters:
        - description: Case insensitive String indicating type of reindex.  If omitted, then defaults to BACKGROUND_PREFERRED.
          in: query
          name: type
          required: false
          type: string
        - default: false
          description: Indicates that comments should also be reindexed. Not relevant for foreground reindex, where comments are always reindexed.
          in: query
          name: indexComments
          required: false
          type: boolean
        - default: false
          description: Indicates that changeHistory should also be reindexed. Not relevant for foreground reindex, where changeHistory is always reindexed.
          in: query
          name: indexChangeHistory
          required: false
          type: boolean
        - default: false
          description: Indicates that changeHistory should also be reindexed. Not relevant for foreground reindex, where changeHistory is always reindexed.
          in: query
          name: indexWorklogs
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
  /api/2/reindex/issue:
    parameters: []
    post:
      description: |-
        Reindexes one or more individual issues.  Indexing is performed synchronously - the call returns when indexing of
         the issues has completed or a failure occurs.
         <p>
         Use either explicitly specified issue IDs or a JQL query to select issues to reindex.
      operationId: reindexIssues
      parameters:
        - description: the IDs or keys of one or more issues to reindex.
          in: query
          name: issueId
          required: false
          type: string
        - default: false
          description: Indicates that comments should also be reindexed.
          in: query
          name: indexComments
          required: false
          type: boolean
        - default: false
          description: Indicates that changeHistory should also be reindexed.
          in: query
          name: indexChangeHistory
          required: false
          type: boolean
        - default: false
          description: Indicates that changeHistory should also be reindexed.
          in: query
          name: indexWorklogs
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
  /api/2/reindex/progress:
    get:
      description: |-
        Returns information on the system reindexes.  If a reindex is currently taking place then information about this reindex is returned.
         If there is no active index task, then returns information about the latest reindex task run, otherwise returns a 404
         indicating that no reindex has taken place.
      operationId: getReindexProgress
      parameters:
        - description: |-
            the id of an indexing task you wish to obtain details on.  If omitted, then defaults to the standard behaviour and
                           returns information on the active reindex task, or the last task to run if no reindex is taking place. .  If there is no
                           reindexing task with that id then a 404 is returned.
          format: int64
          in: query
          name: taskId
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/reindex/request:
    parameters: []
    post:
      description: |-
        Executes any pending reindex requests.  Returns a JSON array containing the IDs of the reindex requests
         that are being processed.  Execution is asynchronous - progress of the returned tasks can be monitored through
         other REST calls.
      operationId: processRequests
      responses:
        "200":
          description: Successful Response
  /api/2/reindex/request/bulk:
    get:
      description: |-
        Retrieves the progress of a multiple reindex requests.  Only reindex requests that actually exist will be returned
         in the results.
      operationId: getProgressBulk
      parameters:
        - description: the reindex request IDs.
          in: query
          name: requestId
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/reindex/request/{requestId}":
    get:
      description: Retrieves the progress of a single reindex request.
      operationId: getProgress
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the reindex request ID.
        format: int64
        in: path
        name: requestId
        required: true
        type: integer
  /api/2/resolution:
    get:
      description: Returns a list of all resolutions.
      operationId: getResolutions
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/resolution/{id}":
    get:
      description: Returns a resolution.
      operationId: getResolution
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a String containing the resolution id
        in: path
        name: id
        required: true
        type: string
  /api/2/role:
    get:
      description: Get all the ProjectRoles available in JIRA. Currently this list is global.
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: |-
        Creates a new ProjectRole to be available in JIRA.
         The created role does not have any default actors assigned.
      operationId: createProjectRole
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/role/{id}":
    delete:
      description: Deletes a role. May return 403 in the future
      operationId: deleteProjectRole
      parameters:
        - description: if given, removes a role even if it is used in scheme by replacing the role with the given one
          format: int64
          in: query
          name: swap
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    get:
      description: Get a specific ProjectRole available in JIRA.
      operationId: getProjectRolesById
      responses:
        "200":
          description: Successful Response
    parameters:
      - format: int64
        in: path
        name: id
        required: true
        type: integer
    post:
      description: Partially updates a roles name or description.
      operationId: partialUpdateProjectRole
      parameters: []
      responses:
        "200":
          description: Successful Response
    put:
      description: Fully updates a roles. Both name and description must be given.
      operationId: fullyUpdateProjectRole
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/role/{id}/actors":
    delete:
      description: Removes default actor from the given role.
      operationId: deleteProjectRoleActorsFromRole
      parameters:
        - description: if given, removes an actor from given role
          in: query
          name: user
          required: false
          type: string
        - description: if given, removes an actor from given role
          in: query
          name: group
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: Gets default actors for the given role.
      operationId: getProjectRoleActorsForRole
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the role id to remove the actors from
        format: int64
        in: path
        name: id
        required: true
        type: integer
    post:
      description: Adds default actors to the given role. The request data should contain a list of usernames or a list of groups to add.
      operationId: addProjectRoleActorsToRole
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/screens/addToDefault/{fieldId}":
    parameters:
      - description: id of field / custom field
        in: path
        name: fieldId
        required: true
        type: string
    post:
      description: Adds field or custom field to the default tab
      operationId: addFieldToDefaultScreen
      responses:
        "200":
          description: Successful Response
  "/api/2/screens/{screenId}/availableFields":
    get:
      description: Gets available fields for screen. i.e ones that haven't already been added.
      operationId: getFieldsToAdd
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: id of screen
        format: int64
        in: path
        name: screenId
        required: true
        type: integer
  "/api/2/screens/{screenId}/tabs":
    get:
      description: Returns a list of all tabs for the given screen
      operationId: getAllTabs
      parameters:
        - description: the key of the project; this parameter is optional
          in: query
          name: projectKey
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: id of screen
        format: int64
        in: path
        name: screenId
        required: true
        type: integer
    post:
      description: Creates tab for given screen
      operationId: addTab
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/screens/{screenId}/tabs/{tabId}":
    delete:
      description: Deletes tab to give screen
      operationId: deleteTab
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: id of screen
        format: int64
        in: path
        name: screenId
        required: true
        type: integer
      - description: id of tab
        format: int64
        in: path
        name: tabId
        required: true
        type: integer
    put:
      description: Renames tab on given screen
      operationId: renameTab
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/screens/{screenId}/tabs/{tabId}/fields":
    get:
      description: Gets all fields for a given tab
      operationId: getAllFields
      parameters:
        - description: the key of the project; this parameter is optional
          in: query
          name: projectKey
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: id of screen
        format: int64
        in: path
        name: screenId
        required: true
        type: integer
      - description: id of tab
        format: int64
        in: path
        name: tabId
        required: true
        type: integer
    post:
      description: Adds field to the given tab.
      operationId: addField
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/screens/{screenId}/tabs/{tabId}/fields/{id}":
    delete:
      description: Removes field from given tab
      operationId: removeField
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: id of screen
        format: int64
        in: path
        name: screenId
        required: true
        type: integer
      - description: id of tab
        format: int64
        in: path
        name: tabId
        required: true
        type: integer
      - in: path
        name: id
        required: true
        type: string
  "/api/2/screens/{screenId}/tabs/{tabId}/fields/{id}/move":
    parameters:
      - description: id of screen
        format: int64
        in: path
        name: screenId
        required: true
        type: integer
      - description: id of tab
        format: int64
        in: path
        name: tabId
        required: true
        type: integer
      - in: path
        name: id
        required: true
        type: string
    post:
      description: Moves field on the given tab
      operationId: moveField
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/screens/{screenId}/tabs/{tabId}/move/{pos}":
    parameters:
      - description: id of screen
        format: int64
        in: path
        name: screenId
        required: true
        type: integer
      - description: id of tab
        format: int64
        in: path
        name: tabId
        required: true
        type: integer
      - description: position of tab
        format: int32
        in: path
        name: pos
        required: true
        type: integer
    post:
      description: Moves tab position
      operationId: moveTab
      responses:
        "200":
          description: Successful Response
  /api/2/search:
    get:
      description: |-
        Searches for issues using JQL.
         <p>
         <b>Sorting</b>
         the <code>jql</code> parameter is a full <a href="http://confluence.atlassian.com/display/JIRA/Advanced+Searching">JQL</a>
         expression, and includes an <code>ORDER BY</code> clause.
         </p>
         <p>
         The <code>fields</code> param (which can be specified multiple times) gives a comma-separated list of fields
         to include in the response. This can be used to retrieve a subset of fields.
         A particular field can be excluded by prefixing it with a minus.
         <p>
         By default, only navigable (<code>*navigable</code>) fields are returned in this search resource. Note: the default is different
         in the get-issue resource -- the default there all fields (<code>*all</code>).
         <ul>
         <li><code>*all</code> - include all fields</li>
         <li><code>*navigable</code> - include just navigable fields</li>
         <li><code>summary,comment</code> - include just the summary and comments</li>
         <li><code>-description</code> - include navigable fields except the description (the default is <code>*navigable</code> for search)</li>
         <li><code>*all,-comment</code> - include everything except comments</li>
         </ul>
         <p>
         </p>
         <p><b>GET vs POST:</b>
         If the JQL query is too large to be encoded as a query param you should instead
         POST to this resource.
         </p>
         <p>
         <b>Expanding Issues in the Search Result:</b>
         It is possible to expand the issues returned by directly specifying the expansion on the expand parameter passed
         in to this resources.
         </p>
         <p>
         For instance, to expand the &quot;changelog&quot; for all the issues on the search result, it is neccesary to
         specify &quot;changelog&quot; as one of the values to expand.
         </p>
      operationId: search
      parameters:
        - description: a JQL query string
          in: query
          name: jql
          required: false
          type: string
        - description: the index of the first issue to return (0-based)
          format: int32
          in: query
          name: startAt
          required: false
          type: integer
        - description: |-
            the maximum number of issues to return (defaults to 50). The maximum allowable value is
                                  dictated by the JIRA property 'jira.search.views.default.max'. If you specify a value that is higher than this
                                  number, your search results will be truncated.
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
        - default: true
          description: whether to validate the JQL query
          in: query
          name: validateQuery
          required: false
          type: boolean
        - description: the list of fields to return for each issue. By default, all navigable fields are returned.
          in: query
          name: fields
          required: false
          type: string
        - description: A comma-separated list of the parameters to expand.
          in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: Performs a search using JQL.
      operationId: searchUsingSearchRequest
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/securitylevel/{id}":
    get:
      description: Returns a full representation of the security level that has the given id.
      operationId: getIssuesecuritylevel
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a String containing an issue security level id
        in: path
        name: id
        required: true
        type: string
  /api/2/serverInfo:
    get:
      description: Returns general information about the current JIRA server.
      operationId: getServerInfo
      parameters:
        - in: query
          name: doHealthCheck
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/settings/baseUrl:
    parameters: []
    put:
      description: Sets the base URL that is configured for this JIRA instance.
      operationId: setBaseURL
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/settings/columns:
    get:
      description: Returns the default system columns for issue navigator. Admin permission will be required.
      operationId: getIssueNavigatorDefaultColumns
      responses:
        "200":
          description: Successful Response
    parameters: []
    put:
      description: Sets the default system columns for issue navigator. Admin permission will be required.
      operationId: setIssueNavigatorDefaultColumns
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/status:
    get:
      description: Returns a list of all statuses
      operationId: getStatuses
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/status/{idOrName}":
    get:
      description: Returns a full representation of the Status having the given id or name.
      operationId: getStatus
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a numeric Status id or a status name
        in: path
        name: idOrName
        required: true
        type: string
  /api/2/statuscategory:
    get:
      description: Returns a list of all status categories
      operationId: getStatusCategories
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/statuscategory/{idOrKey}":
    get:
      description: Returns a full representation of the StatusCategory having the given id or key
      operationId: getStatusCategory
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a numeric StatusCategory id or a status category key
        in: path
        name: idOrKey
        required: true
        type: string
  "/api/2/universal_avatar/type/{type}/owner/{owningObjectId}":
    get:
      operationId: getAvatars
      responses:
        "200":
          description: Successful Response
    parameters:
      - in: path
        name: type
        required: true
        type: string
      - in: path
        name: owningObjectId
        required: true
        type: string
  "/api/2/universal_avatar/type/{type}/owner/{owningObjectId}/avatar":
    parameters:
      - in: path
        name: type
        required: true
        type: string
      - in: path
        name: owningObjectId
        required: true
        type: string
    post:
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/universal_avatar/type/{type}/owner/{owningObjectId}/avatar/{id}":
    delete:
      description: Deletes avatar
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: database id for avatar
        format: int64
        in: path
        name: id
        required: true
        type: integer
      - description: Project id or project key
        in: path
        name: type
        required: true
        type: string
      - in: path
        name: owningObjectId
        required: true
        type: string
  "/api/2/universal_avatar/type/{type}/owner/{owningObjectId}/temp":
    parameters:
      - in: path
        name: type
        required: true
        type: string
      - in: path
        name: owningObjectId
        required: true
        type: string
    post:
      responses:
        "200":
          description: Successful Response
  /api/2/upgrade:
    get:
      description: |-
        Returns the result of the last upgrade task.

         Returns {@link javax.ws.rs.core.Response#seeOther(java.net.URI)} if still running.
      operationId: getUpgradeResult
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: Runs any pending delayed upgrade tasks.  Need Admin permissions to do this.
      operationId: runUpgradesNow
      responses:
        "200":
          description: Successful Response
  /api/2/user:
    delete:
      description: Removes user.
      operationId: removeUser
      parameters:
        - description: the username
          in: query
          name: username
          required: false
          type: string
        - description: user key
          in: query
          name: key
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns a user. This resource cannot be accessed anonymously.
      parameters:
        - description: the username
          in: query
          name: username
          required: false
          type: string
        - description: user key
          in: query
          name: key
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: |-
        Create user. By default created user will not be notified with email.
         If password field is not set then password will be randomly generated.
      operationId: createUser
      parameters: []
      responses:
        "200":
          description: Successful Response
    put:
      description: |-
        Modify user. The "value" fields present will override the existing value.
         Fields skipped in request will not be changed.
      parameters:
        - description: the username
          in: query
          name: username
          required: false
          type: string
        - description: user key
          in: query
          name: key
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/user/application:
    delete:
      description: Remove user from given application. Admin permission will be required to perform this operation.
      operationId: removeUserFromApplication
      parameters:
        - description: username
          in: query
          name: username
          required: false
          type: string
        - description: application key
          in: query
          name: applicationKey
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: Add user to given application. Admin permission will be required to perform this operation.
      operationId: addUserToApplication
      parameters:
        - description: username
          in: query
          name: username
          required: false
          type: string
        - description: application key
          in: query
          name: applicationKey
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/user/assignable/multiProjectSearch:
    get:
      description: |-
        Returns a list of users that match the search string and can be assigned issues for all the given projects.
         This resource cannot be accessed anonymously.
      operationId: findBulkAssignableUsers
      parameters:
        - description: the username
          in: query
          name: username
          required: false
          type: string
        - description: the keys of the projects we are finding assignable users for, comma-separated
          in: query
          name: projectKeys
          required: false
          type: string
        - description: the index of the first user to return (0-based)
          format: int32
          in: query
          name: startAt
          required: false
          type: integer
        - description: |-
            the maximum number of users to return (defaults to 50). The maximum allowed value is 1000.
                                   If you specify a value that is higher than this number, your search results will be truncated.
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/user/assignable/search:
    get:
      description: |-
        Returns a list of users that match the search string. This resource cannot be accessed anonymously.
         Please note that this resource should be called with an issue key when a list of assignable users is retrieved
         for editing.  For create only a project key should be supplied.  The list of assignable users may be incorrect
         if it's called with the project key for editing.
      operationId: findAssignableUsers
      parameters:
        - description: the username
          in: query
          name: username
          required: false
          type: string
        - description: the key of the project we are finding assignable users for
          in: query
          name: project
          required: false
          type: string
        - description: the issue key for the issue being edited we need to find assignable users for.
          in: query
          name: issueKey
          required: false
          type: string
        - description: the index of the first user to return (0-based)
          format: int32
          in: query
          name: startAt
          required: false
          type: integer
        - description: |-
            the maximum number of users to return (defaults to 50). The maximum allowed value is 1000.
                               If you specify a value that is higher than this number, your search results will be truncated.
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
        - format: int32
          in: query
          name: actionDescriptorId
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/user/avatar:
    parameters: []
    post:
      description: Converts temporary avatar into a real avatar
      parameters:
        - description: username
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    put:
      parameters:
        - in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/user/avatar/temporary:
    parameters: []
    post:
      description: |-
        Creates temporary avatar using multipart. The response is sent back as JSON stored in a textarea. This is because
         the client uses remote iframing to submit avatars using multipart. So we must send them a valid HTML page back from
         which the client parses the JSON from.
         <p>
         Creating a temporary avatar is part of a 3-step process in uploading a new
         avatar for a user: upload, crop, confirm. This endpoint allows you to use a multipart upload
         instead of sending the image directly as the request body.
         </p>
         <p>
         You *must* use "avatar" as the name of the upload parameter:</p>
         <p/>
         <pre>
         curl -c cookiejar.txt -X POST -u admin:admin -H "X-Atlassian-Token: no-check" \
           -F "avatar=@mynewavatar.png;type=image/png" \
           'http://localhost:8090/jira/rest/api/2/user/avatar/temporary?username=admin'
         </pre>
      parameters:
        - description: Username
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/user/avatar/{id}":
    delete:
      description: Deletes avatar
      parameters:
        - description: username
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: database id for avatar
        format: int64
        in: path
        name: id
        required: true
        type: integer
  /api/2/user/avatars:
    get:
      description: Returns all avatars which are visible for the currently logged in user.
      parameters:
        - description: username
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/user/columns:
    delete:
      description: |-
        Reset the default columns for the given user to the system default. Admin permission will be required to get
         columns for a user other than the currently logged in user.
      parameters:
        - description: username
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns the default columns for the given user. Admin permission will be required to get columns for a user
         other than the currently logged in user.
      parameters:
        - description: username
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
    put:
      description: |-
        Sets the default columns for the given user.  Admin permission will be required to get columns for a user
         other than the currently logged in user.
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/user/password:
    parameters: []
    put:
      description: Modify user password.
      operationId: changeUserPassword
      parameters:
        - description: the username
          in: query
          name: username
          required: false
          type: string
        - description: user key
          in: query
          name: key
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/user/permission/search:
    get:
      description: |-
        Returns a list of active users that match the search string and have all specified permissions for the project or issue.<br>
         This resource can be accessed by users with ADMINISTER_PROJECT permission for the project or global ADMIN or SYSADMIN rights.
      operationId: findUsersWithAllPermissions
      parameters:
        - description: the username filter, list includes all users if unspecified
          in: query
          name: username
          required: false
          type: string
        - description: |-
            comma separated list of permissions for project or issue returned users must have, see
                                <a href="https://developer.atlassian.com/static/javadoc/jira/6.0/reference/com/atlassian/jira/security/Permissions.Permission.html">Permissions</a>
                                JavaDoc for the list of all possible permissions.
          in: query
          name: permissions
          required: false
          type: string
        - description: the issue key for the issue for which returned users have specified permissions.
          in: query
          name: issueKey
          required: false
          type: string
        - description: the optional project key to search for users with if no issueKey is supplied.
          in: query
          name: projectKey
          required: false
          type: string
        - description: the index of the first user to return (0-based)
          format: int32
          in: query
          name: startAt
          required: false
          type: integer
        - description: |-
            the maximum number of users to return (defaults to 50). The maximum allowed value is 1000.
                                If you specify a value that is higher than this number, your search results will be truncated.
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/user/picker:
    get:
      description: Returns a list of users matching query with highlighting. This resource cannot be accessed anonymously.
      operationId: findUsersForPicker
      parameters:
        - description: A string used to search username, Name or e-mail address
          in: query
          name: query
          required: false
          type: string
        - description: |-
            the maximum number of users to return (defaults to 50). The maximum allowed value is 1000.
                               If you specify a value that is higher than this number, your search results will be truncated.
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
        - in: query
          name: showAvatar
          required: false
          type: boolean
        - in: query
          name: exclude
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/user/properties/:
    get:
      description: Returns the keys of all properties for the user identified by the key or by the id.
      parameters:
        - description: key of the user whose properties are to be returned
          in: query
          name: userKey
          required: false
          type: string
        - description: username of the user whose properties are to be returned
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/user/properties/{propertyKey}":
    delete:
      description: |-
        Removes the property from the user identified by the key or by the id. Ths user removing the property is required
         to have permissions to administer the user.
      parameters:
        - description: key of the user whose property is to be removed
          in: query
          name: userKey
          required: false
          type: string
        - description: username of the user whose property is to be removed
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns the value of the property with a given key from the user identified by the key or by the id. The user who retrieves
         the property is required to have permissions to read the user.
      parameters:
        - description: key of the user whose property is to be returned
          in: query
          name: userKey
          required: false
          type: string
        - description: username of the user whose property is to be returned
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - in: path
        name: propertyKey
        required: true
        type: string
    put:
      description: |-
        Sets the value of the specified user's property.
         <p>
         You can use this resource to store a custom data against the user identified by the key or by the id. The user
         who stores the data is required to have permissions to administer the user.
         </p>
      parameters:
        - description: key of the user whose property is to be set
          in: query
          name: userKey
          required: false
          type: string
        - description: username of the user whose property is to be set
          in: query
          name: username
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/user/search:
    get:
      description: Returns a list of users that match the search string. This resource cannot be accessed anonymously.
      operationId: findUsers
      parameters:
        - description: A query string used to search username, name or e-mail address
          in: query
          name: username
          required: false
          type: string
        - description: the index of the first user to return (0-based)
          format: int32
          in: query
          name: startAt
          required: false
          type: integer
        - description: |-
            the maximum number of users to return (defaults to 50). The maximum allowed value is 1000.
                                    If you specify a value that is higher than this number, your search results will be truncated.
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
        - description: If true, then active users are included in the results (default true)
          in: query
          name: includeActive
          required: false
          type: boolean
        - description: If true, then inactive users are included in the results (default false)
          in: query
          name: includeInactive
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/user/viewissue/search:
    get:
      description: |-
        Returns a list of active users that match the search string. This resource cannot be accessed anonymously 
         and requires the Browse Users global permission.
         Given an issue key this resource will provide a list of users that match the search string and have
         the browse issue permission for the issue provided.
      operationId: findUsersWithBrowsePermission
      parameters:
        - description: the username filter, no users returned if left blank
          in: query
          name: username
          required: false
          type: string
        - description: the issue key for the issue being edited we need to find viewable users for.
          in: query
          name: issueKey
          required: false
          type: string
        - description: the optional project key to search for users with if no issueKey is supplied.
          in: query
          name: projectKey
          required: false
          type: string
        - description: the index of the first user to return (0-based)
          format: int32
          in: query
          name: startAt
          required: false
          type: integer
        - description: |-
            the maximum number of users to return (defaults to 50). The maximum allowed value is 1000.
                               If you specify a value that is higher than this number, your search results will be truncated.
          format: int32
          in: query
          name: maxResults
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/version:
    parameters: []
    post:
      description: Create a version via POST.
      operationId: createVersion
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/version/remotelink:
    get:
      description: Returns the remote version links for a given global ID.
      operationId: getRemoteVersionLinks
      parameters:
        - description: the global ID of the remote resource that is linked to the versions
          in: query
          name: globalId
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/version/{id}":
    delete:
      description: Delete a project version.
      parameters:
        - description: |-
            The version to set fixVersion to on issues where the deleted version is the fix version,
                                         If null then the fixVersion is removed.
          in: query
          name: moveFixIssuesTo
          required: false
          type: string
        - description: |-
            The version to set affectedVersion to on issues where the deleted version is the affected version,
                                         If null then the affectedVersion is removed.
          in: query
          name: moveAffectedIssuesTo
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns a project version.
      operationId: getVersion
      parameters:
        - in: query
          name: expand
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: The version to delete
        in: path
        name: id
        required: true
        type: string
    put:
      description: |-
        Modify a version via PUT. Any fields present in the PUT will override existing values. As a convenience, if a field
         is not present, it is silently ignored.
      operationId: updateVersion
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/version/{id}/mergeto/{moveIssuesTo}":
    parameters:
      - description: |-
          The version to set fixVersion to on issues where the deleted version is the fix version,
                               If null then the fixVersion is removed.
        in: path
        name: moveIssuesTo
        required: true
        type: string
      - description: The version that will be merged to version {@code moveIssuesTo} and removed
        in: path
        name: id
        required: true
        type: string
    put:
      description: Merge versions
      operationId: merge
      responses:
        "200":
          description: Successful Response
  "/api/2/version/{id}/move":
    parameters:
      - description: a String containing the version id
        in: path
        name: id
        required: true
        type: string
    post:
      description: |-
        Modify a version's sequence within a project.
         <p/>
         The move version bean has 2 alternative field value pairs:
         <dl>
         <dt>position</dt><dd>An absolute position, which may have a value of 'First', 'Last', 'Earlier' or 'Later'</dd>
         <dt>after</dt><dd>A version to place this version after.  The value should be the self link of another version</dd>
         </dl>
      operationId: moveVersion
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/version/{id}/relatedIssueCounts":
    get:
      description: Returns a bean containing the number of fixed in and affected issues for the given version.
      operationId: getVersionRelatedIssues
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a String containing the version id
        in: path
        name: id
        required: true
        type: string
  "/api/2/version/{id}/removeAndSwap":
    parameters:
      - description: The version to delete
        in: path
        name: id
        required: true
        type: string
    post:
      description: Delete a project version.
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/version/{id}/unresolvedIssueCount":
    get:
      description: Returns the number of unresolved issues for the given version
      operationId: getVersionUnresolvedIssues
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: a String containing the version id
        in: path
        name: id
        required: true
        type: string
  "/api/2/version/{versionId}/remotelink":
    delete:
      description: Delete all remote version links for a given version ID.
      operationId: deleteRemoteVersionLinksByVersionId
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns the remote version links associated with the given version ID.
      operationId: getRemoteVersionLinksByVersionId
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: The version for which to delete ALL existing remote version links
        in: path
        name: versionId
        required: true
        type: string
    post:
      description: |-
        Create a remote version link via POST.  The link's global ID will be taken from the
         JSON payload if provided; otherwise, it will be generated.
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/version/{versionId}/remotelink/{globalId}":
    delete:
      description: Delete a specific remote version link with the given version ID and global ID.
      operationId: deleteRemoteVersionLink
      responses:
        "200":
          description: Successful Response
    get:
      description: A REST sub-resource representing a remote version link
      operationId: getRemoteVersionLink
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: The version ID of the remote link
        in: path
        name: versionId
        required: true
        type: string
      - description: The global ID of the remote link
        in: path
        name: globalId
        required: true
        type: string
    post:
      description: |-
        Create a remote version link via POST.  The link's global ID will be taken from the
         JSON payload if provided; otherwise, it will be generated.
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/workflow:
    get:
      description: Returns all workflows.
      operationId: getAllWorkflows
      parameters:
        - in: query
          name: workflowName
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters: []
  "/api/2/workflow/api/2/transitions/{id}/properties":
    delete:
      description: |-
        Delete a property from the passed transition on the passed workflow. It is not an error to delete a property that
         does not exist.
      parameters:
        - description: the name of the property to add.
          in: query
          name: key
          required: false
          type: string
        - description: the name of the workflow to use.
          in: query
          name: workflowName
          required: false
          type: string
        - description: the type of workflow to use. Can either be "live" or "draft".
          in: query
          name: workflowMode
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: Return the property or properties associated with a transition.
      operationId: getProperties
      parameters:
        - description: |-
            some keys under the "jira." prefix are editable, some are not. Set this to true
                                        in order to include the non-editable keys in the response.
          in: query
          name: includeReservedKeys
          required: false
          type: boolean
        - description: the name of the property key to query. Can be left off the query to return all properties.
          in: query
          name: key
          required: false
          type: string
        - description: the name of the workflow to use.
          in: query
          name: workflowName
          required: false
          type: string
        - description: the type of workflow to use. Can either be "live" or "draft".
          in: query
          name: workflowMode
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the ID of the transition within the workflow.
        format: int64
        in: path
        name: id
        required: true
        type: integer
    post:
      description: |-
        Add a new property to a transition. Trying to add a property that already
         exists will fail.
      operationId: createProperty
      parameters:
        - description: the name of the property to add.
          in: query
          name: key
          required: false
          type: string
        - description: the name of the workflow to use.
          in: query
          name: workflowName
          required: false
          type: string
        - description: the type of workflow to use. Can either be "live" or "draft".
          in: query
          name: workflowMode
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    put:
      description: |-
        Update/add new property to a transition. Trying to update a property that does
         not exist will result in a new property being added.
      operationId: updateProperty
      parameters:
        - description: the name of the property to add.
          in: query
          name: key
          required: false
          type: string
        - description: the name of the workflow to use.
          in: query
          name: workflowName
          required: false
          type: string
        - description: the type of workflow to use. Can either be "live" or "draft".
          in: query
          name: workflowMode
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/workflowscheme:
    parameters: []
    post:
      description: |-
        Create a new workflow scheme.
         <p/>
         The body contains a representation of the new scheme. Values not passed are assumed to be set to their defaults.
      operationId: createScheme
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/workflowscheme/{id}":
    delete:
      description: Delete the passed workflow scheme.
      operationId: deleteScheme
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns the requested workflow scheme to the caller.
      operationId: getById
      parameters:
        - default: false
          description: |-
            when true indicates that a scheme's draft, if it exists, should be queried instead of
                                        the scheme itself.
          in: query
          name: returnDraftIfExists
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the id of the scheme.
        format: int64
        in: path
        name: id
        required: true
        type: integer
    put:
      description: |-
        Update the passed workflow scheme.
         <p/>
         The body of the request is a representation of the workflow scheme. Values not passed are assumed to indicate
         no change for that field.
         <p/>
         The passed representation can have its updateDraftIfNeeded flag set to true to indicate that the draft
         should be created and/or updated when the actual scheme cannot be edited (e.g. when the scheme is being used by
         a project). Values not appearing the body will not be touched.
      operationId: update
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/workflowscheme/{id}/createdraft":
    parameters:
      - description: the id of the parent scheme.
        format: int64
        in: path
        name: id
        required: true
        type: integer
    post:
      description: Create a draft for the passed scheme. The draft will be a copy of the state of the parent.
      operationId: createDraftForParent
      responses:
        "200":
          description: Successful Response
  "/api/2/workflowscheme/{id}/default":
    delete:
      description: Remove the default workflow from the passed workflow scheme.
      operationId: deleteDefault
      parameters:
        - description: |-
            when true will create and return a draft when the workflow scheme cannot be edited
                                        (e.g. when it is being used by a project).
          in: query
          name: updateDraftIfNeeded
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    get:
      description: Return the default workflow from the passed workflow scheme.
      operationId: getDefault
      parameters:
        - default: false
          description: |-
            when true indicates that a scheme's draft, if it exists, should be queried instead of
                                        the scheme itself.
          in: query
          name: returnDraftIfExists
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the id of the scheme.
        format: int64
        in: path
        name: id
        required: true
        type: integer
    put:
      description: |-
        Set the default workflow for the passed workflow scheme.
         <p/>
         The passed representation can have its
         updateDraftIfNeeded flag set to true to indicate that the draft should be created/updated when the actual scheme
         cannot be edited.
      operationId: updateDefault
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/workflowscheme/{id}/draft":
    delete:
      description: Delete the passed draft workflow scheme.
      operationId: deleteDraftById
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns the requested draft workflow scheme to the caller.
      operationId: getDraftById
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the id of the parent scheme.
        format: int64
        in: path
        name: id
        required: true
        type: integer
    put:
      description: |-
        Update a draft workflow scheme. The draft will created if necessary.
         <p/>
         The body is a representation of the workflow scheme. Values not passed are assumed to indicate no change for that field.
      operationId: updateDraft
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/workflowscheme/{id}/draft/default":
    delete:
      description: Remove the default workflow from the passed draft workflow scheme.
      operationId: deleteDraftDefault
      responses:
        "200":
          description: Successful Response
    get:
      description: Return the default workflow from the passed draft workflow scheme to the caller.
      operationId: getDraftDefault
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the id of the parent scheme.
        format: int64
        in: path
        name: id
        required: true
        type: integer
    put:
      description: Set the default workflow for the passed draft workflow scheme.
      operationId: updateDraftDefault
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/workflowscheme/{id}/draft/issuetype/{issueType}":
    delete:
      description: Remove the specified issue type mapping from the draft scheme.
      operationId: deleteDraftIssueType
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns the issue type mapping for the passed draft workflow scheme.
      operationId: getDraftIssueType
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue type being set.
        in: path
        name: issueType
        required: true
        type: string
      - description: the id of the parent scheme.
        format: int64
        in: path
        name: id
        required: true
        type: integer
    put:
      description: |-
        Set the issue type mapping for the passed draft scheme.
         <p/>
         The passed representation can have its updateDraftIfNeeded flag set to true to indicate that
         the draft should be created/updated when the actual scheme cannot be edited.
      operationId: setDraftIssueType
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/workflowscheme/{id}/draft/workflow":
    delete:
      description: Delete the passed workflow from the draft workflow scheme.
      operationId: deleteDraftWorkflowMapping
      parameters:
        - description: the name of the workflow to delete.
          in: query
          name: workflowName
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns the draft workflow mappings or requested mapping to the caller.
      operationId: getDraftWorkflow
      parameters:
        - description: the workflow mapping to return. Null can be passed to return all mappings. Must be a valid workflow name.
          in: query
          name: workflowName
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the id of the parent scheme.
        format: int64
        in: path
        name: id
        required: true
        type: integer
    put:
      description: |-
        Update the draft scheme to include the passed mapping.
         <p/>
         The body is a representation of the workflow mapping.
         Values not passed are assumed to indicate no change for that field.
      operationId: updateDraftWorkflowMapping
      parameters:
        - description: the name of the workflow mapping to update.
          in: query
          name: workflowName
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  "/api/2/workflowscheme/{id}/issuetype/{issueType}":
    delete:
      description: Remove the specified issue type mapping from the scheme.
      parameters:
        - description: |-
            when true will create and return a draft when the workflow scheme cannot be edited
                                        (e.g. when it is being used by a project).
          in: query
          name: updateDraftIfNeeded
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns the issue type mapping for the passed workflow scheme.
      parameters:
        - default: false
          description: |-
            when true indicates that a scheme's draft, if it exists, should be queried instead of
                                        the scheme itself.
          in: query
          name: returnDraftIfExists
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the issue type being set.
        in: path
        name: issueType
        required: true
        type: string
      - description: the id of the scheme.
        format: int64
        in: path
        name: id
        required: true
        type: integer
    put:
      description: |-
        Set the issue type mapping for the passed scheme.
         <p/>
         The passed representation can have its updateDraftIfNeeded flag set to true to indicate that
         the draft should be created/updated when the actual scheme cannot be edited.
      operationId: setIssueType
      parameters: []
      responses:
        "200":
          description: Successful Response
  "/api/2/workflowscheme/{id}/workflow":
    delete:
      description: Delete the passed workflow from the workflow scheme.
      operationId: deleteWorkflowMapping
      parameters:
        - description: the name of the workflow to delete.
          in: query
          name: workflowName
          required: false
          type: string
        - description: |-
            flag to indicate if a draft should be created if necessary to delete the workflow
                                        from the scheme.
          in: query
          name: updateDraftIfNeeded
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    get:
      description: Returns the workflow mappings or requested mapping to the caller for the passed scheme.
      operationId: getWorkflow
      parameters:
        - description: the workflow mapping to return. Null can be passed to return all mappings. Must be a valid workflow name.
          in: query
          name: workflowName
          required: false
          type: string
        - default: false
          description: |-
            when true indicates that a scheme's draft, if it exists, should be queried instead of
                                        the scheme itself.
          in: query
          name: returnDraftIfExists
          required: false
          type: boolean
      responses:
        "200":
          description: Successful Response
    parameters:
      - description: the id of the scheme.
        format: int64
        in: path
        name: id
        required: true
        type: integer
    put:
      description: |-
        Update the scheme to include the passed mapping.
         <p/>
         The body is a representation of the workflow mapping.
         Values not passed are assumed to indicate no change for that field.
         <p/>
         The passed representation can have its updateDraftIfNeeded flag set to true to indicate that the draft
         should be created/updated when the actual scheme cannot be edited.
      operationId: updateWorkflowMapping
      parameters:
        - description: the name of the workflow mapping to update.
          in: query
          name: workflowName
          required: false
          type: string
      responses:
        "200":
          description: Successful Response
  /api/2/worklog/deleted:
    get:
      description: |-
        Returns worklogs id and delete time of worklogs that was deleted since given time.
         The returns set of worklogs is limited to 1000 elements.
         This API will not return worklogs deleted during last minute.
      operationId: getIdsOfWorklogsDeletedSince
      parameters:
        - default: 0
          description: a date time in unix timestamp format since when deleted worklogs will be returned.
          format: int64
          in: query
          name: since
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    parameters: []
  /api/2/worklog/list:
    parameters: []
    post:
      description: |-
        Returns worklogs for given worklog ids. Only worklogs to which the calling user has permissions, will be included in the result.
         The returns set of worklogs is limited to 1000 elements.
      operationId: getWorklogsForIds
      parameters: []
      responses:
        "200":
          description: Successful Response
  /api/2/worklog/updated:
    get:
      description: |-
        Returns worklogs id and update time of worklogs that was updated since given time.
         The returns set of worklogs is limited to 1000 elements.
         This API will not return worklogs updated during last minute.
      operationId: getIdsOfWorklogsModifiedSince
      parameters:
        - default: 0
          description: a date time in unix timestamp format since when updated worklogs will be returned.
          format: int64
          in: query
          name: since
          required: false
          type: integer
      responses:
        "200":
          description: Successful Response
    parameters: []
  /auth/1/session:
    delete:
      description: Logs the current user out of JIRA, destroying the existing session, if any.
      operationId: logout
      responses:
        "200":
          description: Successful Response
    get:
      description: |-
        Returns information about the currently authenticated user's session. If the caller is not authenticated they
         will get a 401 Unauthorized status code.
      operationId: currentUser
      responses:
        "200":
          description: Successful Response
    parameters: []
    post:
      description: |-
        Creates a new session for a user in JIRA. Once a session has been successfully created it can be used to access
         any of JIRA's remote APIs and also the web UI by passing the appropriate HTTP Cookie header.
         <p>
         Note that it is generally preferrable to use HTTP BASIC authentication with the REST API. However, this resource
         may be used to mimic the behaviour of JIRA's log-in page (e.g. to display log-in errors to a user).
      operationId: login
      parameters: []
      responses:
        "200":
          description: Successful Response
  /auth/1/websudo:
    delete:
      description: This method invalidates the any current WebSudo session.
      operationId: release
      responses:
        "200":
          description: Successful Response
    parameters: []
