UNPKG

fastcomments-sdk

Version:

FastComments API Client - A SDK for interacting with the FastComments API

4,139 lines 203 kB
"use strict";
/* tslint:disable */
/* eslint-disable */
/**
 * fastcomments
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 0.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.
 */
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
    var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function (o) {
            var ar = [];
            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
            return ar;
        };
        return ownKeys(o);
    };
    return function (mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
        __setModuleDefault(result, mod);
        return result;
    };
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.CreateVoteDirectionEnum = exports.DefaultApi = void 0;
const runtime = __importStar(require("../runtime"));
const index_1 = require("../models/index");
/**
 *
 */
class DefaultApi extends runtime.BaseAPI {
    /**
     */
    async addDomainConfigRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling addDomainConfig().');
        }
        if (requestParameters['addDomainConfigParams'] == null) {
            throw new runtime.RequiredError('addDomainConfigParams', 'Required parameter "addDomainConfigParams" was null or undefined when calling addDomainConfig().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/domain-configs`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.AddDomainConfigParamsToJSON)(requestParameters['addDomainConfigParams']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.AddDomainConfigResponseFromJSON)(jsonValue));
    }
    /**
     */
    async addDomainConfig(requestParameters, initOverrides) {
        const response = await this.addDomainConfigRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async addHashTagRaw(requestParameters, initOverrides) {
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/hash-tags`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateHashTagBodyToJSON)(requestParameters['createHashTagBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.AddHashTagResponseFromJSON)(jsonValue));
    }
    /**
     */
    async addHashTag(requestParameters = {}, initOverrides) {
        const response = await this.addHashTagRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async addHashTagsBulkRaw(requestParameters, initOverrides) {
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/hash-tags/bulk`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.BulkCreateHashTagsBodyToJSON)(requestParameters['bulkCreateHashTagsBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.AddHashTagsBulkResponseFromJSON)(jsonValue));
    }
    /**
     */
    async addHashTagsBulk(requestParameters = {}, initOverrides) {
        const response = await this.addHashTagsBulkRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async addPageRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling addPage().');
        }
        if (requestParameters['createAPIPageData'] == null) {
            throw new runtime.RequiredError('createAPIPageData', 'Required parameter "createAPIPageData" was null or undefined when calling addPage().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/pages`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateAPIPageDataToJSON)(requestParameters['createAPIPageData']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.AddPageAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async addPage(requestParameters, initOverrides) {
        const response = await this.addPageRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async addSSOUserRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling addSSOUser().');
        }
        if (requestParameters['createAPISSOUserData'] == null) {
            throw new runtime.RequiredError('createAPISSOUserData', 'Required parameter "createAPISSOUserData" was null or undefined when calling addSSOUser().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/sso-users`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateAPISSOUserDataToJSON)(requestParameters['createAPISSOUserData']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.AddSSOUserAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async addSSOUser(requestParameters, initOverrides) {
        const response = await this.addSSOUserRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     * Aggregates documents by grouping them (if groupBy is provided) and applying multiple operations. Different operations (e.g. sum, countDistinct, avg, etc.) are supported.
     */
    async aggregateRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling aggregate().');
        }
        if (requestParameters['aggregationRequest'] == null) {
            throw new runtime.RequiredError('aggregationRequest', 'Required parameter "aggregationRequest" was null or undefined when calling aggregate().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['parentTenantId'] != null) {
            queryParameters['parentTenantId'] = requestParameters['parentTenantId'];
        }
        if (requestParameters['includeStats'] != null) {
            queryParameters['includeStats'] = requestParameters['includeStats'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/aggregate`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.AggregationRequestToJSON)(requestParameters['aggregationRequest']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.AggregateResponseFromJSON)(jsonValue));
    }
    /**
     * Aggregates documents by grouping them (if groupBy is provided) and applying multiple operations. Different operations (e.g. sum, countDistinct, avg, etc.) are supported.
     */
    async aggregate(requestParameters, initOverrides) {
        const response = await this.aggregateRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async aggregateQuestionResultsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling aggregateQuestionResults().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['questionId'] != null) {
            queryParameters['questionId'] = requestParameters['questionId'];
        }
        if (requestParameters['questionIds'] != null) {
            queryParameters['questionIds'] = requestParameters['questionIds'];
        }
        if (requestParameters['urlId'] != null) {
            queryParameters['urlId'] = requestParameters['urlId'];
        }
        if (requestParameters['timeBucket'] != null) {
            queryParameters['timeBucket'] = requestParameters['timeBucket'];
        }
        if (requestParameters['startDate'] != null) {
            queryParameters['startDate'] = requestParameters['startDate'].toISOString();
        }
        if (requestParameters['forceRecalculate'] != null) {
            queryParameters['forceRecalculate'] = requestParameters['forceRecalculate'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-results-aggregation`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.AggregateQuestionResultsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async aggregateQuestionResults(requestParameters, initOverrides) {
        const response = await this.aggregateQuestionResultsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async blockUserFromCommentRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling blockUserFromComment().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling blockUserFromComment().');
        }
        if (requestParameters['blockFromCommentParams'] == null) {
            throw new runtime.RequiredError('blockFromCommentParams', 'Required parameter "blockFromCommentParams" was null or undefined when calling blockUserFromComment().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['anonUserId'] != null) {
            queryParameters['anonUserId'] = requestParameters['anonUserId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/comments/{id}/block`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.BlockFromCommentParamsToJSON)(requestParameters['blockFromCommentParams']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.BlockUserFromCommentResponseFromJSON)(jsonValue));
    }
    /**
     */
    async blockUserFromComment(requestParameters, initOverrides) {
        const response = await this.blockUserFromCommentRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async bulkAggregateQuestionResultsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling bulkAggregateQuestionResults().');
        }
        if (requestParameters['bulkAggregateQuestionResultsRequest'] == null) {
            throw new runtime.RequiredError('bulkAggregateQuestionResultsRequest', 'Required parameter "bulkAggregateQuestionResultsRequest" was null or undefined when calling bulkAggregateQuestionResults().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['forceRecalculate'] != null) {
            queryParameters['forceRecalculate'] = requestParameters['forceRecalculate'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-results-aggregation/bulk`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.BulkAggregateQuestionResultsRequestToJSON)(requestParameters['bulkAggregateQuestionResultsRequest']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.BulkAggregateQuestionResultsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async bulkAggregateQuestionResults(requestParameters, initOverrides) {
        const response = await this.bulkAggregateQuestionResultsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async changeTicketStateRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling changeTicketState().');
        }
        if (requestParameters['userId'] == null) {
            throw new runtime.RequiredError('userId', 'Required parameter "userId" was null or undefined when calling changeTicketState().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling changeTicketState().');
        }
        if (requestParameters['changeTicketStateBody'] == null) {
            throw new runtime.RequiredError('changeTicketStateBody', 'Required parameter "changeTicketStateBody" was null or undefined when calling changeTicketState().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tickets/{id}/state`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.ChangeTicketStateBodyToJSON)(requestParameters['changeTicketStateBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.ChangeTicketStateResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async changeTicketState(requestParameters, initOverrides) {
        const response = await this.changeTicketStateRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async combineCommentsWithQuestionResultsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling combineCommentsWithQuestionResults().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['questionId'] != null) {
            queryParameters['questionId'] = requestParameters['questionId'];
        }
        if (requestParameters['questionIds'] != null) {
            queryParameters['questionIds'] = requestParameters['questionIds'];
        }
        if (requestParameters['urlId'] != null) {
            queryParameters['urlId'] = requestParameters['urlId'];
        }
        if (requestParameters['startDate'] != null) {
            queryParameters['startDate'] = requestParameters['startDate'].toISOString();
        }
        if (requestParameters['forceRecalculate'] != null) {
            queryParameters['forceRecalculate'] = requestParameters['forceRecalculate'];
        }
        if (requestParameters['minValue'] != null) {
            queryParameters['minValue'] = requestParameters['minValue'];
        }
        if (requestParameters['maxValue'] != null) {
            queryParameters['maxValue'] = requestParameters['maxValue'];
        }
        if (requestParameters['limit'] != null) {
            queryParameters['limit'] = requestParameters['limit'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-results-aggregation/combine/comments`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CombineCommentsWithQuestionResultsResponseFromJSON)(jsonValue));
    }
    /**
     */
    async combineCommentsWithQuestionResults(requestParameters, initOverrides) {
        const response = await this.combineCommentsWithQuestionResultsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createEmailTemplateRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createEmailTemplate().');
        }
        if (requestParameters['createEmailTemplateBody'] == null) {
            throw new runtime.RequiredError('createEmailTemplateBody', 'Required parameter "createEmailTemplateBody" was null or undefined when calling createEmailTemplate().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/email-templates`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateEmailTemplateBodyToJSON)(requestParameters['createEmailTemplateBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateEmailTemplateResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async createEmailTemplate(requestParameters, initOverrides) {
        const response = await this.createEmailTemplateRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createFeedPostRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createFeedPost().');
        }
        if (requestParameters['createFeedPostParams'] == null) {
            throw new runtime.RequiredError('createFeedPostParams', 'Required parameter "createFeedPostParams" was null or undefined when calling createFeedPost().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['broadcastId'] != null) {
            queryParameters['broadcastId'] = requestParameters['broadcastId'];
        }
        if (requestParameters['isLive'] != null) {
            queryParameters['isLive'] = requestParameters['isLive'];
        }
        if (requestParameters['doSpamCheck'] != null) {
            queryParameters['doSpamCheck'] = requestParameters['doSpamCheck'];
        }
        if (requestParameters['skipDupCheck'] != null) {
            queryParameters['skipDupCheck'] = requestParameters['skipDupCheck'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/feed-posts`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateFeedPostParamsToJSON)(requestParameters['createFeedPostParams']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateFeedPostResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async createFeedPost(requestParameters, initOverrides) {
        const response = await this.createFeedPostRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createModeratorRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createModerator().');
        }
        if (requestParameters['createModeratorBody'] == null) {
            throw new runtime.RequiredError('createModeratorBody', 'Required parameter "createModeratorBody" was null or undefined when calling createModerator().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/moderators`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateModeratorBodyToJSON)(requestParameters['createModeratorBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateModeratorResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async createModerator(requestParameters, initOverrides) {
        const response = await this.createModeratorRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createQuestionConfigRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createQuestionConfig().');
        }
        if (requestParameters['createQuestionConfigBody'] == null) {
            throw new runtime.RequiredError('createQuestionConfigBody', 'Required parameter "createQuestionConfigBody" was null or undefined when calling createQuestionConfig().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-configs`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateQuestionConfigBodyToJSON)(requestParameters['createQuestionConfigBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateQuestionConfigResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async createQuestionConfig(requestParameters, initOverrides) {
        const response = await this.createQuestionConfigRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createQuestionResultRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createQuestionResult().');
        }
        if (requestParameters['createQuestionResultBody'] == null) {
            throw new runtime.RequiredError('createQuestionResultBody', 'Required parameter "createQuestionResultBody" was null or undefined when calling createQuestionResult().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-results`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateQuestionResultBodyToJSON)(requestParameters['createQuestionResultBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateQuestionResultResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async createQuestionResult(requestParameters, initOverrides) {
        const response = await this.createQuestionResultRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createSubscriptionRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createSubscription().');
        }
        if (requestParameters['createAPIUserSubscriptionData'] == null) {
            throw new runtime.RequiredError('createAPIUserSubscriptionData', 'Required parameter "createAPIUserSubscriptionData" was null or undefined when calling createSubscription().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/subscriptions`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateAPIUserSubscriptionDataToJSON)(requestParameters['createAPIUserSubscriptionData']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateSubscriptionAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async createSubscription(requestParameters, initOverrides) {
        const response = await this.createSubscriptionRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createTenantRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createTenant().');
        }
        if (requestParameters['createTenantBody'] == null) {
            throw new runtime.RequiredError('createTenantBody', 'Required parameter "createTenantBody" was null or undefined when calling createTenant().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenants`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateTenantBodyToJSON)(requestParameters['createTenantBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateTenantResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async createTenant(requestParameters, initOverrides) {
        const response = await this.createTenantRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createTenantPackageRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createTenantPackage().');
        }
        if (requestParameters['createTenantPackageBody'] == null) {
            throw new runtime.RequiredError('createTenantPackageBody', 'Required parameter "createTenantPackageBody" was null or undefined when calling createTenantPackage().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-packages`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateTenantPackageBodyToJSON)(requestParameters['createTenantPackageBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateTenantPackageResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async createTenantPackage(requestParameters, initOverrides) {
        const response = await this.createTenantPackageRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createTenantUserRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createTenantUser().');
        }
        if (requestParameters['createTenantUserBody'] == null) {
            throw new runtime.RequiredError('createTenantUserBody', 'Required parameter "createTenantUserBody" was null or undefined when calling createTenantUser().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-users`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateTenantUserBodyToJSON)(requestParameters['createTenantUserBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateTenantUserResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async createTenantUser(requestParameters, initOverrides) {
        const response = await this.createTenantUserRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createTicketRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createTicket().');
        }
        if (requestParameters['userId'] == null) {
            throw new runtime.RequiredError('userId', 'Required parameter "userId" was null or undefined when calling createTicket().');
        }
        if (requestParameters['createTicketBody'] == null) {
            throw new runtime.RequiredError('createTicketBody', 'Required parameter "createTicketBody" was null or undefined when calling createTicket().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tickets`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateTicketBodyToJSON)(requestParameters['createTicketBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateTicketResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async createTicket(requestParameters, initOverrides) {
        const response = await this.createTicketRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createUserBadgeRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createUserBadge().');
        }
        if (requestParameters['createUserBadgeParams'] == null) {
            throw new runtime.RequiredError('createUserBadgeParams', 'Required parameter "createUserBadgeParams" was null or undefined when calling createUserBadge().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/user-badges`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateUserBadgeParamsToJSON)(requestParameters['createUserBadgeParams']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateUserBadgeResponseFromJSON)(jsonValue));
    }
    /**
     */
    async createUserBadge(requestParameters, initOverrides) {
        const response = await this.createUserBadgeRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async createVoteRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling createVote().');
        }
        if (requestParameters['commentId'] == null) {
            throw new runtime.RequiredError('commentId', 'Required parameter "commentId" was null or undefined when calling createVote().');
        }
        if (requestParameters['direction'] == null) {
            throw new runtime.RequiredError('direction', 'Required parameter "direction" was null or undefined when calling createVote().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['commentId'] != null) {
            queryParameters['commentId'] = requestParameters['commentId'];
        }
        if (requestParameters['direction'] != null) {
            queryParameters['direction'] = requestParameters['direction'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['anonUserId'] != null) {
            queryParameters['anonUserId'] = requestParameters['anonUserId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/votes`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CreateVoteResponseFromJSON)(jsonValue));
    }
    /**
     */
    async createVote(requestParameters, initOverrides) {
        const response = await this.createVoteRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteCommentRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteComment().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteComment().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['contextUserId'] != null) {
            queryParameters['contextUserId'] = requestParameters['contextUserId'];
        }
        if (requestParameters['isLive'] != null) {
            queryParameters['isLive'] = requestParameters['isLive'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/comments/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteCommentResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteComment(requestParameters, initOverrides) {
        const response = await this.deleteCommentRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteDomainConfigRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteDomainConfig().');
        }
        if (requestParameters['domain'] == null) {
            throw new runtime.RequiredError('domain', 'Required parameter "domain" was null or undefined when calling deleteDomainConfig().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/domain-configs/{domain}`.replace(`{${"domain"}}`, encodeURIComponent(String(requestParameters['domain']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteDomainConfigResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteDomainConfig(requestParameters, initOverrides) {
        const response = await this.deleteDomainConfigRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteEmailTemplateRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteEmailTemplate().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteEmailTemplate().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/email-templates/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteEmailTemplateResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteEmailTemplate(requestParameters, initOverrides) {
        const response = await this.deleteEmailTemplateRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteEmailTemplateRenderErrorRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteEmailTemplateRenderError().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteEmailTemplateRenderError().');
        }
        if (requestParameters['errorId'] == null) {
            throw new runtime.RequiredError('errorId', 'Required parameter "errorId" was null or undefined when calling deleteEmailTemplateRenderError().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/email-templates/{id}/render-errors/{errorId}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))).replace(`{${"errorId"}}`, encodeURIComponent(String(requestParameters['errorId']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteEmailTemplateRenderErrorResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteEmailTemplateRenderError(requestParameters, initOverrides) {
        const response = await this.deleteEmailTemplateRenderErrorRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteHashTagRaw(requestParameters, initOverrides) {
        if (requestParameters['tag'] == null) {
            throw new runtime.RequiredError('tag', 'Required parameter "tag" was null or undefined when calling deleteHashTag().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/hash-tags/{tag}`.replace(`{${"tag"}}`, encodeURIComponent(String(requestParameters['tag']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.DeleteHashTagRequestBodyToJSON)(requestParameters['deleteHashTagRequestBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteHashTagResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteHashTag(requestParameters, initOverrides) {
        const response = await this.deleteHashTagRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteModeratorRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteModerator().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteModerator().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['sendEmail'] != null) {
            queryParameters['sendEmail'] = requestParameters['sendEmail'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/moderators/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteModeratorResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteModerator(requestParameters, initOverrides) {
        const response = await this.deleteModeratorRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteNotificationCountRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteNotificationCount().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteNotificationCount().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/notification-count/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteNotificationCountResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteNotificationCount(requestParameters, initOverrides) {
        const response = await this.deleteNotificationCountRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deletePageRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deletePage().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deletePage().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/pages/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeletePageAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deletePage(requestParameters, initOverrides) {
        const response = await this.deletePageRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deletePendingWebhookEventRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deletePendingWebhookEvent().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deletePendingWebhookEvent().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/pending-webhook-events/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeletePendingWebhookEventResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deletePendingWebhookEvent(requestParameters, initOverrides) {
        const response = await this.deletePendingWebhookEventRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteQuestionConfigRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteQuestionConfig().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteQuestionConfig().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-configs/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteQuestionConfigResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteQuestionConfig(requestParameters, initOverrides) {
        const response = await this.deleteQuestionConfigRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteQuestionResultRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteQuestionResult().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteQuestionResult().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-results/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteQuestionResultResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteQuestionResult(requestParameters, initOverrides) {
        const response = await this.deleteQuestionResultRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteSSOUserRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteSSOUser().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteSSOUser().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['deleteComments'] != null) {
            queryParameters['deleteComments'] = requestParameters['deleteComments'];
        }
        if (requestParameters['commentDeleteMode'] != null) {
            queryParameters['commentDeleteMode'] = requestParameters['commentDeleteMode'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/sso-users/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteSSOUserAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteSSOUser(requestParameters, initOverrides) {
        const response = await this.deleteSSOUserRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteSubscriptionRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteSubscription().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteSubscription().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/subscriptions/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteSubscriptionAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteSubscription(requestParameters, initOverrides) {
        const response = await this.deleteSubscriptionRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteTenantRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteTenant().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteTenant().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['sure'] != null) {
            queryParameters['sure'] = requestParameters['sure'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenants/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteTenantResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteTenant(requestParameters, initOverrides) {
        const response = await this.deleteTenantRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteTenantPackageRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteTenantPackage().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteTenantPackage().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-packages/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteTenantPackageResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteTenantPackage(requestParameters, initOverrides) {
        const response = await this.deleteTenantPackageRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteTenantUserRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteTenantUser().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteTenantUser().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['deleteComments'] != null) {
            queryParameters['deleteComments'] = requestParameters['deleteComments'];
        }
        if (requestParameters['commentDeleteMode'] != null) {
            queryParameters['commentDeleteMode'] = requestParameters['commentDeleteMode'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-users/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteTenantUserResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteTenantUser(requestParameters, initOverrides) {
        const response = await this.deleteTenantUserRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteUserBadgeRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteUserBadge().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteUserBadge().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/user-badges/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteUserBadgeResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteUserBadge(requestParameters, initOverrides) {
        const response = await this.deleteUserBadgeRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async deleteVoteRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling deleteVote().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling deleteVote().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['editKey'] != null) {
            queryParameters['editKey'] = requestParameters['editKey'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/votes/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteVoteResponseFromJSON)(jsonValue));
    }
    /**
     */
    async deleteVote(requestParameters, initOverrides) {
        const response = await this.deleteVoteRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async flagCommentRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling flagComment().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling flagComment().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['anonUserId'] != null) {
            queryParameters['anonUserId'] = requestParameters['anonUserId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/comments/{id}/flag`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.FlagCommentResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async flagComment(requestParameters, initOverrides) {
        const response = await this.flagCommentRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getAuditLogsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getAuditLogs().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['limit'] != null) {
            queryParameters['limit'] = requestParameters['limit'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        if (requestParameters['order'] != null) {
            queryParameters['order'] = requestParameters['order'];
        }
        if (requestParameters['after'] != null) {
            queryParameters['after'] = requestParameters['after'];
        }
        if (requestParameters['before'] != null) {
            queryParameters['before'] = requestParameters['before'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/audit-logs`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetAuditLogsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getAuditLogs(requestParameters, initOverrides) {
        const response = await this.getAuditLogsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getCachedNotificationCountRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getCachedNotificationCount().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getCachedNotificationCount().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/notification-count/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetCachedNotificationCountResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getCachedNotificationCount(requestParameters, initOverrides) {
        const response = await this.getCachedNotificationCountRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getCommentRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getComment().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getComment().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/comments/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetCommentResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getComment(requestParameters, initOverrides) {
        const response = await this.getCommentRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getCommentsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getComments().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['page'] != null) {
            queryParameters['page'] = requestParameters['page'];
        }
        if (requestParameters['limit'] != null) {
            queryParameters['limit'] = requestParameters['limit'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        if (requestParameters['asTree'] != null) {
            queryParameters['asTree'] = requestParameters['asTree'];
        }
        if (requestParameters['skipChildren'] != null) {
            queryParameters['skipChildren'] = requestParameters['skipChildren'];
        }
        if (requestParameters['limitChildren'] != null) {
            queryParameters['limitChildren'] = requestParameters['limitChildren'];
        }
        if (requestParameters['maxTreeDepth'] != null) {
            queryParameters['maxTreeDepth'] = requestParameters['maxTreeDepth'];
        }
        if (requestParameters['urlId'] != null) {
            queryParameters['urlId'] = requestParameters['urlId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['anonUserId'] != null) {
            queryParameters['anonUserId'] = requestParameters['anonUserId'];
        }
        if (requestParameters['contextUserId'] != null) {
            queryParameters['contextUserId'] = requestParameters['contextUserId'];
        }
        if (requestParameters['hashTag'] != null) {
            queryParameters['hashTag'] = requestParameters['hashTag'];
        }
        if (requestParameters['parentId'] != null) {
            queryParameters['parentId'] = requestParameters['parentId'];
        }
        if (requestParameters['direction'] != null) {
            queryParameters['direction'] = requestParameters['direction'];
        }
        if (requestParameters['fromDate'] != null) {
            queryParameters['fromDate'] = requestParameters['fromDate'];
        }
        if (requestParameters['toDate'] != null) {
            queryParameters['toDate'] = requestParameters['toDate'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/comments`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetCommentsResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getComments(requestParameters, initOverrides) {
        const response = await this.getCommentsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getDomainConfigRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getDomainConfig().');
        }
        if (requestParameters['domain'] == null) {
            throw new runtime.RequiredError('domain', 'Required parameter "domain" was null or undefined when calling getDomainConfig().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/domain-configs/{domain}`.replace(`{${"domain"}}`, encodeURIComponent(String(requestParameters['domain']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetDomainConfigResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getDomainConfig(requestParameters, initOverrides) {
        const response = await this.getDomainConfigRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getDomainConfigsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getDomainConfigs().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/domain-configs`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetDomainConfigsResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getDomainConfigs(requestParameters, initOverrides) {
        const response = await this.getDomainConfigsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getEmailTemplateRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getEmailTemplate().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getEmailTemplate().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/email-templates/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetEmailTemplateResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getEmailTemplate(requestParameters, initOverrides) {
        const response = await this.getEmailTemplateRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getEmailTemplateDefinitionsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getEmailTemplateDefinitions().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/email-templates/definitions`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetEmailTemplateDefinitionsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getEmailTemplateDefinitions(requestParameters, initOverrides) {
        const response = await this.getEmailTemplateDefinitionsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getEmailTemplateRenderErrorsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getEmailTemplateRenderErrors().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getEmailTemplateRenderErrors().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/email-templates/{id}/render-errors`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetEmailTemplateRenderErrorsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getEmailTemplateRenderErrors(requestParameters, initOverrides) {
        const response = await this.getEmailTemplateRenderErrorsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getEmailTemplatesRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getEmailTemplates().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/email-templates`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetEmailTemplatesResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getEmailTemplates(requestParameters, initOverrides) {
        const response = await this.getEmailTemplatesRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     *  req tenantId afterId
     */
    async getFeedPostsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getFeedPosts().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['afterId'] != null) {
            queryParameters['afterId'] = requestParameters['afterId'];
        }
        if (requestParameters['limit'] != null) {
            queryParameters['limit'] = requestParameters['limit'];
        }
        if (requestParameters['tags'] != null) {
            queryParameters['tags'] = requestParameters['tags'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/feed-posts`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetFeedPostsResponse1FromJSON)(jsonValue));
    }
    /**
     *  req tenantId afterId
     */
    async getFeedPosts(requestParameters, initOverrides) {
        const response = await this.getFeedPostsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getHashTagsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getHashTags().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['page'] != null) {
            queryParameters['page'] = requestParameters['page'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/hash-tags`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetHashTagsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getHashTags(requestParameters, initOverrides) {
        const response = await this.getHashTagsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getModeratorRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getModerator().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getModerator().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/moderators/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetModeratorResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getModerator(requestParameters, initOverrides) {
        const response = await this.getModeratorRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getModeratorsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getModerators().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/moderators`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetModeratorsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getModerators(requestParameters, initOverrides) {
        const response = await this.getModeratorsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getNotificationCountRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getNotificationCount().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['urlId'] != null) {
            queryParameters['urlId'] = requestParameters['urlId'];
        }
        if (requestParameters['fromCommentId'] != null) {
            queryParameters['fromCommentId'] = requestParameters['fromCommentId'];
        }
        if (requestParameters['viewed'] != null) {
            queryParameters['viewed'] = requestParameters['viewed'];
        }
        if (requestParameters['type'] != null) {
            queryParameters['type'] = requestParameters['type'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/notifications/count`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetNotificationCountResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getNotificationCount(requestParameters, initOverrides) {
        const response = await this.getNotificationCountRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getNotificationsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getNotifications().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['urlId'] != null) {
            queryParameters['urlId'] = requestParameters['urlId'];
        }
        if (requestParameters['fromCommentId'] != null) {
            queryParameters['fromCommentId'] = requestParameters['fromCommentId'];
        }
        if (requestParameters['viewed'] != null) {
            queryParameters['viewed'] = requestParameters['viewed'];
        }
        if (requestParameters['type'] != null) {
            queryParameters['type'] = requestParameters['type'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/notifications`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetNotificationsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getNotifications(requestParameters, initOverrides) {
        const response = await this.getNotificationsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getPageByURLIdRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getPageByURLId().');
        }
        if (requestParameters['urlId'] == null) {
            throw new runtime.RequiredError('urlId', 'Required parameter "urlId" was null or undefined when calling getPageByURLId().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['urlId'] != null) {
            queryParameters['urlId'] = requestParameters['urlId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/pages/by-url-id`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetPageByURLIdAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getPageByURLId(requestParameters, initOverrides) {
        const response = await this.getPageByURLIdRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getPagesRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getPages().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/pages`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetPagesAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getPages(requestParameters, initOverrides) {
        const response = await this.getPagesRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getPendingWebhookEventCountRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getPendingWebhookEventCount().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['commentId'] != null) {
            queryParameters['commentId'] = requestParameters['commentId'];
        }
        if (requestParameters['externalId'] != null) {
            queryParameters['externalId'] = requestParameters['externalId'];
        }
        if (requestParameters['eventType'] != null) {
            queryParameters['eventType'] = requestParameters['eventType'];
        }
        if (requestParameters['type'] != null) {
            queryParameters['type'] = requestParameters['type'];
        }
        if (requestParameters['domain'] != null) {
            queryParameters['domain'] = requestParameters['domain'];
        }
        if (requestParameters['attemptCountGT'] != null) {
            queryParameters['attemptCountGT'] = requestParameters['attemptCountGT'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/pending-webhook-events/count`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetPendingWebhookEventCountResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getPendingWebhookEventCount(requestParameters, initOverrides) {
        const response = await this.getPendingWebhookEventCountRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getPendingWebhookEventsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getPendingWebhookEvents().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['commentId'] != null) {
            queryParameters['commentId'] = requestParameters['commentId'];
        }
        if (requestParameters['externalId'] != null) {
            queryParameters['externalId'] = requestParameters['externalId'];
        }
        if (requestParameters['eventType'] != null) {
            queryParameters['eventType'] = requestParameters['eventType'];
        }
        if (requestParameters['type'] != null) {
            queryParameters['type'] = requestParameters['type'];
        }
        if (requestParameters['domain'] != null) {
            queryParameters['domain'] = requestParameters['domain'];
        }
        if (requestParameters['attemptCountGT'] != null) {
            queryParameters['attemptCountGT'] = requestParameters['attemptCountGT'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/pending-webhook-events`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetPendingWebhookEventsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getPendingWebhookEvents(requestParameters, initOverrides) {
        const response = await this.getPendingWebhookEventsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getQuestionConfigRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getQuestionConfig().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getQuestionConfig().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-configs/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetQuestionConfigResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getQuestionConfig(requestParameters, initOverrides) {
        const response = await this.getQuestionConfigRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getQuestionConfigsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getQuestionConfigs().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-configs`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetQuestionConfigsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getQuestionConfigs(requestParameters, initOverrides) {
        const response = await this.getQuestionConfigsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getQuestionResultRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getQuestionResult().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getQuestionResult().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-results/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetQuestionResultResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getQuestionResult(requestParameters, initOverrides) {
        const response = await this.getQuestionResultRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getQuestionResultsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getQuestionResults().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['urlId'] != null) {
            queryParameters['urlId'] = requestParameters['urlId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['startDate'] != null) {
            queryParameters['startDate'] = requestParameters['startDate'];
        }
        if (requestParameters['questionId'] != null) {
            queryParameters['questionId'] = requestParameters['questionId'];
        }
        if (requestParameters['questionIds'] != null) {
            queryParameters['questionIds'] = requestParameters['questionIds'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-results`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetQuestionResultsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getQuestionResults(requestParameters, initOverrides) {
        const response = await this.getQuestionResultsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getSSOUserByEmailRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getSSOUserByEmail().');
        }
        if (requestParameters['email'] == null) {
            throw new runtime.RequiredError('email', 'Required parameter "email" was null or undefined when calling getSSOUserByEmail().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/sso-users/by-email/{email}`.replace(`{${"email"}}`, encodeURIComponent(String(requestParameters['email']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetSSOUserByEmailAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getSSOUserByEmail(requestParameters, initOverrides) {
        const response = await this.getSSOUserByEmailRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getSSOUserByIdRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getSSOUserById().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getSSOUserById().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/sso-users/by-id/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetSSOUserByIdAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getSSOUserById(requestParameters, initOverrides) {
        const response = await this.getSSOUserByIdRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getSSOUsersRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getSSOUsers().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/sso-users`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetSSOUsersResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getSSOUsers(requestParameters, initOverrides) {
        const response = await this.getSSOUsersRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getSubscriptionsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getSubscriptions().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/subscriptions`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetSubscriptionsAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getSubscriptions(requestParameters, initOverrides) {
        const response = await this.getSubscriptionsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getTenantRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getTenant().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getTenant().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenants/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetTenantResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getTenant(requestParameters, initOverrides) {
        const response = await this.getTenantRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getTenantDailyUsagesRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getTenantDailyUsages().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['yearNumber'] != null) {
            queryParameters['yearNumber'] = requestParameters['yearNumber'];
        }
        if (requestParameters['monthNumber'] != null) {
            queryParameters['monthNumber'] = requestParameters['monthNumber'];
        }
        if (requestParameters['dayNumber'] != null) {
            queryParameters['dayNumber'] = requestParameters['dayNumber'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-daily-usage`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetTenantDailyUsagesResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getTenantDailyUsages(requestParameters, initOverrides) {
        const response = await this.getTenantDailyUsagesRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getTenantPackageRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getTenantPackage().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getTenantPackage().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-packages/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetTenantPackageResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getTenantPackage(requestParameters, initOverrides) {
        const response = await this.getTenantPackageRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getTenantPackagesRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getTenantPackages().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-packages`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetTenantPackagesResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getTenantPackages(requestParameters, initOverrides) {
        const response = await this.getTenantPackagesRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getTenantUserRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getTenantUser().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getTenantUser().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-users/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetTenantUserResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getTenantUser(requestParameters, initOverrides) {
        const response = await this.getTenantUserRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getTenantUsersRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getTenantUsers().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-users`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetTenantUsersResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getTenantUsers(requestParameters, initOverrides) {
        const response = await this.getTenantUsersRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getTenantsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getTenants().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['meta'] != null) {
            queryParameters['meta'] = requestParameters['meta'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenants`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetTenantsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getTenants(requestParameters, initOverrides) {
        const response = await this.getTenantsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getTicketRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getTicket().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getTicket().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tickets/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetTicketResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getTicket(requestParameters, initOverrides) {
        const response = await this.getTicketRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getTicketsRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getTickets().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['state'] != null) {
            queryParameters['state'] = requestParameters['state'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        if (requestParameters['limit'] != null) {
            queryParameters['limit'] = requestParameters['limit'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tickets`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetTicketsResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getTickets(requestParameters, initOverrides) {
        const response = await this.getTicketsRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getUserRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getUser().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getUser().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/users/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetUserResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getUser(requestParameters, initOverrides) {
        const response = await this.getUserRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getUserBadgeRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getUserBadge().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getUserBadge().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/user-badges/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetUserBadgeResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getUserBadge(requestParameters, initOverrides) {
        const response = await this.getUserBadgeRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getUserBadgeProgressByIdRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getUserBadgeProgressById().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling getUserBadgeProgressById().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/user-badge-progress/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetUserBadgeProgressByIdResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getUserBadgeProgressById(requestParameters, initOverrides) {
        const response = await this.getUserBadgeProgressByIdRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getUserBadgeProgressByUserIdRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getUserBadgeProgressByUserId().');
        }
        if (requestParameters['userId'] == null) {
            throw new runtime.RequiredError('userId', 'Required parameter "userId" was null or undefined when calling getUserBadgeProgressByUserId().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/user-badge-progress/user/{userId}`.replace(`{${"userId"}}`, encodeURIComponent(String(requestParameters['userId']))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetUserBadgeProgressByUserIdResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getUserBadgeProgressByUserId(requestParameters, initOverrides) {
        const response = await this.getUserBadgeProgressByUserIdRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getUserBadgeProgressListRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getUserBadgeProgressList().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['limit'] != null) {
            queryParameters['limit'] = requestParameters['limit'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/user-badge-progress`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetUserBadgeProgressListResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getUserBadgeProgressList(requestParameters, initOverrides) {
        const response = await this.getUserBadgeProgressListRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getUserBadgesRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getUserBadges().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['badgeId'] != null) {
            queryParameters['badgeId'] = requestParameters['badgeId'];
        }
        if (requestParameters['type'] != null) {
            queryParameters['type'] = requestParameters['type'];
        }
        if (requestParameters['displayedOnComments'] != null) {
            queryParameters['displayedOnComments'] = requestParameters['displayedOnComments'];
        }
        if (requestParameters['limit'] != null) {
            queryParameters['limit'] = requestParameters['limit'];
        }
        if (requestParameters['skip'] != null) {
            queryParameters['skip'] = requestParameters['skip'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/user-badges`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetUserBadgesResponseFromJSON)(jsonValue));
    }
    /**
     */
    async getUserBadges(requestParameters, initOverrides) {
        const response = await this.getUserBadgesRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getVotesRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getVotes().');
        }
        if (requestParameters['urlId'] == null) {
            throw new runtime.RequiredError('urlId', 'Required parameter "urlId" was null or undefined when calling getVotes().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['urlId'] != null) {
            queryParameters['urlId'] = requestParameters['urlId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/votes`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetVotesResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getVotes(requestParameters, initOverrides) {
        const response = await this.getVotesRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async getVotesForUserRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling getVotesForUser().');
        }
        if (requestParameters['urlId'] == null) {
            throw new runtime.RequiredError('urlId', 'Required parameter "urlId" was null or undefined when calling getVotesForUser().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['urlId'] != null) {
            queryParameters['urlId'] = requestParameters['urlId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['anonUserId'] != null) {
            queryParameters['anonUserId'] = requestParameters['anonUserId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/votes/for-user`,
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.GetVotesForUserResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async getVotesForUser(requestParameters, initOverrides) {
        const response = await this.getVotesForUserRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async patchDomainConfigRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling patchDomainConfig().');
        }
        if (requestParameters['domainToUpdate'] == null) {
            throw new runtime.RequiredError('domainToUpdate', 'Required parameter "domainToUpdate" was null or undefined when calling patchDomainConfig().');
        }
        if (requestParameters['patchDomainConfigParams'] == null) {
            throw new runtime.RequiredError('patchDomainConfigParams', 'Required parameter "patchDomainConfigParams" was null or undefined when calling patchDomainConfig().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/domain-configs/{domainToUpdate}`.replace(`{${"domainToUpdate"}}`, encodeURIComponent(String(requestParameters['domainToUpdate']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.PatchDomainConfigParamsToJSON)(requestParameters['patchDomainConfigParams']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.PatchDomainConfigResponseFromJSON)(jsonValue));
    }
    /**
     */
    async patchDomainConfig(requestParameters, initOverrides) {
        const response = await this.patchDomainConfigRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async patchHashTagRaw(requestParameters, initOverrides) {
        if (requestParameters['tag'] == null) {
            throw new runtime.RequiredError('tag', 'Required parameter "tag" was null or undefined when calling patchHashTag().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/hash-tags/{tag}`.replace(`{${"tag"}}`, encodeURIComponent(String(requestParameters['tag']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateHashTagBodyToJSON)(requestParameters['updateHashTagBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.PatchHashTagResponseFromJSON)(jsonValue));
    }
    /**
     */
    async patchHashTag(requestParameters, initOverrides) {
        const response = await this.patchHashTagRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async patchPageRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling patchPage().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling patchPage().');
        }
        if (requestParameters['updateAPIPageData'] == null) {
            throw new runtime.RequiredError('updateAPIPageData', 'Required parameter "updateAPIPageData" was null or undefined when calling patchPage().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/pages/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateAPIPageDataToJSON)(requestParameters['updateAPIPageData']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.PatchPageAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async patchPage(requestParameters, initOverrides) {
        const response = await this.patchPageRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async patchSSOUserRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling patchSSOUser().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling patchSSOUser().');
        }
        if (requestParameters['updateAPISSOUserData'] == null) {
            throw new runtime.RequiredError('updateAPISSOUserData', 'Required parameter "updateAPISSOUserData" was null or undefined when calling patchSSOUser().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['updateComments'] != null) {
            queryParameters['updateComments'] = requestParameters['updateComments'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/sso-users/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateAPISSOUserDataToJSON)(requestParameters['updateAPISSOUserData']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.PatchSSOUserAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async patchSSOUser(requestParameters, initOverrides) {
        const response = await this.patchSSOUserRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async putDomainConfigRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling putDomainConfig().');
        }
        if (requestParameters['domainToUpdate'] == null) {
            throw new runtime.RequiredError('domainToUpdate', 'Required parameter "domainToUpdate" was null or undefined when calling putDomainConfig().');
        }
        if (requestParameters['updateDomainConfigParams'] == null) {
            throw new runtime.RequiredError('updateDomainConfigParams', 'Required parameter "updateDomainConfigParams" was null or undefined when calling putDomainConfig().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/domain-configs/{domainToUpdate}`.replace(`{${"domainToUpdate"}}`, encodeURIComponent(String(requestParameters['domainToUpdate']))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateDomainConfigParamsToJSON)(requestParameters['updateDomainConfigParams']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.PutDomainConfigResponseFromJSON)(jsonValue));
    }
    /**
     */
    async putDomainConfig(requestParameters, initOverrides) {
        const response = await this.putDomainConfigRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async putSSOUserRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling putSSOUser().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling putSSOUser().');
        }
        if (requestParameters['updateAPISSOUserData'] == null) {
            throw new runtime.RequiredError('updateAPISSOUserData', 'Required parameter "updateAPISSOUserData" was null or undefined when calling putSSOUser().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['updateComments'] != null) {
            queryParameters['updateComments'] = requestParameters['updateComments'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/sso-users/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateAPISSOUserDataToJSON)(requestParameters['updateAPISSOUserData']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.PutSSOUserAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async putSSOUser(requestParameters, initOverrides) {
        const response = await this.putSSOUserRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async renderEmailTemplateRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling renderEmailTemplate().');
        }
        if (requestParameters['renderEmailTemplateBody'] == null) {
            throw new runtime.RequiredError('renderEmailTemplateBody', 'Required parameter "renderEmailTemplateBody" was null or undefined when calling renderEmailTemplate().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['locale'] != null) {
            queryParameters['locale'] = requestParameters['locale'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/email-templates/render`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.RenderEmailTemplateBodyToJSON)(requestParameters['renderEmailTemplateBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.RenderEmailTemplateResponse1FromJSON)(jsonValue));
    }
    /**
     */
    async renderEmailTemplate(requestParameters, initOverrides) {
        const response = await this.renderEmailTemplateRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async replaceTenantPackageRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling replaceTenantPackage().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling replaceTenantPackage().');
        }
        if (requestParameters['replaceTenantPackageBody'] == null) {
            throw new runtime.RequiredError('replaceTenantPackageBody', 'Required parameter "replaceTenantPackageBody" was null or undefined when calling replaceTenantPackage().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-packages/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.ReplaceTenantPackageBodyToJSON)(requestParameters['replaceTenantPackageBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.ReplaceTenantPackageResponseFromJSON)(jsonValue));
    }
    /**
     */
    async replaceTenantPackage(requestParameters, initOverrides) {
        const response = await this.replaceTenantPackageRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async replaceTenantUserRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling replaceTenantUser().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling replaceTenantUser().');
        }
        if (requestParameters['replaceTenantUserBody'] == null) {
            throw new runtime.RequiredError('replaceTenantUserBody', 'Required parameter "replaceTenantUserBody" was null or undefined when calling replaceTenantUser().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['updateComments'] != null) {
            queryParameters['updateComments'] = requestParameters['updateComments'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-users/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.ReplaceTenantUserBodyToJSON)(requestParameters['replaceTenantUserBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.ReplaceTenantUserResponseFromJSON)(jsonValue));
    }
    /**
     */
    async replaceTenantUser(requestParameters, initOverrides) {
        const response = await this.replaceTenantUserRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async saveCommentRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling saveComment().');
        }
        if (requestParameters['createCommentParams'] == null) {
            throw new runtime.RequiredError('createCommentParams', 'Required parameter "createCommentParams" was null or undefined when calling saveComment().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['isLive'] != null) {
            queryParameters['isLive'] = requestParameters['isLive'];
        }
        if (requestParameters['doSpamCheck'] != null) {
            queryParameters['doSpamCheck'] = requestParameters['doSpamCheck'];
        }
        if (requestParameters['sendEmails'] != null) {
            queryParameters['sendEmails'] = requestParameters['sendEmails'];
        }
        if (requestParameters['populateNotifications'] != null) {
            queryParameters['populateNotifications'] = requestParameters['populateNotifications'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/comments`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.CreateCommentParamsToJSON)(requestParameters['createCommentParams']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.SaveCommentResponseFromJSON)(jsonValue));
    }
    /**
     */
    async saveComment(requestParameters, initOverrides) {
        const response = await this.saveCommentRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async saveCommentsBulkRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling saveCommentsBulk().');
        }
        if (requestParameters['createCommentParams'] == null) {
            throw new runtime.RequiredError('createCommentParams', 'Required parameter "createCommentParams" was null or undefined when calling saveCommentsBulk().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['isLive'] != null) {
            queryParameters['isLive'] = requestParameters['isLive'];
        }
        if (requestParameters['doSpamCheck'] != null) {
            queryParameters['doSpamCheck'] = requestParameters['doSpamCheck'];
        }
        if (requestParameters['sendEmails'] != null) {
            queryParameters['sendEmails'] = requestParameters['sendEmails'];
        }
        if (requestParameters['populateNotifications'] != null) {
            queryParameters['populateNotifications'] = requestParameters['populateNotifications'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/comments/bulk`,
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: requestParameters['createCommentParams'].map(index_1.CreateCommentParamsToJSON),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(index_1.SaveCommentsBulkResponseFromJSON));
    }
    /**
     */
    async saveCommentsBulk(requestParameters, initOverrides) {
        const response = await this.saveCommentsBulkRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async sendInviteRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling sendInvite().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling sendInvite().');
        }
        if (requestParameters['fromName'] == null) {
            throw new runtime.RequiredError('fromName', 'Required parameter "fromName" was null or undefined when calling sendInvite().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['fromName'] != null) {
            queryParameters['fromName'] = requestParameters['fromName'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/moderators/{id}/send-invite`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.SendInviteResponseFromJSON)(jsonValue));
    }
    /**
     */
    async sendInvite(requestParameters, initOverrides) {
        const response = await this.sendInviteRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async sendLoginLinkRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling sendLoginLink().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling sendLoginLink().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['redirectURL'] != null) {
            queryParameters['redirectURL'] = requestParameters['redirectURL'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-users/{id}/send-login-link`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.SendLoginLinkResponseFromJSON)(jsonValue));
    }
    /**
     */
    async sendLoginLink(requestParameters, initOverrides) {
        const response = await this.sendLoginLinkRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async unBlockUserFromCommentRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling unBlockUserFromComment().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling unBlockUserFromComment().');
        }
        if (requestParameters['unBlockFromCommentParams'] == null) {
            throw new runtime.RequiredError('unBlockFromCommentParams', 'Required parameter "unBlockFromCommentParams" was null or undefined when calling unBlockUserFromComment().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['anonUserId'] != null) {
            queryParameters['anonUserId'] = requestParameters['anonUserId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/comments/{id}/un-block`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UnBlockFromCommentParamsToJSON)(requestParameters['unBlockFromCommentParams']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UnBlockUserFromCommentResponseFromJSON)(jsonValue));
    }
    /**
     */
    async unBlockUserFromComment(requestParameters, initOverrides) {
        const response = await this.unBlockUserFromCommentRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async unFlagCommentRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling unFlagComment().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling unFlagComment().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        if (requestParameters['anonUserId'] != null) {
            queryParameters['anonUserId'] = requestParameters['anonUserId'];
        }
        const headerParameters = {};
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/comments/{id}/un-flag`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UnFlagCommentResponseFromJSON)(jsonValue));
    }
    /**
     */
    async unFlagComment(requestParameters, initOverrides) {
        const response = await this.unFlagCommentRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateCommentRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateComment().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateComment().');
        }
        if (requestParameters['updatableCommentParams'] == null) {
            throw new runtime.RequiredError('updatableCommentParams', 'Required parameter "updatableCommentParams" was null or undefined when calling updateComment().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['contextUserId'] != null) {
            queryParameters['contextUserId'] = requestParameters['contextUserId'];
        }
        if (requestParameters['doSpamCheck'] != null) {
            queryParameters['doSpamCheck'] = requestParameters['doSpamCheck'];
        }
        if (requestParameters['isLive'] != null) {
            queryParameters['isLive'] = requestParameters['isLive'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/comments/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdatableCommentParamsToJSON)(requestParameters['updatableCommentParams']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateCommentResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateComment(requestParameters, initOverrides) {
        const response = await this.updateCommentRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateEmailTemplateRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateEmailTemplate().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateEmailTemplate().');
        }
        if (requestParameters['updateEmailTemplateBody'] == null) {
            throw new runtime.RequiredError('updateEmailTemplateBody', 'Required parameter "updateEmailTemplateBody" was null or undefined when calling updateEmailTemplate().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/email-templates/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateEmailTemplateBodyToJSON)(requestParameters['updateEmailTemplateBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateEmailTemplateResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateEmailTemplate(requestParameters, initOverrides) {
        const response = await this.updateEmailTemplateRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateFeedPostRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateFeedPost().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateFeedPost().');
        }
        if (requestParameters['feedPost'] == null) {
            throw new runtime.RequiredError('feedPost', 'Required parameter "feedPost" was null or undefined when calling updateFeedPost().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/feed-posts/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.FeedPostToJSON)(requestParameters['feedPost']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateFeedPostResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateFeedPost(requestParameters, initOverrides) {
        const response = await this.updateFeedPostRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateModeratorRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateModerator().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateModerator().');
        }
        if (requestParameters['updateModeratorBody'] == null) {
            throw new runtime.RequiredError('updateModeratorBody', 'Required parameter "updateModeratorBody" was null or undefined when calling updateModerator().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/moderators/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateModeratorBodyToJSON)(requestParameters['updateModeratorBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateModeratorResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateModerator(requestParameters, initOverrides) {
        const response = await this.updateModeratorRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateNotificationRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateNotification().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateNotification().');
        }
        if (requestParameters['updateNotificationBody'] == null) {
            throw new runtime.RequiredError('updateNotificationBody', 'Required parameter "updateNotificationBody" was null or undefined when calling updateNotification().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/notifications/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateNotificationBodyToJSON)(requestParameters['updateNotificationBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateNotificationResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateNotification(requestParameters, initOverrides) {
        const response = await this.updateNotificationRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateQuestionConfigRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateQuestionConfig().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateQuestionConfig().');
        }
        if (requestParameters['updateQuestionConfigBody'] == null) {
            throw new runtime.RequiredError('updateQuestionConfigBody', 'Required parameter "updateQuestionConfigBody" was null or undefined when calling updateQuestionConfig().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-configs/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateQuestionConfigBodyToJSON)(requestParameters['updateQuestionConfigBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateQuestionConfigResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateQuestionConfig(requestParameters, initOverrides) {
        const response = await this.updateQuestionConfigRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateQuestionResultRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateQuestionResult().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateQuestionResult().');
        }
        if (requestParameters['updateQuestionResultBody'] == null) {
            throw new runtime.RequiredError('updateQuestionResultBody', 'Required parameter "updateQuestionResultBody" was null or undefined when calling updateQuestionResult().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/question-results/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateQuestionResultBodyToJSON)(requestParameters['updateQuestionResultBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateQuestionResultResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateQuestionResult(requestParameters, initOverrides) {
        const response = await this.updateQuestionResultRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateSubscriptionRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateSubscription().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateSubscription().');
        }
        if (requestParameters['updateAPIUserSubscriptionData'] == null) {
            throw new runtime.RequiredError('updateAPIUserSubscriptionData', 'Required parameter "updateAPIUserSubscriptionData" was null or undefined when calling updateSubscription().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['userId'] != null) {
            queryParameters['userId'] = requestParameters['userId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/subscriptions/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateAPIUserSubscriptionDataToJSON)(requestParameters['updateAPIUserSubscriptionData']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateSubscriptionAPIResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateSubscription(requestParameters, initOverrides) {
        const response = await this.updateSubscriptionRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateTenantRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateTenant().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateTenant().');
        }
        if (requestParameters['updateTenantBody'] == null) {
            throw new runtime.RequiredError('updateTenantBody', 'Required parameter "updateTenantBody" was null or undefined when calling updateTenant().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenants/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateTenantBodyToJSON)(requestParameters['updateTenantBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateTenantResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateTenant(requestParameters, initOverrides) {
        const response = await this.updateTenantRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateTenantPackageRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateTenantPackage().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateTenantPackage().');
        }
        if (requestParameters['updateTenantPackageBody'] == null) {
            throw new runtime.RequiredError('updateTenantPackageBody', 'Required parameter "updateTenantPackageBody" was null or undefined when calling updateTenantPackage().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-packages/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateTenantPackageBodyToJSON)(requestParameters['updateTenantPackageBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateTenantPackageResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateTenantPackage(requestParameters, initOverrides) {
        const response = await this.updateTenantPackageRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateTenantUserRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateTenantUser().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateTenantUser().');
        }
        if (requestParameters['updateTenantUserBody'] == null) {
            throw new runtime.RequiredError('updateTenantUserBody', 'Required parameter "updateTenantUserBody" was null or undefined when calling updateTenantUser().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        if (requestParameters['updateComments'] != null) {
            queryParameters['updateComments'] = requestParameters['updateComments'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/tenant-users/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateTenantUserBodyToJSON)(requestParameters['updateTenantUserBody']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateTenantUserResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateTenantUser(requestParameters, initOverrides) {
        const response = await this.updateTenantUserRaw(requestParameters, initOverrides);
        return await response.value();
    }
    /**
     */
    async updateUserBadgeRaw(requestParameters, initOverrides) {
        if (requestParameters['tenantId'] == null) {
            throw new runtime.RequiredError('tenantId', 'Required parameter "tenantId" was null or undefined when calling updateUserBadge().');
        }
        if (requestParameters['id'] == null) {
            throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling updateUserBadge().');
        }
        if (requestParameters['updateUserBadgeParams'] == null) {
            throw new runtime.RequiredError('updateUserBadgeParams', 'Required parameter "updateUserBadgeParams" was null or undefined when calling updateUserBadge().');
        }
        const queryParameters = {};
        if (requestParameters['tenantId'] != null) {
            queryParameters['tenantId'] = requestParameters['tenantId'];
        }
        const headerParameters = {};
        headerParameters['Content-Type'] = 'application/json';
        if (this.configuration && this.configuration.apiKey) {
            headerParameters["x-api-key"] = await this.configuration.apiKey("x-api-key"); // api_key authentication
        }
        const response = await this.request({
            path: `/api/v1/user-badges/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
            body: (0, index_1.UpdateUserBadgeParamsToJSON)(requestParameters['updateUserBadgeParams']),
        }, initOverrides);
        return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.UpdateUserBadgeResponseFromJSON)(jsonValue));
    }
    /**
     */
    async updateUserBadge(requestParameters, initOverrides) {
        const response = await this.updateUserBadgeRaw(requestParameters, initOverrides);
        return await response.value();
    }
}
exports.DefaultApi = DefaultApi;
/**
  * @export
  * @enum {string}
  */
var CreateVoteDirectionEnum;
(function (CreateVoteDirectionEnum) {
    CreateVoteDirectionEnum["up"] = "up";
    CreateVoteDirectionEnum["down"] = "down";
})(CreateVoteDirectionEnum || (exports.CreateVoteDirectionEnum = CreateVoteDirectionEnum = {}));
//# sourceMappingURL=DefaultApi.js.map