{"version":3,"sources":["jsdelivr-header.js","/npm/@managed-api/jira-on-prem-v8-core@2.1.0/index.js"],"names":[],"mappings":"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","file":"/npm/@managed-api/jira-on-prem-v8-core@2.1.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@managed-api/jira-on-prem-v8-core@2.1.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*!\n* Copyright Adaptavist 2022 (c) All rights reserved\n*/\nimport { FormData, Blob, Request, Response, BaseApiCore, constructUrl, executeHttpCall } from '@managed-api/commons-core';\nimport { constructHeaders, errorMessageBuilder } from './common';\nimport { customErrorHandlers, errorStrategyBuilderConstructor } from './errorStrategy';\nexport class JiraOnPremApiCore extends BaseApiCore {\n    constructor(options) {\n        super();\n        this.options = options;\n        if (!this.options?.errorStrategy && this.options?.errorStrategy !== null) {\n            this.setGlobalErrorStrategy((builder) => builder.retryOnRateLimiting(-1));\n        }\n        this.Issue = new IssueGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.Application = new ApplicationGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.Workflow = new WorkflowGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.Dashboard = new DashboardGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.Filter = new FilterGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.Group = new GroupGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.Instance = new InstanceGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.Myself = new MyselfGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.Permission = new PermissionGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.Project = new ProjectGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.Screen = new ScreenGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.User = new UserGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.Role = new RoleGroup(this.implementation, () => this.getGlobalErrorStrategy());\n        this.All = new AllGroup(this.Issue, this.Application, this.Workflow, this.Dashboard, this.Filter, this.Group, this.Instance, this.Myself, this.Permission, this.Project, this.Screen, this.User, this.Role);\n    }\n    setGlobalErrorStrategy(errorStrategy) {\n        this.options = {\n            ...this.options ?? {},\n            errorStrategy\n        };\n    }\n    buildResponse(url, status, statusText, headers, body) {\n        const response = new Response(url, status, statusText, headers, body);\n        response.setBufferImplementation(this.implementation);\n        return response;\n    }\n    getGlobalErrorStrategy() {\n        return this.options?.errorStrategy;\n    }\n}\nclass AllGroup {\n    constructor(Issue, Application, Workflow, Dashboard, Filter, Group, Instance, Myself, Permission, Project, Screen, User, Role) {\n        this.Issue = Issue;\n        this.Application = Application;\n        this.Workflow = Workflow;\n        this.Dashboard = Dashboard;\n        this.Filter = Filter;\n        this.Group = Group;\n        this.Instance = Instance;\n        this.Myself = Myself;\n        this.Permission = Permission;\n        this.Project = Project;\n        this.Screen = Screen;\n        this.User = User;\n        this.Role = Role;\n    }\n    /**\n    * Get all the ProjectRoles available in JIRA. Currently this list is global.\n    * Alternative usage: Role.Project.getRoles\n    * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#role-getProjectRoles\n    * @param options Request options.\n    */\n    async getGlobalProjectRoles(options) {\n        return this.Role.Project.getRoles(options);\n    }\n    /**\n     * Creates a new ProjectRole to be available in Jira. The created role does not have any default actors assigned.\n     * Alternative usage: Role.Project.createRole\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-createProjectRole\n     * @param options Request options.\n     */\n    async createGlobalProjectRole(options) {\n        return this.Role.Project.createRole(options);\n    }\n    /**\n     * Get a specific ProjectRole available in JIRA.\n     * Alternative usage: Role.Project.getRole\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#role-getProjectRolesById\n     * @param options Request options.\n     */\n    async getGlobalProjectRole(options) {\n        return this.Role.Project.getRole(options);\n    }\n    /**\n     * Partially updates a roles name or description.\n     * Alternative usage: Role.Project.updateRolePartially\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-partialUpdateProjectRole\n     * @param options Request options.\n     */\n    async updateGlobalProjectRolePartially(options) {\n        return this.Role.Project.updateRolePartially(options);\n    }\n    /**\n     * Fully updates a roles. Both name and description must be given.\n     * Alternative usage: Role.Project.updateRoleFully\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#role-getProjectRolesById\n     * @param options Request options.\n     */\n    async updateGlobalProjectRoleFully(options) {\n        return this.Role.Project.updateRoleFully(options);\n    }\n    /**\n     * Deletes a role. May return 403 in the future.\n     * Alternative usage: Role.Project.deleteRole\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-deleteProjectRole\n     * @param options Request options.\n     */\n    async deleteGlobalProjectRole(options) {\n        return this.Role.Project.deleteRole(options);\n    }\n    /**\n     * Gets default actors for the given role.\n     * Alternative usage: Role.Project.Actor.getActors\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-getProjectRoleActorsForRole\n     * @param options Request options.\n     */\n    async getGlobalProjectRoleActors(options) {\n        return this.Role.Project.Actor.getActors(options);\n    }\n    /**\n     * Adds default actors to the given role. The request data should contain a list of usernames or a list of groups to add.\n     * Alternative usage: Role.Project.Actor.addActors\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-addProjectRoleActorsToRole\n     * @param options Request options.\n     */\n    async addGlobalProjectRoleActors(options) {\n        return this.Role.Project.Actor.addActors(options);\n    }\n    /**\n     * Removes default actor from the given role.\n     * Alternative usage: Role.Project.Actor.deleteActors\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-deleteProjectRoleActorsFromRole\n     * @param options Request options.\n     */\n    async deleteGlobalProjectRoleActors(options) {\n        return this.Role.Project.Actor.deleteActors(options);\n    }\n    /**\n     * Returns a user.\n     * Alternative usage: User.getUser\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-getUser\n     * @param options Request options.\n     */\n    async getUser(options) {\n        return this.User.getUser(options);\n    }\n    /**\n     * Modify user. The \"value\" fields present will override the existing value. Fields skipped in request will not be changed.\n     * Alternative usage: User.updateUser\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-updateUser\n     * @param options Request options.\n     */\n    async updateUser(options) {\n        return this.User.updateUser(options);\n    }\n    /**\n     * Create user. By default created user will not be notified with email. If password field is not set then password will be randomly generated.\n     * Alternative usage: User.createUser\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-createUser\n     * @param options Request options.\n     */\n    async createUser(options) {\n        return this.User.createUser(options);\n    }\n    /**\n     * Removes user and its references (like project roles associations, watches, history).\n     * Alternative usage: User.removeUser\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-removeUser\n     * @param options Request options.\n     */\n    async removeUser(options) {\n        return this.User.removeUser(options);\n    }\n    /**\n     * Add user to given application. Admin permission will be required to perform this operation.\n     * Alternative usage: User.addUserToApplication\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-addUserToApplication\n     * @param options Request options.\n     */\n    async addUserToApplication(options) {\n        return this.User.addUserToApplication(options);\n    }\n    /**\n     * Remove user from given application. Admin permission will be required to perform this operation.\n     * Alternative usage: User.removeUserFromApplication\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-removeUserFromApplication\n     * @param options Request options.\n     */\n    async removeUserFromApplication(options) {\n        return this.User.removeUserFromApplication(options);\n    }\n    /**\n     * Modify user password.\n     * Alternative usage: User.changeUserPassword\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-changeUserPassword\n     * @param options Request options.\n     */\n    async changeUserPassword(options) {\n        return this.User.changeUserPassword(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: User.Search.findAssignableUsers\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-findAssignableUsers\n     * @param options Request options.\n     */\n    async findAssignableUsers(options) {\n        return this.User.Search.findAssignableUsers(options);\n    }\n    /**\n     * Returns a list of active users that match the search string and have all specified permissions for the project or issue.\n     * This resource can be accessed by users with ADMINISTER_PROJECT permission for the project or global ADMIN or SYSADMIN rights.\n     * Alternative usage: User.Search.findUsersWithAllPermissions\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-findUsersWithAllPermissions\n     * @param options Request options.\n     */\n    async findUsersWithAllPermissions(options) {\n        return this.User.Search.findUsersWithAllPermissions(options);\n    }\n    /**\n     * Returns a list of users that match the search string. This resource cannot be accessed anonymously.\n     * Alternative usage: User.Search.findUsers\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-findUsers\n     * @param options Request options.\n     */\n    async findUsers(options) {\n        return this.User.Search.findUsers(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: User.Search.findUsersWithBrowsePermission\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-findUsersWithBrowsePermission\n     * @param options Request options.\n     */\n    async findUsersWithBrowsePermission(options) {\n        return this.User.Search.findUsersWithBrowsePermission(options);\n    }\n    /**\n     * Gets available fields for screen. i.e ones that haven't already been added.\n     * Alternative usage: Screen.getFieldsToAdd\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-getFieldsToAdd\n     * @param options Request options.\n     */\n    async getScreenFieldsToAdd(options) {\n        return this.Screen.getFieldsToAdd(options);\n    }\n    /**\n     * Gets available field screens.\n     * Alternative usage: Screen.getScreens\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-getAllScreens\n     * @param options Request options.\n     */\n    async getScreens(options) {\n        return this.Screen.getScreens(options);\n    }\n    /**\n     * Creates tab for given screen.\n     * Alternative usage: Screen.Tab.addTab\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-addTab\n     * @param options Request options.\n     */\n    async addScreenTab(options) {\n        return this.Screen.Tab.addTab(options);\n    }\n    /**\n     * Returns a list of all tabs for the given screen.\n     * Alternative usage: Screen.Tab.getTabs\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-getAllTabs\n     * @param options Request options.\n     */\n    async getScreenTabs(options) {\n        return this.Screen.Tab.getTabs(options);\n    }\n    /**\n     * Renames tab on given screen.\n     * Alternative usage: Screen.Tab.renameTab\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-renameTab\n     * @param options Request options.\n     */\n    async renameScreenTab(options) {\n        return this.Screen.Tab.renameTab(options);\n    }\n    /**\n     * Deletes tab to give screen.\n     * Alternative usage: Screen.Tab.deleteTab\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-deleteTab\n     * @param options Request options.\n     */\n    async deleteScreenTab(options) {\n        return this.Screen.Tab.deleteTab(options);\n    }\n    /**\n     * Moves tab position.\n     * Alternative usage: Screen.Tab.moveTab\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-moveTab\n     * @param options Request options.\n     */\n    async moveScreenTab(options) {\n        return this.Screen.Tab.moveTab(options);\n    }\n    /**\n     * Gets all fields for a given tab.\n     * Alternative usage: Screen.Field.getFields\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-getAllFields\n     * @param options Request options.\n     */\n    async getScreenFields(options) {\n        return this.Screen.Field.getFields(options);\n    }\n    /**\n     * Adds field to the given tab.\n     * Alternative usage: Screen.Field.addField\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-addField\n     * @param options Request options.\n     */\n    async addScreenField(options) {\n        return this.Screen.Field.addField(options);\n    }\n    /**\n     * Removes field from given tab.\n     * Alternative usage: Screen.Field.removeField\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-removeField\n     * @param options Request options.\n     */\n    async removeScreenField(options) {\n        return this.Screen.Field.removeField(options);\n    }\n    /**\n     * Moves field on the given tab.\n     * Alternative usage: Screen.Field.moveField\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-moveField\n     * @param options Request options.\n     */\n    async moveScreenField(options) {\n        return this.Screen.Field.moveField(options);\n    }\n    /**\n     * Adds field or custom field to the default tab.\n     * Alternative usage: Screen.Field.addToDefaultScreen\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-addFieldToDefaultScreen\n     * @param options Request options.\n     */\n    async addFieldToDefaultScreen(options) {\n        return this.Screen.Field.addToDefaultScreen(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Project.getProjects\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getAllProjects\n     * @param options Request options.\n     */\n    async getProjects(options) {\n        return this.Project.getProjects(options);\n    }\n    /**\n     * Creates a new project.\n     * Alternative usage: Project.createProject\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-createProject\n     * @param options Request options.\n     */\n    async createProject(options) {\n        return this.Project.createProject(options);\n    }\n    /**\n     * Contains a full representation of a project in JSON format.\n     * Alternative usage: Project.getProject\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getProject\n     * @param options Request options.\n     */\n    async getProject(options) {\n        return this.Project.getProject(options);\n    }\n    /**\n     * Updates a project. Only non null values sent in JSON will be updated in the project.\n     * Alternative usage: Project.updateProject\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-updateProject\n     * @param options Request options.\n     */\n    async updateProject(options) {\n        return this.Project.updateProject(options);\n    }\n    /**\n     * Deletes a project.\n     * Alternative usage: Project.deleteProject\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-deleteProject\n     * @param options Request options.\n     */\n    async deleteProject(options) {\n        return this.Project.deleteProject(options);\n    }\n    /**\n     * Archives a project. For DC only.\n     * Alternative usage: Project.archiveProject\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-archiveProject\n     * @param options Request options.\n     */\n    async archiveProject(options) {\n        return this.Project.archiveProject(options);\n    }\n    /**\n     * Contains a full representation of a the specified project's components.\n     * Alternative usage: Project.getComponents\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getProjectComponents\n     * @param options Request options.\n     */\n    async getProjectComponents(options) {\n        return this.Project.getComponents(options);\n    }\n    /**\n     * Restore an archived project. In case of success restored project should be re-indexed. For DC only.\n     * Alternative usage: Project.restoreProject\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-restoreProject\n     * @param options Request options.\n     */\n    async restoreProject(options) {\n        return this.Project.restoreProject(options);\n    }\n    /**\n     * Get all issue types with valid status values for a project.\n     * Alternative usage: Project.getStatuses\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getAllStatuses\n     * @param options Request options.\n     */\n    async getProjectStatuses(options) {\n        return this.Project.getStatuses(options);\n    }\n    /**\n     * Updates the type of a project.\n     * Alternative usage: Project.updateProjectType\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-updateProjectType\n     * @param options Request options.\n     */\n    async updateProjectType(options) {\n        return this.Project.updateProjectType(options);\n    }\n    /**\n     * Returns all versions for the specified project. Results are paginated.\n     * Alternative usage: Project.getVersionsPaginated\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getProjectVersionsPaginated\n     * @param options Request options.\n     */\n    async getProjectVersionsPaginated(options) {\n        return this.Project.getVersionsPaginated(options);\n    }\n    /**\n     * Contains a full representation of a the specified project's versions.\n     * Alternative usage: Project.getVersions\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getProjectVersions\n     * @param options Request options.\n     */\n    async getProjectVersions(options) {\n        return this.Project.getVersions(options);\n    }\n    /**\n     * Gets a full representation of a priority scheme in JSON format used by specified project.\n     * Alternative usage: Project.Priority.Scheme.getScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#project/{projectKeyOrId}/priorityscheme-getAssignedPriorityScheme\n     * @param options Request options.\n     */\n    async getPriorityScheme(options) {\n        return this.Project.Priority.Scheme.getScheme(options);\n    }\n    /**\n     * Resource for associating permission schemes and projects.\n     * Alternative usage: Project.Permission.Scheme.getScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#project/{projectKeyOrId}/permissionscheme-getAssignedPermissionScheme\n     * @param options Request options.\n     */\n    async getProjectPermissionScheme(options) {\n        return this.Project.Permission.Scheme.getScheme(options);\n    }\n    /**\n     * Gets a notification scheme associated with the project.\n     * Alternative usage: Project.Notification.Scheme.getScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#project/{projectKeyOrId}/notificationscheme-getNotificationScheme\n     * @param options Request options.\n     */\n    async getProjectNotificationScheme(options) {\n        return this.Project.Notification.Scheme.getScheme(options);\n    }\n    /**\n     * Returns the issue security scheme for project.\n     * Alternative usage: Project.Issue.Security.Scheme.getScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#project/{projectKeyOrId}/issuesecuritylevelscheme-getIssueSecurityScheme\n     * @param options Request options.\n     */\n    async getProjectIssueSecurityScheme(options) {\n        return this.Project.Issue.Security.Scheme.getScheme(options);\n    }\n    /**\n     * Create a version via POST.\n     * Alternative usage: Project.Version.createVersion\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-createVersion\n     * @param options Request options.\n     */\n    async createProjectVersion(options) {\n        return this.Project.Version.createVersion(options);\n    }\n    /**\n     * Modify a version's sequence within a project.\n     * Alternative usage: Project.Version.moveVersion\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-moveVersion\n     * @param options Request options.\n     */\n    async moveProjectVersion(options) {\n        return this.Project.Version.moveVersion(options);\n    }\n    /**\n     * Returns a project version.\n     * Alternative usage: Project.Version.getVersion\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-getVersion\n     * @param options Request options.\n     */\n    async getProjectVersion(options) {\n        return this.Project.Version.getVersion(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Project.Version.updateVersion\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-updateVersion\n     * @param options Request options.\n     */\n    async updateProjectVersion(options) {\n        return this.Project.Version.updateVersion(options);\n    }\n    /**\n     * Delete a project version.\n     * Alternative usage: Project.Version.deleteVersion\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-delete\n     * @param options Request options.\n     */\n    async deleteProjectVersion(options) {\n        return this.Project.Version.deleteVersion(options);\n    }\n    /**\n     * Merge versions.\n     * Alternative usage: Project.Version.mergeVersion\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-merge\n     * @param options Request options.\n     */\n    async mergeProjectVersion(options) {\n        return this.Project.Version.mergeVersion(options);\n    }\n    /**\n     * Delete a project version.\n     * Alternative usage: Project.Version.removeAndReplaceVersion\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-delete\n     * @param options Request options.\n     */\n    async removeAndReplaceProjectVersion(options) {\n        return this.Project.Version.removeAndReplaceVersion(options);\n    }\n    /**\n     * Returns a bean containing the number of fixed in and affected issues for the given version.\n     * Alternative usage: Project.Version.Count.getVersionRelatedIssueCount\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-getVersionRelatedIssues\n     * @param options Request options.\n     */\n    async getProjectVersionRelatedIssueCount(options) {\n        return this.Project.Version.Count.getVersionRelatedIssueCount(options);\n    }\n    /**\n     * Returns the number of unresolved issues for the given version\n     * Alternative usage: Project.Version.Count.getVersionUnresolvedIssueCount\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-getVersionUnresolvedIssues\n     * @param options Request options.\n     */\n    async getProjectVersionUnresolvedIssueCount(options) {\n        return this.Project.Version.Count.getVersionUnresolvedIssueCount(options);\n    }\n    /**\n     * Returns the remote version links associated with the given version ID.\n     * Alternative usage: Project.Version.Remote.getLinksById\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-getRemoteVersionLinksByVersionId\n     * @param options Request options.\n     */\n    async getRemoteVersionLinksById(options) {\n        return this.Project.Version.Remote.getLinksById(options);\n    }\n    /**\n     * Create a remote version link via POST.\n     * Alternative usage: Project.Version.Remote.createOrUpdateLinkById\n     * The link's global ID will be taken from the JSON payload if provided; otherwise, it will be generated.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-createOrUpdateRemoteVersionLink\n     * @param options Request options.\n     */\n    async createOrUpdateRemoteVersionLinkById(options) {\n        return this.Project.Version.Remote.createOrUpdateLinkById(options);\n    }\n    /**\n     * Delete all remote version links for a given version ID.\n     * Alternative usage: Project.Version.Remote.deleteLinksById\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-deleteRemoteVersionLinksByVersionId\n     * @param options Request options.\n     */\n    async deleteRemoteVersionLinksById(options) {\n        return this.Project.Version.Remote.deleteLinksById(options);\n    }\n    /**\n     * A REST sub-resource representing a remote version link.\n     * Alternative usage: Project.Version.Remote.getLink\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-getRemoteVersionLink\n     * @param options Request options.\n     */\n    async getRemoteVersionLink(options) {\n        return this.Project.Version.Remote.getLink(options);\n    }\n    /**\n     * Create a remote version link via POST.\n     * Alternative usage: Project.Version.Remote.createOrUpdateLink\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-createOrUpdateRemoteVersionLink\n     * @param options Request options.\n     */\n    async createOrUpdateRemoteVersionLink(options) {\n        return this.Project.Version.Remote.createOrUpdateLink(options);\n    }\n    /**\n     * Delete a specific remote version link with the given version ID and global ID.\n     * Alternative usage: Project.Version.Remote.deleteLink\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-deleteRemoteVersionLink\n     * @param options Request options.\n     */\n    async deleteRemoteVersionLink(options) {\n        return this.Project.Version.Remote.deleteLink(options);\n    }\n    /**\n     * Delete a specific remote version link with the given version ID and global ID.\n     * Alternative usage: Project.Version.Remote.deleteLink\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-deleteRemoteVersionLink\n     * @param options Request options.\n     */\n    async getRemoteVersionLinks(options) {\n        return this.Project.Version.Remote.getLinks(options);\n    }\n    /**\n     * Validates a project key.\n     * Alternative usage: Project.Validation.validateProjectKey\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#projectvalidate-getProject\n     * @param options Request options.\n     */\n    async validateProjectKey(options) {\n        return this.Project.Validation.validateProjectKey(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Project.Type.getTypes\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/type-getAllProjectTypes\n     * @param options Request options.\n     */\n    async getProjectTypes(options) {\n        return this.Project.Type.getTypes(options);\n    }\n    /**\n    * Returns the project type with the given key.\n    * Alternative usage: Project.Type.getType\n    * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/type-getProjectTypeByKey\n    * @param options Request options.\n    */\n    async getProjectType(options) {\n        return this.Project.Type.getType(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Project.Type.getAccessibleType\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/type-getAccessibleProjectTypeByKey\n     * @param options Request options.\n     */\n    async getAccessibleProjectType(options) {\n        return this.Project.Type.getAccessibleType(options);\n    }\n    /**\n     * Returns all security levels for the project that the current logged in user has access to.\n     * Alternative usage: Project.Security.getLevels\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#project/{projectKeyOrId}/securitylevel-getSecurityLevelsForProject\n     * @param options Request options.\n     */\n    async getProjectSecurityLevels(options) {\n        return this.Project.Security.getLevels(options);\n    }\n    /**\n     * Returns all roles in the given project Id or key, with links to full details on each role.\n     * Alternative usage: Project.Role.getRoles\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/{projectIdOrKey}/role-getProjectRoles\n     * @param options Request options.\n     */\n    async getProjectRoles(options) {\n        return this.Project.Role.getRoles(options);\n    }\n    /**\n     * Returns the details for a given project role in a project.\n     * Alternative usage: Project.Role.getRole\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/{projectIdOrKey}/role-getProjectRole\n     * @param options Request options.\n     */\n    async getProjectRole(options) {\n        return this.Project.Role.getRole(options);\n    }\n    /**\n     * Updates a project role to include the specified actors (users or groups).\n     * Alternative usage: Project.Role.Actor.setActors\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/{projectIdOrKey}/role-setActors\n     * @param options Request options.\n     */\n    async setProjectRoleActors(options) {\n        return this.Project.Role.Actor.setActors(options);\n    }\n    /**\n     * Adds an actor (user or group) to a project role.\n     * Alternative usage: Project.Role.Actor.addUsers\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/{projectIdOrKey}/role-addActorUsers\n     * @param options Request options.\n     */\n    async addProjectRoleActorUsers(options) {\n        return this.Project.Role.Actor.addUsers(options);\n    }\n    /**\n     * Deletes actors (users or groups) from a project role.\n     * Delete a user from the role: /rest/api/2/project/{projectIdOrKey}/role/{roleId}?user={username}\n     * Delete a group from the role: /rest/api/2/project/{projectIdOrKey}/role/{roleId}?group={groupname}\n     * Alternative usage: Project.Role.Actor.deleteActor\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/{projectIdOrKey}/role-deleteActor\n     * @param options Request options.\n     */\n    async deleteProjectRoleActor(options) {\n        return this.Project.Role.Actor.deleteActor(options);\n    }\n    /**\n     * Create a component via POST.\n     * Alternative usage: Project.Component.createComponent\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#component-createComponent\n     * @param options Request options.\n     */\n    async createProjectComponent(options) {\n        return this.Project.Component.createComponent(options);\n    }\n    /**\n     * Returns a project component.\n     * Alternative usage: Project.Component.getComponent\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#component-getComponent\n     * @param options Request options.\n     */\n    async getProjectComponent(options) {\n        return this.Project.Component.getComponent(options);\n    }\n    /**\n     * Modify a component via PUT. If leadUserName is an empty string (\"\") the component lead will be removed.\n     * Alternative usage: Project.Component.updateComponent\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#component-updateComponent\n     * @param options Request options.\n     */\n    async updateProjectComponent(options) {\n        return this.Project.Component.updateComponent(options);\n    }\n    /**\n     * Delete a project component.\n     * Alternative usage: Project.Component.deleteComponent\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#component-delete\n     * @param options Request options.\n     */\n    async deleteProjectComponent(options) {\n        return this.Project.Component.deleteComponent(options);\n    }\n    /**\n     * Returns counts of issues related to this component.\n     * Alternative usage: Project.Component.getRelatedIssueCount\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#component-getComponentRelatedIssues\n     * @param options Request options.\n     */\n    async getProjectComponentRelatedIssueCount(options) {\n        return this.Project.Component.getRelatedIssueCount(options);\n    }\n    /**\n     * Returns all permissions in the system and whether the currently logged in user has them.\n     * You can optionally provide a specific context to get permissions for (projectKey OR projectId OR issueKey OR issueId).\n     * Alternative usage: Permission.getMyPermissions\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#-getPermissions\n     * @param options Request options.\n     */\n    async getMyPermissions(options) {\n        return this.Permission.getMyPermissions(options);\n    }\n    /**\n     * Returns all permissions that are present in the JIRA instance - Global, Project and the global ones added by plugins\n     * Alternative usage: Permission.getPermissions\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#-getAllPermissions\n     * @param options Request options.\n     */\n    async getPermissions(options) {\n        return this.Permission.getPermissions(options);\n    }\n    /**\n     * Returns a permission scheme identified by the given id.\n     * Alternative usage: Permission.Scheme.getScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-getPermissionScheme\n     * @param options Request options.\n     */\n    async getPermissionSchemes(options) {\n        return this.Permission.Scheme.getSchemes(options);\n    }\n    /**\n     * Create a new permission scheme. This method can create schemes with a defined permission set, or without.\n     * Alternative usage: Permission.Scheme.createScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-createPermissionScheme\n     * @param options Request options.\n     */\n    async createPermissionScheme(options) {\n        return this.Permission.Scheme.createScheme(options);\n    }\n    /**\n     * Returns a permission scheme identified by the given id.\n     * Alternative usage: Permission.Scheme.getScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-getPermissionScheme\n     * @param options Request options.\n     */\n    async getPermissionScheme(options) {\n        return this.Permission.Scheme.getScheme(options);\n    }\n    /**\n     * Deletes a permission scheme identified by the given id.\n     * Alternative usage: Permission.Scheme.deleteScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-deletePermissionScheme\n     * @param options Request options.\n     */\n    async deletePermissionScheme(options) {\n        return this.Permission.Scheme.deleteScheme(options);\n    }\n    /**\n     * Updates a permission scheme.\n     * 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.\n     * Sending an empty list will remove all permission grants from the permission scheme.\n     * To update just the name and description, do not send permissions list at all.\n     * Alternative usage: Permission.Scheme.updateScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-updatePermissionScheme\n     * @param options Request options.\n     */\n    async updatePermissionScheme(options) {\n        return this.Permission.Scheme.updateScheme(options);\n    }\n    /**\n     * Returns scheme attribute.\n     * Alternative usage: Permission.Scheme.Attribute.getAttribute\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-getSchemeAttribute\n     * @param options Request options.\n     */\n    async getPermissionSchemeAttribute(options) {\n        return this.Permission.Scheme.Attribute.getAttribute(options);\n    }\n    /**\n     * Returns all permission grants of the given permission scheme.\n     * Alternative usage: Permission.Scheme.Grant.getGrants\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-getPermissionSchemeGrants\n     * @param options Request options.\n     */\n    async getPermissionSchemeGrants(options) {\n        return this.Permission.Scheme.Grant.getGrants(options);\n    }\n    /**\n     * Creates a permission grant in a permission scheme.\n     * Alternative usage: Permission.Scheme.Grant.createGrant\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-createPermissionGrant\n     * @param options Request options.\n     */\n    async createPermissionSchemeGrant(options) {\n        return this.Permission.Scheme.Grant.createGrant(options);\n    }\n    /**\n     * Deletes a permission grant from a permission scheme.\n     * Alternative usage: Permission.Scheme.Grant.deleteGrant\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-deletePermissionSchemeEntity\n     * @param options Request options.\n     */\n    async deletePermissionSchemeGrant(options) {\n        return this.Permission.Scheme.Grant.deleteGrant(options);\n    }\n    /**\n     * Returns a permission grant identified by the given id.\n     * Alternative usage: Permission.Scheme.Grant.getGrant\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-getPermissionSchemeGrant\n     * @param options Request options.\n     */\n    async getPermissionSchemeGrant(options) {\n        return this.Permission.Scheme.Grant.getGrant(options);\n    }\n    /**\n     * Sets preference of the currently logged in user.\n     * Preference key must be provided as input parameters (key).\n     * Value must be provided as post body. If key or value parameter is not provided - status code 404.\n     * If preference is set - status code 204.\n     * Alternative usage: Issue.Myself.setPreference\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#mypreferences-setPreference\n     * @param options Request options.\n     */\n    async setMyPreference(options) {\n        return this.Myself.setPreference(options);\n    }\n    /**\n     * Removes preference of the currently logged in user. Preference key must be provided as input parameters (key).\n     * If key parameter is not provided or wrong - status code 404.\n     * If preference is unset - status code 204.\n     * Alternative usage: Issue.Myself.removePreference\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#mypreferences-removePreference\n     * @param options Request options.\n     */\n    async removeMyPreference(options) {\n        return this.Myself.removePreference(options);\n    }\n    /**\n     * Returns preference of the currently logged in user.\n     * Preference key must be provided as input parameter (key).\n     * The value is returned exactly as it is. If key parameter is not provided or wrong - status code 404.\n     * If value is found - status code 200.\n     * Alternative usage: Issue.Myself.getPreference\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#mypreferences-getPreference\n     * @param options Request options.\n     */\n    async getMyPreference(options) {\n        return this.Myself.getPreference(options);\n    }\n    /**\n     * Returns currently logged in user.\n     * Alternative usage: Myself.getCurrentUser\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#myself-getUser\n     * @param options Request options.\n     */\n    async getCurrentUser(options) {\n        return this.Myself.getCurrentUser(options);\n    }\n    /**\n     * Returns a paginated list of notification schemes.\n     * Alternative usage: Issue.Notification.Scheme.getSchemes\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#notificationscheme-getNotificationSchemes\n     * @param options Request options.\n     */\n    async getNotificationSchemes(options) {\n        return this.Issue.Notification.Scheme.getSchemes(options);\n    }\n    /**\n     * Returns a full representation of the notification scheme for the given id.\n     * Alternative usage: Issue.Notification.Scheme.getScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#notificationscheme-getNotificationScheme\n     * @param options Request options.\n     */\n    async getNotificationScheme(options) {\n        return this.Issue.Notification.Scheme.getScheme(options);\n    }\n    /**\n     * Returns all issue security schemes that are defined.\n     * Alternative usage: Issue.Security.Scheme.getSchemes\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuesecurityschemes-getIssueSecuritySchemes\n     * @param options Request options.\n     */\n    async getIssueSecuritySchemes(options) {\n        return this.Issue.Security.Scheme.getSchemes(options);\n    }\n    /**\n     * Returns the issue security scheme along with that are defined.\n     * Alternative usage: Issue.Security.Scheme.getScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuesecurityschemes-getIssueSecurityScheme\n     * @param options Request options.\n     */\n    async getIssueSecurityScheme(options) {\n        return this.Issue.Security.Scheme.getScheme(options);\n    }\n    /**\n     * Returns all work logs for an issue. Work logs won't be returned if the Log work field is hidden for the project.\n     * Alternative usage: Issue.Worklog.getWorklogs\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getIssueWorklog\n     * @param options Request options.\n     */\n    async getIssueWorklogs(options) {\n        return this.Issue.Worklog.getWorklogs(options);\n    }\n    /**\n     * Adds a new worklog entry to an issue.\n     * Alternative usage: Issue.Worklog.addWorklog\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-addWorklog\n     * @param options Request options.\n     */\n    async addIssueWorklog(options) {\n        return this.Issue.Worklog.addWorklog(options);\n    }\n    /**\n     * Returns a specific worklog. The work log won't be returned if the Log work field is hidden for the project.\n     * Alternative usage: Issue.Worklog.getWorklog\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getWorklog\n     * @param options Request options.\n     */\n    async getIssueWorklog(options) {\n        return this.Issue.Worklog.getWorklog(options);\n    }\n    /**\n     * Updates an existing worklog entry. Fields possible for editing are: comment, visibility, started, timeSpent and timeSpentSeconds. Either timeSpent or timeSpentSeconds can be set. Fields which are not set will not be updated. For a request to be valid, it has to have at least one field change.\n     * Alternative usage: Issue.Worklog.updateWorklog\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-updateWorklog\n     * @param options Request options.\n     */\n    async updateIssueWorklog(options) {\n        return this.Issue.Worklog.updateWorklog(options);\n    }\n    /**\n     * Deletes an existing worklog entry.\n     * Alternative usage: Issue.Worklog.deleteWorklog\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-deleteWorklog\n     * @param options Request options.\n     */\n    async deleteIssueWorklog(options) {\n        return this.Issue.Worklog.deleteWorklog(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Issue.Worklog.getDeletedWorklogIds\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#worklog-getIdsOfWorklogsDeletedSince\n     * @param options Request options.\n     */\n    async getDeletedIssueWorklogIds(options) {\n        return this.Issue.Worklog.getDeletedWorklogIds(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Issue.Worklog.getWorklogsForIds\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#worklog-getWorklogsForIds\n     * @param options Request options.\n     */\n    async getIssueWorklogsForIds(options) {\n        return this.Issue.Worklog.getWorklogsForIds(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Issue.Worklog.getUpdatedWorklogIds\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#worklog-getIdsOfWorklogsModifiedSince\n     * @param options Request options.\n     */\n    async getUpdatedIssueWorklogIds(options) {\n        return this.Issue.Worklog.getUpdatedWorklogIds(options);\n    }\n    /**\n     * Returns the list of watchers for the issue with the given key.\n     * Alternative usage: Issue.Watcher.getWatchers\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getIssueWatchers\n     * @param options Request options.\n     */\n    async getIssueWatchers(options) {\n        return this.Issue.Watcher.getWatchers(options);\n    }\n    /**\n     * Adds a user to an issue's watcher list.\n     * Alternative usage: Issue.Watcher.addWatcher\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-addWatcher\n     * @param options Request options.\n     */\n    async addIssueWatcher(options) {\n        return this.Issue.Watcher.addWatcher(options);\n    }\n    /**\n     * Removes a user from an issue's watcher list.\n     * Alternative usage: Issue.Watcher.removeWatcher\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-removeWatcher\n     * @param options Request options.\n     */\n    async removeIssueWatcher(options) {\n        return this.Issue.Watcher.removeWatcher(options);\n    }\n    /**\n     * Remove your vote from an issue. (i.e. \"unvote\").\n     * Alternative usage: Issue.Vote.removeVote\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-removeVote\n     * @param options Request options.\n     */\n    async removeIssueVote(options) {\n        return this.Issue.Vote.addVote(options);\n    }\n    /**\n     * Cast your vote in favour of an issue.\n     * Alternative usage: Issue.Vote.addVote\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-addVote\n     * @param options Request options.\n     */\n    async addIssueVote(options) {\n        return this.Issue.Vote.addVote(options);\n    }\n    /**\n     * A REST sub-resource representing the voters on the issue.\n     * Alternative usage: Issue.Vote.getVotes\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getVotes\n     * @param options Request options.\n     */\n    async getIssueVotes(options) {\n        return this.Issue.Vote.getVotes(options);\n    }\n    /**\n     * Returns a list of all issue types visible to the user.\n     * Alternative usage: Issue.Type.getTypes\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-getIssueAllTypes\n     * @param options Request options.\n     */\n    async getIssueTypes(options) {\n        return this.Issue.Type.getTypes(options);\n    }\n    /**\n     * Creates an issue type from a JSON representation and adds the issue newly created issue type to the default issue type scheme.\n     * Alternative usage: Issue.Type.createType\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-createIssueType\n     * @param options Request options.\n     */\n    async createIssueType(options) {\n        return this.Issue.Type.createType(options);\n    }\n    /**\n     * Returns a full representation of the issue type that has the given id.\n     * Alternative usage: Issue.Type.getType\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-getIssueType\n     * @param options Request options.\n     */\n    async getIssueType(options) {\n        return this.Issue.Type.getType(options);\n    }\n    /**\n    * 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.\n    * You can determine the alternative issue types by calling the /rest/api/2/issuetype/{id}/alternatives resource.\n    * Alternative usage: Issue.Type.deleteType\n    * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-deleteIssueType\n    * @param options Request options.\n    */\n    async deleteIssueType(options) {\n        return this.Issue.Type.deleteType(options);\n    }\n    /**\n     * Updates the specified issue type from a JSON representation.\n     * Alternative usage: Issue.Type.updateType\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-updateIssueType\n     * @param options Request options.\n     */\n    async updateIssueType(options) {\n        return this.Issue.Type.updateType(options);\n    }\n    /**\n     * 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.\n     * The suitable alternatives are issue types which are assigned to the same workflow, the same field configuration and the same screen scheme.\n     * Alternative usage: Issue.Type.getAlternativeTypes\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-getAlternativeIssueTypes\n     * @param options Request options.\n     */\n    async getAlternativeIssueTypes(options) {\n        return this.Issue.Type.getAlternativeTypes(options);\n    }\n    /**\n     * Creates an issue type scheme from a JSON representation. (Admin required)\n     * Alternative usage: Issue.Type.Scheme.createScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-createIssueTypeScheme\n     * @param options Request options.\n     */\n    async createIssueTypeScheme(options) {\n        return this.Issue.Type.Scheme.createScheme(options);\n    }\n    /**\n     * Returns a list of all issue type schemes visible to the user (must be admin).\n     * All issue types associated with the scheme will only be returned if an additional query parameter is provided: expand=schemes.issueTypes.\n     * Similarly, the default issue type associated with the scheme (if one exists) will only be returned if additional an query parameter is provided: expand=schemes.defaultIssueType.\n     * Note that both query parameters can be used together: expand=schemes.issueTypes,schemes.defaultIssueType.\n     * Alternative usage: Issue.Type.Scheme.getSchemes\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-getAllIssueTypeSchemes\n     * @param options Request options.\n     */\n    async getIssueTypeSchemes(options) {\n        return this.Issue.Type.Scheme.getSchemes(options);\n    }\n    /**\n     * Returns a full representation of the issue type scheme that has the given id (must be admin).\n     * Alternative usage: Issue.Type.Scheme.getScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-getIssueTypeScheme\n     * @param options Request options.\n     */\n    async getIssueTypeScheme(options) {\n        return this.Issue.Type.Scheme.getScheme(options);\n    }\n    /**\n     * Updates the specified issue type scheme from a JSON representation. (Admin required)\n     * Alternative usage: Issue.Type.Scheme.updateScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-updateIssueTypeScheme\n     * @param options Request options.\n     */\n    async updateIssueTypeScheme(options) {\n        return this.Issue.Type.Scheme.updateScheme(options);\n    }\n    /**\n     * Deletes the specified issue type scheme.\n     * Any projects associated with this IssueTypeScheme will be automatically associated with the global default IssueTypeScheme. (Admin required)\n     * Alternative usage: Issue.Type.Scheme.deleteScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-deleteIssueTypeScheme\n     * @param options Request options.\n     */\n    async deleteIssueTypeScheme(options) {\n        return this.Issue.Type.Scheme.deleteScheme(options);\n    }\n    /**\n     * Adds additional projects to those already associated with the specified issue type scheme. (Admin required)\n     * Alternative usage: Issue.Type.Scheme.Project.addAssociations\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-addProjectAssociationsToScheme\n     * @param options Request options.\n     */\n    async addProjectAssociationsToIssueTypeScheme(options) {\n        return this.Issue.Type.Scheme.Project.addAssociations(options);\n    }\n    /**\n     * For the specified issue type scheme, returns all of the associated projects. (Admin required)\n     * Alternative usage: Issue.Type.Scheme.Project.getAssociations\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-getAssociatedProjects\n     * @param options Request options.\n     */\n    async getProjectAssociationsForIssueTypeScheme(options) {\n        return this.Issue.Type.Scheme.Project.getAssociations(options);\n    }\n    /**\n     * Associates the given projects with the specified issue type scheme.\n     * Any existing project-associations the issue type scheme has will be overwritten. (Admin required)\n     * Alternative usage: Issue.Type.Scheme.Project.setAssociations\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-setProjectAssociationsForScheme\n     * @param options Request options.\n     */\n    async setProjectAssociationsForIssueTypeScheme(options) {\n        return this.Issue.Type.Scheme.Project.setAssociations(options);\n    }\n    /**\n     * Removes all project associations for the specified issue type scheme.\n     * These projects revert to an association with the default/global issue type scheme.(Admin required)\n     * Alternative usage: Issue.Type.Scheme.Project.removeAssociations\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-removeAllProjectAssociations\n     * @param options Request options.\n     */\n    async removeProjectAssociationsForIssueTypeScheme(options) {\n        return this.Issue.Type.Scheme.Project.removeAssociations(options);\n    }\n    /**\n     * For the specified issue type scheme, removes the given project association.\n     * This project reverts to an association with the default/global issue type scheme.(Admin required)\n     * Alternative usage: Issue.Type.Scheme.Project.removeAssociation\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-removeProjectAssociation\n     * @param options Request options.\n     */\n    async removeProjectAssociationForIssueTypeScheme(options) {\n        return this.Issue.Type.Scheme.Project.removeAssociation(options);\n    }\n    /**\n     * Get a list of the transitions possible for this issue by the current user, along with fields that are required and their types.\n     * Fields will only be returned if expand=transitions.fields.\n     * 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.\n     * Alternative usage: Issue.Transition.getTransitions\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getTransitions\n     * @param options Request options.\n     */\n    async getIssueTransitions(options) {\n        return this.Issue.Transition.getTransitions(options);\n    }\n    /**\n     * Perform a transition on an issue. When performing the transition you can update or set other issue fields.\n     * The fields that can be set on transtion, in either the fields parameter or the update parameter can be determined using the /rest/api/2/issue/{issueIdOrKey}/transitions?expand=transitions.fields 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. The updateHistory param adds the issues retrieved by this method to the current user's issue history, if set to true (by default, the issue history does not include issues retrieved via the REST API). You can view the issue history in the JIRA application, via the Issues dropdown or by using the lastViewed JQL field in an issue search.\n     * Alternative usage: Issue.Transition.performTransition\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-doTransition\n     * @param options Request options.\n     */\n    async performIssueTransition(options) {\n        return this.Issue.Transition.performTransition(options);\n    }\n    /**\n     * Returns an issue's subtask list.\n     * Alternative usage: Issue.SubTask.getSubTasks\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue/{issueIdOrKey}/subtask-getSubTasks\n     * @param options Request options.\n     */\n    async getIssueSubTasks(options) {\n        return this.Issue.SubTask.getSubTasks(options);\n    }\n    /**\n     * Alternative usage: Issue.SubTask.canMoveSubTask\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue/{issueIdOrKey}/subtask-canMoveSubTask\n     * @param options Request options.\n     */\n    async canMoveIssueSubTask(options) {\n        return this.Issue.SubTask.canMoveSubTask(options);\n    }\n    /**\n     * Alternative usage: Issue.SubTask.canMoveSubTask\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue/{issueIdOrKey}/subtask-canMoveSubTask\n     * @param options Request options.\n     */\n    async moveIssueSubTasks(options) {\n        return this.Issue.SubTask.moveSubTasks(options);\n    }\n    /**\n     * Performs a search using JQL.\n     * Alternative usage: Issue.Search.searchByJql\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#search-searchUsingSearchRequest\n     * @param options Request options.\n     */\n    async searchIssuesByJql(options) {\n        return this.Issue.Search.searchByJql(options);\n    }\n    /**\n     * Returns a list of all resolutions.\n     * Alternative usage: Issue.Resolution.getResolutions\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#resolution-getResolutions\n     * @param options Request options.\n     */\n    async getIssueResolutions(options) {\n        return this.Issue.Resolution.getResolutions(options);\n    }\n    /**\n     * Returns a resolution.\n     * Alternative usage: Issue.Resolution.getResolution\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#resolution-getResolution\n     * @param options Request options.\n     */\n    async getIssueResolution(options) {\n        return this.Issue.Resolution.getResolution(options);\n    }\n    /**\n     * Returns the keys of all properties for the issue identified by the key or by the id.\n     * Alternative usage: Issue.Property.getPropertyKeys\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issue/{issueIdOrKey}/properties-getPropertiesKeys\n     * @param options Request options.\n     */\n    async getIssuePropertyKeys(options) {\n        return this.Issue.Property.getPropertyKeys(options);\n    }\n    /**\n     * Removes the property from the issue identified by the key or by the id.\n     * Ths user removing the property is required to have permissions to edit the issue.\n     * Alternative usage: Issue.Property.deleteProperty\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issue/{issueIdOrKey}/properties-deleteProperty\n     * @param options Request options.\n     */\n    async deleteIssueProperty(options) {\n        return this.Issue.Property.deleteProperty(options);\n    }\n    /**\n     * Sets the value of the specified issue's property.\n     * You can use this resource to store a custom data against the issue identified by the key or by the id.\n     * The user who stores the data is required to have permissions to edit the issue.\n     * Alternative usage: Issue.Property.setProperty\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issue/{issueIdOrKey}/properties-setProperty\n     * @param options Request options.\n     */\n    async setIssueProperty(options) {\n        return this.Issue.Property.setProperty(options);\n    }\n    /**\n     * Returns the value of the property with a given key from the issue identified by the key or by the id.\n     * The user who retrieves the property is required to have permissions to read the issue.\n     * Alternative usage: Issue.Property.getProperty\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issue/{issueIdOrKey}/properties-getProperty\n     * @param options Request options.\n     */\n    async getIssueProperty(options) {\n        return this.Issue.Property.getProperty(options);\n    }\n    /**\n     * Returns a list of all issue priorities.\n     * Alternative usage: Issue.Priority.getPriorities\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#priority-getPriorities\n     * @param options Request options.\n     */\n    async getIssuePriorities(options) {\n        return this.Issue.Priority.getPriorities(options);\n    }\n    /**\n     * Returns an issue priority.\n     * Alternative usage: Issue.Priority.getPriority\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#priority-getPriority\n     * @param options Request options.\n     */\n    async getIssuePriority(options) {\n        return this.Issue.Priority.getPriority(options);\n    }\n    /**\n     * Creates new priority scheme.\n     * Alternative usage: Issue.Priority.Scheme.createScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#priorityschemes-createPriorityScheme\n     * @param options Request options.\n     */\n    async createIssuePriorityScheme(options) {\n        return this.Issue.Priority.Scheme.createScheme(options);\n    }\n    /**\n     * Returns all priority schemes.\n     * All project keys associated with the priority scheme will only be returned if additional query parameter is provided expand=schemes.projectKeys.\n     * Alternative usage: Issue.Priority.Scheme.getSchemes\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#priorityschemes-getPrioritySchemes\n     * @param options Request options.\n     */\n    async getIssuePrioritySchemes(options) {\n        return this.Issue.Priority.Scheme.getSchemes(options);\n    }\n    /**\n     * Deletes a priority scheme.\n     * All projects using deleted scheme will use default priority scheme afterwards. Default priority scheme can't be deleted.\n     * Alternative usage: Issue.Priority.Scheme.deleteScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#priorityschemes-deletePriorityScheme\n     * @param options Request options.\n     */\n    async deleteIssuePriorityScheme(options) {\n        return this.Issue.Priority.Scheme.deleteScheme(options);\n    }\n    /**\n     * Updates a priority scheme.\n     * Update will be rejected if issue migration would be needed as a result of scheme update.\n     * Priority scheme update with migration is possible from the UI.\n     * All project keys associated with the priority scheme will only be returned if additional query parameter is provided expand=projectKeys.\n     * Alternative usage: Issue.Priority.Scheme.updateScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#priorityschemes-updatePriorityScheme\n     * @param options Request options.\n     */\n    async updateIssuePriorityScheme(options) {\n        return this.Issue.Priority.Scheme.updateScheme(options);\n    }\n    /**\n     * Gets a full representation of a priority scheme in JSON format.\n     * All project keys associated with the priority scheme will only be returned if additional query parameter is provided expand=projectKeys.\n     * Alternative usage: Issue.Priority.Scheme.getScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#priorityschemes-getPriorityScheme\n     * @param options Request options.\n     */\n    async getIssuePriorityScheme(options) {\n        return this.Issue.Priority.Scheme.getScheme(options);\n    }\n    /**\n     * Returns the meta data for editing an issue. 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.\n     * Alternative usage: Issue.Metadata.getEditMetadata\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getEditIssueMeta\n     * @param options Request options.\n     */\n    async getEditIssueMetadata(options) {\n        return this.Issue.Metadata.getEditMetadata(options);\n    }\n    /**\n     * 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.\n     * 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.\n     * Fields will only be returned if expand=projects.issuetypes.fields.\n     * The results can be filtered by project and/or issue type, given by the query params.\n     * Alternative usage: Issue.Metadata.getCreateMetadata\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getCreateIssueMeta\n     * @param options Request options.\n     * @deprecated\n     */\n    async getCreateIssueMetadata(options) {\n        return this.Issue.Metadata.getCreateMetadata(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Issue.Link.createLink\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLink-linkIssues\n     * @param options Request options.\n     */\n    async createIssueLink(options) {\n        return this.Issue.Link.createLink(options);\n    }\n    /**\n     * Returns an issue link with the specified id.\n     * Alternative usage: Issue.Link.getLink\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLink-getIssueLink\n     * @param options Request options.\n     */\n    async getIssueLink(options) {\n        return this.Issue.Link.getLink(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Issue.Link.deleteLink\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLink-deleteIssueLink\n     * @param options Request options.\n     */\n    async deleteIssueLink(options) {\n        return this.Issue.Link.deleteLink(options);\n    }\n    /**\n     * A REST sub-resource representing the remote issue links on the issue.\n     * Alternative usage: Issue.Link.Remote.getLinks\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getRemoteIssueLinks\n     * @param options Request options.\n     */\n    async getRemoteIssueLinks(options) {\n        return this.Issue.Link.Remote.getLinks(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Issue.Link.Remote.createOrUpdateLink\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-createOrUpdateRemoteIssueLink\n     * @param options Request options.\n     */\n    async createOrUpdateRemoteIssueLink(options) {\n        return this.Issue.Link.Remote.createOrUpdateLink(options);\n    }\n    /**\n     * Delete the remote issue link with the given global id on the issue.\n     * Alternative usage: Issue.Link.Remote.deleteLinkByGlobalId\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-deleteRemoteIssueLinkByGlobalId\n     * @param options Request options.\n     */\n    async deleteRemoteIssueLinkByGlobalId(options) {\n        return this.Issue.Link.Remote.deleteLinkByGlobalId(options);\n    }\n    /**\n     * Get the remote issue link with the given id on the issue.\n     * Alternative usage: Issue.Link.Remote.getLink\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getRemoteIssueLinkById\n     * @param options Request options.\n     */\n    async getRemoteIssueLink(options) {\n        return this.Issue.Link.Remote.getLink(options);\n    }\n    /**\n     * Updates a remote issue link from a JSON representation. Any fields not provided are set to null.\n     * Alternative usage: Issue.Link.Remote.updateLink\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-updateRemoteIssueLink\n     * @param options Request options.\n     */\n    async updateRemoteIssueLink(options) {\n        return this.Issue.Link.Remote.updateLink(options);\n    }\n    /**\n     * Delete the remote issue link with the given id on the issue.\n     * Alternative usage: Issue.Link.Remote.deleteLink\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-deleteRemoteIssueLinkById\n     * @param options Request options.\n     */\n    async deleteRemoteIssueLink(options) {\n        return this.Issue.Link.Remote.deleteLink(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Issue.Link.Type.getTypes\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLinkType-getIssueLinkTypes\n     * @param options Request options.\n     */\n    async getIssueLinkTypes(options) {\n        return this.Issue.Link.Type.getTypes(options);\n    }\n    /**\n     * Returns for a given issue link type id all information about this issue link type.\n     * Alternative usage: Issue.Link.Type.getType\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLinkType-getIssueLinkType\n     * @param options Request options.\n     */\n    async getIssueLinkType(options) {\n        return this.Issue.Link.Type.getType(options);\n    }\n    /**\n     * Create a new issue link type.\n     * Alternative usage: Issue.Link.Type.createType\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLinkType-createIssueLinkType\n     * @param options Request options.\n     */\n    async createIssueLinkType(options) {\n        return this.Issue.Link.Type.createType(options);\n    }\n    /**\n     * Delete the specified issue link type.\n     * Alternative usage: Issue.Link.Type.deleteType\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLinkType-deleteIssueLinkType\n     * @param options Request options.\n     */\n    async deleteIssueLinkType(options) {\n        return this.Issue.Link.Type.deleteType(options);\n    }\n    /**\n     * Update the specified issue link type.\n     * Alternative usage: Issue.Link.Type.updateType\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLinkType-updateIssueLinkType\n     * @param options Request options.\n     */\n    async updateIssueLinkType(options) {\n        return this.Issue.Link.Type.updateType(options);\n    }\n    /**\n     * Returns a list of all fields, both System and Custom.\n     * Alternative usage: Issue.Field.getFields\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#field-getFields\n     * @param options Request options.\n     */\n    async getIssueFields(options) {\n        return this.Issue.Field.getFields(options);\n    }\n    /**\n     * Alternative: Issue.Field.Custom.getFields\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#customFields-getCustomFields\n     * @param options Request options.\n     */\n    async getIssueCustomFields(options) {\n        return this.Issue.Field.Custom.getFields(options);\n    }\n    /**\n     * Returns a full representation of the Custom Field Option that has the given id.\n     * Alternative: Issue.Field.Custom.Option.getOption\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#customFieldOption-getCustomFieldOption\n     * @param options Request options.\n     */\n    async getIssueCustomFieldOption(options) {\n        return this.Issue.Field.Custom.Option.getOption(options);\n    }\n    /**\n     * Returns the meta-data for an attachment, including the URI of the actual attached file.\n     * Alternative usage: Issue.Attachment.getAttachment\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#attachment-getAttachment\n     * @param options Request options.\n     */\n    async getIssueAttachment(options) {\n        return this.Issue.Attachment.getAttachment(options);\n    }\n    /**\n     * Remove an attachment from an issue.\n     * Alternative usage: Issue.Attachment.removeAttachment\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#attachment-removeAttachment\n     * @param options Request options.\n     */\n    async removeIssueAttachment(options) {\n        return this.Issue.Attachment.removeAttachment(options);\n    }\n    /**\n     * Add one or more attachments to an issue.\n     * Alternative usage: Issue.Attachment.addAttachment\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue/{issueIdOrKey}/attachments-addAttachment\n     * @param options Request options.\n     */\n    async addIssueAttachment(options) {\n        return this.Issue.Attachment.addAttachment(options);\n    }\n    /**\n     * Returns the meta information for an attachments, specifically if they are enabled and the maximum upload size allowed.\n     * Alternative usage: Issue.Attachment.Metadata.getMetadata\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#attachment-getAttachmentMeta\n     * @param options Request options.\n     */\n    async getIssueAttachmentMetadata(options) {\n        return this.Issue.Attachment.Metadata.getMetadata(options);\n    }\n    /**\n     * Returns the keys of all properties for the comment identified by the key or by the id.\n     * Alternative usage: Issue.Comment.Property.getPropertyKeys\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#comment/{commentId}/properties-getPropertiesKeys\n     * @param options Request options.\n     */\n    async getIssueCommentPropertyKeys(options) {\n        return this.Issue.Comment.Property.getPropertyKeys(options);\n    }\n    /**\n     * Removes the property from the comment identified by the key or by the id.\n     * Ths user removing the property is required to have permissions to administer the comment.\n     * Alternative usage: Issue.Comment.Property.deleteProperty\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#comment/{commentId}/properties-deleteProperty\n     * @param options Request options.\n     */\n    async deleteIssueCommentProperty(options) {\n        return this.Issue.Comment.Property.deleteProperty(options);\n    }\n    /**\n     * Sets the value of the specified comment's property.\n     * You can use this resource to store a custom data against the comment identified by the key or by the id.\n     * The user who stores the data is required to have permissions to administer the comment.\n     * Alternative usage: Issue.Comment.Property.setProperty\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#comment/{commentId}/properties-setProperty\n     * @param options Request options.\n     */\n    async setIssueCommentProperty(options) {\n        return this.Issue.Comment.Property.setProperty(options);\n    }\n    /**\n     * Sets the value of the specified comment's property.\n     * You can use this resource to store a custom data against the comment identified by the key or by the id.\n     * The user who stores the data is required to have permissions to administer the comment.\n     * Alternative usage: Issue.Comment.Property.setProperty\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#comment/{commentId}/properties-setProperty\n     * @param options Request options.\n     */\n    async getIssueCommentProperty(options) {\n        return this.Issue.Comment.Property.getProperty(options);\n    }\n    /**\n     * Returns an application property.\n     * Alternative usage: Instance.getApplicationProperty\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#application-properties-getProperty\n     * @param options Request options.\n     */\n    async getApplicationProperty(options) {\n        return this.Instance.getApplicationProperty(options);\n    }\n    /**\n     * Modify an application property via PUT. The \"value\" field present in the PUT will override the existing value.\n     * Alternative usage: Instance.setApplicationProperty\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#application-properties-setPropertyViaRestfulTable\n     * @param options Request options.\n     */\n    async setApplicationProperty(options) {\n        return this.Instance.setApplicationProperty(options);\n    }\n    /**\n     * Returns the properties that are displayed on the \"General Configuration > Advanced Settings\" page.\n     * Alternative usage: Instance.getAdvancedSettings\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#application-properties-getAdvancedSettings\n     * @param options Request options.\n     */\n    async getAdvancedSettings(options) {\n        return this.Instance.getAdvancedSettings(options);\n    }\n    /**\n     * Returns the properties that are displayed on the \"General Configuration > Advanced Settings\" page.\n     * Alternative usage: Instance.getAdvancedSettings\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#application-properties-getAdvancedSettings\n     * @param options Request options.\n     */\n    async getInstanceConfiguration(options) {\n        return this.Instance.getConfiguration(options);\n    }\n    /**\n     * Returns the properties that are displayed on the \"General Configuration > Advanced Settings\" page.\n     * Alternative usage: Instance.getAdvancedSettings\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#application-properties-getAdvancedSettings\n     * @param options Request options.\n     */\n    async getInstanceInfo(options) {\n        return this.Instance.getInfo(options);\n    }\n    /**\n     * Creates a group by given group parameter.\n     * Alternative usage: Group.createGroup\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#group-createGroup\n     * @param options Request options.\n     */\n    async createGroup(options) {\n        return this.Group.createGroup(options);\n    }\n    /**\n     * Deletes a group by given group parameter.\n     * Alternative usage: Group.removeGroup\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#group-removeGroup\n     * @param options Request options.\n     */\n    async removeGroup(options) {\n        return this.Group.removeGroup(options);\n    }\n    /**\n     * This resource returns a paginated 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.\n     * Alternative usage: Group.User.getUsers\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#group-getUsersFromGroup\n     * @param options Request options.\n     */\n    async getUsersFromGroup(options) {\n        return this.Group.User.getUsers(options);\n    }\n    /**\n     * Adds given user to a group.\n     * Alternative usage: Group.User.addUsers\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#group-addUserToGroup\n     * @param options Request options.\n     */\n    async addUsersToGroup(options) {\n        return this.Group.User.addUsers(options);\n    }\n    /**\n     * Removes given user from a group.\n     * Alternative usage: Group.User.removeUsers\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#group-removeUserFromGroup\n     * @param options Request options.\n     */\n    async removeUsersFromGroup(options) {\n        return this.Group.User.removeUsers(options);\n    }\n    /**\n     * Creates a new filter, and returns newly created filter. Currently sets permissions just using the users default sharing permissions.\n     * Alternative usage: Filter.createFilter\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-createFilter\n     * @param options Request options.\n     */\n    async createFilter(options) {\n        return this.Filter.createFilter(options);\n    }\n    /**\n     * Returns a filter given an id.\n     * Alternative usage: Filter.getFilter\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getFilter\n     * @param options Request options.\n     */\n    async getFilter(options) {\n        return this.Filter.getFilter(options);\n    }\n    /**\n     * Updates an existing filter, and returns its new value.\n     * Alternative usage: Filter.editFilter\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-editFilter\n     * @param options Request options.\n     */\n    async editFilter(options) {\n        return this.Filter.editFilter(options);\n    }\n    /**\n     * Delete a filter.\n     * Alternative usage: Filter.deleteFilter\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-deleteFilter\n     * @param options Request options.\n     */\n    async deleteFilter(options) {\n        return this.Filter.deleteFilter(options);\n    }\n    /**\n     * Returns the favourite filters of the logged-in user.\n     * Alternative usage: Filter.getMyFavouriteFilters\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getFavouriteFilters\n     * @param options Request options.\n     */\n    async getMyFavouriteFilters(options) {\n        return this.Filter.getMyFavouriteFilters(options);\n    }\n    /**\n     * Returns the default share scope of the logged-in user.\n     * Alternative usage: Filter.Share.getShareScope\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getDefaultShareScope\n     * @param options Request options.\n     */\n    async getDefaultShareScope(options) {\n        return this.Filter.Share.getShareScope(options);\n    }\n    /**\n     * Sets the default share scope of the logged-in user. Available values are GLOBAL and PRIVATE.\n     * Alternative usage: Filter.Share.setShareScope\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-setDefaultShareScope\n     * @param options Request options.\n     */\n    async setDefaultShareScope(options) {\n        return this.Filter.Share.setShareScope(options);\n    }\n    /**\n     * Returns the default columns for the given filter. Currently logged in user will be used as the user making such request.\n     * Alternative usage: Filter.Column.getDefaultColumns\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-defaultColumns\n     * @param options Request options.\n     */\n    async getFilterDefaultColumns(options) {\n        return this.Filter.Column.getDefaultColumns(options);\n    }\n    /**\n     * Sets the default columns for the given filter.\n     * Alternative usage: Filter.Column.setDefaultColumns\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-setColumns\n     * @param options Request options.\n     */\n    async setFilterDefaultColumns(options) {\n        return this.Filter.Column.setDefaultColumns(options);\n    }\n    /**\n     * Resets the columns for the given filter such that the filter no longer has its own column config.\n     * Alternative usage: Filter.Column.resetColumns\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-resetColumns\n     * @param options Request options.\n     */\n    async resetFilterColumns(options) {\n        return this.Filter.Column.resetColumns(options);\n    }\n    /**\n     * Returns all share permissions of the given filter.\n     * Alternative usage: Filter.Share.Permission.getSharePermissions\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getSharePermissions\n     * @param options Request options.\n     */\n    async getFilterSharePermissions(options) {\n        return this.Filter.Share.Permission.getSharePermissions(options);\n    }\n    /**\n     * Adds a share permissions to the given filter. Adding a global permission removes all previous permissions from the filter.\n     * Alternative usage: Filter.Share.Permission.addSharePermission\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-addSharePermission\n     * @param options Request options.\n     */\n    async addFilterSharePermission(options) {\n        return this.Filter.Share.Permission.addSharePermission(options);\n    }\n    /**\n     * Returns a single share permission of the given filter.\n     * Alternative usage: Filter.Share.Permission.getSharePermissions\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getSharePermission\n     * @param options Request options.\n     */\n    async getFilterSharePermission(options) {\n        return this.Filter.Share.Permission.getSharePermission(options);\n    }\n    /**\n     * Removes a share permissions from the given filter.\n     * Alternative usage: Filter.Share.Permission.deleteSharePermission\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getSharePermission\n     * @param options Request options.\n     */\n    async deleteFilterSharePermission(options) {\n        return this.Filter.Share.Permission.deleteSharePermission(options);\n    }\n    /**\n     * Returns a list of all dashboards, optionally filtering them.\n     * Alternative usage: Dashboard.getDashboards\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#dashboard-list\n     * @param options Request options.\n     */\n    async getAllDashboards(options) {\n        return this.Dashboard.getDashboards(options);\n    }\n    /**\n     * Returns a single dashboard.\n     * Alternative usage: Dashboard.getDashboard\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#dashboard-getDashboard\n     * @param options Request options.\n     */\n    async getDashboardById(options) {\n        return this.Dashboard.getDashboard(options);\n    }\n    /**\n     * Create a new workflow scheme.\n     * The body contains a representation of the new scheme. Values not passed are assumed to be set to their defaults.\n     * Alternative usage: Workflow.Scheme.createScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#workflowscheme-createScheme\n     * @param options Request options.\n     */\n    async createWorkflowScheme(options) {\n        return this.Workflow.Scheme.createScheme(options);\n    }\n    /**\n     * Returns the requested workflow scheme to the caller.\n     * Alternative usage: Workflow.Scheme.getScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#workflowscheme-getById\n     * @param options Request options.\n     */\n    async getWorkflowScheme(options) {\n        return this.Workflow.Scheme.getScheme(options);\n    }\n    /**\n     * Delete the passed workflow scheme.\n     * Alternative usage: Workflow.Scheme.deleteScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#workflowscheme-deleteScheme\n     * @param options Request options.\n     */\n    async deleteWorkflowScheme(options) {\n        return this.Workflow.Scheme.deleteScheme(options);\n    }\n    /**\n     * Update the passed workflow scheme.\n     * The body of the request is a representation of the workflow scheme.\n     * Values not passed are assumed to indicate no change for that field.\n     * Alternative usage: Workflow.Scheme.updateScheme\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#workflowscheme-update\n     * @param options Request options.\n     */\n    async updateWorkflowScheme(options) {\n        return this.Workflow.Scheme.updateScheme(options);\n    }\n    /**\n     * Returns a list of all statuses.\n     * Alternative usage: Workflow.Status.getStatuses\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#status-getStatuses\n     * @param options Request options.\n     */\n    async getWorkflowStatuses(options) {\n        return this.Workflow.Status.getStatuses(options);\n    }\n    /**\n     * Returns a full representation of the Status having the given id or name.\n     * Alternative usage: Workflow.Status.getStatus\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#status-getStatus\n     * @param options Request options.\n     */\n    async getWorkflowStatus(options) {\n        return this.Workflow.Status.getStatus(options);\n    }\n    /**\n     * Returns a list of all status categories.\n     * Alternative usage: Workflow.Status.Category.getCategories\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#statuscategory-getStatusCategories\n     * @param options Request options.\n     */\n    async getWorkflowStatusCategories(options) {\n        return this.Workflow.Status.Category.getCategories(options);\n    }\n    /**\n     * Returns a full representation of the StatusCategory having the given id or key.\n     * Alternative usage: Workflow.Status.Category.getCategory\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#statuscategory-getStatusCategory\n     * @param options Request options.\n     */\n    async getWorkflowStatusCategory(options) {\n        return this.Workflow.Status.Category.getCategory(options);\n    }\n    /**\n     * Returns all workflows.\n     * Alternative usage: Workflow.getWorkflows\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#workflow-getAllWorkflows\n     * @param options Request options.\n     */\n    async getWorkflows(options) {\n        return this.Workflow.getWorkflows(options);\n    }\n    /**\n     * Returns all ApplicationRoles in the system.\n     * Will also return an ETag header containing a version hash of the collection of ApplicationRoles.\n     * Alternative usage: Application.Role.getRoles\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#applicationrole-getAll\n     * @param options Request options.\n     */\n    async getApplicationRoles(options) {\n        return this.Application.Role.getRoles(options);\n    }\n    /**\n     * Returns the ApplicationRole with passed key if it exists.\n     * Alternative usage: Application.Role.getRole\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#applicationrole-get\n     * @param options Request options.\n     */\n    async getApplicationRole(options) {\n        return this.Application.Role.getRole(options);\n    }\n    /**\n     * Updates the ApplicationRole with the passed data.\n     * Only the groups and default groups setting of the role may be updated.\n     * Requests to change the key or the name of the role will be silently ignored.\n     * Alternative usage: Application.Role.updateRole\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#applicationrole-put\n     * @param options Request options.\n     */\n    async updateApplicationRole(options) {\n        return this.Application.Role.updateRole(options);\n    }\n    /**\n     * Creates an issue or a sub-task from a JSON representation.\n     * The fields that can be set on create, in either the fields parameter or the update parameter can be determined using the /rest/api/2/issue/createmeta resource. If a field is not configured to appear on the create screen, then it will not be in the createmeta, and a field validation error will occur if it is submitted.\n     * Creating a sub-task is similar to creating a regular issue, with two important differences:\n     * the issueType field must correspond to a sub-task issue type (you can use /issue/createmeta to discover sub-task issue types), and you must provide a parent field in the issue create request containing the id or key of the parent issue.\n     * Alternative usage: Issue.createIssue\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-createIssue\n     * @param options Request options.\n     */\n    async createIssue(options) {\n        return this.Issue.createIssue(options);\n    }\n    /**\n     * Returns a full representation of the issue for the given issue key.\n     * JIRA will attempt to identify the issue by the issueIdOrKey path parameter. This can be an issue id, or an issue key. If the issue cannot be found via an exact match, JIRA will also look for the issue in a case-insensitive way, or by looking to see if the issue was moved. In either of these cases, the request will proceed as normal (a 302 or other redirect will not be returned). The issue key contained in the response will indicate the current value of issue's key.\n     * Alternative usage: Issue.getIssue\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getIssue\n     * @param options Request options.\n     */\n    async getIssue(options) {\n        return this.Issue.getIssue(options);\n    }\n    /**\n     * Edits an issue from a JSON representation.\n     * The issue can either be updated by setting explicit the field value(s) or by using an operation to change the field value.\n     * The fields that can be updated, in either the fields parameter or the update parameter, can be determined using the /rest/api/2/issue/{issueIdOrKey}/editmeta resource.\n     * 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.\n     * Specifying a \"field_id\": field_value in the \"fields\" is a shorthand for a \"set\" operation in the \"update\" section.\n     * Field should appear either in \"fields\" or \"update\", not in both.\n     * Alternative usage: Issue.editIssue\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-editIssue\n     * @param options Request options.\n     */\n    async editIssue(options) {\n        return this.Issue.editIssue(options);\n    }\n    /**\n     * Delete an issue. 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.\n     * Alternative usage: Issue.deleteIssue\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-deleteIssue\n     * @param options Request options.\n     */\n    async deleteIssue(options) {\n        return this.Issue.deleteIssue(options);\n    }\n    /**\n     * 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.\n     * Alternative usage: Issue.assignIssue\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-assign\n     * @param options Request options.\n     */\n    async assignIssue(options) {\n        return this.Issue.assignIssue(options);\n    }\n    /**\n     * Sends a notification (email) to the list or recipients defined in the request.\n     * Alternative usage: Issue.sendNotification\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-notify\n     * @param options Request options.\n     */\n    async sendNotificationForIssue(options) {\n        return this.Issue.sendNotification(options);\n    }\n    /**\n     * Returns all comments for an issue.\n     * Alternative usage: Issue.Comment.getComments\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getComments\n     * @param options Request options.\n     */\n    async getIssueComments(options) {\n        return this.Issue.Comment.getComments(options);\n    }\n    /**\n     * Adds a new comment to an issue.\n     * Alternative usage: Issue.Comment.addComment\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-addComment\n     * @param options Request options.\n     */\n    async addIssueComment(options) {\n        return this.Issue.Comment.addComment(options);\n    }\n    /**\n     * Returns a single comment.\n     * Alternative usage: Issue.Comment.getComment\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getComment\n     * @param options Request options.\n     */\n    async getIssueComment(options) {\n        return this.Issue.Comment.getComment(options);\n    }\n    /**\n     * Updates an existing comment using its JSON representation.\n     * Alternative usage: Issue.Comment.updateComment\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-updateComment\n     * @param options Request options.\n     */\n    async updateIssueComment(options) {\n        return this.Issue.Comment.updateComment(options);\n    }\n    /**\n     * Deletes an existing comment.\n     * Alternative usage: Issue.Comment.deleteComment\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-deleteComment\n     * @param options Request options.\n     */\n    async deleteIssueComment(options) {\n        return this.Issue.Comment.deleteComment(options);\n    }\n}\nclass IssueGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Comment = new CommentGroup(implementation, this.getGlobalErrorStrategy);\n        this.Metadata = new MetadataGroup(implementation, this.getGlobalErrorStrategy);\n        this.Link = new LinkGroup(implementation, this.getGlobalErrorStrategy);\n        this.Vote = new VoteGroup(implementation, this.getGlobalErrorStrategy);\n        this.Watcher = new WatcherGroup(implementation, this.getGlobalErrorStrategy);\n        this.Worklog = new WorklogGroup(implementation, this.getGlobalErrorStrategy);\n        this.Transition = new TransitionGroup(implementation, this.getGlobalErrorStrategy);\n        this.SubTask = new SubTaskGroup(implementation, this.getGlobalErrorStrategy);\n        this.Field = new FieldGroup(implementation, this.getGlobalErrorStrategy);\n        this.Attachment = new AttachmentGroup(implementation, this.getGlobalErrorStrategy);\n        this.Type = new TypeGroup(implementation, this.getGlobalErrorStrategy);\n        this.Priority = new PriorityGroup(implementation, this.getGlobalErrorStrategy);\n        this.Resolution = new ResolutionGroup(implementation, this.getGlobalErrorStrategy);\n        this.Search = new SearchGroup(implementation, this.getGlobalErrorStrategy);\n        this.Property = new IssuePropertyGroup(implementation, this.getGlobalErrorStrategy);\n        this.Security = new IssueSecurityGroup(implementation, this.getGlobalErrorStrategy);\n        this.Notification = new IssueNotificationGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Creates an issue or a sub-task from a JSON representation.\n     * The fields that can be set on create, in either the fields parameter or the update parameter can be determined using the /rest/api/2/issue/createmeta resource. If a field is not configured to appear on the create screen, then it will not be in the createmeta, and a field validation error will occur if it is submitted.\n     * Creating a sub-task is similar to creating a regular issue, with two important differences:\n     * the issueType field must correspond to a sub-task issue type (you can use /issue/createmeta to discover sub-task issue types), and you must provide a parent field in the issue create request containing the id or key of the parent issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-createIssue\n     * @param options Request options.\n     */\n    async createIssue(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/issue/', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a full representation of the issue for the given issue key.\n     * JIRA will attempt to identify the issue by the issueIdOrKey path parameter. This can be an issue id, or an issue key. If the issue cannot be found via an exact match, JIRA will also look for the issue in a case-insensitive way, or by looking to see if the issue was moved. In either of these cases, the request will proceed as normal (a 302 or other redirect will not be returned). The issue key contained in the response will indicate the current value of issue's key.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getIssue\n     * @param options Request options.\n     */\n    async getIssue(options) {\n        const { issueIdOrKey, expand, fields, properties, updateHistory, headers, errorStrategy } = options;\n        const queryParams = { expand, fields, properties, updateHistory };\n        const request = new Request('GET', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Delete an issue. 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-deleteIssue\n     * @param options Request options.\n     */\n    async deleteIssue(options) {\n        const { issueIdOrKey, headers, deleteSubtasks, errorStrategy } = options;\n        const queryParams = { deleteSubtasks };\n        const request = new Request('DELETE', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Edits an issue from a JSON representation.\n     * The issue can either be updated by setting explicit the field value(s) or by using an operation to change the field value.\n     * The fields that can be updated, in either the fields parameter or the update parameter, can be determined using the /rest/api/2/issue/{issueIdOrKey}/editmeta resource.\n     * 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.\n     * Specifying a \"field_id\": field_value in the \"fields\" is a shorthand for a \"set\" operation in the \"update\" section.\n     * Field should appear either in \"fields\" or \"update\", not in both.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-editIssue\n     * @param options Request options.\n     */\n    async editIssue(options) {\n        const { issueIdOrKey, body, headers, notifyUsers, errorStrategy } = options;\n        const queryParams = { notifyUsers };\n        const request = new Request('PUT', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}`, queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-assign\n     * @param options Request options.\n     */\n    async assignIssue(options) {\n        const { issueIdOrKey, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/assignee`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Sends a notification (email) to the list or recipients defined in the request.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-notify\n     * @param options Request options.\n     */\n    async sendNotification(options) {\n        const { issueIdOrKey, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/notify`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass CommentGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Property = new IssueCommentPropertyGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns all comments for an issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getComments\n     * @param options Request options.\n     */\n    async getComments(options) {\n        const { issueIdOrKey, headers, expand, startAt, maxResults, orderBy, errorStrategy } = options;\n        const queryParams = { expand, startAt, maxResults, orderBy };\n        const request = new Request('GET', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/comment`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Adds a new comment to an issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-addComment\n     * @param options Request options.\n     */\n    async addComment(options) {\n        const { body, issueIdOrKey, expand, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('POST', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/comment`, queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a single comment.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getComment\n     * @param options Request options.\n     */\n    async getComment(options) {\n        const { issueIdOrKey, id, headers, expand, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/comment/${encodeURIComponent(id)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Updates an existing comment using its JSON representation.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-updateComment\n     * @param options Request options.\n     */\n    async updateComment(options) {\n        const { issueIdOrKey, id, body, headers, expand, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('PUT', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/comment/${encodeURIComponent(id)}`, queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Deletes an existing comment.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-deleteComment\n     * @param options Request options.\n     */\n    async deleteComment(options) {\n        const { issueIdOrKey, id, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/comment/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass IssueCommentPropertyGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns the keys of all properties for the comment identified by the key or by the id.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#comment/{commentId}/properties-getPropertiesKeys\n     * @param options Request options.\n     */\n    async getPropertyKeys(options) {\n        const { commentId, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/comment/${encodeURIComponent(commentId)}/properties`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Removes the property from the comment identified by the key or by the id.\n     * Ths user removing the property is required to have permissions to administer the comment.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#comment/{commentId}/properties-deleteProperty\n     * @param options Request options.\n     */\n    async deleteProperty(options) {\n        const { commentId, propertyKey, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/comment/${encodeURIComponent(commentId)}/properties/${encodeURIComponent(propertyKey)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Sets the value of the specified comment's property.\n     * You can use this resource to store a custom data against the comment identified by the key or by the id.\n     * The user who stores the data is required to have permissions to administer the comment.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#comment/{commentId}/properties-setProperty\n     * @param options Request options.\n     */\n    async setProperty(options) {\n        const { commentId, propertyKey, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/comment/${encodeURIComponent(commentId)}/properties/${encodeURIComponent(propertyKey)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Sets the value of the specified comment's property.\n     * You can use this resource to store a custom data against the comment identified by the key or by the id.\n     * The user who stores the data is required to have permissions to administer the comment.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#comment/{commentId}/properties-setProperty\n     * @param options Request options.\n     */\n    async getProperty(options) {\n        const { commentId, propertyKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/comment/${encodeURIComponent(commentId)}/properties/${encodeURIComponent(propertyKey)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass AttachmentGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Metadata = new AttachmentMetadataGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns the meta-data for an attachment, including the URI of the actual attached file.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#attachment-getAttachment\n     * @param options Request options.\n     */\n    async getAttachment(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/attachment/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Remove an attachment from an issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#attachment-removeAttachment\n     * @param options Request options.\n     */\n    async removeAttachment(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/attachment/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Add one or more attachments to an issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue/{issueIdOrKey}/attachments-addAttachment\n     * @param options Request options.\n     */\n    async addAttachment(options) {\n        const { issueIdOrKey, body, headers, errorStrategy } = options;\n        const formBody = new FormData();\n        formBody.setBufferImplementation(this.implementation);\n        body.forEach(x => {\n            formBody.append('file', new Blob(this.implementation, [x.content], {}), x.fileName);\n        });\n        const bodyBlob = formBody.getBlob();\n        const request = new Request('POST', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/attachments`, constructHeaders(bodyBlob, headers), bodyBlob);\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass AttachmentMetadataGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns the meta information for an attachments, specifically if they are enabled and the maximum upload size allowed.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#attachment-getAttachmentMeta\n     * @param options Request options.\n     */\n    async getMetadata(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/attachment/meta', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass FieldGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Custom = new CustomGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns a list of all fields, both System and Custom.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#field-getFields\n     * @param options Request options.\n     */\n    async getFields(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/field', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass CustomGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Option = new OptionGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#customFields-getCustomFields\n     * @param options Request options.\n     */\n    async getFields(options) {\n        const { maxResults, startAt, search, projectIds, screenIds, types, headers, errorStrategy } = options ?? {};\n        const queryParams = { maxResults, startAt, search, projectIds, screenIds, types };\n        const request = new Request('GET', constructUrl('/rest/api/2/customFields', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass OptionGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns a full representation of the Custom Field Option that has the given id.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#customFieldOption-getCustomFieldOption\n     * @param options Request options.\n     */\n    async getOption(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/customFieldOption/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass LinkGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Type = new LinkTypeGroup(implementation, this.getGlobalErrorStrategy);\n        this.Remote = new RemoteGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLink-linkIssues\n     * @param options Request options.\n     */\n    async createLink(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/issueLink', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Returns an issue link with the specified id.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLink-getIssueLink\n     * @param options Request options.\n     */\n    async getLink(options) {\n        const { linkId, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issueLink/${encodeURIComponent(linkId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLink-deleteIssueLink\n     * @param options Request options.\n     */\n    async deleteLink(options) {\n        const { linkId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/issueLink/${encodeURIComponent(linkId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass LinkTypeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLinkType-getIssueLinkTypes\n     * @param options Request options.\n     */\n    async getTypes(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/issueLinkType', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns for a given issue link type id all information about this issue link type.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLinkType-getIssueLinkType\n     * @param options Request options.\n     */\n    async getType(options) {\n        const { issueLinkTypeId, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issueLinkType/${encodeURIComponent(issueLinkTypeId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Create a new issue link type.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLinkType-createIssueLinkType\n     * @param options Request options.\n     */\n    async createType(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/issueLinkType/', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Delete the specified issue link type.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLinkType-deleteIssueLinkType\n     * @param options Request options.\n     */\n    async deleteType(options) {\n        const { issueLinkTypeId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/issueLinkType/${encodeURIComponent(issueLinkTypeId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Update the specified issue link type.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issueLinkType-updateIssueLinkType\n     * @param options Request options.\n     */\n    async updateType(options) {\n        const { issueLinkTypeId, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/issueLinkType/${encodeURIComponent(issueLinkTypeId)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass RemoteGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * A REST sub-resource representing the remote issue links on the issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getRemoteIssueLinks\n     * @param options Request options.\n     */\n    async getLinks(options) {\n        const { issueIdOrKey, globalId, headers, errorStrategy } = options;\n        const queryParams = { globalId };\n        const request = new Request('GET', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/remotelink`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-createOrUpdateRemoteIssueLink\n     * @param options Request options.\n     */\n    async createOrUpdateLink(options) {\n        const { issueIdOrKey, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/remotelink`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Delete the remote issue link with the given global id on the issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-deleteRemoteIssueLinkByGlobalId\n     * @param options Request options.\n     */\n    async deleteLinkByGlobalId(options) {\n        const { issueIdOrKey, globalId, headers, errorStrategy } = options;\n        const queryParams = { globalId };\n        const request = new Request('DELETE', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/remotelink`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Get the remote issue link with the given id on the issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getRemoteIssueLinkById\n     * @param options Request options.\n     */\n    async getLink(options) {\n        const { issueIdOrKey, linkId, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/remotelink/${encodeURIComponent(linkId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Updates a remote issue link from a JSON representation. Any fields not provided are set to null.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-updateRemoteIssueLink\n     * @param options Request options.\n     */\n    async updateLink(options) {\n        const { issueIdOrKey, linkId, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/remotelink/${encodeURIComponent(linkId)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Delete the remote issue link with the given id on the issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-deleteRemoteIssueLinkById\n     * @param options Request options.\n     */\n    async deleteLink(options) {\n        const { issueIdOrKey, linkId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/remotelink/${encodeURIComponent(linkId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass MetadataGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns the meta data for editing an issue. 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getEditIssueMeta\n     * @param options Request options.\n     */\n    async getEditMetadata(options) {\n        const { issueIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/editmeta`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * 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.\n     * 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.\n     * Fields will only be returned if expand=projects.issuetypes.fields.\n     * The results can be filtered by project and/or issue type, given by the query params.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getCreateIssueMeta\n     * @param options Request options.\n     * @deprecated\n     */\n    async getCreateMetadata(options) {\n        const { expand, issuetypeIds, issuetypeNames, projectIds, projectKeys, headers, errorStrategy } = options ?? {};\n        const queryParams = { expand, issuetypeIds, issuetypeNames, projectIds, projectKeys };\n        const request = new Request('GET', constructUrl('/rest/api/2/issue/createmeta', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass PriorityGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Scheme = new IssuePrioritySchemeGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns a list of all issue priorities.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#priority-getPriorities\n     * @param options Request options.\n     */\n    async getPriorities(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/priority', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns an issue priority.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#priority-getPriority\n     * @param options Request options.\n     */\n    async getPriority(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/priority/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass IssuePrioritySchemeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Creates new priority scheme.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#priorityschemes-createPriorityScheme\n     * @param options Request options.\n     */\n    async createScheme(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/priorityschemes', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns all priority schemes.\n     * All project keys associated with the priority scheme will only be returned if additional query parameter is provided expand=schemes.projectKeys.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#priorityschemes-getPrioritySchemes\n     * @param options Request options.\n     */\n    async getSchemes(options) {\n        const { startAt, maxResults, expand, headers, errorStrategy } = options ?? {};\n        const queryParams = { startAt, maxResults, expand };\n        const request = new Request('GET', constructUrl('/rest/api/2/priorityschemes', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Deletes a priority scheme.\n     * All projects using deleted scheme will use default priority scheme afterwards. Default priority scheme can't be deleted.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#priorityschemes-deletePriorityScheme\n     * @param options Request options.\n     */\n    async deleteScheme(options) {\n        const { schemeId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/priorityschemes/${encodeURIComponent(schemeId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Updates a priority scheme.\n     * Update will be rejected if issue migration would be needed as a result of scheme update.\n     * Priority scheme update with migration is possible from the UI.\n     * All project keys associated with the priority scheme will only be returned if additional query parameter is provided expand=projectKeys.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#priorityschemes-updatePriorityScheme\n     * @param options Request options.\n     */\n    async updateScheme(options) {\n        const { expand, schemeId, body, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('PUT', constructUrl(`/rest/api/2/priorityschemes/${encodeURIComponent(schemeId)}`, queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Gets a full representation of a priority scheme in JSON format.\n     * All project keys associated with the priority scheme will only be returned if additional query parameter is provided expand=projectKeys.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#priorityschemes-getPriorityScheme\n     * @param options Request options.\n     */\n    async getScheme(options) {\n        const { expand, schemeId, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/priorityschemes/${encodeURIComponent(schemeId)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass IssuePropertyGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns the keys of all properties for the issue identified by the key or by the id.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issue/{issueIdOrKey}/properties-getPropertiesKeys\n     * @param options Request options.\n     */\n    async getPropertyKeys(options) {\n        const { issueIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/properties`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Removes the property from the issue identified by the key or by the id.\n     * Ths user removing the property is required to have permissions to edit the issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issue/{issueIdOrKey}/properties-deleteProperty\n     * @param options Request options.\n     */\n    async deleteProperty(options) {\n        const { issueIdOrKey, propertyKey, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/properties/${encodeURIComponent(propertyKey)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Sets the value of the specified issue's property.\n     * You can use this resource to store a custom data against the issue identified by the key or by the id.\n     * The user who stores the data is required to have permissions to edit the issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issue/{issueIdOrKey}/properties-setProperty\n     * @param options Request options.\n     */\n    async setProperty(options) {\n        const { issueIdOrKey, propertyKey, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/properties/${encodeURIComponent(propertyKey)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Returns the value of the property with a given key from the issue identified by the key or by the id.\n     * The user who retrieves the property is required to have permissions to read the issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issue/{issueIdOrKey}/properties-getProperty\n     * @param options Request options.\n     */\n    async getProperty(options) {\n        const { issueIdOrKey, propertyKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/properties/${encodeURIComponent(propertyKey)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ResolutionGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns a list of all resolutions.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#resolution-getResolutions\n     * @param options Request options.\n     */\n    async getResolutions(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/resolution', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a resolution.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#resolution-getResolution\n     * @param options Request options.\n     */\n    async getResolution(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/resolution/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass SearchGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns a resolution.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#resolution-getResolution\n     * @param options Request options.\n     */\n    async searchByJql(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/search', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass SubTaskGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns an issue's subtask list.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue/{issueIdOrKey}/subtask-getSubTasks\n     * @param options Request options.\n     */\n    async getSubTasks(options) {\n        const { issueIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/subtask`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue/{issueIdOrKey}/subtask-canMoveSubTask\n     * @param options Request options.\n     */\n    async canMoveSubTask(options) {\n        const { issueIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/subtask/move`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Reorders an issue's subtasks by moving the subtask at index \"from\" to index \"to\".\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue/{issueIdOrKey}/subtask-moveSubTasks\n     * @param options Request options.\n     */\n    async moveSubTasks(options) {\n        const { issueIdOrKey, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/subtask/move`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass TransitionGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Reorders an issue's subtasks by moving the subtask at index \"from\" to index \"to\".\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue/{issueIdOrKey}/subtask-moveSubTasks\n     * @param options Request options.\n     */\n    async getTransitions(options) {\n        const { issueIdOrKey, headers, expand, transitionId, errorStrategy } = options;\n        const queryParams = { expand, transitionId };\n        const request = new Request('GET', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/transitions`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Perform a transition on an issue. When performing the transition you can update or set other issue fields.\n     * The fields that can be set on transtion, in either the fields parameter or the update parameter can be determined using the /rest/api/2/issue/{issueIdOrKey}/transitions?expand=transitions.fields 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. The updateHistory param adds the issues retrieved by this method to the current user's issue history, if set to true (by default, the issue history does not include issues retrieved via the REST API). You can view the issue history in the JIRA application, via the Issues dropdown or by using the lastViewed JQL field in an issue search.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-doTransition\n     * @param options Request options.\n     */\n    async performTransition(options) {\n        const { issueIdOrKey, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/transitions`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass TypeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Scheme = new IssueTypeSchemeGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns a list of all issue types visible to the user.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-getIssueAllTypes\n     * @param options Request options.\n     */\n    async getTypes(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/issuetype', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Creates an issue type from a JSON representation and adds the issue newly created issue type to the default issue type scheme.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-createIssueType\n     * @param options Request options.\n     */\n    async createType(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/issuetype', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a full representation of the issue type that has the given id.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-getIssueType\n     * @param options Request options.\n     */\n    async getType(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issuetype/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * 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.\n     * You can determine the alternative issue types by calling the /rest/api/2/issuetype/{id}/alternatives resource.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-deleteIssueType\n     * @param options Request options.\n     */\n    async deleteType(options) {\n        const { id, alternativeIssueTypeId, headers, errorStrategy } = options;\n        const queryParams = { alternativeIssueTypeId };\n        const request = new Request('DELETE', constructUrl(`/rest/api/2/issuetype/${encodeURIComponent(id)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Updates the specified issue type from a JSON representation.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-updateIssueType\n     * @param options Request options.\n     */\n    async updateType(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/issuetype/${encodeURIComponent(id)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * 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.\n     * The suitable alternatives are issue types which are assigned to the same workflow, the same field configuration and the same screen scheme.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issuetype-getAlternativeIssueTypes\n     * @param options Request options.\n     */\n    async getAlternativeTypes(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issuetype/${encodeURIComponent(id)}/alternatives`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass IssueTypeSchemeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Project = new IssueTypeSchemeProjectGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Creates an issue type scheme from a JSON representation. (Admin required)\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-createIssueTypeScheme\n     * @param options Request options.\n     */\n    async createScheme(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/issuetypescheme', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a list of all issue type schemes visible to the user (must be admin).\n     * All issue types associated with the scheme will only be returned if an additional query parameter is provided: expand=schemes.issueTypes.\n     * Similarly, the default issue type associated with the scheme (if one exists) will only be returned if additional an query parameter is provided: expand=schemes.defaultIssueType.\n     * Note that both query parameters can be used together: expand=schemes.issueTypes,schemes.defaultIssueType.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-getAllIssueTypeSchemes\n     * @param options Request options.\n     */\n    async getSchemes(options) {\n        const { expand, headers, errorStrategy } = options ?? {};\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl('/rest/api/2/issuetypescheme', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a full representation of the issue type scheme that has the given id (must be admin).\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-getIssueTypeScheme\n     * @param options Request options.\n     */\n    async getScheme(options) {\n        const { schemeId, expand, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/issuetypescheme/${encodeURIComponent(schemeId)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Updates the specified issue type scheme from a JSON representation. (Admin required)\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-updateIssueTypeScheme\n     * @param options Request options.\n     */\n    async updateScheme(options) {\n        const { schemeId, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/issuetypescheme/${encodeURIComponent(schemeId)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Deletes the specified issue type scheme.\n     * Any projects associated with this IssueTypeScheme will be automatically associated with the global default IssueTypeScheme. (Admin required)\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-deleteIssueTypeScheme\n     * @param options Request options.\n     */\n    async deleteScheme(options) {\n        const { schemeId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/issuetypescheme/${encodeURIComponent(schemeId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass IssueTypeSchemeProjectGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Perform a transition on an issue. When performing the transition you can update or set other issue fields.\n     * The fields that can be set on transtion, in either the fields parameter or the update parameter can be determined using the /rest/api/2/issue/{issueIdOrKey}/transitions?expand=transitions.fields 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. The updateHistory param adds the issues retrieved by this method to the current user's issue history, if set to true (by default, the issue history does not include issues retrieved via the REST API). You can view the issue history in the JIRA application, via the Issues dropdown or by using the lastViewed JQL field in an issue search.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-doTransition\n     * @param options Request options.\n     */\n    async addAssociations(options) {\n        const { schemeId, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/issuetypescheme/${encodeURIComponent(schemeId)}/associations`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * For the specified issue type scheme, returns all of the associated projects. (Admin required)\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-getAssociatedProjects\n     * @param options Request options.\n     */\n    async getAssociations(options) {\n        const { schemeId, expand, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/issuetypescheme/${encodeURIComponent(schemeId)}/associations`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Associates the given projects with the specified issue type scheme.\n     * Any existing project-associations the issue type scheme has will be overwritten. (Admin required)\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-setProjectAssociationsForScheme\n     * @param options Request options.\n     */\n    async setAssociations(options) {\n        const { schemeId, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/issuetypescheme/${encodeURIComponent(schemeId)}/associations`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Removes all project associations for the specified issue type scheme.\n     * These projects revert to an association with the default/global issue type scheme.(Admin required)\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-removeAllProjectAssociations\n     * @param options Request options.\n     */\n    async removeAssociations(options) {\n        const { schemeId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/issuetypescheme/${encodeURIComponent(schemeId)}/associations`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * For the specified issue type scheme, removes the given project association.\n     * This project reverts to an association with the default/global issue type scheme.(Admin required)\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuetypescheme-removeProjectAssociation\n     * @param options Request options.\n     */\n    async removeAssociation(options) {\n        const { schemeId, projIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/issuetypescheme/${encodeURIComponent(schemeId)}/associations/${encodeURIComponent(projIdOrKey)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass VoteGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Remove your vote from an issue. (i.e. \"unvote\").\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-removeVote\n     * @param options Request options.\n     */\n    async removeVote(options) {\n        const { issueIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/votes`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Cast your vote in favour of an issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-addVote\n     * @param options Request options.\n     */\n    async addVote(options) {\n        const { issueIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/votes`, constructHeaders(null, headers), null);\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n    * A REST sub-resource representing the voters on the issue.\n    * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getVotes\n    * @param options Request options.\n    */\n    async getVotes(options) {\n        const { issueIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/votes`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass WatcherGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns the list of watchers for the issue with the given key.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getIssueWatchers\n     * @param options Request options.\n     */\n    async getWatchers(options) {\n        const { issueIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/watchers`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Adds a user to an issue's watcher list.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-addWatcher\n     * @param options Request options.\n     */\n    async addWatcher(options) {\n        const { issueIdOrKey, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/watchers`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Removes a user from an issue's watcher list.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-removeWatcher\n     * @param options Request options.\n     */\n    async removeWatcher(options) {\n        const { issueIdOrKey, username, headers, errorStrategy } = options;\n        const queryParams = { username };\n        const request = new Request('DELETE', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/watchers`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass WorklogGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns all work logs for an issue. Work logs won't be returned if the Log work field is hidden for the project.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getIssueWorklog\n     * @param options Request options.\n     */\n    async getWorklogs(options) {\n        const { issueIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/worklog`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Adds a new worklog entry to an issue.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-addWorklog\n     * @param options Request options.\n     */\n    async addWorklog(options) {\n        const { issueIdOrKey, body, headers, adjustEstimate, newEstimate, reduceBy, errorStrategy } = options;\n        const queryParams = { adjustEstimate, newEstimate, reduceBy };\n        const request = new Request('POST', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/worklog`, queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a specific worklog. The work log won't be returned if the Log work field is hidden for the project.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-getWorklog\n     * @param options Request options.\n     */\n    async getWorklog(options) {\n        const { issueIdOrKey, id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/worklog/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Updates an existing worklog entry. Fields possible for editing are: comment, visibility, started, timeSpent and timeSpentSeconds. Either timeSpent or timeSpentSeconds can be set. Fields which are not set will not be updated. For a request to be valid, it has to have at least one field change.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-updateWorklog\n     * @param options Request options.\n     */\n    async updateWorklog(options) {\n        const { issueIdOrKey, id, body, headers, newEstimate, adjustEstimate, errorStrategy } = options;\n        const queryParams = { adjustEstimate, newEstimate };\n        const request = new Request('PUT', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/worklog/${encodeURIComponent(id)}`, queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Deletes an existing worklog entry.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#issue-deleteWorklog\n     * @param options Request options.\n     */\n    async deleteWorklog(options) {\n        const { issueIdOrKey, id, headers, adjustEstimate, newEstimate, increaseBy, errorStrategy } = options;\n        const queryParams = { adjustEstimate, newEstimate, increaseBy };\n        const request = new Request('DELETE', constructUrl(`/rest/api/2/issue/${encodeURIComponent(issueIdOrKey)}/worklog/${encodeURIComponent(id)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#worklog-getIdsOfWorklogsDeletedSince\n     * @param options Request options.\n     */\n    async getDeletedWorklogIds(options) {\n        const { since, headers, errorStrategy } = options ?? {};\n        const queryParams = { since };\n        const request = new Request('GET', constructUrl('/rest/api/2/worklog/deleted', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#worklog-getWorklogsForIds\n     * @param options Request options.\n     */\n    async getWorklogsForIds(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/worklog/list', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#worklog-getIdsOfWorklogsModifiedSince\n     * @param options Request options.\n     */\n    async getUpdatedWorklogIds(options) {\n        const { since, headers, errorStrategy } = options ?? {};\n        const queryParams = { since };\n        const request = new Request('GET', constructUrl('/rest/api/2/worklog/updated', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass IssueSecurityGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Scheme = new IssueSecuritySchemeGroup(implementation, this.getGlobalErrorStrategy);\n    }\n}\nclass IssueSecuritySchemeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns all issue security schemes that are defined.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuesecurityschemes-getIssueSecuritySchemes\n     * @param options Request options.\n     */\n    async getSchemes(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/issuesecurityschemes', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns the issue security scheme along with that are defined.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#issuesecurityschemes-getIssueSecurityScheme\n     * @param options Request options.\n     */\n    async getScheme(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/issuesecurityschemes/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass IssueNotificationGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Scheme = new IssueNotificationSchemeGroup(implementation, this.getGlobalErrorStrategy);\n    }\n}\nclass IssueNotificationSchemeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns a paginated list of notification schemes.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#notificationscheme-getNotificationSchemes\n     * @param options Request options.\n     */\n    async getSchemes(options) {\n        const { startAt, maxResults, expand, headers, errorStrategy } = options ?? {};\n        const queryParams = { startAt, maxResults, expand };\n        const request = new Request('GET', constructUrl('/rest/api/2/notificationscheme', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a full representation of the notification scheme for the given id.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#notificationscheme-getNotificationScheme\n     * @param options Request options.\n     */\n    async getScheme(options) {\n        const { id, expand, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/notificationscheme/${encodeURIComponent(id)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ApplicationGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Role = new ApplicationRoleGroup(implementation, this.getGlobalErrorStrategy);\n    }\n}\nclass ApplicationRoleGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns all ApplicationRoles in the system.\n     * Will also return an ETag header containing a version hash of the collection of ApplicationRoles.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#applicationrole-getAll\n     * @param options Request options.\n     */\n    async getRoles(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/applicationrole', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns the ApplicationRole with passed key if it exists.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#applicationrole-get\n     * @param options Request options.\n     */\n    async getRole(options) {\n        const { key, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/applicationrole/${encodeURIComponent(key)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Updates the ApplicationRole with the passed data.\n     * Only the groups and default groups setting of the role may be updated.\n     * Requests to change the key or the name of the role will be silently ignored.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#applicationrole-put\n     * @param options Request options.\n     */\n    async updateRole(options) {\n        const { key, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/applicationrole/${encodeURIComponent(key)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass WorkflowGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Status = new WorkflowStatusGroup(implementation, this.getGlobalErrorStrategy);\n        this.Scheme = new WorkflowSchemeGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns all workflows.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#workflow-getAllWorkflows\n     * @param options Request options.\n     */\n    async getWorkflows(options) {\n        const { workflowName, headers, errorStrategy } = options ?? {};\n        const queryParams = { workflowName };\n        const request = new Request('GET', constructUrl('/rest/api/2/workflow', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass WorkflowStatusGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Category = new StatusCategoryGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns a list of all statuses.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#status-getStatuses\n     * @param options Request options.\n     */\n    async getStatuses(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/status', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a full representation of the Status having the given id or name.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#status-getStatus\n     * @param options Request options.\n     */\n    async getStatus(options) {\n        const { idOrName, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/status/${encodeURIComponent(idOrName)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass StatusCategoryGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns a list of all status categories.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#statuscategory-getStatusCategories\n     * @param options Request options.\n     */\n    async getCategories(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/statuscategory', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a list of all status categories.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#statuscategory-getStatusCategories\n     * @param options Request options.\n     */\n    async getCategory(options) {\n        const { idOrKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/statuscategory/${encodeURIComponent(idOrKey)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass WorkflowSchemeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Create a new workflow scheme.\n     * The body contains a representation of the new scheme. Values not passed are assumed to be set to their defaults.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#workflowscheme-createScheme\n     * @param options Request options.\n     */\n    async createScheme(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/workflowscheme', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns the requested workflow scheme to the caller.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#workflowscheme-getById\n     * @param options Request options.\n     */\n    async getScheme(options) {\n        const { id, returnDraftIfExists, headers, errorStrategy } = options;\n        const queryParams = { returnDraftIfExists };\n        const request = new Request('GET', constructUrl(`/rest/api/2/workflowscheme/${encodeURIComponent(id)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns the requested workflow scheme to the caller.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#workflowscheme-getById\n     * @param options Request options.\n     */\n    async deleteScheme(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/workflowscheme/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Update the passed workflow scheme.\n     * The body of the request is a representation of the workflow scheme.\n     * Values not passed are assumed to indicate no change for that field.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#workflowscheme-update\n     * @param options Request options.\n     */\n    async updateScheme(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/workflowscheme/${encodeURIComponent(id)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass DashboardGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns a list of all dashboards, optionally filtering them.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#dashboard-list\n     * @param options Request options.\n     */\n    async getDashboards(options) {\n        const { filter, startAt, maxResults, headers, errorStrategy } = options ?? {};\n        const queryParams = { filter, startAt, maxResults };\n        const request = new Request('GET', constructUrl('/rest/api/2/dashboard', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a single dashboard.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#dashboard-getDashboard\n     * @param options Request options.\n     */\n    async getDashboard(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/dashboard/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass FilterGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Column = new FilterColumnGroup(implementation, this.getGlobalErrorStrategy);\n        this.Share = new FilterShareGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns a filter given an id.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getFilter\n     * @param options Request options.\n     */\n    async getFilter(options) {\n        const { id, expand, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/filter/${encodeURIComponent(id)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns the favourite filters of the logged-in user.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getFavouriteFilters\n     * @param options Request options.\n     */\n    async getMyFavouriteFilters(options) {\n        const { expand, headers, errorStrategy } = options ?? {};\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl('/rest/api/2/filter/favourite', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Creates a new filter, and returns newly created filter. Currently sets permissions just using the users default sharing permissions.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-createFilter\n     * @param options Request options.\n     */\n    async createFilter(options) {\n        const { expand, body, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('POST', constructUrl('/rest/api/2/filter', queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Updates an existing filter, and returns its new value.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-editFilter\n     * @param options Request options.\n     */\n    async editFilter(options) {\n        const { expand, id, body, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('PUT', constructUrl(`/rest/api/2/filter/${encodeURIComponent(id)}`, queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Delete a filter.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-deleteFilter\n     * @param options Request options.\n     */\n    async deleteFilter(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/filter/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass FilterColumnGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns the default columns for the given filter. Currently logged in user will be used as the user making such request.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-defaultColumns\n     * @param options Request options.\n     */\n    async getDefaultColumns(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/filter/${encodeURIComponent(id)}/columns`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Sets the default columns for the given filter.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-setColumns\n     * @param options Request options.\n     */\n    async setDefaultColumns(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/filter/${encodeURIComponent(id)}/columns`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Resets the columns for the given filter such that the filter no longer has its own column config.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-resetColumns\n     * @param options Request options.\n     */\n    async resetColumns(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/filter/${encodeURIComponent(id)}/columns`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass FilterShareGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Permission = new SharePermissionGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns the default share scope of the logged-in user.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getDefaultShareScope\n     * @param options Request options.\n     */\n    async getShareScope(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/filter/defaultShareScope', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Sets the default share scope of the logged-in user. Available values are GLOBAL and PRIVATE.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-setDefaultShareScope\n     * @param options Request options.\n     */\n    async setShareScope(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('PUT', '/rest/api/2/filter/defaultShareScope', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass SharePermissionGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns all share permissions of the given filter.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getSharePermissions\n     * @param options Request options.\n     */\n    async getSharePermissions(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/filter/${encodeURIComponent(id)}/permission`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Adds a share permissions to the given filter. Adding a global permission removes all previous permissions from the filter.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-addSharePermission\n     * @param options Request options.\n     */\n    async addSharePermission(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/filter/${encodeURIComponent(id)}/permission`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a single share permission of the given filter.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getSharePermission\n     * @param options Request options.\n     */\n    async getSharePermission(options) {\n        const { id, permissionId, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/filter/${encodeURIComponent(id)}/permission/${encodeURIComponent(permissionId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Removes a share permissions from the given filter.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#filter-getSharePermission\n     * @param options Request options.\n     */\n    async deleteSharePermission(options) {\n        const { id, permissionId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/filter/${encodeURIComponent(id)}/permission/${encodeURIComponent(permissionId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass GroupGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.User = new GroupUserGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Creates a group by given group parameter.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#group-createGroup\n     * @param options Request options.\n     */\n    async createGroup(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/group', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Deletes a group by given group parameter.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#group-removeGroup\n     * @param options Request options.\n     */\n    async removeGroup(options) {\n        const { groupname, swapGroup, headers, errorStrategy } = options ?? {};\n        const queryParams = { groupname, swapGroup };\n        const request = new Request('DELETE', constructUrl('/rest/api/2/group', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass GroupUserGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * This resource returns a paginated 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#group-getUsersFromGroup\n     * @param options Request options.\n     */\n    async getUsers(options) {\n        const { groupname, includeInactiveUsers, maxResults, startAt, headers, errorStrategy } = options;\n        const queryParams = { groupname, includeInactiveUsers, maxResults, startAt };\n        const request = new Request('GET', constructUrl('/rest/api/2/group/member', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Adds given user to a group.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#group-addUserToGroup\n     * @param options Request options.\n     */\n    async addUsers(options) {\n        const { groupname, body, headers, errorStrategy } = options;\n        const queryParams = { groupname };\n        const request = new Request('POST', constructUrl('/rest/api/2/group/user', queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Removes given user from a group.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#group-removeUserFromGroup\n     * @param options Request options.\n     */\n    async removeUsers(options) {\n        const { groupname, username, headers, errorStrategy } = options ?? {};\n        const queryParams = { groupname, username };\n        const request = new Request('DELETE', constructUrl('/rest/api/2/group/user', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass InstanceGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns an application property.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#application-properties-getProperty\n     * @param options Request options.\n     */\n    async getApplicationProperty(options) {\n        const { key, keyFilter, permissionLevel, headers, errorStrategy } = options ?? {};\n        const queryParams = { key, keyFilter, permissionLevel };\n        const request = new Request('GET', constructUrl('/rest/api/2/application-properties', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Modify an application property via PUT. The \"value\" field present in the PUT will override the existing value.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#application-properties-setPropertyViaRestfulTable\n     * @param options Request options.\n     */\n    async setApplicationProperty(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/application-properties/${encodeURIComponent(id)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns the properties that are displayed on the \"General Configuration > Advanced Settings\" page.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#application-properties-getAdvancedSettings\n     * @param options Request options.\n     */\n    async getAdvancedSettings(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/application-properties/advanced-settings', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#configuration-getConfiguration\n     * @param options Request options.\n     */\n    async getConfiguration(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/configuration', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns general information about the current JIRA server.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#serverInfo-getServerInfo\n     * @param options Request options.\n     */\n    async getInfo(options) {\n        const { headers, errorStrategy, doHealthCheck } = options ?? {};\n        const queryParams = { doHealthCheck };\n        const request = new Request('GET', constructUrl('/rest/api/2/serverInfo', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass MyselfGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Sets preference of the currently logged in user.\n     * Preference key must be provided as input parameters (key).\n     * Value must be provided as post body. If key or value parameter is not provided - status code 404.\n     * If preference is set - status code 204.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#mypreferences-setPreference\n     * @param options Request options.\n     */\n    async setPreference(options) {\n        const { key, body, headers, errorStrategy } = options;\n        const queryParams = { key };\n        const request = new Request('PUT', constructUrl('/rest/api/2/mypreferences', queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Removes preference of the currently logged in user. Preference key must be provided as input parameters (key).\n     * If key parameter is not provided or wrong - status code 404.\n     * If preference is unset - status code 204.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#mypreferences-removePreference\n     * @param options Request options.\n     */\n    async removePreference(options) {\n        const { key, headers, errorStrategy } = options;\n        const queryParams = { key };\n        const request = new Request('DELETE', constructUrl('/rest/api/2/mypreferences', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Returns preference of the currently logged in user.\n     * Preference key must be provided as input parameter (key).\n     * The value is returned exactly as it is. If key parameter is not provided or wrong - status code 404.\n     * If value is found - status code 200.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#mypreferences-getPreference\n     * @param options Request options.\n     */\n    async getPreference(options) {\n        const { key, headers, errorStrategy } = options;\n        const queryParams = { key };\n        const request = new Request('GET', constructUrl('/rest/api/2/mypreferences', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns currently logged in user.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#myself-getUser\n     * @param options Request options.\n     */\n    async getCurrentUser(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/myself', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass PermissionGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Scheme = new PermissionSchemeGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns all permissions in the system and whether the currently logged in user has them.\n     * You can optionally provide a specific context to get permissions for (projectKey OR projectId OR issueKey OR issueId)\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#-getPermissions\n     * @param options Request options.\n     */\n    async getMyPermissions(options) {\n        const { projectId, projectKey, issueId, issueKey, headers, errorStrategy } = options ?? {};\n        const queryParams = { projectId, projectKey, issueId, issueKey };\n        const request = new Request('GET', constructUrl('/rest/api/2/mypermissions', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns all permissions that are present in the JIRA instance - Global, Project and the global ones added by plugins\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#-getAllPermissions\n     * @param options Request options.\n     */\n    async getPermissions(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/permissions', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass PermissionSchemeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Attribute = new PermissionSchemeAttributeGroup(implementation, this.getGlobalErrorStrategy);\n        this.Grant = new PermissionSchemeGrantGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns a list of all permission schemes.\n     * By default only shortened beans are returned.\n     * If you want to include permissions of all the schemes, then specify the permissions expand parameter.\n     * Permissions will be included also if you specify any other expand parameter.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-getPermissionSchemes\n     * @param options Request options.\n     */\n    async getSchemes(options) {\n        const { expand, headers, errorStrategy } = options ?? {};\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl('/rest/api/2/permissionscheme', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a list of all permission schemes.\n     * By default only shortened beans are returned.\n     * If you want to include permissions of all the schemes, then specify the permissions expand parameter.\n     * Permissions will be included also if you specify any other expand parameter.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-getPermissionSchemes\n     * @param options Request options.\n     */\n    async createScheme(options) {\n        const { expand, body, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('POST', constructUrl('/rest/api/2/permissionscheme', queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a permission scheme identified by the given id.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-getPermissionScheme\n     * @param options Request options.\n     */\n    async getScheme(options) {\n        const { expand, schemeId, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/permissionscheme/${encodeURIComponent(schemeId)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Deletes a permission scheme identified by the given id.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-deletePermissionScheme\n     * @param options Request options.\n     */\n    async deleteScheme(options) {\n        const { schemeId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/permissionscheme/${encodeURIComponent(schemeId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Updates a permission scheme.\n     * 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.\n     * Sending an empty list will remove all permission grants from the permission scheme.\n     * To update just the name and description, do not send permissions list at all.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-updatePermissionScheme\n     * @param options Request options.\n     */\n    async updateScheme(options) {\n        const { schemeId, expand, body, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('PUT', constructUrl(`/rest/api/2/permissionscheme/${encodeURIComponent(schemeId)}`, queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass PermissionSchemeAttributeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns scheme attribute.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-getSchemeAttribute\n     * @param options Request options.\n     */\n    async getAttribute(options) {\n        const { permissionSchemeId, attributeKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/permissionscheme/${encodeURIComponent(permissionSchemeId)}/attribute/${encodeURIComponent(attributeKey)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass PermissionSchemeGrantGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns all permission grants of the given permission scheme.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-getPermissionSchemeGrants\n     * @param options Request options.\n     */\n    async getGrants(options) {\n        const { schemeId, expand, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/permissionscheme/${encodeURIComponent(schemeId)}/permission`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Creates a permission grant in a permission scheme.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-createPermissionGrant\n     * @param options Request options.\n     */\n    async createGrant(options) {\n        const { schemeId, expand, body, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('POST', constructUrl(`/rest/api/2/permissionscheme/${encodeURIComponent(schemeId)}/permission`, queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Deletes a permission grant from a permission scheme.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-deletePermissionSchemeEntity\n     * @param options Request options.\n     */\n    async deleteGrant(options) {\n        const { schemeId, permissionId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/permissionscheme/${encodeURIComponent(schemeId)}/permission/${encodeURIComponent(permissionId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Returns a permission grant identified by the given id.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#permissionscheme-getPermissionSchemeGrant\n     * @param options Request options.\n     */\n    async getGrant(options) {\n        const { schemeId, permissionId, expand, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/permissionscheme/${encodeURIComponent(schemeId)}/permission/${encodeURIComponent(permissionId)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ProjectGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Component = new ComponentGroup(implementation, this.getGlobalErrorStrategy);\n        this.Role = new ProjectRoleGroup(implementation, this.getGlobalErrorStrategy);\n        this.Type = new ProjectTypeGroup(implementation, this.getGlobalErrorStrategy);\n        this.Validation = new ProjectValidationGroup(implementation, this.getGlobalErrorStrategy);\n        this.Version = new ProjectVersionGroup(implementation, this.getGlobalErrorStrategy);\n        this.Issue = new ProjectIssueGroup(implementation, this.getGlobalErrorStrategy);\n        this.Notification = new ProjectNotificationGroup(implementation, this.getGlobalErrorStrategy);\n        this.Permission = new ProjectPermissionGroup(implementation, this.getGlobalErrorStrategy);\n        this.Priority = new ProjectPriorityGroup(implementation, this.getGlobalErrorStrategy);\n        this.Security = new ProjectSecurityGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getAllProjects\n     * @param options Request options.\n     */\n    async getProjects(options) {\n        const { expand, includeArchived, recent, headers, errorStrategy } = options ?? {};\n        const queryParams = { expand, includeArchived, recent };\n        const request = new Request('GET', constructUrl('/rest/api/2/project', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Creates a new project.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-createProject\n     * @param options Request options.\n     */\n    async createProject(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/project', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Contains a full representation of a project in JSON format.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getProject\n     * @param options Request options.\n     */\n    async getProject(options) {\n        const { projectIdOrKey, headers, expand, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Contains a full representation of a project in JSON format.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getProject\n     * @param options Request options.\n     */\n    async updateProject(options) {\n        const { projectIdOrKey, body, headers, expand, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('PUT', constructUrl(`/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}`, queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Deletes a project.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-deleteProject\n     * @param options Request options.\n     */\n    async deleteProject(options) {\n        const { projectIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Archives a project. Only for DC.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-archiveProject\n     * @param options Request options.\n     */\n    async archiveProject(options) {\n        const { projectIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/archive`, constructHeaders(null, headers), null);\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Contains a full representation of a the specified project's components.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getProjectComponents\n     * @param options Request options.\n     */\n    async getComponents(options) {\n        const { projectIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/components`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Contains a full representation of a the specified project's components.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getProjectComponents\n     * @param options Request options.\n     */\n    async restoreProject(options) {\n        const { projectIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/restore`, constructHeaders(null, headers), null);\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Get all issue types with valid status values for a project.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getAllStatuses\n     * @param options Request options.\n     */\n    async getStatuses(options) {\n        const { projectIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/statuses`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Updates the type of a project.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-updateProjectType\n     * @param options Request options.\n     */\n    async updateProjectType(options) {\n        const { projectIdOrKey, newProjectTypeKey, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/type/${encodeURIComponent(newProjectTypeKey)}`, constructHeaders(null, headers), null);\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns all versions for the specified project. Results are paginated.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getProjectVersionsPaginated\n     * @param options Request options.\n     */\n    async getVersionsPaginated(options) {\n        const { projectIdOrKey, headers, expand, maxResults, orderBy, startAt, errorStrategy } = options;\n        const queryParams = { expand, maxResults, orderBy, startAt };\n        const request = new Request('GET', constructUrl(`/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/version`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Contains a full representation of a the specified project's versions.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project-getProjectVersions\n     * @param options Request options.\n     */\n    async getVersions(options) {\n        const { projectIdOrKey, headers, expand, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/versions`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ComponentGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Create a component via POST.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#component-createComponent\n     * @param options Request options.\n     */\n    async createComponent(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/component', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a project component.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#component-getComponent\n     * @param options Request options.\n     */\n    async getComponent(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/component/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Modify a component via PUT. If leadUserName is an empty string (\"\") the component lead will be removed.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#component-updateComponent\n     * @param options Request options.\n     */\n    async updateComponent(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/component/${encodeURIComponent(id)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Delete a project component.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#component-delete\n     * @param options Request options.\n     */\n    async deleteComponent(options) {\n        const { id, moveIssuesTo, headers, errorStrategy } = options;\n        const queryParams = { moveIssuesTo };\n        const request = new Request('DELETE', constructUrl(`/rest/api/2/component/${encodeURIComponent(id)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Returns counts of issues related to this component.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#component-getComponentRelatedIssues\n     * @param options Request options.\n     */\n    async getRelatedIssueCount(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/component/${encodeURIComponent(id)}/relatedIssueCounts`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ProjectRoleGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Actor = new RoleActorGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns all roles in the given project Id or key, with links to full details on each role.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/{projectIdOrKey}/role-getProjectRoles\n     * @param options Request options.\n     */\n    async getRoles(options) {\n        const { projectIdOrKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/role`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns the details for a given project role in a project.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/{projectIdOrKey}/role-getProjectRole\n     * @param options Request options.\n     */\n    async getRole(options) {\n        const { projectIdOrKey, id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/role/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass RoleActorGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Updates a project role to include the specified actors (users or groups).\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/{projectIdOrKey}/role-setActors\n     * @param options Request options.\n     */\n    async setActors(options) {\n        const { projectIdOrKey, id, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/role/${encodeURIComponent(id)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Adds an actor (user or group) to a project role.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/{projectIdOrKey}/role-addActorUsers\n     * @param options Request options.\n     */\n    async addUsers(options) {\n        const { projectIdOrKey, id, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/role/${encodeURIComponent(id)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Deletes actors (users or groups) from a project role.\n     * Delete a user from the role: /rest/api/2/project/{projectIdOrKey}/role/{roleId}?user={username}\n     * Delete a group from the role: /rest/api/2/project/{projectIdOrKey}/role/{roleId}?group={groupname}\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/{projectIdOrKey}/role-deleteActor\n     * @param options Request options.\n     */\n    async deleteActor(options) {\n        const { projectIdOrKey, id, headers, group, user, errorStrategy } = options;\n        const queryParams = { group, user };\n        const request = new Request('DELETE', constructUrl(`/rest/api/2/project/${encodeURIComponent(projectIdOrKey)}/role/${encodeURIComponent(id)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass ProjectSecurityGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns all security levels for the project that the current logged in user has access to.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#project/{projectKeyOrId}/securitylevel-getSecurityLevelsForProject\n     * @param options Request options.\n     */\n    async getLevels(options) {\n        const { projectKeyOrId, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/project/${encodeURIComponent(projectKeyOrId)}/securitylevel`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ProjectTypeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/type-getAllProjectTypes\n     * @param options Request options.\n     */\n    async getTypes(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/project/type', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns the project type with the given key.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/type-getProjectTypeByKey\n     * @param options Request options.\n     */\n    async getType(options) {\n        const { projectTypeKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/project/type/${encodeURIComponent(projectTypeKey)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#project/type-getAccessibleProjectTypeByKey\n     * @param options Request options.\n     */\n    async getAccessibleType(options) {\n        const { projectTypeKey, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/project/type/${encodeURIComponent(projectTypeKey)}/accessible`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ProjectValidationGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Validates a project key.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#projectvalidate-getProject\n     * @param options Request options.\n     */\n    async validateProjectKey(options) {\n        const { key, headers, errorStrategy } = options;\n        const queryParams = { key };\n        const request = new Request('GET', constructUrl('/rest/api/2/projectvalidate/key', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ProjectVersionGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Count = new VersionCountGroup(implementation, this.getGlobalErrorStrategy);\n        this.Remote = new ProjectVersionRemoteGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Create a version via POST.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-createVersion\n     * @param options Request options.\n     */\n    async createVersion(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/version', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Modify a version's sequence within a project.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-moveVersion\n     * @param options Request options.\n     */\n    async moveVersion(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/version/${encodeURIComponent(id)}/move`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a project version.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-getVersion\n     * @param options Request options.\n     */\n    async getVersion(options) {\n        const { id, expand, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/version/${encodeURIComponent(id)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-updateVersion\n     * @param options Request options.\n     */\n    async updateVersion(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/version/${encodeURIComponent(id)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Delete a project version.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-delete\n     * @param options Request options.\n     */\n    async deleteVersion(options) {\n        const { id, headers, moveAffectedIssuesTo, moveFixIssuesTo, errorStrategy } = options;\n        const queryParams = { moveAffectedIssuesTo, moveFixIssuesTo };\n        const request = new Request('DELETE', constructUrl(`/rest/api/2/version/${encodeURIComponent(id)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Merge versions.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-merge\n     * @param options Request options.\n     */\n    async mergeVersion(options) {\n        const { id, moveIssuesTo, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/version/${encodeURIComponent(id)}/mergeto/${encodeURIComponent(moveIssuesTo)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Delete a project version.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-delete\n     * @param options Request options.\n     */\n    async removeAndReplaceVersion(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/version/${encodeURIComponent(id)}/removeAndSwap`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass VersionCountGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns a bean containing the number of fixed in and affected issues for the given version.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-getVersionRelatedIssues\n     * @param options Request options.\n     */\n    async getVersionRelatedIssueCount(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/version/${encodeURIComponent(id)}/relatedIssueCounts`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns the number of unresolved issues for the given version\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#version-getVersionUnresolvedIssues\n     * @param options Request options.\n     */\n    async getVersionUnresolvedIssueCount(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/version/${encodeURIComponent(id)}/unresolvedIssueCount`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ProjectVersionRemoteGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns the remote version links associated with the given version ID.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-getRemoteVersionLinksByVersionId\n     * @param options Request options.\n     */\n    async getLinksById(options) {\n        const { versionId, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/version/${encodeURIComponent(versionId)}/remotelink`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Create a remote version link via POST.\n     * The link's global ID will be taken from the JSON payload if provided; otherwise, it will be generated.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-createOrUpdateRemoteVersionLink\n     * @param options Request options.\n     */\n    async createOrUpdateLinkById(options) {\n        const { versionId, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/version/${encodeURIComponent(versionId)}/remotelink`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Delete all remote version links for a given version ID.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-deleteRemoteVersionLinksByVersionId\n     * @param options Request options.\n     */\n    async deleteLinksById(options) {\n        const { versionId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/version/${encodeURIComponent(versionId)}/remotelink`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * A REST sub-resource representing a remote version link.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-getRemoteVersionLink\n     * @param options Request options.\n     */\n    async getLink(options) {\n        const { versionId, globalId, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/version/${encodeURIComponent(versionId)}/remotelink/${encodeURIComponent(globalId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Create a remote version link via POST.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-createOrUpdateRemoteVersionLink\n     * @param options Request options.\n     */\n    async createOrUpdateLink(options) {\n        const { versionId, globalId, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/version/${encodeURIComponent(versionId)}/remotelink/${encodeURIComponent(globalId)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Delete a specific remote version link with the given version ID and global ID.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-deleteRemoteVersionLink\n     * @param options Request options.\n     */\n    async deleteLink(options) {\n        const { versionId, globalId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/version/${encodeURIComponent(versionId)}/remotelink/${encodeURIComponent(globalId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Returns the remote version links for a given global ID.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#version-getRemoteVersionLinks\n     * @param options Request options.\n     */\n    async getLinks(options) {\n        const { globalId, headers, errorStrategy } = options;\n        const queryParams = { globalId };\n        const request = new Request('GET', constructUrl('/rest/api/2/version/remotelink', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ProjectIssueGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Security = new ProjectIssueSecurityGroup(implementation, this.getGlobalErrorStrategy);\n    }\n}\nclass ProjectIssueSecurityGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Scheme = new ProjectIssueSecuritySchemeGroup(implementation, this.getGlobalErrorStrategy);\n    }\n}\nclass ProjectIssueSecuritySchemeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Returns the issue security scheme for project.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#project/{projectKeyOrId}/issuesecuritylevelscheme-getIssueSecurityScheme\n     * @param options Request options.\n     */\n    async getScheme(options) {\n        const { projectKeyOrId, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/project/${encodeURIComponent(projectKeyOrId)}/issuesecuritylevelscheme`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ProjectNotificationGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Scheme = new ProjectNotificationSchemeGroup(implementation, this.getGlobalErrorStrategy);\n    }\n}\nclass ProjectNotificationSchemeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Gets a notification scheme associated with the project.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#project/{projectKeyOrId}/notificationscheme-getNotificationScheme\n     * @param options Request options.\n     */\n    async getScheme(options) {\n        const { projectKeyOrId, expand, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/project/${encodeURIComponent(projectKeyOrId)}/notificationscheme`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ProjectPermissionGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Scheme = new ProjectPermissionSchemeGroup(implementation, this.getGlobalErrorStrategy);\n    }\n}\nclass ProjectPermissionSchemeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Resource for associating permission schemes and projects.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#project/{projectKeyOrId}/permissionscheme-getAssignedPermissionScheme\n     * @param options Request options.\n     */\n    async getScheme(options) {\n        const { projectKeyOrId, expand, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/project/${encodeURIComponent(projectKeyOrId)}/permissionscheme`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ProjectPriorityGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Scheme = new ProjectPrioritySchemeGroup(implementation, this.getGlobalErrorStrategy);\n    }\n}\nclass ProjectPrioritySchemeGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Gets a full representation of a priority scheme in JSON format used by specified project.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#project/{projectKeyOrId}/priorityscheme-getAssignedPriorityScheme\n     * @param options Request options.\n     */\n    async getScheme(options) {\n        const { projectKeyOrId, expand, headers, errorStrategy } = options;\n        const queryParams = { expand };\n        const request = new Request('GET', constructUrl(`/rest/api/2/project/${encodeURIComponent(projectKeyOrId)}/priorityscheme`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ScreenGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Tab = new ScreenTabGroup(implementation, this.getGlobalErrorStrategy);\n        this.Field = new ScreenFieldGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Gets available fields for screen. i.e ones that haven't already been added.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-getFieldsToAdd\n     * @param options Request options.\n     */\n    async getFieldsToAdd(options) {\n        const { screenId, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/screens/${encodeURIComponent(screenId)}/availableFields`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Gets available field screens.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-getAllScreens\n     * @param options Request options.\n     */\n    async getScreens(options) {\n        const { startAt, maxResults, expand, search, headers, errorStrategy } = options ?? {};\n        const queryParams = { startAt, maxResults, expand, search };\n        const request = new Request('GET', constructUrl('/rest/api/2/screens', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass ScreenTabGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Creates tab for given screen.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-addTab\n     * @param options Request options.\n     */\n    async addTab(options) {\n        const { screenId, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/screens/${encodeURIComponent(screenId)}/tabs`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a list of all tabs for the given screen.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-getAllTabs\n     * @param options Request options.\n     */\n    async getTabs(options) {\n        const { screenId, projectKey, headers, errorStrategy } = options;\n        const queryParams = { projectKey };\n        const request = new Request('GET', constructUrl(`/rest/api/2/screens/${encodeURIComponent(screenId)}/tabs`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Renames tab on given screen.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-renameTab\n     * @param options Request options.\n     */\n    async renameTab(options) {\n        const { screenId, tabId, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/screens/${encodeURIComponent(screenId)}/tabs/${encodeURIComponent(tabId)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Deletes tab to give screen.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-deleteTab\n     * @param options Request options.\n     */\n    async deleteTab(options) {\n        const { screenId, tabId, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/screens/${encodeURIComponent(screenId)}/tabs/${encodeURIComponent(tabId)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Moves tab position.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-moveTab\n     * @param options Request options.\n     */\n    async moveTab(options) {\n        const { screenId, tabId, pos, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/screens/${encodeURIComponent(screenId)}/tabs/${encodeURIComponent(tabId)}/move/${encodeURIComponent(pos)}`, constructHeaders(null, headers), null);\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass ScreenFieldGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Gets all fields for a given tab.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-getAllFields\n     * @param options Request options.\n     */\n    async getFields(options) {\n        const { screenId, tabId, projectKey, headers, errorStrategy } = options;\n        const queryParams = { projectKey };\n        const request = new Request('GET', constructUrl(`/rest/api/2/screens/${encodeURIComponent(screenId)}/tabs/${encodeURIComponent(tabId)}/fields`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n    * Adds field to the given tab.\n    * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-addField\n    * @param options Request options.\n    */\n    async addField(options) {\n        const { screenId, tabId, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/screens/${encodeURIComponent(screenId)}/tabs/${encodeURIComponent(tabId)}/fields`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Removes field from given tab.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-removeField\n     * @param options Request options.\n     */\n    async removeField(options) {\n        const { screenId, tabId, id, headers, errorStrategy } = options;\n        const request = new Request('DELETE', `/rest/api/2/screens/${encodeURIComponent(screenId)}/tabs/${encodeURIComponent(tabId)}/fields/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Moves field on the given tab.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-moveField\n     * @param options Request options.\n     */\n    async moveField(options) {\n        const { screenId, tabId, id, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/screens/${encodeURIComponent(screenId)}/tabs/${encodeURIComponent(tabId)}/fields/${encodeURIComponent(id)}/move`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Adds field or custom field to the default tab.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#screens-addFieldToDefaultScreen\n     * @param options Request options.\n     */\n    async addToDefaultScreen(options) {\n        const { fieldId, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/screens/addToDefault/${encodeURIComponent(fieldId)}`, constructHeaders(null, headers), null);\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass UserGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Search = new UserSearchGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Returns a user.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-getUser\n     * @param options Request options.\n     */\n    async getUser(options) {\n        const { key, username, headers, errorStrategy } = options ?? {};\n        const queryParams = { key, username };\n        const request = new Request('GET', constructUrl('/rest/api/2/user', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Modify user. The \"value\" fields present will override the existing value. Fields skipped in request will not be changed.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-updateUser\n     * @param options Request options.\n     */\n    async updateUser(options) {\n        const { key, username, body, headers, errorStrategy } = options;\n        const queryParams = { key, username };\n        const request = new Request('PUT', constructUrl('/rest/api/2/user', queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Create user. By default created user will not be notified with email. If password field is not set then password will be randomly generated.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-createUser\n     * @param options Request options.\n     */\n    async createUser(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/user', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Removes user and its references (like project roles associations, watches, history).\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-removeUser\n     * @param options Request options.\n     */\n    async removeUser(options) {\n        const { key, username, headers, errorStrategy } = options;\n        const queryParams = { key, username };\n        const request = new Request('DELETE', constructUrl('/rest/api/2/user', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Add user to given application. Admin permission will be required to perform this operation.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-addUserToApplication\n     * @param options Request options.\n     */\n    async addUserToApplication(options) {\n        const { applicationKey, username, headers, errorStrategy } = options;\n        const queryParams = { applicationKey, username };\n        const request = new Request('POST', constructUrl('/rest/api/2/user/application', queryParams), constructHeaders(null, headers), null);\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Remove user from given application. Admin permission will be required to perform this operation.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-removeUserFromApplication\n     * @param options Request options.\n     */\n    async removeUserFromApplication(options) {\n        const { applicationKey, username, headers, errorStrategy } = options;\n        const queryParams = { applicationKey, username };\n        const request = new Request('DELETE', constructUrl('/rest/api/2/user/application', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n    /**\n     * Modify user password.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-changeUserPassword\n     * @param options Request options.\n     */\n    async changeUserPassword(options) {\n        const { key, username, body, headers, errorStrategy } = options;\n        const queryParams = { key, username };\n        const request = new Request('PUT', constructUrl('/rest/api/2/user/password', queryParams), constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass UserSearchGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-findAssignableUsers\n     * @param options Request options.\n     */\n    async findAssignableUsers(options) {\n        const { username, startAt, maxResults, actionDescriptorId, issueKey, project, headers, errorStrategy } = options ?? {};\n        const queryParams = { username, startAt, maxResults, actionDescriptorId, issueKey, project };\n        const request = new Request('GET', constructUrl('/rest/api/2/user/assignable/search', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a list of active users that match the search string and have all specified permissions for the project or issue.\n     * This resource can be accessed by users with ADMINISTER_PROJECT permission for the project or global ADMIN or SYSADMIN rights.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-findUsersWithAllPermissions\n     * @param options Request options.\n     */\n    async findUsersWithAllPermissions(options) {\n        const { username, startAt, maxResults, issueKey, permissions, projectKey, headers, errorStrategy } = options;\n        const queryParams = { username, startAt, maxResults, issueKey, permissions, projectKey };\n        const request = new Request('GET', constructUrl('/rest/api/2/user/permission/search', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Returns a list of users that match the search string. This resource cannot be accessed anonymously.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-findUsers\n     * @param options Request options.\n     */\n    async findUsers(options) {\n        const { username, startAt, maxResults, includeActive, includeInactive, headers, errorStrategy } = options;\n        const queryParams = { username, startAt, maxResults, includeActive, includeInactive };\n        const request = new Request('GET', constructUrl('/rest/api/2/user/search', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * 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.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#user-findUsersWithBrowsePermission\n     * @param options Request options.\n     */\n    async findUsersWithBrowsePermission(options) {\n        const { username, startAt, maxResults, projectKey, issueKey, headers, errorStrategy } = options;\n        const queryParams = { username, startAt, maxResults, projectKey, issueKey };\n        const request = new Request('GET', constructUrl('/rest/api/2/user/viewissue/search', queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\nclass RoleGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Project = new RoleProjectGroup(implementation, this.getGlobalErrorStrategy);\n    }\n}\nclass RoleProjectGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n        this.Actor = new RoleProjectActorGroup(implementation, this.getGlobalErrorStrategy);\n    }\n    /**\n     * Get all the ProjectRoles available in JIRA. Currently this list is global.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#role-getProjectRoles\n     * @param options Request options.\n     */\n    async getRoles(options) {\n        const { headers, errorStrategy } = options ?? {};\n        const request = new Request('GET', '/rest/api/2/role', constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Creates a new ProjectRole to be available in Jira. The created role does not have any default actors assigned.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-createProjectRole\n     * @param options Request options.\n     */\n    async createRole(options) {\n        const { body, headers, errorStrategy } = options;\n        const request = new Request('POST', '/rest/api/2/role', constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Get a specific ProjectRole available in JIRA.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#role-getProjectRolesById\n     * @param options Request options.\n     */\n    async getRole(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/role/${encodeURIComponent(id)}`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Partially updates a roles name or description.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-partialUpdateProjectRole\n     * @param options Request options.\n     */\n    async updateRolePartially(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/role/${encodeURIComponent(id)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Fully updates a roles. Both name and description must be given.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.0/#role-getProjectRolesById\n     * @param options Request options.\n     */\n    async updateRoleFully(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('PUT', `/rest/api/2/role/${encodeURIComponent(id)}`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Deletes a role. May return 403 in the future.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-deleteProjectRole\n     * @param options Request options.\n     */\n    async deleteRole(options) {\n        const { id, swap, headers, errorStrategy } = options;\n        const queryParams = { swap };\n        const request = new Request('DELETE', constructUrl(`/rest/api/2/role/${encodeURIComponent(id)}`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers, true);\n    }\n}\nclass RoleProjectActorGroup {\n    constructor(implementation, getGlobalErrorStrategy) {\n        this.implementation = implementation;\n        this.getGlobalErrorStrategy = getGlobalErrorStrategy;\n    }\n    /**\n     * Gets default actors for the given role.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-getProjectRoleActorsForRole\n     * @param options Request options.\n     */\n    async getActors(options) {\n        const { id, headers, errorStrategy } = options;\n        const request = new Request('GET', `/rest/api/2/role/${encodeURIComponent(id)}/actors`, constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Adds default actors to the given role. The request data should contain a list of usernames or a list of groups to add.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-addProjectRoleActorsToRole\n     * @param options Request options.\n     */\n    async addActors(options) {\n        const { id, body, headers, errorStrategy } = options;\n        const request = new Request('POST', `/rest/api/2/role/${encodeURIComponent(id)}/actors`, constructHeaders(body, headers), JSON.stringify(body));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n    /**\n     * Removes default actor from the given role.\n     * Documentation: https://docs.atlassian.com/software/jira/docs/api/REST/8.20.2/#role-deleteProjectRoleActorsFromRole\n     * @param options Request options.\n     */\n    async deleteActors(options) {\n        const { id, user, group, headers, errorStrategy } = options;\n        const queryParams = { user, group };\n        const request = new Request('DELETE', constructUrl(`/rest/api/2/role/${encodeURIComponent(id)}/actors`, queryParams), constructHeaders(headers));\n        request.setBufferImplementation(this.implementation);\n        return await executeHttpCall(this.implementation, request, errorStrategyBuilderConstructor, this.getGlobalErrorStrategy(), errorStrategy, errorMessageBuilder, customErrorHandlers);\n    }\n}\n"]}