/* tslint:disable */ /* eslint-disable */ /** * Ticketing System API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * The version of the OpenAPI document: 1.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import type { Comment, CommentUpdate, Config, DashboardCounts, ExtendedComment, ExtendedTask, ExtendedTicket, Group, GroupRelation, GroupUpdate, GroupUser, Link, LinkUpdate, NewComment, NewFile, NewGroup, NewLink, NewReaction, NewTask, NewTicket, NewTimelineEntry, NewType, NewUser, NewWebhook, Reaction, ReactionUpdate, Settings, Sidebar, Task, TaskUpdate, Ticket, TicketSearch, TicketUpdate, TimelineEntry, TimelineEntryUpdate, Type, TypeUpdate, User, UserGroup, UserUpdate, Webhook, WebhookUpdate } from '../models/index' import { CommentFromJSON, CommentToJSON, CommentUpdateFromJSON, CommentUpdateToJSON, ConfigFromJSON, ConfigToJSON, DashboardCountsFromJSON, DashboardCountsToJSON, ExtendedCommentFromJSON, ExtendedCommentToJSON, ExtendedTaskFromJSON, ExtendedTaskToJSON, ExtendedTicketFromJSON, ExtendedTicketToJSON, GroupFromJSON, GroupRelationFromJSON, GroupRelationToJSON, GroupToJSON, GroupUpdateFromJSON, GroupUpdateToJSON, GroupUserFromJSON, GroupUserToJSON, LinkFromJSON, LinkToJSON, LinkUpdateFromJSON, LinkUpdateToJSON, NewCommentFromJSON, NewCommentToJSON, NewFileFromJSON, NewFileToJSON, NewGroupFromJSON, NewGroupToJSON, NewLinkFromJSON, NewLinkToJSON, NewReactionFromJSON, NewReactionToJSON, NewTaskFromJSON, NewTaskToJSON, NewTicketFromJSON, NewTicketToJSON, NewTimelineEntryFromJSON, NewTimelineEntryToJSON, NewTypeFromJSON, NewTypeToJSON, NewUserFromJSON, NewUserToJSON, NewWebhookFromJSON, NewWebhookToJSON, ReactionFromJSON, ReactionToJSON, ReactionUpdateFromJSON, ReactionUpdateToJSON, SettingsFromJSON, SettingsToJSON, SidebarFromJSON, SidebarToJSON, TaskFromJSON, TaskToJSON, TaskUpdateFromJSON, TaskUpdateToJSON, TicketFromJSON, TicketSearchFromJSON, TicketSearchToJSON, TicketToJSON, TicketUpdateFromJSON, TicketUpdateToJSON, TimelineEntryFromJSON, TimelineEntryToJSON, TimelineEntryUpdateFromJSON, TimelineEntryUpdateToJSON, TypeFromJSON, TypeToJSON, TypeUpdateFromJSON, TypeUpdateToJSON, UserFromJSON, UserGroupFromJSON, UserGroupToJSON, UserToJSON, UserUpdateFromJSON, UserUpdateToJSON, WebhookFromJSON, WebhookToJSON, WebhookUpdateFromJSON, WebhookUpdateToJSON } from '../models/index' import * as runtime from '../runtime' export interface AddGroupParentRequest { id: string groupRelation: GroupRelation } export interface AddUserGroupRequest { id: string groupRelation: GroupRelation } export interface CreateCommentRequest { newComment: NewComment } export interface CreateFileRequest { newFile: NewFile } export interface CreateGroupRequest { newGroup: NewGroup } export interface CreateLinkRequest { newLink: NewLink } export interface CreateReactionRequest { newReaction: NewReaction } export interface CreateTaskRequest { newTask: NewTask } export interface CreateTicketRequest { newTicket: NewTicket } export interface CreateTimelineRequest { newTimelineEntry: NewTimelineEntry } export interface CreateTypeRequest { newType: NewType } export interface CreateUserRequest { newUser: NewUser } export interface CreateWebhookRequest { newWebhook: NewWebhook } export interface DeleteCommentRequest { id: string } export interface DeleteFileRequest { id: string } export interface DeleteGroupRequest { id: string } export interface DeleteLinkRequest { id: string } export interface DeleteReactionRequest { id: string } export interface DeleteTaskRequest { id: string } export interface DeleteTicketRequest { id: string } export interface DeleteTimelineRequest { id: string } export interface DeleteTypeRequest { id: string } export interface DeleteUserRequest { id: string } export interface DeleteWebhookRequest { id: string } export interface DownloadFileRequest { id: string } export interface GetCommentRequest { id: string } export interface GetFileRequest { id: string } export interface GetGroupRequest { id: string } export interface GetLinkRequest { id: string } export interface GetReactionRequest { id: string } export interface GetTaskRequest { id: string } export interface GetTicketRequest { id: string } export interface GetTimelineRequest { id: string } export interface GetTypeRequest { id: string } export interface GetUserRequest { id: string } export interface GetWebhookRequest { id: string } export interface ListChildGroupsRequest { id: string } export interface ListCommentsRequest { ticket?: string offset?: number limit?: number } export interface ListFilesRequest { ticket?: string offset?: number limit?: number } export interface ListGroupUsersRequest { id: string } export interface ListGroupsRequest { offset?: number limit?: number } export interface ListLinksRequest { ticket?: string offset?: number limit?: number } export interface ListParentGroupsRequest { id: string } export interface ListParentPermissionsRequest { id: string } export interface ListReactionsRequest { offset?: number limit?: number } export interface ListTasksRequest { ticket?: string offset?: number limit?: number } export interface ListTicketsRequest { offset?: number limit?: number } export interface ListTimelineRequest { ticket?: string offset?: number limit?: number } export interface ListTypesRequest { offset?: number limit?: number } export interface ListUserGroupsRequest { id: string } export interface ListUserPermissionsRequest { id: string } export interface ListUsersRequest { offset?: number limit?: number } export interface ListWebhooksRequest { offset?: number limit?: number } export interface RemoveGroupParentRequest { id: string parentGroupId: string } export interface RemoveUserGroupRequest { id: string groupId: string } export interface SearchTicketsRequest { query?: string type?: string open?: boolean offset?: number limit?: number } export interface UpdateCommentRequest { id: string commentUpdate: CommentUpdate } export interface UpdateGroupRequest { id: string groupUpdate: GroupUpdate } export interface UpdateLinkRequest { id: string linkUpdate: LinkUpdate } export interface UpdateReactionRequest { id: string reactionUpdate: ReactionUpdate } export interface UpdateSettingsRequest { settings: Settings } export interface UpdateTaskRequest { id: string taskUpdate: TaskUpdate } export interface UpdateTicketRequest { id: string ticketUpdate: TicketUpdate } export interface UpdateTimelineRequest { id: string timelineEntryUpdate: TimelineEntryUpdate } export interface UpdateTypeRequest { id: string typeUpdate: TypeUpdate } export interface UpdateUserRequest { id: string userUpdate: UserUpdate } export interface UpdateWebhookRequest { id: string webhookUpdate: WebhookUpdate } /** * */ export class DefaultApi extends runtime.BaseAPI { /** * Add a parent group to another group */ async addGroupParentRaw( requestParameters: AddGroupParentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling addGroupParent().' ) } if (requestParameters['groupRelation'] == null) { throw new runtime.RequiredError( 'groupRelation', 'Required parameter "groupRelation" was null or undefined when calling addGroupParent().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'group:write' ]) } let urlPath = `/groups/{id}/parents` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: GroupRelationToJSON(requestParameters['groupRelation']) }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Add a parent group to another group */ async addGroupParent( requestParameters: AddGroupParentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.addGroupParentRaw(requestParameters, initOverrides) } /** * Add a group to a user */ async addUserGroupRaw( requestParameters: AddUserGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling addUserGroup().' ) } if (requestParameters['groupRelation'] == null) { throw new runtime.RequiredError( 'groupRelation', 'Required parameter "groupRelation" was null or undefined when calling addUserGroup().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'user:write' ]) } let urlPath = `/users/{id}/groups` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: GroupRelationToJSON(requestParameters['groupRelation']) }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Add a group to a user */ async addUserGroup( requestParameters: AddUserGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.addUserGroupRaw(requestParameters, initOverrides) } /** * Create a new comment */ async createCommentRaw( requestParameters: CreateCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['newComment'] == null) { throw new runtime.RequiredError( 'newComment', 'Required parameter "newComment" was null or undefined when calling createComment().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/comments` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: NewCommentToJSON(requestParameters['newComment']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => CommentFromJSON(jsonValue)) } /** * Create a new comment */ async createComment( requestParameters: CreateCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.createCommentRaw(requestParameters, initOverrides) return await response.value() } /** * Create a new file */ async createFileRaw( requestParameters: CreateFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['newFile'] == null) { throw new runtime.RequiredError( 'newFile', 'Required parameter "newFile" was null or undefined when calling createFile().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'file:write' ]) } let urlPath = `/files` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: NewFileToJSON(requestParameters['newFile']) }, initOverrides ) if (this.isJsonMime(response.headers.get('content-type'))) { return new runtime.JSONApiResponse(response) } else { return new runtime.TextApiResponse(response) as any } } /** * Create a new file */ async createFile( requestParameters: CreateFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.createFileRaw(requestParameters, initOverrides) return await response.value() } /** * Create a new group */ async createGroupRaw( requestParameters: CreateGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['newGroup'] == null) { throw new runtime.RequiredError( 'newGroup', 'Required parameter "newGroup" was null or undefined when calling createGroup().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'group:write' ]) } let urlPath = `/groups` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: NewGroupToJSON(requestParameters['newGroup']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => GroupFromJSON(jsonValue)) } /** * Create a new group */ async createGroup( requestParameters: CreateGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.createGroupRaw(requestParameters, initOverrides) return await response.value() } /** * Create a new link */ async createLinkRaw( requestParameters: CreateLinkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['newLink'] == null) { throw new runtime.RequiredError( 'newLink', 'Required parameter "newLink" was null or undefined when calling createLink().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/links` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: NewLinkToJSON(requestParameters['newLink']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => LinkFromJSON(jsonValue)) } /** * Create a new link */ async createLink( requestParameters: CreateLinkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.createLinkRaw(requestParameters, initOverrides) return await response.value() } /** * Create a new reaction */ async createReactionRaw( requestParameters: CreateReactionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['newReaction'] == null) { throw new runtime.RequiredError( 'newReaction', 'Required parameter "newReaction" was null or undefined when calling createReaction().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'reaction:write' ]) } let urlPath = `/reactions` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: NewReactionToJSON(requestParameters['newReaction']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => ReactionFromJSON(jsonValue)) } /** * Create a new reaction */ async createReaction( requestParameters: CreateReactionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.createReactionRaw(requestParameters, initOverrides) return await response.value() } /** * Create a new task */ async createTaskRaw( requestParameters: CreateTaskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['newTask'] == null) { throw new runtime.RequiredError( 'newTask', 'Required parameter "newTask" was null or undefined when calling createTask().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/tasks` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: NewTaskToJSON(requestParameters['newTask']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => TaskFromJSON(jsonValue)) } /** * Create a new task */ async createTask( requestParameters: CreateTaskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.createTaskRaw(requestParameters, initOverrides) return await response.value() } /** * Create a new ticket */ async createTicketRaw( requestParameters: CreateTicketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['newTicket'] == null) { throw new runtime.RequiredError( 'newTicket', 'Required parameter "newTicket" was null or undefined when calling createTicket().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/tickets` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: NewTicketToJSON(requestParameters['newTicket']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => TicketFromJSON(jsonValue)) } /** * Create a new ticket */ async createTicket( requestParameters: CreateTicketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.createTicketRaw(requestParameters, initOverrides) return await response.value() } /** * Create a new timeline item */ async createTimelineRaw( requestParameters: CreateTimelineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['newTimelineEntry'] == null) { throw new runtime.RequiredError( 'newTimelineEntry', 'Required parameter "newTimelineEntry" was null or undefined when calling createTimeline().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/timeline` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: NewTimelineEntryToJSON(requestParameters['newTimelineEntry']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => TimelineEntryFromJSON(jsonValue)) } /** * Create a new timeline item */ async createTimeline( requestParameters: CreateTimelineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.createTimelineRaw(requestParameters, initOverrides) return await response.value() } /** * Create a new type */ async createTypeRaw( requestParameters: CreateTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['newType'] == null) { throw new runtime.RequiredError( 'newType', 'Required parameter "newType" was null or undefined when calling createType().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', []) } let urlPath = `/types` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: NewTypeToJSON(requestParameters['newType']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => TypeFromJSON(jsonValue)) } /** * Create a new type */ async createType( requestParameters: CreateTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.createTypeRaw(requestParameters, initOverrides) return await response.value() } /** * Create a new user */ async createUserRaw( requestParameters: CreateUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['newUser'] == null) { throw new runtime.RequiredError( 'newUser', 'Required parameter "newUser" was null or undefined when calling createUser().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'user:write' ]) } let urlPath = `/users` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: NewUserToJSON(requestParameters['newUser']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => UserFromJSON(jsonValue)) } /** * Create a new user */ async createUser( requestParameters: CreateUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.createUserRaw(requestParameters, initOverrides) return await response.value() } /** * Create a new webhook */ async createWebhookRaw( requestParameters: CreateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['newWebhook'] == null) { throw new runtime.RequiredError( 'newWebhook', 'Required parameter "newWebhook" was null or undefined when calling createWebhook().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'webhook:write' ]) } let urlPath = `/webhooks` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: NewWebhookToJSON(requestParameters['newWebhook']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => WebhookFromJSON(jsonValue)) } /** * Create a new webhook */ async createWebhook( requestParameters: CreateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.createWebhookRaw(requestParameters, initOverrides) return await response.value() } /** * Delete a comment by ID */ async deleteCommentRaw( requestParameters: DeleteCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteComment().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/comments/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Delete a comment by ID */ async deleteComment( requestParameters: DeleteCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.deleteCommentRaw(requestParameters, initOverrides) } /** * Delete a file by ID */ async deleteFileRaw( requestParameters: DeleteFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteFile().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'file:write' ]) } let urlPath = `/files/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Delete a file by ID */ async deleteFile( requestParameters: DeleteFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.deleteFileRaw(requestParameters, initOverrides) } /** * Delete a group by ID */ async deleteGroupRaw( requestParameters: DeleteGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteGroup().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'group:write' ]) } let urlPath = `/groups/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Delete a group by ID */ async deleteGroup( requestParameters: DeleteGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.deleteGroupRaw(requestParameters, initOverrides) } /** * Delete a link by ID */ async deleteLinkRaw( requestParameters: DeleteLinkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteLink().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/links/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Delete a link by ID */ async deleteLink( requestParameters: DeleteLinkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.deleteLinkRaw(requestParameters, initOverrides) } /** * Delete a reaction by ID */ async deleteReactionRaw( requestParameters: DeleteReactionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteReaction().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'reaction:write' ]) } let urlPath = `/reactions/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Delete a reaction by ID */ async deleteReaction( requestParameters: DeleteReactionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.deleteReactionRaw(requestParameters, initOverrides) } /** * Delete a task by ID */ async deleteTaskRaw( requestParameters: DeleteTaskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteTask().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/tasks/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Delete a task by ID */ async deleteTask( requestParameters: DeleteTaskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.deleteTaskRaw(requestParameters, initOverrides) } /** * Delete a ticket by ID */ async deleteTicketRaw( requestParameters: DeleteTicketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteTicket().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/tickets/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Delete a ticket by ID */ async deleteTicket( requestParameters: DeleteTicketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.deleteTicketRaw(requestParameters, initOverrides) } /** * Delete a timeline item by ID */ async deleteTimelineRaw( requestParameters: DeleteTimelineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteTimeline().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/timeline/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Delete a timeline item by ID */ async deleteTimeline( requestParameters: DeleteTimelineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.deleteTimelineRaw(requestParameters, initOverrides) } /** * Delete a type by ID */ async deleteTypeRaw( requestParameters: DeleteTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteType().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', []) } let urlPath = `/types/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Delete a type by ID */ async deleteType( requestParameters: DeleteTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.deleteTypeRaw(requestParameters, initOverrides) } /** * Delete a user by ID */ async deleteUserRaw( requestParameters: DeleteUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteUser().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'user:write' ]) } let urlPath = `/users/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Delete a user by ID */ async deleteUser( requestParameters: DeleteUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.deleteUserRaw(requestParameters, initOverrides) } /** * Delete a webhook by ID */ async deleteWebhookRaw( requestParameters: DeleteWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling deleteWebhook().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'webhook:write' ]) } let urlPath = `/webhooks/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Delete a webhook by ID */ async deleteWebhook( requestParameters: DeleteWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.deleteWebhookRaw(requestParameters, initOverrides) } /** * Download a file by ID */ async downloadFileRaw( requestParameters: DownloadFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling downloadFile().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'file:read' ]) } let urlPath = `/files/{id}/download` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Download a file by ID */ async downloadFile( requestParameters: DownloadFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.downloadFileRaw(requestParameters, initOverrides) } /** * Get a single comment by ID */ async getCommentRaw( requestParameters: GetCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getComment().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/comments/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => ExtendedCommentFromJSON(jsonValue)) } /** * Get a single comment by ID */ async getComment( requestParameters: GetCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.getCommentRaw(requestParameters, initOverrides) return await response.value() } /** * Get the configuration */ async getConfigRaw( initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} let urlPath = `/config` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => ConfigFromJSON(jsonValue)) } /** * Get the configuration */ async getConfig(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getConfigRaw(initOverrides) return await response.value() } /** * Get dashboard summary counts */ async getDashboardCountsRaw( initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/dashboard_counts` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DashboardCountsFromJSON) ) } /** * Get dashboard summary counts */ async getDashboardCounts( initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.getDashboardCountsRaw(initOverrides) return await response.value() } /** * Get a single file by ID */ async getFileRaw( requestParameters: GetFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getFile().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'file:read' ]) } let urlPath = `/files/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) if (this.isJsonMime(response.headers.get('content-type'))) { return new runtime.JSONApiResponse(response) } else { return new runtime.TextApiResponse(response) as any } } /** * Get a single file by ID */ async getFile( requestParameters: GetFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.getFileRaw(requestParameters, initOverrides) return await response.value() } /** * Get a single group by ID */ async getGroupRaw( requestParameters: GetGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getGroup().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'group:read' ]) } let urlPath = `/groups/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => GroupFromJSON(jsonValue)) } /** * Get a single group by ID */ async getGroup( requestParameters: GetGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.getGroupRaw(requestParameters, initOverrides) return await response.value() } /** * Get a single link by ID */ async getLinkRaw( requestParameters: GetLinkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getLink().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/links/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => LinkFromJSON(jsonValue)) } /** * Get a single link by ID */ async getLink( requestParameters: GetLinkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.getLinkRaw(requestParameters, initOverrides) return await response.value() } /** * Get a single reaction by ID */ async getReactionRaw( requestParameters: GetReactionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getReaction().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'reaction:read' ]) } let urlPath = `/reactions/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => ReactionFromJSON(jsonValue)) } /** * Get a single reaction by ID */ async getReaction( requestParameters: GetReactionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.getReactionRaw(requestParameters, initOverrides) return await response.value() } /** * Get system settings */ async getSettingsRaw( initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'settings:read' ]) } let urlPath = `/settings` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => SettingsFromJSON(jsonValue)) } /** * Get system settings */ async getSettings(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getSettingsRaw(initOverrides) return await response.value() } /** * Get sidebar data */ async getSidebarRaw( initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/sidebar` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(SidebarFromJSON)) } /** * Get sidebar data */ async getSidebar( initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.getSidebarRaw(initOverrides) return await response.value() } /** * Get a single task by ID */ async getTaskRaw( requestParameters: GetTaskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getTask().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/tasks/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => ExtendedTaskFromJSON(jsonValue)) } /** * Get a single task by ID */ async getTask( requestParameters: GetTaskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.getTaskRaw(requestParameters, initOverrides) return await response.value() } /** * Get a single ticket by ID */ async getTicketRaw( requestParameters: GetTicketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getTicket().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/tickets/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => ExtendedTicketFromJSON(jsonValue)) } /** * Get a single ticket by ID */ async getTicket( requestParameters: GetTicketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.getTicketRaw(requestParameters, initOverrides) return await response.value() } /** * Get a single timeline item by ID */ async getTimelineRaw( requestParameters: GetTimelineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getTimeline().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/timeline/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => TimelineEntryFromJSON(jsonValue)) } /** * Get a single timeline item by ID */ async getTimeline( requestParameters: GetTimelineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.getTimelineRaw(requestParameters, initOverrides) return await response.value() } /** * Get a single type by ID */ async getTypeRaw( requestParameters: GetTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getType().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', []) } let urlPath = `/types/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => TypeFromJSON(jsonValue)) } /** * Get a single type by ID */ async getType( requestParameters: GetTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.getTypeRaw(requestParameters, initOverrides) return await response.value() } /** * Get a single user by ID */ async getUserRaw( requestParameters: GetUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getUser().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'user:read' ]) } let urlPath = `/users/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => UserFromJSON(jsonValue)) } /** * Get a single user by ID */ async getUser( requestParameters: GetUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.getUserRaw(requestParameters, initOverrides) return await response.value() } /** * Get a single webhook by ID */ async getWebhookRaw( requestParameters: GetWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling getWebhook().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'webhook:read' ]) } let urlPath = `/webhooks/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => WebhookFromJSON(jsonValue)) } /** * Get a single webhook by ID */ async getWebhook( requestParameters: GetWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.getWebhookRaw(requestParameters, initOverrides) return await response.value() } /** * List all child groups for a group */ async listChildGroupsRaw( requestParameters: ListChildGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling listChildGroups().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'group:read' ]) } let urlPath = `/groups/{id}/children` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(UserGroupFromJSON)) } /** * List all child groups for a group */ async listChildGroups( requestParameters: ListChildGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listChildGroupsRaw(requestParameters, initOverrides) return await response.value() } /** * List all comments */ async listCommentsRaw( requestParameters: ListCommentsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['ticket'] != null) { queryParameters['ticket'] = requestParameters['ticket'] } if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/comments` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ExtendedCommentFromJSON) ) } /** * List all comments */ async listComments( requestParameters: ListCommentsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listCommentsRaw(requestParameters, initOverrides) return await response.value() } /** * List all files */ async listFilesRaw( requestParameters: ListFilesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['ticket'] != null) { queryParameters['ticket'] = requestParameters['ticket'] } if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'file:read' ]) } let urlPath = `/files` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response) } /** * List all files */ async listFiles( requestParameters: ListFilesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listFilesRaw(requestParameters, initOverrides) return await response.value() } /** * List all users for a group */ async listGroupUsersRaw( requestParameters: ListGroupUsersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling listGroupUsers().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'group:read' ]) } let urlPath = `/groups/{id}/users` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(GroupUserFromJSON)) } /** * List all users for a group */ async listGroupUsers( requestParameters: ListGroupUsersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listGroupUsersRaw(requestParameters, initOverrides) return await response.value() } /** * List all groups */ async listGroupsRaw( requestParameters: ListGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'group:read' ]) } let urlPath = `/groups` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(GroupFromJSON)) } /** * List all groups */ async listGroups( requestParameters: ListGroupsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listGroupsRaw(requestParameters, initOverrides) return await response.value() } /** * List all links */ async listLinksRaw( requestParameters: ListLinksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['ticket'] != null) { queryParameters['ticket'] = requestParameters['ticket'] } if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/links` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(LinkFromJSON)) } /** * List all links */ async listLinks( requestParameters: ListLinksRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listLinksRaw(requestParameters, initOverrides) return await response.value() } /** * List all parent groups for a group */ async listParentGroupsRaw( requestParameters: ListParentGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling listParentGroups().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'group:read' ]) } let urlPath = `/groups/{id}/parents` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(UserGroupFromJSON)) } /** * List all parent groups for a group */ async listParentGroups( requestParameters: ListParentGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listParentGroupsRaw(requestParameters, initOverrides) return await response.value() } /** * List all permissions for a group */ async listParentPermissionsRaw( requestParameters: ListParentPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling listParentPermissions().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'group:read' ]) } let urlPath = `/groups/{id}/permissions` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response) } /** * List all permissions for a group */ async listParentPermissions( requestParameters: ListParentPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listParentPermissionsRaw(requestParameters, initOverrides) return await response.value() } /** * List all reactions */ async listReactionsRaw( requestParameters: ListReactionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'reaction:read' ]) } let urlPath = `/reactions` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ReactionFromJSON)) } /** * List all reactions */ async listReactions( requestParameters: ListReactionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listReactionsRaw(requestParameters, initOverrides) return await response.value() } /** * List all tasks */ async listTasksRaw( requestParameters: ListTasksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['ticket'] != null) { queryParameters['ticket'] = requestParameters['ticket'] } if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/tasks` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ExtendedTaskFromJSON)) } /** * List all tasks */ async listTasks( requestParameters: ListTasksRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listTasksRaw(requestParameters, initOverrides) return await response.value() } /** * List all tickets */ async listTicketsRaw( requestParameters: ListTicketsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/tickets` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ExtendedTicketFromJSON) ) } /** * List all tickets */ async listTickets( requestParameters: ListTicketsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listTicketsRaw(requestParameters, initOverrides) return await response.value() } /** * List all timeline items */ async listTimelineRaw( requestParameters: ListTimelineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['ticket'] != null) { queryParameters['ticket'] = requestParameters['ticket'] } if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/timeline` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TimelineEntryFromJSON) ) } /** * List all timeline items */ async listTimeline( requestParameters: ListTimelineRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listTimelineRaw(requestParameters, initOverrides) return await response.value() } /** * List all types */ async listTypesRaw( requestParameters: ListTypesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', []) } let urlPath = `/types` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TypeFromJSON)) } /** * List all types */ async listTypes( requestParameters: ListTypesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listTypesRaw(requestParameters, initOverrides) return await response.value() } /** * List all groups for a user */ async listUserGroupsRaw( requestParameters: ListUserGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling listUserGroups().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'user:read' ]) } let urlPath = `/users/{id}/groups` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(UserGroupFromJSON)) } /** * List all groups for a user */ async listUserGroups( requestParameters: ListUserGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listUserGroupsRaw(requestParameters, initOverrides) return await response.value() } /** * List all permissions for a user */ async listUserPermissionsRaw( requestParameters: ListUserPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling listUserPermissions().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'user:read' ]) } let urlPath = `/users/{id}/permissions` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response) } /** * List all permissions for a user */ async listUserPermissions( requestParameters: ListUserPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listUserPermissionsRaw(requestParameters, initOverrides) return await response.value() } /** * List all users */ async listUsersRaw( requestParameters: ListUsersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'user:read' ]) } let urlPath = `/users` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(UserFromJSON)) } /** * List all users */ async listUsers( requestParameters: ListUsersRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listUsersRaw(requestParameters, initOverrides) return await response.value() } /** * List all webhooks */ async listWebhooksRaw( requestParameters: ListWebhooksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'webhook:read' ]) } let urlPath = `/webhooks` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(WebhookFromJSON)) } /** * List all webhooks */ async listWebhooks( requestParameters: ListWebhooksRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.listWebhooksRaw(requestParameters, initOverrides) return await response.value() } /** * Remove a parent group from another group */ async removeGroupParentRaw( requestParameters: RemoveGroupParentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling removeGroupParent().' ) } if (requestParameters['parentGroupId'] == null) { throw new runtime.RequiredError( 'parentGroupId', 'Required parameter "parentGroupId" was null or undefined when calling removeGroupParent().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'group:write' ]) } let urlPath = `/groups/{id}/groups/{parentGroupId}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) urlPath = urlPath.replace( `{${'parentGroupId'}}`, encodeURIComponent(String(requestParameters['parentGroupId'])) ) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Remove a parent group from another group */ async removeGroupParent( requestParameters: RemoveGroupParentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.removeGroupParentRaw(requestParameters, initOverrides) } /** * Remove a group from a user */ async removeUserGroupRaw( requestParameters: RemoveUserGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling removeUserGroup().' ) } if (requestParameters['groupId'] == null) { throw new runtime.RequiredError( 'groupId', 'Required parameter "groupId" was null or undefined when calling removeUserGroup().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'user:write' ]) } let urlPath = `/users/{id}/groups/{groupId}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) urlPath = urlPath.replace( `{${'groupId'}}`, encodeURIComponent(String(requestParameters['groupId'])) ) const response = await this.request( { path: urlPath, method: 'DELETE', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.VoidApiResponse(response) } /** * Remove a group from a user */ async removeUserGroup( requestParameters: RemoveUserGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { await this.removeUserGroupRaw(requestParameters, initOverrides) } /** * Search tickets with full join data */ async searchTicketsRaw( requestParameters: SearchTicketsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise>> { const queryParameters: any = {} if (requestParameters['query'] != null) { queryParameters['query'] = requestParameters['query'] } if (requestParameters['type'] != null) { queryParameters['type'] = requestParameters['type'] } if (requestParameters['open'] != null) { queryParameters['open'] = requestParameters['open'] } if (requestParameters['offset'] != null) { queryParameters['offset'] = requestParameters['offset'] } if (requestParameters['limit'] != null) { queryParameters['limit'] = requestParameters['limit'] } const headerParameters: runtime.HTTPHeaders = {} if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:read' ]) } let urlPath = `/ticket_search` const response = await this.request( { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TicketSearchFromJSON)) } /** * Search tickets with full join data */ async searchTickets( requestParameters: SearchTicketsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { const response = await this.searchTicketsRaw(requestParameters, initOverrides) return await response.value() } /** * Update a comment by ID */ async updateCommentRaw( requestParameters: UpdateCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling updateComment().' ) } if (requestParameters['commentUpdate'] == null) { throw new runtime.RequiredError( 'commentUpdate', 'Required parameter "commentUpdate" was null or undefined when calling updateComment().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/comments/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'PATCH', headers: headerParameters, query: queryParameters, body: CommentUpdateToJSON(requestParameters['commentUpdate']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => CommentFromJSON(jsonValue)) } /** * Update a comment by ID */ async updateComment( requestParameters: UpdateCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.updateCommentRaw(requestParameters, initOverrides) return await response.value() } /** * Update a group by ID */ async updateGroupRaw( requestParameters: UpdateGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling updateGroup().' ) } if (requestParameters['groupUpdate'] == null) { throw new runtime.RequiredError( 'groupUpdate', 'Required parameter "groupUpdate" was null or undefined when calling updateGroup().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'group:write' ]) } let urlPath = `/groups/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'PATCH', headers: headerParameters, query: queryParameters, body: GroupUpdateToJSON(requestParameters['groupUpdate']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => GroupFromJSON(jsonValue)) } /** * Update a group by ID */ async updateGroup( requestParameters: UpdateGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.updateGroupRaw(requestParameters, initOverrides) return await response.value() } /** * Update a link by ID */ async updateLinkRaw( requestParameters: UpdateLinkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling updateLink().' ) } if (requestParameters['linkUpdate'] == null) { throw new runtime.RequiredError( 'linkUpdate', 'Required parameter "linkUpdate" was null or undefined when calling updateLink().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/links/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'PATCH', headers: headerParameters, query: queryParameters, body: LinkUpdateToJSON(requestParameters['linkUpdate']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => LinkFromJSON(jsonValue)) } /** * Update a link by ID */ async updateLink( requestParameters: UpdateLinkRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.updateLinkRaw(requestParameters, initOverrides) return await response.value() } /** * Update a reaction by ID */ async updateReactionRaw( requestParameters: UpdateReactionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling updateReaction().' ) } if (requestParameters['reactionUpdate'] == null) { throw new runtime.RequiredError( 'reactionUpdate', 'Required parameter "reactionUpdate" was null or undefined when calling updateReaction().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'reaction:write' ]) } let urlPath = `/reactions/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'PATCH', headers: headerParameters, query: queryParameters, body: ReactionUpdateToJSON(requestParameters['reactionUpdate']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => ReactionFromJSON(jsonValue)) } /** * Update a reaction by ID */ async updateReaction( requestParameters: UpdateReactionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.updateReactionRaw(requestParameters, initOverrides) return await response.value() } /** * Update system settings */ async updateSettingsRaw( requestParameters: UpdateSettingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['settings'] == null) { throw new runtime.RequiredError( 'settings', 'Required parameter "settings" was null or undefined when calling updateSettings().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'settings:write' ]) } let urlPath = `/settings` const response = await this.request( { path: urlPath, method: 'POST', headers: headerParameters, query: queryParameters, body: SettingsToJSON(requestParameters['settings']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => SettingsFromJSON(jsonValue)) } /** * Update system settings */ async updateSettings( requestParameters: UpdateSettingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.updateSettingsRaw(requestParameters, initOverrides) return await response.value() } /** * Update a task by ID */ async updateTaskRaw( requestParameters: UpdateTaskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling updateTask().' ) } if (requestParameters['taskUpdate'] == null) { throw new runtime.RequiredError( 'taskUpdate', 'Required parameter "taskUpdate" was null or undefined when calling updateTask().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/tasks/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'PATCH', headers: headerParameters, query: queryParameters, body: TaskUpdateToJSON(requestParameters['taskUpdate']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => TaskFromJSON(jsonValue)) } /** * Update a task by ID */ async updateTask( requestParameters: UpdateTaskRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.updateTaskRaw(requestParameters, initOverrides) return await response.value() } /** * Update a ticket by ID */ async updateTicketRaw( requestParameters: UpdateTicketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling updateTicket().' ) } if (requestParameters['ticketUpdate'] == null) { throw new runtime.RequiredError( 'ticketUpdate', 'Required parameter "ticketUpdate" was null or undefined when calling updateTicket().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/tickets/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'PATCH', headers: headerParameters, query: queryParameters, body: TicketUpdateToJSON(requestParameters['ticketUpdate']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => TicketFromJSON(jsonValue)) } /** * Update a ticket by ID */ async updateTicket( requestParameters: UpdateTicketRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.updateTicketRaw(requestParameters, initOverrides) return await response.value() } /** * Update a timeline item by ID */ async updateTimelineRaw( requestParameters: UpdateTimelineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling updateTimeline().' ) } if (requestParameters['timelineEntryUpdate'] == null) { throw new runtime.RequiredError( 'timelineEntryUpdate', 'Required parameter "timelineEntryUpdate" was null or undefined when calling updateTimeline().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'ticket:write' ]) } let urlPath = `/timeline/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'PATCH', headers: headerParameters, query: queryParameters, body: TimelineEntryUpdateToJSON(requestParameters['timelineEntryUpdate']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => TimelineEntryFromJSON(jsonValue)) } /** * Update a timeline item by ID */ async updateTimeline( requestParameters: UpdateTimelineRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.updateTimelineRaw(requestParameters, initOverrides) return await response.value() } /** * Update a type by ID */ async updateTypeRaw( requestParameters: UpdateTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling updateType().' ) } if (requestParameters['typeUpdate'] == null) { throw new runtime.RequiredError( 'typeUpdate', 'Required parameter "typeUpdate" was null or undefined when calling updateType().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', []) } let urlPath = `/types/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'PATCH', headers: headerParameters, query: queryParameters, body: TypeUpdateToJSON(requestParameters['typeUpdate']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => TypeFromJSON(jsonValue)) } /** * Update a type by ID */ async updateType( requestParameters: UpdateTypeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.updateTypeRaw(requestParameters, initOverrides) return await response.value() } /** * Update a user by ID */ async updateUserRaw( requestParameters: UpdateUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling updateUser().' ) } if (requestParameters['userUpdate'] == null) { throw new runtime.RequiredError( 'userUpdate', 'Required parameter "userUpdate" was null or undefined when calling updateUser().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'user:write' ]) } let urlPath = `/users/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'PATCH', headers: headerParameters, query: queryParameters, body: UserUpdateToJSON(requestParameters['userUpdate']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => UserFromJSON(jsonValue)) } /** * Update a user by ID */ async updateUser( requestParameters: UpdateUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.updateUserRaw(requestParameters, initOverrides) return await response.value() } /** * Update a webhook by ID */ async updateWebhookRaw( requestParameters: UpdateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise> { if (requestParameters['id'] == null) { throw new runtime.RequiredError( 'id', 'Required parameter "id" was null or undefined when calling updateWebhook().' ) } if (requestParameters['webhookUpdate'] == null) { throw new runtime.RequiredError( 'webhookUpdate', 'Required parameter "webhookUpdate" was null or undefined when calling updateWebhook().' ) } const queryParameters: any = {} const headerParameters: runtime.HTTPHeaders = {} headerParameters['Content-Type'] = 'application/json' if (this.configuration && this.configuration.accessToken) { // oauth required headerParameters['Authorization'] = await this.configuration.accessToken('OAuth2', [ 'webhook:write' ]) } let urlPath = `/webhooks/{id}` urlPath = urlPath.replace(`{${'id'}}`, encodeURIComponent(String(requestParameters['id']))) const response = await this.request( { path: urlPath, method: 'PATCH', headers: headerParameters, query: queryParameters, body: WebhookUpdateToJSON(requestParameters['webhookUpdate']) }, initOverrides ) return new runtime.JSONApiResponse(response, (jsonValue) => WebhookFromJSON(jsonValue)) } /** * Update a webhook by ID */ async updateWebhook( requestParameters: UpdateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction ): Promise { const response = await this.updateWebhookRaw(requestParameters, initOverrides) return await response.value() } }