UNPKG

fetch-jsd

Version:

A simple and typed library, based on OpenAPI spec from developer.atlassian.com, for accessing product APIs.

706 lines 60.2 kB
"use strict"; // tslint:disable /** * Service Desk Public REST API * Public REST API for Jira Service Desk * * The version of the OpenAPI document: 1001.0.0-SNAPSHOT * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const runtime = require("../runtime"); const models_1 = require("../models"); /** * no description */ class ServicedeskApi extends runtime.BaseAPI { /** * Adds one or more customers to a service desk. If any of the passed customers are associated with the service desk, no changes will be made for those customers and the resource returns a 204 success code. **[Permissions](#permissions) required**: Service desk administrator * Add customers */ addCustomersRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling addCustomers.'); } if (requestParameters.ServiceDeskCustomerDTO === null || requestParameters.ServiceDeskCustomerDTO === undefined) { throw new runtime.RequiredError('ServiceDeskCustomerDTO', 'Required parameter requestParameters.ServiceDeskCustomerDTO was null or undefined when calling addCustomers.'); } const queryParameters = {}; const headerParameters = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["manage:servicedesk-customer"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/customer`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))), method: 'POST', headers: headerParameters, query: queryParameters, body: models_1.ServiceDeskCustomerDTOToJSON(requestParameters.ServiceDeskCustomerDTO), }); return new runtime.VoidApiResponse(response); }); } /** * Adds one or more customers to a service desk. If any of the passed customers are associated with the service desk, no changes will be made for those customers and the resource returns a 204 success code. **[Permissions](#permissions) required**: Service desk administrator * Add customers */ addCustomers(requestParameters) { return __awaiter(this, void 0, void 0, function* () { yield this.addCustomersRaw(requestParameters); }); } /** * This method adds one or more temporary attachments to a service desk, which can then be permanently attached to a customer request using [servicedeskapi/request/\\{issueIdOrKey\\}/attachment](#api-request-issueIdOrKey-attachment-post). **Note**: It is possible for a service desk administrator to turn off the ability to add attachments to a service desk. This method expects a multipart request. The media-type multipart/form-data is defined in RFC 1867. Most client libraries have classes that make dealing with multipart posts simple. For instance, in Java the Apache HTTP Components library provides [MultiPartEntity](http://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntity.html). Because this method accepts multipart/form-data, it has XSRF protection on it. This means you must submit a header of X-Atlassian-Token: no-check with the request or it will be blocked. The name of the multipart/form-data parameter that contains the attachments must be `file`. For example, to upload a file called `myfile.txt` in the Service Desk with ID 10001 use curl -D- -u customer:customer -X POST -H \"X-ExperimentalApi: opt-in\" -H \"X-Atlassian-Token: no-check\" -F \"file=@myfile.txt\" https://your-domain.atlassian.net/rest/servicedeskapi/servicedesk/10001/attachTemporaryFile **[Permissions](#permissions) required**: Permission to add attachments in this Service Desk. * Attach temporary file */ attachTemporaryFileRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling attachTemporaryFile.'); } const queryParameters = {}; const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["write:servicedesk-request"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/attachTemporaryFile`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))), method: 'POST', headers: headerParameters, query: queryParameters, }); return new runtime.TextApiResponse(response); }); } /** * This method adds one or more temporary attachments to a service desk, which can then be permanently attached to a customer request using [servicedeskapi/request/\\{issueIdOrKey\\}/attachment](#api-request-issueIdOrKey-attachment-post). **Note**: It is possible for a service desk administrator to turn off the ability to add attachments to a service desk. This method expects a multipart request. The media-type multipart/form-data is defined in RFC 1867. Most client libraries have classes that make dealing with multipart posts simple. For instance, in Java the Apache HTTP Components library provides [MultiPartEntity](http://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntity.html). Because this method accepts multipart/form-data, it has XSRF protection on it. This means you must submit a header of X-Atlassian-Token: no-check with the request or it will be blocked. The name of the multipart/form-data parameter that contains the attachments must be `file`. For example, to upload a file called `myfile.txt` in the Service Desk with ID 10001 use curl -D- -u customer:customer -X POST -H \"X-ExperimentalApi: opt-in\" -H \"X-Atlassian-Token: no-check\" -F \"file=@myfile.txt\" https://your-domain.atlassian.net/rest/servicedeskapi/servicedesk/10001/attachTemporaryFile **[Permissions](#permissions) required**: Permission to add attachments in this Service Desk. * Attach temporary file */ attachTemporaryFile(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.attachTemporaryFileRaw(requestParameters); return yield response.value(); }); } /** * This method enables a customer request type to be added to a service desk based on an issue type. Note that not all customer request type fields can be specified in the request and these fields are given the following default values: * Request type icon is given the question mark icon. * Request type groups is left empty, which means this customer request type will not be visible on the [customer portal](https://confluence.atlassian.com/servicedeskcloud/configuring-the-customer-portal-732528918.html). * Request type status mapping is left empty, so the request type has no custom status mapping but inherits the status map from the issue type upon which it is based. * Request type field mapping is set to show the required fields as specified by the issue type used to create the customer request type. These fields can be updated by a service desk administrator using the **Request types** option in **Project settings**. Request Types are created in next-gen projects by creating Issue Types. Please use the Jira Cloud Platform Create issue type endpoint instead. **[Permissions](#permissions) required**: Service desk\'s administrator * Create request type */ createRequestTypeRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling createRequestType.'); } if (requestParameters.RequestTypeCreateDTO === null || requestParameters.RequestTypeCreateDTO === undefined) { throw new runtime.RequiredError('RequestTypeCreateDTO', 'Required parameter requestParameters.RequestTypeCreateDTO was null or undefined when calling createRequestType.'); } const queryParameters = {}; const headerParameters = {}; headerParameters['Content-Type'] = 'application/json'; const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/requesttype`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))), method: 'POST', headers: headerParameters, query: queryParameters, body: models_1.RequestTypeCreateDTOToJSON(requestParameters.RequestTypeCreateDTO), }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.RequestTypeDTOFromJSON(jsonValue)); }); } /** * This method enables a customer request type to be added to a service desk based on an issue type. Note that not all customer request type fields can be specified in the request and these fields are given the following default values: * Request type icon is given the question mark icon. * Request type groups is left empty, which means this customer request type will not be visible on the [customer portal](https://confluence.atlassian.com/servicedeskcloud/configuring-the-customer-portal-732528918.html). * Request type status mapping is left empty, so the request type has no custom status mapping but inherits the status map from the issue type upon which it is based. * Request type field mapping is set to show the required fields as specified by the issue type used to create the customer request type. These fields can be updated by a service desk administrator using the **Request types** option in **Project settings**. Request Types are created in next-gen projects by creating Issue Types. Please use the Jira Cloud Platform Create issue type endpoint instead. **[Permissions](#permissions) required**: Service desk\'s administrator * Create request type */ createRequestType(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.createRequestTypeRaw(requestParameters); return yield response.value(); }); } /** * Removes a property from a request type. Properties for a Request Type in next-gen are stored as Issue Type properties and therefore can also be deleted by calling the Jira Cloud Platform [Delete issue type property](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-issuetype-issueTypeId-properties-propertyKey-delete) endpoint. **[Permissions](#permissions) required**: Jira project administrator with a Jira Service Desk agent license. * Delete property */ deleteProperty1Raw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling deleteProperty1.'); } if (requestParameters.requestTypeId === null || requestParameters.requestTypeId === undefined) { throw new runtime.RequiredError('requestTypeId', 'Required parameter requestParameters.requestTypeId was null or undefined when calling deleteProperty1.'); } if (requestParameters.propertyKey === null || requestParameters.propertyKey === undefined) { throw new runtime.RequiredError('propertyKey', 'Required parameter requestParameters.propertyKey was null or undefined when calling deleteProperty1.'); } const queryParameters = {}; const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["manage:jira-project"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/requesttype/{requestTypeId}/property/{propertyKey}`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))).replace(`{${"requestTypeId"}}`, encodeURIComponent(String(requestParameters.requestTypeId))).replace(`{${"propertyKey"}}`, encodeURIComponent(String(requestParameters.propertyKey))), method: 'DELETE', headers: headerParameters, query: queryParameters, }); return new runtime.VoidApiResponse(response); }); } /** * Removes a property from a request type. Properties for a Request Type in next-gen are stored as Issue Type properties and therefore can also be deleted by calling the Jira Cloud Platform [Delete issue type property](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-issuetype-issueTypeId-properties-propertyKey-delete) endpoint. **[Permissions](#permissions) required**: Jira project administrator with a Jira Service Desk agent license. * Delete property */ deleteProperty1(requestParameters) { return __awaiter(this, void 0, void 0, function* () { yield this.deleteProperty1Raw(requestParameters); }); } /** * Returns articles which match the given query and belong to the knowledge base linked to the service desk. **[Permissions](#permissions) required**: Permission to access the service desk. * Get articles */ getArticles1Raw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getArticles1.'); } const queryParameters = {}; if (requestParameters.query !== undefined) { queryParameters['query'] = requestParameters.query; } if (requestParameters.highlight !== undefined) { queryParameters['highlight'] = requestParameters.highlight; } if (requestParameters.start !== undefined) { queryParameters['start'] = requestParameters.start; } if (requestParameters.limit !== undefined) { queryParameters['limit'] = requestParameters.limit; } const headerParameters = {}; const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/knowledgebase/article`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.PagedDTOArticleDTOFromJSON(jsonValue)); }); } /** * Returns articles which match the given query and belong to the knowledge base linked to the service desk. **[Permissions](#permissions) required**: Permission to access the service desk. * Get articles */ getArticles1(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.getArticles1Raw(requestParameters); return yield response.value(); }); } /** * This method returns a list of the customers on a service desk. The returned list of customers can be filtered using the `query` parameter. The parameter is matched against customers\' `displayName`, `name`, or `email`. For example, searching for \"John\", \"Jo\", \"Smi\", or \"Smith\" will match a user with display name \"John Smith\". **[Permissions](#permissions) required**: Permission to view this Service Desk\'s customers. * Get customers */ getCustomersRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getCustomers.'); } const queryParameters = {}; if (requestParameters.query !== undefined) { queryParameters['query'] = requestParameters.query; } if (requestParameters.start !== undefined) { queryParameters['start'] = requestParameters.start; } if (requestParameters.limit !== undefined) { queryParameters['limit'] = requestParameters.limit; } const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["manage:servicedesk-customer"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/customer`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.PagedDTOUserDTOFromJSON(jsonValue)); }); } /** * This method returns a list of the customers on a service desk. The returned list of customers can be filtered using the `query` parameter. The parameter is matched against customers\' `displayName`, `name`, or `email`. For example, searching for \"John\", \"Jo\", \"Smi\", or \"Smith\" will match a user with display name \"John Smith\". **[Permissions](#permissions) required**: Permission to view this Service Desk\'s customers. * Get customers */ getCustomers(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.getCustomersRaw(requestParameters); return yield response.value(); }); } /** * This method returns the customer requests in a queue. Only fields that the queue is configured to show are returned. For example, if a queue is configured to show description and due date, then only those two fields are returned for each customer request in the queue. **[Permissions](#permissions) required**: Service desk\'s agent. * Get issues in queue */ getIssuesInQueueRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getIssuesInQueue.'); } if (requestParameters.queueId === null || requestParameters.queueId === undefined) { throw new runtime.RequiredError('queueId', 'Required parameter requestParameters.queueId was null or undefined when calling getIssuesInQueue.'); } const queryParameters = {}; if (requestParameters.start !== undefined) { queryParameters['start'] = requestParameters.start; } if (requestParameters.limit !== undefined) { queryParameters['limit'] = requestParameters.limit; } const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["read:jira-work"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/queue/{queueId}/issue`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))).replace(`{${"queueId"}}`, encodeURIComponent(String(requestParameters.queueId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.PagedDTOIssueBeanFromJSON(jsonValue)); }); } /** * This method returns the customer requests in a queue. Only fields that the queue is configured to show are returned. For example, if a queue is configured to show description and due date, then only those two fields are returned for each customer request in the queue. **[Permissions](#permissions) required**: Service desk\'s agent. * Get issues in queue */ getIssuesInQueue(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.getIssuesInQueueRaw(requestParameters); return yield response.value(); }); } /** * Returns the keys of all properties for a request type. Properties for a Request Type in next-gen are stored as Issue Type properties and therefore the keys of all properties for a request type are also available by calling the Jira Cloud Platform [Get issue type property keys](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-issuetype-issueTypeId-properties-get) endpoint. **[Permissions](#permissions) required**: The user must have permission to view the request type. * Get properties keys */ getPropertiesKeys1Raw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.requestTypeId === null || requestParameters.requestTypeId === undefined) { throw new runtime.RequiredError('requestTypeId', 'Required parameter requestParameters.requestTypeId was null or undefined when calling getPropertiesKeys1.'); } if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getPropertiesKeys1.'); } const queryParameters = {}; const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["read:servicedesk-request"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/requesttype/{requestTypeId}/property`.replace(`{${"requestTypeId"}}`, encodeURIComponent(String(requestParameters.requestTypeId))).replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.PropertyKeysFromJSON(jsonValue)); }); } /** * Returns the keys of all properties for a request type. Properties for a Request Type in next-gen are stored as Issue Type properties and therefore the keys of all properties for a request type are also available by calling the Jira Cloud Platform [Get issue type property keys](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-issuetype-issueTypeId-properties-get) endpoint. **[Permissions](#permissions) required**: The user must have permission to view the request type. * Get properties keys */ getPropertiesKeys1(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.getPropertiesKeys1Raw(requestParameters); return yield response.value(); }); } /** * Returns the value of the property from a request type. Properties for a Request Type in next-gen are stored as Issue Type properties and therefore also available by calling the Jira Cloud Platform [Get issue type property](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-issuetype-issueTypeId-properties-propertyKey-get) endpoint. **[Permissions](#permissions) required**: User must have permission to view the request type. * Get property */ getProperty1Raw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getProperty1.'); } if (requestParameters.requestTypeId === null || requestParameters.requestTypeId === undefined) { throw new runtime.RequiredError('requestTypeId', 'Required parameter requestParameters.requestTypeId was null or undefined when calling getProperty1.'); } if (requestParameters.propertyKey === null || requestParameters.propertyKey === undefined) { throw new runtime.RequiredError('propertyKey', 'Required parameter requestParameters.propertyKey was null or undefined when calling getProperty1.'); } const queryParameters = {}; const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["read:servicedesk-request"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/requesttype/{requestTypeId}/property/{propertyKey}`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))).replace(`{${"requestTypeId"}}`, encodeURIComponent(String(requestParameters.requestTypeId))).replace(`{${"propertyKey"}}`, encodeURIComponent(String(requestParameters.propertyKey))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.EntityPropertyFromJSON(jsonValue)); }); } /** * Returns the value of the property from a request type. Properties for a Request Type in next-gen are stored as Issue Type properties and therefore also available by calling the Jira Cloud Platform [Get issue type property](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-issuetype-issueTypeId-properties-propertyKey-get) endpoint. **[Permissions](#permissions) required**: User must have permission to view the request type. * Get property */ getProperty1(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.getProperty1Raw(requestParameters); return yield response.value(); }); } /** * This method returns a specific queues in a service desk. To include a customer request count for the queue (in the `issueCount` field) in the response, set the query parameter `includeCount` to true (its default is false). **[Permissions](#permissions) required**: service desk\'s Agent. * Get queue */ getQueueRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getQueue.'); } if (requestParameters.queueId === null || requestParameters.queueId === undefined) { throw new runtime.RequiredError('queueId', 'Required parameter requestParameters.queueId was null or undefined when calling getQueue.'); } const queryParameters = {}; if (requestParameters.includeCount !== undefined) { queryParameters['includeCount'] = requestParameters.includeCount; } const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["read:jira-work"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/queue/{queueId}`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))).replace(`{${"queueId"}}`, encodeURIComponent(String(requestParameters.queueId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.QueueDTOFromJSON(jsonValue)); }); } /** * This method returns a specific queues in a service desk. To include a customer request count for the queue (in the `issueCount` field) in the response, set the query parameter `includeCount` to true (its default is false). **[Permissions](#permissions) required**: service desk\'s Agent. * Get queue */ getQueue(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.getQueueRaw(requestParameters); return yield response.value(); }); } /** * This method returns the queues in a service desk. To include a customer request count for each queue (in the `issueCount` field) in the response, set the query parameter `includeCount` to true (its default is false). **[Permissions](#permissions) required**: service desk\'s Agent. * Get queues */ getQueuesRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getQueues.'); } const queryParameters = {}; if (requestParameters.includeCount !== undefined) { queryParameters['includeCount'] = requestParameters.includeCount; } if (requestParameters.start !== undefined) { queryParameters['start'] = requestParameters.start; } if (requestParameters.limit !== undefined) { queryParameters['limit'] = requestParameters.limit; } const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["read:jira-work"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/queue`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.PagedDTOQueueDTOFromJSON(jsonValue)); }); } /** * This method returns the queues in a service desk. To include a customer request count for each queue (in the `issueCount` field) in the response, set the query parameter `includeCount` to true (its default is false). **[Permissions](#permissions) required**: service desk\'s Agent. * Get queues */ getQueues(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.getQueuesRaw(requestParameters); return yield response.value(); }); } /** * This method returns a customer request type from a service desk. **[Permissions](#permissions) required**: Permission to access the service desk. * Get request type by id */ getRequestTypeByIdRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getRequestTypeById.'); } if (requestParameters.requestTypeId === null || requestParameters.requestTypeId === undefined) { throw new runtime.RequiredError('requestTypeId', 'Required parameter requestParameters.requestTypeId was null or undefined when calling getRequestTypeById.'); } const queryParameters = {}; if (requestParameters.expand) { queryParameters['expand'] = requestParameters.expand.join(runtime.COLLECTION_FORMATS["csv"]); } const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["read:servicedesk-request"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/requesttype/{requestTypeId}`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))).replace(`{${"requestTypeId"}}`, encodeURIComponent(String(requestParameters.requestTypeId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.RequestTypeDTOFromJSON(jsonValue)); }); } /** * This method returns a customer request type from a service desk. **[Permissions](#permissions) required**: Permission to access the service desk. * Get request type by id */ getRequestTypeById(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.getRequestTypeByIdRaw(requestParameters); return yield response.value(); }); } /** * This method returns the fields for a service desk\'s customer request type. Also, the following information about the user\'s permissions for the request type is returned: * `canRaiseOnBehalfOf` returns `true` if the user has permission to raise customer requests on behalf of other customers. Otherwise, returns `false`. * `canAddRequestParticipants` returns `true` if the user can add customer request participants. Otherwise, returns `false`. **[Permissions](#permissions) required**: Permission to view the Service Desk. * Get request type fields */ getRequestTypeFieldsRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getRequestTypeFields.'); } if (requestParameters.requestTypeId === null || requestParameters.requestTypeId === undefined) { throw new runtime.RequiredError('requestTypeId', 'Required parameter requestParameters.requestTypeId was null or undefined when calling getRequestTypeFields.'); } const queryParameters = {}; const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["read:servicedesk-request"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/requesttype/{requestTypeId}/field`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))).replace(`{${"requestTypeId"}}`, encodeURIComponent(String(requestParameters.requestTypeId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.CustomerRequestCreateMetaDTOFromJSON(jsonValue)); }); } /** * This method returns the fields for a service desk\'s customer request type. Also, the following information about the user\'s permissions for the request type is returned: * `canRaiseOnBehalfOf` returns `true` if the user has permission to raise customer requests on behalf of other customers. Otherwise, returns `false`. * `canAddRequestParticipants` returns `true` if the user can add customer request participants. Otherwise, returns `false`. **[Permissions](#permissions) required**: Permission to view the Service Desk. * Get request type fields */ getRequestTypeFields(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.getRequestTypeFieldsRaw(requestParameters); return yield response.value(); }); } /** * This method returns a service desk\'s customer request type groups. Jira Service Desk administrators can arrange the customer request type groups in an arbitrary order for display on the customer portal; the groups are returned in this order. **[Permissions](#permissions) required**: Permission to view the service desk. * Get request type groups */ getRequestTypeGroupsRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getRequestTypeGroups.'); } const queryParameters = {}; if (requestParameters.start !== undefined) { queryParameters['start'] = requestParameters.start; } if (requestParameters.limit !== undefined) { queryParameters['limit'] = requestParameters.limit; } const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["read:servicedesk-request"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/requesttypegroup`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.PagedDTORequestTypeGroupDTOFromJSON(jsonValue)); }); } /** * This method returns a service desk\'s customer request type groups. Jira Service Desk administrators can arrange the customer request type groups in an arbitrary order for display on the customer portal; the groups are returned in this order. **[Permissions](#permissions) required**: Permission to view the service desk. * Get request type groups */ getRequestTypeGroups(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.getRequestTypeGroupsRaw(requestParameters); return yield response.value(); }); } /** * This method returns all customer request types from a service desk. There are two parameters for filtering the returned list: * `groupId` which filters the results to items in the customer request type group. * `searchQuery` which is matched against request types\' `name` or `description`. For example, the strings \"Install\", \"Inst\", \"Equi\", or \"Equipment\" will match a request type with the *name* \"Equipment Installation Request\". **[Permissions](#permissions) required**: Permission to access the service desk. * Get request types */ getRequestTypesRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getRequestTypes.'); } const queryParameters = {}; if (requestParameters.groupId !== undefined) { queryParameters['groupId'] = requestParameters.groupId; } if (requestParameters.expand) { queryParameters['expand'] = requestParameters.expand.join(runtime.COLLECTION_FORMATS["csv"]); } if (requestParameters.searchQuery !== undefined) { queryParameters['searchQuery'] = requestParameters.searchQuery; } if (requestParameters.start !== undefined) { queryParameters['start'] = requestParameters.start; } if (requestParameters.limit !== undefined) { queryParameters['limit'] = requestParameters.limit; } const headerParameters = {}; if (this.configuration && this.configuration.accessToken) { // oauth required if (typeof this.configuration.accessToken === 'function') { headerParameters["Authorization"] = this.configuration.accessToken("OAuth2", ["read:servicedesk-request"]); } else { headerParameters["Authorization"] = this.configuration.accessToken; } } const response = yield this.request({ path: `/rest/servicedeskapi/servicedesk/{serviceDeskId}/requesttype`.replace(`{${"serviceDeskId"}}`, encodeURIComponent(String(requestParameters.serviceDeskId))), method: 'GET', headers: headerParameters, query: queryParameters, }); return new runtime.JSONApiResponse(response, (jsonValue) => models_1.PagedDTORequestTypeDTOFromJSON(jsonValue)); }); } /** * This method returns all customer request types from a service desk. There are two parameters for filtering the returned list: * `groupId` which filters the results to items in the customer request type group. * `searchQuery` which is matched against request types\' `name` or `description`. For example, the strings \"Install\", \"Inst\", \"Equi\", or \"Equipment\" will match a request type with the *name* \"Equipment Installation Request\". **[Permissions](#permissions) required**: Permission to access the service desk. * Get request types */ getRequestTypes(requestParameters) { return __awaiter(this, void 0, void 0, function* () { const response = yield this.getRequestTypesRaw(requestParameters); return yield response.value(); }); } /** * This method returns a service desk. Use this method to get service desk details whenever your application component is passed a service desk ID but needs to display other service desk details. **[Permissions](#permissions) required**: Permission to access the Service Desk. For example, being the Service Desk\'s Administrator or one of its Agents or Users. * Get service desk by id */ getServiceDeskByIdRaw(requestParameters) { return __awaiter(this, void 0, void 0, function* () { if (requestParameters.serviceDeskId === null || requestParameters.serviceDeskId === undefined) { throw new runtime.RequiredError('serviceDeskId', 'Required parameter requestParameters.serviceDeskId was null or undefined when calling getServiceDeskById.'); } const queryParameters = {}; const headerParameters = {}; if (this