{"version":3,"file":"usealto-sdk-ts-angular.mjs","sources":["../../encoder.ts","../../variables.ts","../../configuration.ts","../../api/admin.service.ts","../../api/coachs.service.ts","../../api/comments.service.ts","../../api/companies.service.ts","../../api/exports.service.ts","../../api/guesses.service.ts","../../api/programRuns.service.ts","../../api/programs.service.ts","../../api/questions.service.ts","../../api/questionsSubmitted.service.ts","../../api/scores.service.ts","../../api/stats.service.ts","../../api/tags.service.ts","../../api/teams.service.ts","../../api/theOffice.service.ts","../../api/triggers.service.ts","../../api/uploads.service.ts","../../api/users.service.ts","../../api/api.ts","../../model/altoConnectorEnum.ts","../../model/answerFormatTypeEnum.ts","../../model/companyDto.ts","../../model/connectorTimeEnum.ts","../../model/createQuestionSubmittedDto.ts","../../model/guessDto.ts","../../model/guessSourceEnum.ts","../../model/nextQuestionDto.ts","../../model/patchQuestionSubmittedDto.ts","../../model/priorityEnum.ts","../../model/programDto.ts","../../model/questionDto.ts","../../model/questionSubmittedDto.ts","../../model/questionSubmittedStatusEnum.ts","../../model/questionTypeEnum.ts","../../model/roleEnum.ts","../../model/scoreByTypeEnum.ts","../../model/scoreFillValuesEnum.ts","../../model/scoreTimeframeEnum.ts","../../model/scoreTypeEnum.ts","../../model/userDto.ts","../../model/weekDayEnum.ts","../../api.module.ts","../../usealto-sdk-ts-angular.ts"],"sourcesContent":["import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n    encodeKey(k: string): string {\n        return encodeURIComponent(k);\n    }\n    encodeValue(v: string): string {\n        return encodeURIComponent(v);\n    }\n    decodeKey(k: string): string {\n        return decodeURIComponent(k);\n    }\n    decodeValue(v: string): string {\n        return decodeURIComponent(v);\n    }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n    'csv': ',',\n    'tsv': '   ',\n    'ssv': ' ',\n    'pipes': '|'\n}\n","import { HttpParameterCodec } from '@angular/common/http';\nimport { Param } from './param';\n\nexport interface ConfigurationParameters {\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    apiKeys?: {[ key: string ]: string};\n    username?: string;\n    password?: string;\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    accessToken?: string | (() => string);\n    basePath?: string;\n    withCredentials?: boolean;\n    /**\n     * Takes care of encoding query- and form-parameters.\n     */\n    encoder?: HttpParameterCodec;\n    /**\n     * Override the default method for encoding path parameters in various\n     * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n     * <p>\n     * See {@link README.md} for more details\n     * </p>\n     */\n    encodeParam?: (param: Param) => string;\n    /**\n     * The keys are the names in the securitySchemes section of the OpenAPI\n     * document. They should map to the value used for authentication\n     * minus any standard prefixes such as 'Basic' or 'Bearer'.\n     */\n    credentials?: {[ key: string ]: string | (() => string | undefined)};\n}\n\nexport class Configuration {\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    apiKeys?: {[ key: string ]: string};\n    username?: string;\n    password?: string;\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    accessToken?: string | (() => string);\n    basePath?: string;\n    withCredentials?: boolean;\n    /**\n     * Takes care of encoding query- and form-parameters.\n     */\n    encoder?: HttpParameterCodec;\n    /**\n     * Encoding of various path parameter\n     * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n     * <p>\n     * See {@link README.md} for more details\n     * </p>\n     */\n    encodeParam: (param: Param) => string;\n    /**\n     * The keys are the names in the securitySchemes section of the OpenAPI\n     * document. They should map to the value used for authentication\n     * minus any standard prefixes such as 'Basic' or 'Bearer'.\n     */\n    credentials: {[ key: string ]: string | (() => string | undefined)};\n\n    constructor(configurationParameters: ConfigurationParameters = {}) {\n        this.apiKeys = configurationParameters.apiKeys;\n        this.username = configurationParameters.username;\n        this.password = configurationParameters.password;\n        this.accessToken = configurationParameters.accessToken;\n        this.basePath = configurationParameters.basePath;\n        this.withCredentials = configurationParameters.withCredentials;\n        this.encoder = configurationParameters.encoder;\n        if (configurationParameters.encodeParam) {\n            this.encodeParam = configurationParameters.encodeParam;\n        }\n        else {\n            this.encodeParam = param => this.defaultEncodeParam(param);\n        }\n        if (configurationParameters.credentials) {\n            this.credentials = configurationParameters.credentials;\n        }\n        else {\n            this.credentials = {};\n        }\n\n        // init default bearer credential\n        if (!this.credentials['bearer']) {\n            this.credentials['bearer'] = () => {\n                return typeof this.accessToken === 'function'\n                    ? this.accessToken()\n                    : this.accessToken;\n            };\n        }\n\n        // init default x-api-key credential\n        if (!this.credentials['x-api-key']) {\n            this.credentials['x-api-key'] = () => {\n                if (this.apiKeys === null || this.apiKeys === undefined) {\n                    return undefined;\n                } else {\n                    return this.apiKeys['x-api-key'] || this.apiKeys['x-api-key'];\n                }\n            };\n        }\n    }\n\n    /**\n     * Select the correct content-type to use for a request.\n     * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n     * If no content type is found return the first found type if the contentTypes is not empty\n     * @param contentTypes - the array of content types that are available for selection\n     * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n     */\n    public selectHeaderContentType (contentTypes: string[]): string | undefined {\n        if (contentTypes.length === 0) {\n            return undefined;\n        }\n\n        const type = contentTypes.find((x: string) => this.isJsonMime(x));\n        if (type === undefined) {\n            return contentTypes[0];\n        }\n        return type;\n    }\n\n    /**\n     * Select the correct accept content-type to use for a request.\n     * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n     * If no content type is found return the first found type if the contentTypes is not empty\n     * @param accepts - the array of content types that are available for selection.\n     * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n     */\n    public selectHeaderAccept(accepts: string[]): string | undefined {\n        if (accepts.length === 0) {\n            return undefined;\n        }\n\n        const type = accepts.find((x: string) => this.isJsonMime(x));\n        if (type === undefined) {\n            return accepts[0];\n        }\n        return type;\n    }\n\n    /**\n     * Check if the given MIME is a JSON MIME.\n     * JSON MIME examples:\n     *   application/json\n     *   application/json; charset=UTF8\n     *   APPLICATION/JSON\n     *   application/vnd.company+json\n     * @param mime - MIME (Multipurpose Internet Mail Extensions)\n     * @return True if the given MIME is JSON, false otherwise.\n     */\n    public isJsonMime(mime: string): boolean {\n        const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n        return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n    }\n\n    public lookupCredential(key: string): string | undefined {\n        const value = this.credentials[key];\n        return typeof value === 'function'\n            ? value()\n            : value;\n    }\n\n    private defaultEncodeParam(param: Param): string {\n        // This implementation exists as fallback for missing configuration\n        // and for backwards compatibility to older typescript-angular generator versions.\n        // It only works for the 'simple' parameter style.\n        // Date-handling only works for the 'date-time' format.\n        // All other styles and Date-formats are probably handled incorrectly.\n        //\n        // But: if that's all you need (i.e.: the most common use-case): no need for customization!\n\n        const value = param.dataFormat === 'date-time' && param.value instanceof Date\n            ? (param.value as Date).toISOString()\n            : param.value;\n\n        return encodeURIComponent(String(value));\n    }\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { CompanyDtoPaginatedResponseApi } from '../model/companyDtoPaginatedResponse';\n// @ts-ignore\nimport { UserDtoPaginatedResponseApi } from '../model/userDtoPaginatedResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface AdminGetCompaniesRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    domains?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\nexport interface AdminGetUsersRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of team IDs used to filter the results. If no team IDs are provided, all users will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return the users that have are assigned to the team.&lt;/b&gt; */\n    teamIds?: string;\n    /** Filter by email If email is provided, we only want to return users that have the provided email If email is not provided, we return all users */\n    emails?: string;\n    /** Filter by companies If companies is provided, we only want to return users that are part of the companies If email is not provided, we return all users */\n    companyIds?: string;\n    theOfficeCompanyId?: string;\n    /** Filter by isCompanyAdmin If isCompanyAdmin is true, we only want to return users that have the company-admin role If isCompanyAdmin is false, we only want to return users that do not have the company-admin role If isCompanyAdmin is not provided, we return all users  isCompanyAdmin is computed by checking if the user has the company-admin role */\n    isCompanyAdmin?: boolean;\n    /** Filter by isActive If isActive is true, we only want to return users that are active If isActive is false, we only want to return users that are not active If isActive is not provided, we return all users  isActive is computed by checking if the user has created any guesses in the past 7 days */\n    isActive?: boolean;\n    /** Include soft deleted users If includeDeleted is true and authenticated user is company admin or alto admin, we want to return all users, including soft deleted users */\n    includeSoftDeleted?: boolean;\n    /** Search by email If search is provided, we want to return all users that match the search criteria If search is not provided, we return all users  Search is computed by checking if the user\\&#39;s email contains the search string */\n    search?: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\nexport interface GetUsersFromTheOfficeCompanyIdRequestParams {\n    theOfficeCompanyId: string;\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of team IDs used to filter the results. If no team IDs are provided, all users will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return the users that have are assigned to the team.&lt;/b&gt; */\n    teamIds?: string;\n    /** Filter by email If email is provided, we only want to return users that have the provided email If email is not provided, we return all users */\n    emails?: string;\n    /** Filter by isCompanyAdmin If isCompanyAdmin is true, we only want to return users that have the company-admin role If isCompanyAdmin is false, we only want to return users that do not have the company-admin role If isCompanyAdmin is not provided, we return all users  isCompanyAdmin is computed by checking if the user has the company-admin role */\n    isCompanyAdmin?: boolean;\n    /** Filter by isActive If isActive is true, we only want to return users that are active If isActive is false, we only want to return users that are not active If isActive is not provided, we return all users  isActive is computed by checking if the user has created any guesses in the past 7 days */\n    isActive?: boolean;\n    /** Include soft deleted users If includeDeleted is true and authenticated user is company admin or alto admin, we want to return all users, including soft deleted users */\n    includeSoftDeleted?: boolean;\n    /** Search by email If search is provided, we want to return all users that match the search criteria If search is not provided, we return all users  Search is computed by checking if the user\\&#39;s email contains the search string */\n    search?: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AdminApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Admin Route to get all Companies (not tenanted) with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/admins/companies\\&#39; route with the filter, sort and pagination options passed in the query parameters. It will respond with the paginated companies along with the current state of pagination.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public adminGetCompanies(requestParameters: AdminGetCompaniesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CompanyDtoPaginatedResponseApi>;\n    public adminGetCompanies(requestParameters: AdminGetCompaniesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CompanyDtoPaginatedResponseApi>>;\n    public adminGetCompanies(requestParameters: AdminGetCompaniesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CompanyDtoPaginatedResponseApi>>;\n    public adminGetCompanies(requestParameters: AdminGetCompaniesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const domains = requestParameters.domains;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (domains !== undefined && domains !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>domains, 'domains');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/admin/companies`;\n        return this.httpClient.request<CompanyDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Admin Route to get all Users (not tenanted) with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/users\\&#39; route with the filter, sort and pagination options passed in the query parameters. It will respond with the paginated users along with the current state of pagination.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public adminGetUsers(requestParameters: AdminGetUsersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<UserDtoPaginatedResponseApi>;\n    public adminGetUsers(requestParameters: AdminGetUsersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<UserDtoPaginatedResponseApi>>;\n    public adminGetUsers(requestParameters: AdminGetUsersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<UserDtoPaginatedResponseApi>>;\n    public adminGetUsers(requestParameters: AdminGetUsersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const teamIds = requestParameters.teamIds;\n        const emails = requestParameters.emails;\n        const companyIds = requestParameters.companyIds;\n        const theOfficeCompanyId = requestParameters.theOfficeCompanyId;\n        const isCompanyAdmin = requestParameters.isCompanyAdmin;\n        const isActive = requestParameters.isActive;\n        const includeSoftDeleted = requestParameters.includeSoftDeleted;\n        const search = requestParameters.search;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (teamIds !== undefined && teamIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>teamIds, 'teamIds');\n        }\n        if (emails !== undefined && emails !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>emails, 'emails');\n        }\n        if (companyIds !== undefined && companyIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyIds, 'companyIds');\n        }\n        if (theOfficeCompanyId !== undefined && theOfficeCompanyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>theOfficeCompanyId, 'theOfficeCompanyId');\n        }\n        if (isCompanyAdmin !== undefined && isCompanyAdmin !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isCompanyAdmin, 'isCompanyAdmin');\n        }\n        if (isActive !== undefined && isActive !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isActive, 'isActive');\n        }\n        if (includeSoftDeleted !== undefined && includeSoftDeleted !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>includeSoftDeleted, 'includeSoftDeleted');\n        }\n        if (search !== undefined && search !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>search, 'search');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/admin/users`;\n        return this.httpClient.request<UserDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get users from the office company id\n     * This method handles GET requests to the \\&#39;/users/:theOfficeCompanyId\\&#39; route to get the users for TheOffice.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getUsersFromTheOfficeCompanyId(requestParameters: GetUsersFromTheOfficeCompanyIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<UserDtoPaginatedResponseApi>;\n    public getUsersFromTheOfficeCompanyId(requestParameters: GetUsersFromTheOfficeCompanyIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<UserDtoPaginatedResponseApi>>;\n    public getUsersFromTheOfficeCompanyId(requestParameters: GetUsersFromTheOfficeCompanyIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<UserDtoPaginatedResponseApi>>;\n    public getUsersFromTheOfficeCompanyId(requestParameters: GetUsersFromTheOfficeCompanyIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const theOfficeCompanyId = requestParameters.theOfficeCompanyId;\n        if (theOfficeCompanyId === null || theOfficeCompanyId === undefined) {\n            throw new Error('Required parameter theOfficeCompanyId was null or undefined when calling getUsersFromTheOfficeCompanyId.');\n        }\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const teamIds = requestParameters.teamIds;\n        const emails = requestParameters.emails;\n        const isCompanyAdmin = requestParameters.isCompanyAdmin;\n        const isActive = requestParameters.isActive;\n        const includeSoftDeleted = requestParameters.includeSoftDeleted;\n        const search = requestParameters.search;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (teamIds !== undefined && teamIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>teamIds, 'teamIds');\n        }\n        if (emails !== undefined && emails !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>emails, 'emails');\n        }\n        if (isCompanyAdmin !== undefined && isCompanyAdmin !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isCompanyAdmin, 'isCompanyAdmin');\n        }\n        if (isActive !== undefined && isActive !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isActive, 'isActive');\n        }\n        if (includeSoftDeleted !== undefined && includeSoftDeleted !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>includeSoftDeleted, 'includeSoftDeleted');\n        }\n        if (search !== undefined && search !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>search, 'search');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/admin/theOfficeCompanyId/${this.configuration.encodeParam({name: \"theOfficeCompanyId\", value: theOfficeCompanyId, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<UserDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { CoachDtoCreatedResponseApi } from '../model/coachDtoCreatedResponse';\n// @ts-ignore\nimport { CoachDtoPaginatedResponseApi } from '../model/coachDtoPaginatedResponse';\n// @ts-ignore\nimport { CoachDtoResponseApi } from '../model/coachDtoResponse';\n// @ts-ignore\nimport { CreateCoachDtoApi } from '../model/createCoachDto';\n// @ts-ignore\nimport { DeleteResponseApi } from '../model/deleteResponse';\n// @ts-ignore\nimport { PatchCoachDtoApi } from '../model/patchCoachDto';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface CreateCoachRequestParams {\n    createCoachDtoApi: CreateCoachDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface DeleteCoachRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetCoachByIdRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetCoachsRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\nexport interface PatchCoachRequestParams {\n    id: string;\n    patchCoachDtoApi: PatchCoachDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CoachsApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Create a new coach\n     * This method handles POST requests to the \\&#39;/coachs\\&#39; route to create a new coach using the data passed in the body. It will respond with the newly created coach.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public createCoach(requestParameters: CreateCoachRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CoachDtoCreatedResponseApi>;\n    public createCoach(requestParameters: CreateCoachRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CoachDtoCreatedResponseApi>>;\n    public createCoach(requestParameters: CreateCoachRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CoachDtoCreatedResponseApi>>;\n    public createCoach(requestParameters: CreateCoachRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createCoachDtoApi = requestParameters.createCoachDtoApi;\n        if (createCoachDtoApi === null || createCoachDtoApi === undefined) {\n            throw new Error('Required parameter createCoachDtoApi was null or undefined when calling createCoach.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/coachs`;\n        return this.httpClient.request<CoachDtoCreatedResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: createCoachDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Soft delete\\&quot; an existing coach by ID\n     * This method handles DELETE requests to the \\&#39;/coachs/:id\\&#39; route, it \\&quot;softDelete\\&quot; a single coach does not return anything.  By \\&quot;soft delete\\&quot; we mean that it will just set the deletedAt and will not remove the item from the database, this is done to better manage deletions and allow us to handle different scenario like deleting in cascade etc...\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteCoach(requestParameters: DeleteCoachRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<DeleteResponseApi>;\n    public deleteCoach(requestParameters: DeleteCoachRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<DeleteResponseApi>>;\n    public deleteCoach(requestParameters: DeleteCoachRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<DeleteResponseApi>>;\n    public deleteCoach(requestParameters: DeleteCoachRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteCoach.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/coachs/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<DeleteResponseApi>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single coach by ID\n     * This method handles GET requests to the \\&#39;/coachs/{:id}\\&#39; route with &#x60;{:id}&#x60; the id of the coach we want to find. If the coach exists it will return it, if not we respond with an error not found.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCoachById(requestParameters: GetCoachByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CoachDtoResponseApi>;\n    public getCoachById(requestParameters: GetCoachByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CoachDtoResponseApi>>;\n    public getCoachById(requestParameters: GetCoachByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CoachDtoResponseApi>>;\n    public getCoachById(requestParameters: GetCoachByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getCoachById.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/coachs/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<CoachDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get Coachs with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/coachs\\&#39; route with the filter, sort and pagination options passed in the query parameters it will respond with the paginated coachs along with the current state of pagination .\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCoachs(requestParameters: GetCoachsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CoachDtoPaginatedResponseApi>;\n    public getCoachs(requestParameters: GetCoachsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CoachDtoPaginatedResponseApi>>;\n    public getCoachs(requestParameters: GetCoachsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CoachDtoPaginatedResponseApi>>;\n    public getCoachs(requestParameters: GetCoachsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/coachs`;\n        return this.httpClient.request<CoachDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Patch an existing coach by ID\n     * This method handles PATCH requests to the \\&#39;/coachs/:id\\&#39; route where :id is a coach ID, it updates a single coach with the ID :id and return it. If the coach with ID does not exists we return an error.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public patchCoach(requestParameters: PatchCoachRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CoachDtoResponseApi>;\n    public patchCoach(requestParameters: PatchCoachRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CoachDtoResponseApi>>;\n    public patchCoach(requestParameters: PatchCoachRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CoachDtoResponseApi>>;\n    public patchCoach(requestParameters: PatchCoachRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling patchCoach.');\n        }\n        const patchCoachDtoApi = requestParameters.patchCoachDtoApi;\n        if (patchCoachDtoApi === null || patchCoachDtoApi === undefined) {\n            throw new Error('Required parameter patchCoachDtoApi was null or undefined when calling patchCoach.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/coachs/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<CoachDtoResponseApi>('patch', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: patchCoachDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { CommentDtoCreatedResponseApi } from '../model/commentDtoCreatedResponse';\n// @ts-ignore\nimport { CommentDtoPaginatedResponseApi } from '../model/commentDtoPaginatedResponse';\n// @ts-ignore\nimport { CommentDtoResponseApi } from '../model/commentDtoResponse';\n// @ts-ignore\nimport { CreateCommentDtoApi } from '../model/createCommentDto';\n// @ts-ignore\nimport { DeleteResponseApi } from '../model/deleteResponse';\n// @ts-ignore\nimport { PatchCommentDtoApi } from '../model/patchCommentDto';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface CreateCommentRequestParams {\n    createCommentDtoApi: CreateCommentDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface DeleteCommentRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetCommentByIdRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetCommentsRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    questionId?: string;\n    isRead?: boolean;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\nexport interface PatchCommentRequestParams {\n    id: string;\n    patchCommentDtoApi: PatchCommentDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CommentsApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Create a new comment\n     * This method handles POST requests to the \\&#39;/comments\\&#39; route to create a new comment using the data passed in the body. It will respond with the newly created comment.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public createComment(requestParameters: CreateCommentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CommentDtoCreatedResponseApi>;\n    public createComment(requestParameters: CreateCommentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CommentDtoCreatedResponseApi>>;\n    public createComment(requestParameters: CreateCommentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CommentDtoCreatedResponseApi>>;\n    public createComment(requestParameters: CreateCommentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createCommentDtoApi = requestParameters.createCommentDtoApi;\n        if (createCommentDtoApi === null || createCommentDtoApi === undefined) {\n            throw new Error('Required parameter createCommentDtoApi was null or undefined when calling createComment.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/comments`;\n        return this.httpClient.request<CommentDtoCreatedResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: createCommentDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * \\&quot;Soft delete\\&quot; an existing comment by ID\n     * This method handles DELETE requests to the \\&#39;/comments/:id\\&#39; route, it \\&quot;softDelete\\&quot; a single comment does not return anything.  By \\&quot;soft delete\\&quot; we mean that it will just set the deletedAt and will not remove the item from the database, this is done to better manage deletions and allow us to handle different scenario like deleting in cascade etc...\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteComment(requestParameters: DeleteCommentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<DeleteResponseApi>;\n    public deleteComment(requestParameters: DeleteCommentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<DeleteResponseApi>>;\n    public deleteComment(requestParameters: DeleteCommentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<DeleteResponseApi>>;\n    public deleteComment(requestParameters: DeleteCommentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteComment.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/comments/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<DeleteResponseApi>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single comment by ID\n     * This method handles GET requests to the \\&#39;/comments/{:id}\\&#39; route with &#x60;{:id}&#x60; the id of the comment we want to find. If the comment exists it will return it, if not we respond with an error not found.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCommentById(requestParameters: GetCommentByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CommentDtoResponseApi>;\n    public getCommentById(requestParameters: GetCommentByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CommentDtoResponseApi>>;\n    public getCommentById(requestParameters: GetCommentByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CommentDtoResponseApi>>;\n    public getCommentById(requestParameters: GetCommentByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getCommentById.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/comments/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<CommentDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get comments with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/comments\\&#39; route with the filter, sort and pagination options passed in the query parameters it will respond with the paginated comments along with the current state of pagination .\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getComments(requestParameters: GetCommentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CommentDtoPaginatedResponseApi>;\n    public getComments(requestParameters: GetCommentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CommentDtoPaginatedResponseApi>>;\n    public getComments(requestParameters: GetCommentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CommentDtoPaginatedResponseApi>>;\n    public getComments(requestParameters: GetCommentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const questionId = requestParameters.questionId;\n        const isRead = requestParameters.isRead;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (questionId !== undefined && questionId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>questionId, 'questionId');\n        }\n        if (isRead !== undefined && isRead !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isRead, 'isRead');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/comments`;\n        return this.httpClient.request<CommentDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Patch an existing comment by ID\n     * This method handles PATCH requests to the \\&#39;/comments/:id\\&#39; route where :id is a comment ID, it updates a single comment with the ID :id and return it. If the comment with ID does not exists we return an error.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public patchComment(requestParameters: PatchCommentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CommentDtoResponseApi>;\n    public patchComment(requestParameters: PatchCommentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CommentDtoResponseApi>>;\n    public patchComment(requestParameters: PatchCommentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CommentDtoResponseApi>>;\n    public patchComment(requestParameters: PatchCommentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling patchComment.');\n        }\n        const patchCommentDtoApi = requestParameters.patchCommentDtoApi;\n        if (patchCommentDtoApi === null || patchCommentDtoApi === undefined) {\n            throw new Error('Required parameter patchCommentDtoApi was null or undefined when calling patchComment.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/comments/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<CommentDtoResponseApi>('patch', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: patchCommentDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { CompanyDtoResponseApi } from '../model/companyDtoResponse';\n// @ts-ignore\nimport { PatchCompanyDtoApi } from '../model/patchCompanyDto';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface GetCompanyByIdRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface PatchCompanyRequestParams {\n    id: string;\n    patchCompanyDtoApi: PatchCompanyDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CompaniesApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Get a single company by ID\n     * This method handles GET requests to the \\&#39;/companies/{:id}\\&#39; route with &#x60;{:id}&#x60; the id of the company we want to find. If the company exists it will return it, if not we respond with an error not found.  This route is tenanted this mean we have to add companyId to the query params.  Every call to this method will first get the company from TheOffice and then update it in the database if necessary to finally return it.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCompanyById(requestParameters: GetCompanyByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CompanyDtoResponseApi>;\n    public getCompanyById(requestParameters: GetCompanyByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CompanyDtoResponseApi>>;\n    public getCompanyById(requestParameters: GetCompanyByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CompanyDtoResponseApi>>;\n    public getCompanyById(requestParameters: GetCompanyByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getCompanyById.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/companies/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<CompanyDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Patch an existing company by ID\n     * This method handles PATCH requests to the \\&#39;/companies/:id\\&#39; route where :id is a company ID, it updates a single company with the ID :id and return it. If the company with ID does not exists we return an error.  On every update we will also update the company in TheOffice.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public patchCompany(requestParameters: PatchCompanyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CompanyDtoResponseApi>;\n    public patchCompany(requestParameters: PatchCompanyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CompanyDtoResponseApi>>;\n    public patchCompany(requestParameters: PatchCompanyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CompanyDtoResponseApi>>;\n    public patchCompany(requestParameters: PatchCompanyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling patchCompany.');\n        }\n        const patchCompanyDtoApi = requestParameters.patchCompanyDtoApi;\n        if (patchCompanyDtoApi === null || patchCompanyDtoApi === undefined) {\n            throw new Error('Required parameter patchCompanyDtoApi was null or undefined when calling patchCompany.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/companies/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<CompanyDtoResponseApi>('patch', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: patchCompanyDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface ExportsControllerExportQuestionsRequestParams {\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ExportsApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public exportsControllerExportQuestions(requestParameters: ExportsControllerExportQuestionsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public exportsControllerExportQuestions(requestParameters: ExportsControllerExportQuestionsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public exportsControllerExportQuestions(requestParameters: ExportsControllerExportQuestionsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public exportsControllerExportQuestions(requestParameters: ExportsControllerExportQuestionsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/exports/questions`;\n        return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { CreateGuessDtoApi } from '../model/createGuessDto';\n// @ts-ignore\nimport { GuessDtoCreatedResponseApi } from '../model/guessDtoCreatedResponse';\n// @ts-ignore\nimport { GuessDtoPaginatedResponseApi } from '../model/guessDtoPaginatedResponse';\n// @ts-ignore\nimport { GuessDtoResponseApi } from '../model/guessDtoResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface CreateGuessRequestParams {\n    createGuessDtoApi: CreateGuessDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetGuessByIdRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetGuessesRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of program IDs used to filter the results. If no program IDs are provided, all questions will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return questions that have AT LEAST one of the specified program ID.&lt;/b&gt; */\n    programRunIds?: string;\n    /** An array of program IDs used to filter the results. If no program IDs are provided, all questions will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return questions that have AT LEAST one of the specified program ID.&lt;/b&gt; */\n    questionIds?: string;\n    teamIds?: string;\n    training?: boolean;\n    isValid?: boolean;\n    isTimedOut?: boolean;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GuessesApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Create a new guess run\n     * This method handles POST requests to the \\&#39;/guesses\\&#39; route to create a new guess using the data passed in the body. It will respond with the newly created guess.  If answers is not provided, the answer property will be used instead. if the answer property is also not provided, the answers will be empty  in that case, the guess will be rejected if the isUnkownSelected property is not set to true  All the answers from the accepted answers of the question need to be provided. if not, the guess will be invalid, the order does not matter.  For example if the accepted answers are: [\\&#39;a\\&#39;, \\&#39;b\\&#39;, \\&#39;c\\&#39;]  If the user provides: [\\&#39;a\\&#39;, \\&#39;b\\&#39;] the guess will be invalid.  If the user provides: [\\&#39;a\\&#39;, \\&#39;b\\&#39;, \\&#39;c\\&#39;, \\&#39;d\\&#39;] the guess will be invalid.  If the user provides: [\\&#39;a\\&#39;, \\&#39;b\\&#39;, \\&#39;c\\&#39;] the guess will be valid.  If the user provides: [\\&#39;c\\&#39;, \\&#39;b\\&#39;, \\&#39;a\\&#39;] the guess will also be valid.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public createGuess(requestParameters: CreateGuessRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<GuessDtoCreatedResponseApi>;\n    public createGuess(requestParameters: CreateGuessRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<GuessDtoCreatedResponseApi>>;\n    public createGuess(requestParameters: CreateGuessRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<GuessDtoCreatedResponseApi>>;\n    public createGuess(requestParameters: CreateGuessRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createGuessDtoApi = requestParameters.createGuessDtoApi;\n        if (createGuessDtoApi === null || createGuessDtoApi === undefined) {\n            throw new Error('Required parameter createGuessDtoApi was null or undefined when calling createGuess.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/guesses`;\n        return this.httpClient.request<GuessDtoCreatedResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: createGuessDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single guess by ID\n     * This method handles GET requests to the \\&#39;/guesses/{:id}\\&#39; route with &#x60;{:id}&#x60; the id of the guess we want to find. If the guess exists it will return it, if not we respond with an error not found.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getGuessById(requestParameters: GetGuessByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<GuessDtoResponseApi>;\n    public getGuessById(requestParameters: GetGuessByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<GuessDtoResponseApi>>;\n    public getGuessById(requestParameters: GetGuessByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<GuessDtoResponseApi>>;\n    public getGuessById(requestParameters: GetGuessByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getGuessById.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/guesses/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<GuessDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get Programs with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/guesses\\&#39; route with the filter, sort and pagination options passed in the query parameters it will respond with the paginated guesses along with the current state of pagination .\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getGuesses(requestParameters: GetGuessesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<GuessDtoPaginatedResponseApi>;\n    public getGuesses(requestParameters: GetGuessesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<GuessDtoPaginatedResponseApi>>;\n    public getGuesses(requestParameters: GetGuessesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<GuessDtoPaginatedResponseApi>>;\n    public getGuesses(requestParameters: GetGuessesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const programRunIds = requestParameters.programRunIds;\n        const questionIds = requestParameters.questionIds;\n        const teamIds = requestParameters.teamIds;\n        const training = requestParameters.training;\n        const isValid = requestParameters.isValid;\n        const isTimedOut = requestParameters.isTimedOut;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (programRunIds !== undefined && programRunIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>programRunIds, 'programRunIds');\n        }\n        if (questionIds !== undefined && questionIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>questionIds, 'questionIds');\n        }\n        if (teamIds !== undefined && teamIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>teamIds, 'teamIds');\n        }\n        if (training !== undefined && training !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>training, 'training');\n        }\n        if (isValid !== undefined && isValid !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isValid, 'isValid');\n        }\n        if (isTimedOut !== undefined && isTimedOut !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isTimedOut, 'isTimedOut');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/guesses`;\n        return this.httpClient.request<GuessDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { CreateProgramRunDtoApi } from '../model/createProgramRunDto';\n// @ts-ignore\nimport { ProgramRunDtoCreatedResponseApi } from '../model/programRunDtoCreatedResponse';\n// @ts-ignore\nimport { ProgramRunDtoPaginatedResponseApi } from '../model/programRunDtoPaginatedResponse';\n// @ts-ignore\nimport { ProgramRunDtoResponseApi } from '../model/programRunDtoResponse';\n// @ts-ignore\nimport { QuestionDtoPaginatedResponseApi } from '../model/questionDtoPaginatedResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface CreateProgramRunRequestParams {\n    createProgramRunDtoApi: CreateProgramRunDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetAllProgramRunQuestionsPaginatedRequestParams {\n    id: string;\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of program IDs used to filter the results. If no program IDs are provided, all questions will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return questions that have AT LEAST one of the specified program ID.&lt;/b&gt; */\n    programRunIds?: string;\n    isDone?: boolean;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\nexport interface GetProgramRunByIdRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetProgramRunsRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of program IDs used to filter the results. If no program IDs are provided, all questions will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return questions that have AT LEAST one of the specified program ID.&lt;/b&gt; */\n    programIds?: string;\n    teamIds?: string;\n    /** A date used to filter the results based on the finishedAt field of the resources, only including resources finished after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the finishedAfter field is provided with a date without a time, it will include resources finished on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    finishedAfter?: Date;\n    /** A date used to filter the results based on the finishedAt field of the resources, only including resources finished before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the finishedBefore field is provided with a date without a time, it will include resources finished on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    finishedBefore?: Date;\n    isFinished?: boolean;\n    isValid?: boolean;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ProgramRunsApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Create a new program run\n     * This method handles POST requests to the \\&#39;/programs\\&#39; route to create a new program using the data passed in the body. It will respond with the newly created program.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public createProgramRun(requestParameters: CreateProgramRunRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ProgramRunDtoCreatedResponseApi>;\n    public createProgramRun(requestParameters: CreateProgramRunRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ProgramRunDtoCreatedResponseApi>>;\n    public createProgramRun(requestParameters: CreateProgramRunRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ProgramRunDtoCreatedResponseApi>>;\n    public createProgramRun(requestParameters: CreateProgramRunRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createProgramRunDtoApi = requestParameters.createProgramRunDtoApi;\n        if (createProgramRunDtoApi === null || createProgramRunDtoApi === undefined) {\n            throw new Error('Required parameter createProgramRunDtoApi was null or undefined when calling createProgramRun.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/program-runs`;\n        return this.httpClient.request<ProgramRunDtoCreatedResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: createProgramRunDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get Programs with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/programs\\&#39; route with the filter, sort and pagination options passed in the query parameters it will respond with the paginated programs along with the current state of pagination .\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getAllProgramRunQuestionsPaginated(requestParameters: GetAllProgramRunQuestionsPaginatedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<QuestionDtoPaginatedResponseApi>;\n    public getAllProgramRunQuestionsPaginated(requestParameters: GetAllProgramRunQuestionsPaginatedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<QuestionDtoPaginatedResponseApi>>;\n    public getAllProgramRunQuestionsPaginated(requestParameters: GetAllProgramRunQuestionsPaginatedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<QuestionDtoPaginatedResponseApi>>;\n    public getAllProgramRunQuestionsPaginated(requestParameters: GetAllProgramRunQuestionsPaginatedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getAllProgramRunQuestionsPaginated.');\n        }\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const programRunIds = requestParameters.programRunIds;\n        const isDone = requestParameters.isDone;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (programRunIds !== undefined && programRunIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>programRunIds, 'programRunIds');\n        }\n        if (isDone !== undefined && isDone !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isDone, 'isDone');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/program-runs/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/questions`;\n        return this.httpClient.request<QuestionDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single program by ID\n     * This method handles GET requests to the \\&#39;/programs/{:id}\\&#39; route with &#x60;{:id}&#x60; the id of the program we want to find. If the program exists it will return it, if not we respond with an error not found.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getProgramRunById(requestParameters: GetProgramRunByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ProgramRunDtoResponseApi>;\n    public getProgramRunById(requestParameters: GetProgramRunByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ProgramRunDtoResponseApi>>;\n    public getProgramRunById(requestParameters: GetProgramRunByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ProgramRunDtoResponseApi>>;\n    public getProgramRunById(requestParameters: GetProgramRunByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getProgramRunById.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/program-runs/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<ProgramRunDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get Programs with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/programs\\&#39; route with the filter, sort and pagination options passed in the query parameters it will respond with the paginated programs along with the current state of pagination .\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getProgramRuns(requestParameters: GetProgramRunsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ProgramRunDtoPaginatedResponseApi>;\n    public getProgramRuns(requestParameters: GetProgramRunsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ProgramRunDtoPaginatedResponseApi>>;\n    public getProgramRuns(requestParameters: GetProgramRunsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ProgramRunDtoPaginatedResponseApi>>;\n    public getProgramRuns(requestParameters: GetProgramRunsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const programIds = requestParameters.programIds;\n        const teamIds = requestParameters.teamIds;\n        const finishedAfter = requestParameters.finishedAfter;\n        const finishedBefore = requestParameters.finishedBefore;\n        const isFinished = requestParameters.isFinished;\n        const isValid = requestParameters.isValid;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (programIds !== undefined && programIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>programIds, 'programIds');\n        }\n        if (teamIds !== undefined && teamIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>teamIds, 'teamIds');\n        }\n        if (finishedAfter !== undefined && finishedAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>finishedAfter, 'finishedAfter');\n        }\n        if (finishedBefore !== undefined && finishedBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>finishedBefore, 'finishedBefore');\n        }\n        if (isFinished !== undefined && isFinished !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isFinished, 'isFinished');\n        }\n        if (isValid !== undefined && isValid !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isValid, 'isValid');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/program-runs`;\n        return this.httpClient.request<ProgramRunDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AltoBaseIdsDtoApi } from '../model/altoBaseIdsDto';\n// @ts-ignore\nimport { CreateProgramDtoApi } from '../model/createProgramDto';\n// @ts-ignore\nimport { DeleteResponseApi } from '../model/deleteResponse';\n// @ts-ignore\nimport { PatchProgramDtoApi } from '../model/patchProgramDto';\n// @ts-ignore\nimport { ProgramAssignmentDtoPaginatedResponseApi } from '../model/programAssignmentDtoPaginatedResponse';\n// @ts-ignore\nimport { ProgramDtoCreatedResponseApi } from '../model/programDtoCreatedResponse';\n// @ts-ignore\nimport { ProgramDtoPaginatedResponseApi } from '../model/programDtoPaginatedResponse';\n// @ts-ignore\nimport { ProgramDtoResponseApi } from '../model/programDtoResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface AddQuestionsToProgramRequestParams {\n    id: string;\n    altoBaseIdsDtoApi: AltoBaseIdsDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface CreateProgramRequestParams {\n    createProgramDtoApi: CreateProgramDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface DeleteProgramRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetAllAssignmentsProgramRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of program IDs used to filter the results. If no program IDs are provided, all assignments will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return assignments that have AT LEAST one of the specified programs ID.&lt;/b&gt; */\n    programIds?: string;\n    /** An array of team IDs used to filter the results. If no team IDs are provided, all assignments will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return assignments that have AT LEAST one of the specified teams ID.&lt;/b&gt; */\n    teamIds?: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\nexport interface GetProgramByIdRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetProgramsRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of question IDs used to filter the results. If no question IDs are provided, all programs will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return programs that have AT LEAST one of the specified questions ID.&lt;/b&gt; */\n    questionIds?: string;\n    /** An array of team IDs used to filter the results. If no team IDs are provided, all programs will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return programs that have AT LEAST one of the specified teams ID.&lt;/b&gt; */\n    teamIds?: string;\n    isActive?: boolean;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\nexport interface PatchProgramRequestParams {\n    id: string;\n    patchProgramDtoApi: PatchProgramDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface RemoveQuestionsFromProgramRequestParams {\n    id: string;\n    altoBaseIdsDtoApi: AltoBaseIdsDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ProgramsApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Adds questions to a program with the given ID\n     * Adds questions to a program with the given ID.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public addQuestionsToProgram(requestParameters: AddQuestionsToProgramRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ProgramDtoResponseApi>;\n    public addQuestionsToProgram(requestParameters: AddQuestionsToProgramRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ProgramDtoResponseApi>>;\n    public addQuestionsToProgram(requestParameters: AddQuestionsToProgramRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ProgramDtoResponseApi>>;\n    public addQuestionsToProgram(requestParameters: AddQuestionsToProgramRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling addQuestionsToProgram.');\n        }\n        const altoBaseIdsDtoApi = requestParameters.altoBaseIdsDtoApi;\n        if (altoBaseIdsDtoApi === null || altoBaseIdsDtoApi === undefined) {\n            throw new Error('Required parameter altoBaseIdsDtoApi was null or undefined when calling addQuestionsToProgram.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/programs/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/questions`;\n        return this.httpClient.request<ProgramDtoResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: altoBaseIdsDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Create a new program\n     * This method handles POST requests to the \\&#39;/programs\\&#39; route to create a new program using the data passed in the body. It will respond with the newly created program.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public createProgram(requestParameters: CreateProgramRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ProgramDtoCreatedResponseApi>;\n    public createProgram(requestParameters: CreateProgramRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ProgramDtoCreatedResponseApi>>;\n    public createProgram(requestParameters: CreateProgramRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ProgramDtoCreatedResponseApi>>;\n    public createProgram(requestParameters: CreateProgramRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createProgramDtoApi = requestParameters.createProgramDtoApi;\n        if (createProgramDtoApi === null || createProgramDtoApi === undefined) {\n            throw new Error('Required parameter createProgramDtoApi was null or undefined when calling createProgram.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/programs`;\n        return this.httpClient.request<ProgramDtoCreatedResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: createProgramDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * \\&quot;Soft delete\\&quot; an existing program by ID\n     * This method handles DELETE requests to the \\&#39;/programs/:id\\&#39; route, it \\&quot;softDelete\\&quot; a single program does not return anything.  By \\&quot;soft delete\\&quot; we mean that it will just set the deletedAt and will not remove the item from the database, this is done to better manage deletions and allow us to handle different scenario like deleting in cascade etc...\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteProgram(requestParameters: DeleteProgramRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<DeleteResponseApi>;\n    public deleteProgram(requestParameters: DeleteProgramRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<DeleteResponseApi>>;\n    public deleteProgram(requestParameters: DeleteProgramRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<DeleteResponseApi>>;\n    public deleteProgram(requestParameters: DeleteProgramRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteProgram.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/programs/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<DeleteResponseApi>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get Programs with filter, sort and pagination options\n     * TODO: To remove after stats migration. This method handles GET requests to the \\&#39;/programs\\&#39; route with the filter, sort and pagination options passed in the query parameters it will respond with the paginated programs along with the current state of pagination .\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getAllAssignmentsProgram(requestParameters: GetAllAssignmentsProgramRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ProgramAssignmentDtoPaginatedResponseApi>;\n    public getAllAssignmentsProgram(requestParameters: GetAllAssignmentsProgramRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ProgramAssignmentDtoPaginatedResponseApi>>;\n    public getAllAssignmentsProgram(requestParameters: GetAllAssignmentsProgramRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ProgramAssignmentDtoPaginatedResponseApi>>;\n    public getAllAssignmentsProgram(requestParameters: GetAllAssignmentsProgramRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const programIds = requestParameters.programIds;\n        const teamIds = requestParameters.teamIds;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (programIds !== undefined && programIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>programIds, 'programIds');\n        }\n        if (teamIds !== undefined && teamIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>teamIds, 'teamIds');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/programs/assignments`;\n        return this.httpClient.request<ProgramAssignmentDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single program by ID\n     * This method handles GET requests to the \\&#39;/programs/{:id}\\&#39; route with &#x60;{:id}&#x60; the id of the program we want to find. If the program exists it will return it, if not we respond with an error not found.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getProgramById(requestParameters: GetProgramByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ProgramDtoResponseApi>;\n    public getProgramById(requestParameters: GetProgramByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ProgramDtoResponseApi>>;\n    public getProgramById(requestParameters: GetProgramByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ProgramDtoResponseApi>>;\n    public getProgramById(requestParameters: GetProgramByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getProgramById.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/programs/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<ProgramDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get Programs with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/programs\\&#39; route with the filter, sort and pagination options passed in the query parameters it will respond with the paginated programs along with the current state of pagination .\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getPrograms(requestParameters: GetProgramsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ProgramDtoPaginatedResponseApi>;\n    public getPrograms(requestParameters: GetProgramsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ProgramDtoPaginatedResponseApi>>;\n    public getPrograms(requestParameters: GetProgramsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ProgramDtoPaginatedResponseApi>>;\n    public getPrograms(requestParameters: GetProgramsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const questionIds = requestParameters.questionIds;\n        const teamIds = requestParameters.teamIds;\n        const isActive = requestParameters.isActive;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (questionIds !== undefined && questionIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>questionIds, 'questionIds');\n        }\n        if (teamIds !== undefined && teamIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>teamIds, 'teamIds');\n        }\n        if (isActive !== undefined && isActive !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isActive, 'isActive');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/programs`;\n        return this.httpClient.request<ProgramDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Patch an existing program by ID\n     * This method handles PATCH requests to the \\&#39;/programs/:id\\&#39; route where :id is a program ID, it updates a single program with the ID :id and return it. If the program with ID does not exists we return an error.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public patchProgram(requestParameters: PatchProgramRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ProgramDtoResponseApi>;\n    public patchProgram(requestParameters: PatchProgramRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ProgramDtoResponseApi>>;\n    public patchProgram(requestParameters: PatchProgramRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ProgramDtoResponseApi>>;\n    public patchProgram(requestParameters: PatchProgramRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling patchProgram.');\n        }\n        const patchProgramDtoApi = requestParameters.patchProgramDtoApi;\n        if (patchProgramDtoApi === null || patchProgramDtoApi === undefined) {\n            throw new Error('Required parameter patchProgramDtoApi was null or undefined when calling patchProgram.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/programs/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<ProgramDtoResponseApi>('patch', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: patchProgramDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Removes questions from a program with the given ID\n     * Removes questions from a program with the given ID.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public removeQuestionsFromProgram(requestParameters: RemoveQuestionsFromProgramRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ProgramDtoResponseApi>;\n    public removeQuestionsFromProgram(requestParameters: RemoveQuestionsFromProgramRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ProgramDtoResponseApi>>;\n    public removeQuestionsFromProgram(requestParameters: RemoveQuestionsFromProgramRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ProgramDtoResponseApi>>;\n    public removeQuestionsFromProgram(requestParameters: RemoveQuestionsFromProgramRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling removeQuestionsFromProgram.');\n        }\n        const altoBaseIdsDtoApi = requestParameters.altoBaseIdsDtoApi;\n        if (altoBaseIdsDtoApi === null || altoBaseIdsDtoApi === undefined) {\n            throw new Error('Required parameter altoBaseIdsDtoApi was null or undefined when calling removeQuestionsFromProgram.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/programs/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/questions`;\n        return this.httpClient.request<ProgramDtoResponseApi>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: altoBaseIdsDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { CreateQuestionDtoApi } from '../model/createQuestionDto';\n// @ts-ignore\nimport { DeleteResponseApi } from '../model/deleteResponse';\n// @ts-ignore\nimport { PatchQuestionDtoApi } from '../model/patchQuestionDto';\n// @ts-ignore\nimport { QuestionDtoCreatedResponseApi } from '../model/questionDtoCreatedResponse';\n// @ts-ignore\nimport { QuestionDtoPaginatedResponseApi } from '../model/questionDtoPaginatedResponse';\n// @ts-ignore\nimport { QuestionDtoResponseApi } from '../model/questionDtoResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface CreateQuestionRequestParams {\n    createQuestionDtoApi: CreateQuestionDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface DeleteQuestionRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetQuestionByIdRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetQuestionsRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of tag IDs used to filter the results. If no tag IDs are provided, all questions will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return questions that have AT LEAST one of the specified tags ID.&lt;/b&gt; */\n    tagIds?: string;\n    /** An array of program IDs used to filter the results. If no program IDs are provided, all questions will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return questions that have AT LEAST one of the specified program ID.&lt;/b&gt; */\n    programIds?: string;\n    /** An array of team IDs used to filter the results. If no team IDs are provided, all questions will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return questions that have AT LEAST one of the specified team ID.&lt;/b&gt;  To find the team associated with a question, we use the program\\&#39;s and program assignments teamId property of a question. */\n    teamIds?: Array<string>;\n    /** An array of program IDs used to filter the results. If no program IDs are provided, all questions will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return questions that have AT LEAST one of the specified program ID.&lt;/b&gt; */\n    programRunIds?: string;\n    /** An array of program IDs used to filter the results. If no program IDs are provided, all questions will be returned. If one or more program IDs are provided, the query will return questions that are not associated with any of the specified program IDs. */\n    notInProgramIds?: string;\n    isProgramRunQuestionDone?: boolean;\n    sortByProgramId?: string;\n    /** A text to search in the title of the question  Current implementation does not \\&quot;weight\\&quot; the results and is a simple multi word (space separated) search to include all questions that have the words provided in the query  The regular expression in the Transform decorator uses Unicode property escapes to match any character that is not a letter (\\\\p{L}), a digit (\\\\p{N}), or a whitespace character (\\\\s). The u flag is used to enable Unicode mode, which is necessary to correctly match Unicode characters.  It also removes all 0 at the beginning of each word in order to avoid postgres text search limitation (0 is counted as a stop word) */\n    search?: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\nexport interface PatchQuestionRequestParams {\n    id: string;\n    patchQuestionDtoApi: PatchQuestionDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class QuestionsApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Create a new question\n     * This method handles POST requests to the \\&#39;/questions\\&#39; route to create a new question using the data passed in the body. It will respond with the newly created question.  The order of the answers does not matter but all the answers from the accepted answers of the question need to be provided in the guess.  For example if the accepted answers are: [\\&#39;a\\&#39;, \\&#39;b\\&#39;, \\&#39;c\\&#39;]  If the user provides: [\\&#39;a\\&#39;, \\&#39;b\\&#39;]when creating the guess associated with the question, the guess will be invalid.  If the user provides: [\\&#39;a\\&#39;, \\&#39;b\\&#39;, \\&#39;c\\&#39;, \\&#39;d\\&#39;] when creating the guess associated with the question, the guess will be invalid.  If the user provides: [\\&#39;a\\&#39;, \\&#39;b\\&#39;, \\&#39;c\\&#39;] when creating the guess associated with the question, the guess will be valid.  If the user provides: [\\&#39;c\\&#39;, \\&#39;b\\&#39;, \\&#39;a\\&#39;] when creating the guess associated with the question, the guess will also be valid.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public createQuestion(requestParameters: CreateQuestionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<QuestionDtoCreatedResponseApi>;\n    public createQuestion(requestParameters: CreateQuestionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<QuestionDtoCreatedResponseApi>>;\n    public createQuestion(requestParameters: CreateQuestionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<QuestionDtoCreatedResponseApi>>;\n    public createQuestion(requestParameters: CreateQuestionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createQuestionDtoApi = requestParameters.createQuestionDtoApi;\n        if (createQuestionDtoApi === null || createQuestionDtoApi === undefined) {\n            throw new Error('Required parameter createQuestionDtoApi was null or undefined when calling createQuestion.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/questions`;\n        return this.httpClient.request<QuestionDtoCreatedResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: createQuestionDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Soft delete\\&quot; an existing question by ID\n     * This method handles DELETE requests to the \\&#39;/questions/:id\\&#39; route, it \\&quot;softDelete\\&quot; a single question does not return anything.  By \\&quot;soft delete\\&quot; we mean that it will just set the deletedAt and will not remove the item from the database, this is done to better manage deletions and allow us to handle different scenario like deleting in cascade etc...\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteQuestion(requestParameters: DeleteQuestionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<DeleteResponseApi>;\n    public deleteQuestion(requestParameters: DeleteQuestionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<DeleteResponseApi>>;\n    public deleteQuestion(requestParameters: DeleteQuestionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<DeleteResponseApi>>;\n    public deleteQuestion(requestParameters: DeleteQuestionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteQuestion.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/questions/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<DeleteResponseApi>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single question by ID\n     * This method handles GET requests to the \\&#39;/questions/{:id}\\&#39; route with &#x60;{:id}&#x60; the id of the question we want to find. If the question exists it will return it, if not we respond with an error not found.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getQuestionById(requestParameters: GetQuestionByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<QuestionDtoResponseApi>;\n    public getQuestionById(requestParameters: GetQuestionByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<QuestionDtoResponseApi>>;\n    public getQuestionById(requestParameters: GetQuestionByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<QuestionDtoResponseApi>>;\n    public getQuestionById(requestParameters: GetQuestionByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getQuestionById.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/questions/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<QuestionDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get Questions with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/questions\\&#39; route with the filter, sort and pagination options passed in the query parameters it will respond with the paginated questions along with the current state of pagination .\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getQuestions(requestParameters: GetQuestionsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<QuestionDtoPaginatedResponseApi>;\n    public getQuestions(requestParameters: GetQuestionsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<QuestionDtoPaginatedResponseApi>>;\n    public getQuestions(requestParameters: GetQuestionsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<QuestionDtoPaginatedResponseApi>>;\n    public getQuestions(requestParameters: GetQuestionsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const tagIds = requestParameters.tagIds;\n        const programIds = requestParameters.programIds;\n        const teamIds = requestParameters.teamIds;\n        const programRunIds = requestParameters.programRunIds;\n        const notInProgramIds = requestParameters.notInProgramIds;\n        const isProgramRunQuestionDone = requestParameters.isProgramRunQuestionDone;\n        const sortByProgramId = requestParameters.sortByProgramId;\n        const search = requestParameters.search;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (tagIds !== undefined && tagIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>tagIds, 'tagIds');\n        }\n        if (programIds !== undefined && programIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>programIds, 'programIds');\n        }\n        if (teamIds) {\n            teamIds.forEach((element) => {\n                localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                  <any>element, 'teamIds');\n            })\n        }\n        if (programRunIds !== undefined && programRunIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>programRunIds, 'programRunIds');\n        }\n        if (notInProgramIds !== undefined && notInProgramIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>notInProgramIds, 'notInProgramIds');\n        }\n        if (isProgramRunQuestionDone !== undefined && isProgramRunQuestionDone !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isProgramRunQuestionDone, 'isProgramRunQuestionDone');\n        }\n        if (sortByProgramId !== undefined && sortByProgramId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortByProgramId, 'sortByProgramId');\n        }\n        if (search !== undefined && search !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>search, 'search');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/questions`;\n        return this.httpClient.request<QuestionDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Patch an existing question by ID\n     * This method handles PATCH requests to the \\&#39;/questions/:id\\&#39; route where :id is a question ID, it updates a single question with the ID :id and return it. If the question with ID does not exists we return an error.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public patchQuestion(requestParameters: PatchQuestionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<QuestionDtoResponseApi>;\n    public patchQuestion(requestParameters: PatchQuestionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<QuestionDtoResponseApi>>;\n    public patchQuestion(requestParameters: PatchQuestionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<QuestionDtoResponseApi>>;\n    public patchQuestion(requestParameters: PatchQuestionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling patchQuestion.');\n        }\n        const patchQuestionDtoApi = requestParameters.patchQuestionDtoApi;\n        if (patchQuestionDtoApi === null || patchQuestionDtoApi === undefined) {\n            throw new Error('Required parameter patchQuestionDtoApi was null or undefined when calling patchQuestion.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/questions/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<QuestionDtoResponseApi>('patch', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: patchQuestionDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { CreateQuestionSubmittedDtoApi } from '../model/createQuestionSubmittedDto';\n// @ts-ignore\nimport { DeleteResponseApi } from '../model/deleteResponse';\n// @ts-ignore\nimport { PatchQuestionSubmittedDtoApi } from '../model/patchQuestionSubmittedDto';\n// @ts-ignore\nimport { QuestionSubmittedDtoCreatedResponseApi } from '../model/questionSubmittedDtoCreatedResponse';\n// @ts-ignore\nimport { QuestionSubmittedDtoPaginatedResponseApi } from '../model/questionSubmittedDtoPaginatedResponse';\n// @ts-ignore\nimport { QuestionSubmittedDtoResponseApi } from '../model/questionSubmittedDtoResponse';\n// @ts-ignore\nimport { QuestionSubmittedStatusEnumApi } from '../model/questionSubmittedStatusEnum';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface CreateQuestionSubmittedRequestParams {\n    createQuestionSubmittedDtoApi: CreateQuestionSubmittedDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface DeleteQuestionSubmittedRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetQuestionSubmittedByIdRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetQuestionsSubmittedRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** The \\&#39;status\\&#39; property of a QuestionSubmittedQueryPaginatedDto object.  This property represents the status of a submitted question and can be optionally set to a member of the \\&#39;QuestionSubmittedStatus\\&#39; enumeration. */\n    status?: QuestionSubmittedStatusEnumApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\nexport interface PatchQuestionSubmittedRequestParams {\n    id: string;\n    patchQuestionSubmittedDtoApi: PatchQuestionSubmittedDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class QuestionsSubmittedApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Create a new question-submitted\n     * This method handles POST requests to the \\&#39;/questions-submitted\\&#39; route to create a new question-submitted using the data passed in the body. It will respond with the newly created question-submitted.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public createQuestionSubmitted(requestParameters: CreateQuestionSubmittedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<QuestionSubmittedDtoCreatedResponseApi>;\n    public createQuestionSubmitted(requestParameters: CreateQuestionSubmittedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<QuestionSubmittedDtoCreatedResponseApi>>;\n    public createQuestionSubmitted(requestParameters: CreateQuestionSubmittedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<QuestionSubmittedDtoCreatedResponseApi>>;\n    public createQuestionSubmitted(requestParameters: CreateQuestionSubmittedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createQuestionSubmittedDtoApi = requestParameters.createQuestionSubmittedDtoApi;\n        if (createQuestionSubmittedDtoApi === null || createQuestionSubmittedDtoApi === undefined) {\n            throw new Error('Required parameter createQuestionSubmittedDtoApi was null or undefined when calling createQuestionSubmitted.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/questions-submitted`;\n        return this.httpClient.request<QuestionSubmittedDtoCreatedResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: createQuestionSubmittedDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Soft delete\\&quot; an existing question-submitted by ID\n     * This method handles DELETE requests to the \\&#39;/questions-submitted/:id\\&#39; route, it \\&quot;softDelete\\&quot; a single question-submitted does not return anything.  By \\&quot;soft delete\\&quot; we mean that it will just set the deletedAt and will not remove the item from the database, this is done to better manage deletions and allow us to handle different scenario like deleting in cascade etc...\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteQuestionSubmitted(requestParameters: DeleteQuestionSubmittedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<DeleteResponseApi>;\n    public deleteQuestionSubmitted(requestParameters: DeleteQuestionSubmittedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<DeleteResponseApi>>;\n    public deleteQuestionSubmitted(requestParameters: DeleteQuestionSubmittedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<DeleteResponseApi>>;\n    public deleteQuestionSubmitted(requestParameters: DeleteQuestionSubmittedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteQuestionSubmitted.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/questions-submitted/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<DeleteResponseApi>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single question-submitted by ID\n     * This method handles GET requests to the \\&#39;/questions-submitted/{:id}\\&#39; route with &#x60;{:id}&#x60; the id of the question-submitted we want to find. If the question-submitted exists it will return it, if not we respond with an error not found.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getQuestionSubmittedById(requestParameters: GetQuestionSubmittedByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<QuestionSubmittedDtoResponseApi>;\n    public getQuestionSubmittedById(requestParameters: GetQuestionSubmittedByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<QuestionSubmittedDtoResponseApi>>;\n    public getQuestionSubmittedById(requestParameters: GetQuestionSubmittedByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<QuestionSubmittedDtoResponseApi>>;\n    public getQuestionSubmittedById(requestParameters: GetQuestionSubmittedByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getQuestionSubmittedById.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/questions-submitted/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<QuestionSubmittedDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get QuestionsSubmitted with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/questions-submitted\\&#39; route with the filter, sort and pagination options passed in the query parameters it will respond with the paginated questions-submitted along with the current state of pagination .\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getQuestionsSubmitted(requestParameters: GetQuestionsSubmittedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<QuestionSubmittedDtoPaginatedResponseApi>;\n    public getQuestionsSubmitted(requestParameters: GetQuestionsSubmittedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<QuestionSubmittedDtoPaginatedResponseApi>>;\n    public getQuestionsSubmitted(requestParameters: GetQuestionsSubmittedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<QuestionSubmittedDtoPaginatedResponseApi>>;\n    public getQuestionsSubmitted(requestParameters: GetQuestionsSubmittedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const status = requestParameters.status;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (status !== undefined && status !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>status, 'status');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/questions-submitted`;\n        return this.httpClient.request<QuestionSubmittedDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Patch an existing question-submitted by ID\n     * This method handles PATCH requests to the \\&#39;/questions-submitted/:id\\&#39; route where :id is a question-submitted ID, it updates a single question-submitted with the ID :id and return it. If the question-submitted with ID does not exists we return an error.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public patchQuestionSubmitted(requestParameters: PatchQuestionSubmittedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<QuestionSubmittedDtoResponseApi>;\n    public patchQuestionSubmitted(requestParameters: PatchQuestionSubmittedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<QuestionSubmittedDtoResponseApi>>;\n    public patchQuestionSubmitted(requestParameters: PatchQuestionSubmittedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<QuestionSubmittedDtoResponseApi>>;\n    public patchQuestionSubmitted(requestParameters: PatchQuestionSubmittedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling patchQuestionSubmitted.');\n        }\n        const patchQuestionSubmittedDtoApi = requestParameters.patchQuestionSubmittedDtoApi;\n        if (patchQuestionSubmittedDtoApi === null || patchQuestionSubmittedDtoApi === undefined) {\n            throw new Error('Required parameter patchQuestionSubmittedDtoApi was null or undefined when calling patchQuestionSubmitted.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/questions-submitted/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<QuestionSubmittedDtoResponseApi>('patch', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: patchQuestionSubmittedDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { ScoreByTypeEnumApi } from '../model/scoreByTypeEnum';\n// @ts-ignore\nimport { ScoreFillValuesEnumApi } from '../model/scoreFillValuesEnum';\n// @ts-ignore\nimport { ScoreTimeframeEnumApi } from '../model/scoreTimeframeEnum';\n// @ts-ignore\nimport { ScoreTypeEnumApi } from '../model/scoreTypeEnum';\n// @ts-ignore\nimport { ScoresResponseDtoResponseApi } from '../model/scoresResponseDtoResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface GetScoresRequestParams {\n    /** The type of score to filter on. */\n    type: ScoreTypeEnumApi;\n    /** The timeframe to group scores by. */\n    timeframe: ScoreTimeframeEnumApi;\n    /** The date to filter scores from guesses created after the date.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    dateAfter: Date;\n    /** The date to filter scores from guesses created before the date.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    dateBefore: Date;\n    /** An optional array of IDs to filter on. */\n    ids?: string;\n    /** The type of score to filter by. */\n    scoredBy?: ScoreByTypeEnumApi;\n    sortBy?: string;\n    /** params to choose or not to fill the gaps in scores with a value. The value can be 0 or null or false. if not provided the dates with no scores will be filled with 0. if set to false the dates with no scores will not be included. */\n    fillValues?: ScoreFillValuesEnumApi;\n    /** Unique identifier of the company. */\n    companyId?: string;\n    /** The ID of the entity to filter by. */\n    scoredById?: string;\n    /** The minimum total count of scores to filter by.  Example 10 */\n    countGreaterThan?: number;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ScoresApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Get scores by types\n     * Gets the scores for the specified query and company ID.  For the scores on programs, all the program-run will be aggregated into one score. this means that if a program has 3 runs, the score will be the average of the 3 runs. the totalcount will be the sum of the 3 runs and the validcount will be the number of valid guesses within the 3 runs.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getScores(requestParameters: GetScoresRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ScoresResponseDtoResponseApi>;\n    public getScores(requestParameters: GetScoresRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ScoresResponseDtoResponseApi>>;\n    public getScores(requestParameters: GetScoresRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ScoresResponseDtoResponseApi>>;\n    public getScores(requestParameters: GetScoresRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const type = requestParameters.type;\n        if (type === null || type === undefined) {\n            throw new Error('Required parameter type was null or undefined when calling getScores.');\n        }\n        const timeframe = requestParameters.timeframe;\n        if (timeframe === null || timeframe === undefined) {\n            throw new Error('Required parameter timeframe was null or undefined when calling getScores.');\n        }\n        const dateAfter = requestParameters.dateAfter;\n        if (dateAfter === null || dateAfter === undefined) {\n            throw new Error('Required parameter dateAfter was null or undefined when calling getScores.');\n        }\n        const dateBefore = requestParameters.dateBefore;\n        if (dateBefore === null || dateBefore === undefined) {\n            throw new Error('Required parameter dateBefore was null or undefined when calling getScores.');\n        }\n        const ids = requestParameters.ids;\n        const scoredBy = requestParameters.scoredBy;\n        const sortBy = requestParameters.sortBy;\n        const fillValues = requestParameters.fillValues;\n        const companyId = requestParameters.companyId;\n        const scoredById = requestParameters.scoredById;\n        const countGreaterThan = requestParameters.countGreaterThan;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (type !== undefined && type !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>type, 'type');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (scoredBy !== undefined && scoredBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoredBy, 'scoredBy');\n        }\n        if (timeframe !== undefined && timeframe !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>timeframe, 'timeframe');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (fillValues !== undefined && fillValues !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>fillValues, 'fillValues');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (scoredById !== undefined && scoredById !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoredById, 'scoredById');\n        }\n        if (dateAfter !== undefined && dateAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>dateAfter, 'dateAfter');\n        }\n        if (dateBefore !== undefined && dateBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>dateBefore, 'dateBefore');\n        }\n        if (countGreaterThan !== undefined && countGreaterThan !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>countGreaterThan, 'countGreaterThan');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/scores`;\n        return this.httpClient.request<ScoresResponseDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { CompanyStatsDtoResponseApi } from '../model/companyStatsDtoResponse';\n// @ts-ignore\nimport { ProgramStatsDtoPaginatedResponseApi } from '../model/programStatsDtoPaginatedResponse';\n// @ts-ignore\nimport { QuestionStatsDtoPaginatedResponseApi } from '../model/questionStatsDtoPaginatedResponse';\n// @ts-ignore\nimport { TagStatsDtoPaginatedResponseApi } from '../model/tagStatsDtoPaginatedResponse';\n// @ts-ignore\nimport { TeamStatsDtoPaginatedResponseApi } from '../model/teamStatsDtoPaginatedResponse';\n// @ts-ignore\nimport { UserStatsDtoPaginatedResponseApi } from '../model/userStatsDtoPaginatedResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface GetCompanyStatsRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n    /** No default value (will take all the results from  the date of the first guess)  if only &#x60;from&#x60; is provided, it will take all the results from the date of the &#x60;from&#x60; date to the current Date.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    from?: Date;\n    /** A date used to filter the results based on creation date of the guesses. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the &#x60;to&#x60; field is provided with a date without a time, it will include resources started on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    to?: Date;\n}\n\nexport interface GetProgramsStatsRequestParams {\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of teamIds used to filter the results to only include the team with the specified IDs */\n    teamIds?: string;\n    /** filter the results to only include entities with a name that contains the specified string */\n    search?: string;\n    /** filter the results to only include entities who have a progress above or equal to the specified value */\n    progressAboveOrEqual?: number;\n    /** filter the results to only include entities who have a progress below or equal to the specified value */\n    progressBelowOrEqual?: number;\n    /** filter the results to only include accelerated programs */\n    isAccelerated?: boolean;\n    /** The page number to retrieve. The default value is 1. The minimum value is 1.   ?page&#x3D;1 */\n    page?: number;\n    /** The number of items per page to retrieve.  The default value is temporary to 1000. to keep the API working as before. It will be set to 10 when the frontend is ready for this change. */\n    itemsPerPage?: number;\n    /** filter the results to only include entities who have a score above or equal to the specified value */\n    scoreAboveOrEqual?: number;\n    /** filter the results to only include entities who have a score below or equal to the specified value */\n    scoreBelowOrEqual?: number;\n    /** No default value (will take all the results from  the date of the first guess)  if only &#x60;from&#x60; is provided, it will take all the results from the date of the &#x60;from&#x60; date to the current Date.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    from?: Date;\n    /** A date used to filter the results based on creation date of the guesses. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the &#x60;to&#x60; field is provided with a date without a time, it will include resources started on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    to?: Date;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetQuestionsStatsRequestParams {\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of tagIds used to filter the results to only include the tag with the specified IDs */\n    tagIds?: string;\n    /** An array of programIds used to filter the results to only include the programs with the specified IDs */\n    programIds?: string;\n    /** An array of teamIds used to filter the results to only include the teams with the specified IDs */\n    teamIds?: string;\n    /** filter the results to only include questions with title that contains the specified string */\n    search?: string;\n    /** The page number to retrieve. The default value is 1. The minimum value is 1.   ?page&#x3D;1 */\n    page?: number;\n    /** The number of items per page to retrieve.  The default value is temporary to 1000. to keep the API working as before. It will be set to 10 when the frontend is ready for this change. */\n    itemsPerPage?: number;\n    /** filter the results to only include entities who have a score above or equal to the specified value */\n    scoreAboveOrEqual?: number;\n    /** filter the results to only include entities who have a score below or equal to the specified value */\n    scoreBelowOrEqual?: number;\n    /** No default value (will take all the results from  the date of the first guess)  if only &#x60;from&#x60; is provided, it will take all the results from the date of the &#x60;from&#x60; date to the current Date.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    from?: Date;\n    /** A date used to filter the results based on creation date of the guesses. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the &#x60;to&#x60; field is provided with a date without a time, it will include resources started on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    to?: Date;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetTagsStatsRequestParams {\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of  IDs used to filter the results to only include the teams with the specified IDs in the stats calculation */\n    teamIds?: string;\n    search?: string;\n    /** The page number to retrieve. The default value is 1. The minimum value is 1.   ?page&#x3D;1 */\n    page?: number;\n    /** The number of items per page to retrieve.  The default value is temporary to 1000. to keep the API working as before. It will be set to 10 when the frontend is ready for this change. */\n    itemsPerPage?: number;\n    /** filter the results to only include entities who have a score above or equal to the specified value */\n    scoreAboveOrEqual?: number;\n    /** filter the results to only include entities who have a score below or equal to the specified value */\n    scoreBelowOrEqual?: number;\n    /** No default value (will take all the results from  the date of the first guess)  if only &#x60;from&#x60; is provided, it will take all the results from the date of the &#x60;from&#x60; date to the current Date.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    from?: Date;\n    /** A date used to filter the results based on creation date of the guesses. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the &#x60;to&#x60; field is provided with a date without a time, it will include resources started on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    to?: Date;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetTeamsStatsRequestParams {\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of  IDs used to filter the results to only include the teams with the specified tags */\n    tagIds?: string;\n    /** The page number to retrieve. The default value is 1. The minimum value is 1.   ?page&#x3D;1 */\n    page?: number;\n    /** The number of items per page to retrieve.  The default value is temporary to 1000. to keep the API working as before. It will be set to 10 when the frontend is ready for this change. */\n    itemsPerPage?: number;\n    /** filter the results to only include entities who have a score above or equal to the specified value */\n    scoreAboveOrEqual?: number;\n    /** filter the results to only include entities who have a score below or equal to the specified value */\n    scoreBelowOrEqual?: number;\n    /** No default value (will take all the results from  the date of the first guess)  if only &#x60;from&#x60; is provided, it will take all the results from the date of the &#x60;from&#x60; date to the current Date.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    from?: Date;\n    /** A date used to filter the results based on creation date of the guesses. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the &#x60;to&#x60; field is provided with a date without a time, it will include resources started on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    to?: Date;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetUsersStatsRequestParams {\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of teamIds used to filter the results to only include users in teams specified by the IDs. */\n    teamIds?: string;\n    /** filter the results to only include entities with a name that contains the specified string */\n    search?: string;\n    /** The threshold used to calculate the &#x60;respondsRegularly&#x60; field.  This corresponds to the number of responses per day a user need to have the &#x60;respondsRegularly&#x60; field set to true.  By default, the threshold is 6/7 (corresponds ~0.85 response per days, this is equivalent to 6 responses per week, the number of questions sent to the connector per week). */\n    respondsRegularlyThreshold?: number;\n    /** The user id to filter the results by.  This will filter the results by the given user id and will only return the stats for this user.    TODO should be removed when n8n and the frontend will be updated to use the &#x60;ids&#x60; query param. */\n    filterByUserId?: string;\n    /** The page number to retrieve. The default value is 1. The minimum value is 1.   ?page&#x3D;1 */\n    page?: number;\n    /** The number of items per page to retrieve.  The default value is temporary to 1000. to keep the API working as before. It will be set to 10 when the frontend is ready for this change. */\n    itemsPerPage?: number;\n    /** filter the results to only include entities who have a score above or equal to the specified value */\n    scoreAboveOrEqual?: number;\n    /** filter the results to only include entities who have a score below or equal to the specified value */\n    scoreBelowOrEqual?: number;\n    /** No default value (will take all the results from  the date of the first guess)  if only &#x60;from&#x60; is provided, it will take all the results from the date of the &#x60;from&#x60; date to the current Date.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    from?: Date;\n    /** A date used to filter the results based on creation date of the guesses. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the &#x60;to&#x60; field is provided with a date without a time, it will include resources started on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    to?: Date;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class StatsApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Get company statistics\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCompanyStats(requestParameters: GetCompanyStatsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<CompanyStatsDtoResponseApi>;\n    public getCompanyStats(requestParameters: GetCompanyStatsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<CompanyStatsDtoResponseApi>>;\n    public getCompanyStats(requestParameters: GetCompanyStatsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<CompanyStatsDtoResponseApi>>;\n    public getCompanyStats(requestParameters: GetCompanyStatsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getCompanyStats.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const from = requestParameters.from;\n        const to = requestParameters.to;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (from !== undefined && from !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>from, 'from');\n        }\n        if (to !== undefined && to !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>to, 'to');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/stats/company/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<CompanyStatsDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get programs statistics\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getProgramsStats(requestParameters: GetProgramsStatsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<ProgramStatsDtoPaginatedResponseApi>;\n    public getProgramsStats(requestParameters: GetProgramsStatsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<ProgramStatsDtoPaginatedResponseApi>>;\n    public getProgramsStats(requestParameters: GetProgramsStatsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<ProgramStatsDtoPaginatedResponseApi>>;\n    public getProgramsStats(requestParameters: GetProgramsStatsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const teamIds = requestParameters.teamIds;\n        const search = requestParameters.search;\n        const progressAboveOrEqual = requestParameters.progressAboveOrEqual;\n        const progressBelowOrEqual = requestParameters.progressBelowOrEqual;\n        const isAccelerated = requestParameters.isAccelerated;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const scoreAboveOrEqual = requestParameters.scoreAboveOrEqual;\n        const scoreBelowOrEqual = requestParameters.scoreBelowOrEqual;\n        const from = requestParameters.from;\n        const to = requestParameters.to;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (teamIds !== undefined && teamIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>teamIds, 'teamIds');\n        }\n        if (search !== undefined && search !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>search, 'search');\n        }\n        if (progressAboveOrEqual !== undefined && progressAboveOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>progressAboveOrEqual, 'progressAboveOrEqual');\n        }\n        if (progressBelowOrEqual !== undefined && progressBelowOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>progressBelowOrEqual, 'progressBelowOrEqual');\n        }\n        if (isAccelerated !== undefined && isAccelerated !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isAccelerated, 'isAccelerated');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (scoreAboveOrEqual !== undefined && scoreAboveOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoreAboveOrEqual, 'scoreAboveOrEqual');\n        }\n        if (scoreBelowOrEqual !== undefined && scoreBelowOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoreBelowOrEqual, 'scoreBelowOrEqual');\n        }\n        if (from !== undefined && from !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>from, 'from');\n        }\n        if (to !== undefined && to !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>to, 'to');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/stats/programs`;\n        return this.httpClient.request<ProgramStatsDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get questions statistics\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getQuestionsStats(requestParameters: GetQuestionsStatsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<QuestionStatsDtoPaginatedResponseApi>;\n    public getQuestionsStats(requestParameters: GetQuestionsStatsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<QuestionStatsDtoPaginatedResponseApi>>;\n    public getQuestionsStats(requestParameters: GetQuestionsStatsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<QuestionStatsDtoPaginatedResponseApi>>;\n    public getQuestionsStats(requestParameters: GetQuestionsStatsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const tagIds = requestParameters.tagIds;\n        const programIds = requestParameters.programIds;\n        const teamIds = requestParameters.teamIds;\n        const search = requestParameters.search;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const scoreAboveOrEqual = requestParameters.scoreAboveOrEqual;\n        const scoreBelowOrEqual = requestParameters.scoreBelowOrEqual;\n        const from = requestParameters.from;\n        const to = requestParameters.to;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (tagIds !== undefined && tagIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>tagIds, 'tagIds');\n        }\n        if (programIds !== undefined && programIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>programIds, 'programIds');\n        }\n        if (teamIds !== undefined && teamIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>teamIds, 'teamIds');\n        }\n        if (search !== undefined && search !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>search, 'search');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (scoreAboveOrEqual !== undefined && scoreAboveOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoreAboveOrEqual, 'scoreAboveOrEqual');\n        }\n        if (scoreBelowOrEqual !== undefined && scoreBelowOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoreBelowOrEqual, 'scoreBelowOrEqual');\n        }\n        if (from !== undefined && from !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>from, 'from');\n        }\n        if (to !== undefined && to !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>to, 'to');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/stats/questions`;\n        return this.httpClient.request<QuestionStatsDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get tags statistics\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTagsStats(requestParameters: GetTagsStatsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TagStatsDtoPaginatedResponseApi>;\n    public getTagsStats(requestParameters: GetTagsStatsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TagStatsDtoPaginatedResponseApi>>;\n    public getTagsStats(requestParameters: GetTagsStatsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TagStatsDtoPaginatedResponseApi>>;\n    public getTagsStats(requestParameters: GetTagsStatsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const teamIds = requestParameters.teamIds;\n        const search = requestParameters.search;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const scoreAboveOrEqual = requestParameters.scoreAboveOrEqual;\n        const scoreBelowOrEqual = requestParameters.scoreBelowOrEqual;\n        const from = requestParameters.from;\n        const to = requestParameters.to;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (teamIds !== undefined && teamIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>teamIds, 'teamIds');\n        }\n        if (search !== undefined && search !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>search, 'search');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (scoreAboveOrEqual !== undefined && scoreAboveOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoreAboveOrEqual, 'scoreAboveOrEqual');\n        }\n        if (scoreBelowOrEqual !== undefined && scoreBelowOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoreBelowOrEqual, 'scoreBelowOrEqual');\n        }\n        if (from !== undefined && from !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>from, 'from');\n        }\n        if (to !== undefined && to !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>to, 'to');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/stats/tags`;\n        return this.httpClient.request<TagStatsDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get teams statistics\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTeamsStats(requestParameters: GetTeamsStatsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TeamStatsDtoPaginatedResponseApi>;\n    public getTeamsStats(requestParameters: GetTeamsStatsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TeamStatsDtoPaginatedResponseApi>>;\n    public getTeamsStats(requestParameters: GetTeamsStatsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TeamStatsDtoPaginatedResponseApi>>;\n    public getTeamsStats(requestParameters: GetTeamsStatsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const tagIds = requestParameters.tagIds;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const scoreAboveOrEqual = requestParameters.scoreAboveOrEqual;\n        const scoreBelowOrEqual = requestParameters.scoreBelowOrEqual;\n        const from = requestParameters.from;\n        const to = requestParameters.to;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (tagIds !== undefined && tagIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>tagIds, 'tagIds');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (scoreAboveOrEqual !== undefined && scoreAboveOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoreAboveOrEqual, 'scoreAboveOrEqual');\n        }\n        if (scoreBelowOrEqual !== undefined && scoreBelowOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoreBelowOrEqual, 'scoreBelowOrEqual');\n        }\n        if (from !== undefined && from !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>from, 'from');\n        }\n        if (to !== undefined && to !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>to, 'to');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/stats/teams`;\n        return this.httpClient.request<TeamStatsDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get users statistics\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getUsersStats(requestParameters: GetUsersStatsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<UserStatsDtoPaginatedResponseApi>;\n    public getUsersStats(requestParameters: GetUsersStatsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<UserStatsDtoPaginatedResponseApi>>;\n    public getUsersStats(requestParameters: GetUsersStatsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<UserStatsDtoPaginatedResponseApi>>;\n    public getUsersStats(requestParameters: GetUsersStatsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const teamIds = requestParameters.teamIds;\n        const search = requestParameters.search;\n        const respondsRegularlyThreshold = requestParameters.respondsRegularlyThreshold;\n        const filterByUserId = requestParameters.filterByUserId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const scoreAboveOrEqual = requestParameters.scoreAboveOrEqual;\n        const scoreBelowOrEqual = requestParameters.scoreBelowOrEqual;\n        const from = requestParameters.from;\n        const to = requestParameters.to;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (teamIds !== undefined && teamIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>teamIds, 'teamIds');\n        }\n        if (search !== undefined && search !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>search, 'search');\n        }\n        if (respondsRegularlyThreshold !== undefined && respondsRegularlyThreshold !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>respondsRegularlyThreshold, 'respondsRegularlyThreshold');\n        }\n        if (filterByUserId !== undefined && filterByUserId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>filterByUserId, 'filterByUserId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (scoreAboveOrEqual !== undefined && scoreAboveOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoreAboveOrEqual, 'scoreAboveOrEqual');\n        }\n        if (scoreBelowOrEqual !== undefined && scoreBelowOrEqual !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>scoreBelowOrEqual, 'scoreBelowOrEqual');\n        }\n        if (from !== undefined && from !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>from, 'from');\n        }\n        if (to !== undefined && to !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>to, 'to');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/stats/users`;\n        return this.httpClient.request<UserStatsDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AltoBaseIdsDtoApi } from '../model/altoBaseIdsDto';\n// @ts-ignore\nimport { CreateTagDtoApi } from '../model/createTagDto';\n// @ts-ignore\nimport { DeleteResponseApi } from '../model/deleteResponse';\n// @ts-ignore\nimport { PatchTagDtoApi } from '../model/patchTagDto';\n// @ts-ignore\nimport { TagDtoCreatedResponseApi } from '../model/tagDtoCreatedResponse';\n// @ts-ignore\nimport { TagDtoPaginatedResponseApi } from '../model/tagDtoPaginatedResponse';\n// @ts-ignore\nimport { TagDtoResponseApi } from '../model/tagDtoResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface AddQuestionsToTagRequestParams {\n    id: string;\n    altoBaseIdsDtoApi: AltoBaseIdsDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface CreateTagRequestParams {\n    createTagDtoApi: CreateTagDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface DeleteTagRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetTagByIdRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetTagsRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n    search?: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n}\n\nexport interface PatchTagRequestParams {\n    id: string;\n    patchTagDtoApi: PatchTagDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface UnassignQuestionsFromTagRequestParams {\n    id: string;\n    altoBaseIdsDtoApi: AltoBaseIdsDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TagsApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Adds questions to a tag with the given ID\n     * Adds questions to a tag with the given ID.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public addQuestionsToTag(requestParameters: AddQuestionsToTagRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TagDtoResponseApi>;\n    public addQuestionsToTag(requestParameters: AddQuestionsToTagRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TagDtoResponseApi>>;\n    public addQuestionsToTag(requestParameters: AddQuestionsToTagRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TagDtoResponseApi>>;\n    public addQuestionsToTag(requestParameters: AddQuestionsToTagRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling addQuestionsToTag.');\n        }\n        const altoBaseIdsDtoApi = requestParameters.altoBaseIdsDtoApi;\n        if (altoBaseIdsDtoApi === null || altoBaseIdsDtoApi === undefined) {\n            throw new Error('Required parameter altoBaseIdsDtoApi was null or undefined when calling addQuestionsToTag.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/questions`;\n        return this.httpClient.request<TagDtoResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: altoBaseIdsDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Create a new tag\n     * This method handles POST requests to the \\&#39;/tags\\&#39; route to create a new tag using the data passed in the body. It will respond with the newly created tag.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public createTag(requestParameters: CreateTagRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TagDtoCreatedResponseApi>;\n    public createTag(requestParameters: CreateTagRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TagDtoCreatedResponseApi>>;\n    public createTag(requestParameters: CreateTagRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TagDtoCreatedResponseApi>>;\n    public createTag(requestParameters: CreateTagRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createTagDtoApi = requestParameters.createTagDtoApi;\n        if (createTagDtoApi === null || createTagDtoApi === undefined) {\n            throw new Error('Required parameter createTagDtoApi was null or undefined when calling createTag.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags`;\n        return this.httpClient.request<TagDtoCreatedResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: createTagDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Soft delete\\&quot; an existing tag by ID\n     * This method handles DELETE requests to the \\&#39;/tags/:id\\&#39; route, it \\&quot;softDelete\\&quot; a single tag does not return anything.  By \\&quot;soft delete\\&quot; we mean that it will just set the deletedAt and will not remove the item from the database, this is done to better manage deletions and allow us to handle different scenario like deleting in cascade etc...\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteTag(requestParameters: DeleteTagRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<DeleteResponseApi>;\n    public deleteTag(requestParameters: DeleteTagRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<DeleteResponseApi>>;\n    public deleteTag(requestParameters: DeleteTagRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<DeleteResponseApi>>;\n    public deleteTag(requestParameters: DeleteTagRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteTag.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<DeleteResponseApi>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single tag by ID\n     * This method handles GET requests to the \\&#39;/tags/{:id}\\&#39; route with &#x60;{:id}&#x60; the id of the tag we want to find. If the tag exists it will return it, if not we respond with an error not found.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTagById(requestParameters: GetTagByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TagDtoResponseApi>;\n    public getTagById(requestParameters: GetTagByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TagDtoResponseApi>>;\n    public getTagById(requestParameters: GetTagByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TagDtoResponseApi>>;\n    public getTagById(requestParameters: GetTagByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getTagById.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<TagDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get Tags with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/tags\\&#39; route with the filter, sort and pagination options passed in the query parameters it will respond with the paginated tags along with the current state of pagination .\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTags(requestParameters: GetTagsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TagDtoPaginatedResponseApi>;\n    public getTags(requestParameters: GetTagsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TagDtoPaginatedResponseApi>>;\n    public getTags(requestParameters: GetTagsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TagDtoPaginatedResponseApi>>;\n    public getTags(requestParameters: GetTagsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n        const search = requestParameters.search;\n        const companyId = requestParameters.companyId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n        if (search !== undefined && search !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>search, 'search');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags`;\n        return this.httpClient.request<TagDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Patch an existing tag by ID\n     * This method handles PATCH requests to the \\&#39;/tags/:id\\&#39; route where :id is a tag ID, it updates a single tag with the ID :id and return it. If the tag with ID does not exists we return an error.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public patchTag(requestParameters: PatchTagRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TagDtoResponseApi>;\n    public patchTag(requestParameters: PatchTagRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TagDtoResponseApi>>;\n    public patchTag(requestParameters: PatchTagRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TagDtoResponseApi>>;\n    public patchTag(requestParameters: PatchTagRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling patchTag.');\n        }\n        const patchTagDtoApi = requestParameters.patchTagDtoApi;\n        if (patchTagDtoApi === null || patchTagDtoApi === undefined) {\n            throw new Error('Required parameter patchTagDtoApi was null or undefined when calling patchTag.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<TagDtoResponseApi>('patch', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: patchTagDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * unassign questions from a tag with the given ID\n     * Unassign questions from a tag with the given ID.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public unassignQuestionsFromTag(requestParameters: UnassignQuestionsFromTagRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TagDtoResponseApi>;\n    public unassignQuestionsFromTag(requestParameters: UnassignQuestionsFromTagRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TagDtoResponseApi>>;\n    public unassignQuestionsFromTag(requestParameters: UnassignQuestionsFromTagRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TagDtoResponseApi>>;\n    public unassignQuestionsFromTag(requestParameters: UnassignQuestionsFromTagRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling unassignQuestionsFromTag.');\n        }\n        const altoBaseIdsDtoApi = requestParameters.altoBaseIdsDtoApi;\n        if (altoBaseIdsDtoApi === null || altoBaseIdsDtoApi === undefined) {\n            throw new Error('Required parameter altoBaseIdsDtoApi was null or undefined when calling unassignQuestionsFromTag.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/tags/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/questions`;\n        return this.httpClient.request<TagDtoResponseApi>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: altoBaseIdsDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { CreateTeamDtoApi } from '../model/createTeamDto';\n// @ts-ignore\nimport { DeleteResponseApi } from '../model/deleteResponse';\n// @ts-ignore\nimport { PatchTeamDtoApi } from '../model/patchTeamDto';\n// @ts-ignore\nimport { TeamDtoCreatedResponseApi } from '../model/teamDtoCreatedResponse';\n// @ts-ignore\nimport { TeamDtoPaginatedResponseApi } from '../model/teamDtoPaginatedResponse';\n// @ts-ignore\nimport { TeamDtoResponseApi } from '../model/teamDtoResponse';\n// @ts-ignore\nimport { UpdateParcourDtoApi } from '../model/updateParcourDto';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface CreateTeamRequestParams {\n    createTeamDtoApi: CreateTeamDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface DeleteTeamRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetTeamByIdRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetTeamsRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n}\n\nexport interface PatchTeamRequestParams {\n    id: string;\n    patchTeamDtoApi: PatchTeamDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface UpdateParcourRequestParams {\n    id: string;\n    updateParcourDtoApi: UpdateParcourDtoApi;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TeamsApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Create a new team\n     * This method handles POST requests to the \\&#39;/teams\\&#39; route to create a new team using the data passed in the body. It will respond with the newly created team.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public createTeam(requestParameters: CreateTeamRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TeamDtoCreatedResponseApi>;\n    public createTeam(requestParameters: CreateTeamRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TeamDtoCreatedResponseApi>>;\n    public createTeam(requestParameters: CreateTeamRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TeamDtoCreatedResponseApi>>;\n    public createTeam(requestParameters: CreateTeamRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createTeamDtoApi = requestParameters.createTeamDtoApi;\n        if (createTeamDtoApi === null || createTeamDtoApi === undefined) {\n            throw new Error('Required parameter createTeamDtoApi was null or undefined when calling createTeam.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/teams`;\n        return this.httpClient.request<TeamDtoCreatedResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: createTeamDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Soft delete\\&quot; an existing team by ID\n     * This method handles DELETE requests to the \\&#39;/teams/:id\\&#39; route, it \\&quot;softDelete\\&quot; a single team does not return anything.  By \\&quot;soft delete\\&quot; we mean that it will just set the deletedAt and will not remove the item from the database, this is done to better manage deletions and allow us to handle different scenario like deleting in cascade etc...\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteTeam(requestParameters: DeleteTeamRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<DeleteResponseApi>;\n    public deleteTeam(requestParameters: DeleteTeamRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<DeleteResponseApi>>;\n    public deleteTeam(requestParameters: DeleteTeamRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<DeleteResponseApi>>;\n    public deleteTeam(requestParameters: DeleteTeamRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteTeam.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/teams/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<DeleteResponseApi>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single team by ID\n     * This method handles GET requests to the \\&#39;/teams/{:id}\\&#39; route with &#x60;{:id}&#x60; the id of the team we want to find. If the team exists it will return it, if not we respond with an error not found.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTeamById(requestParameters: GetTeamByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TeamDtoResponseApi>;\n    public getTeamById(requestParameters: GetTeamByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TeamDtoResponseApi>>;\n    public getTeamById(requestParameters: GetTeamByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TeamDtoResponseApi>>;\n    public getTeamById(requestParameters: GetTeamByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getTeamById.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/teams/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<TeamDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get Teams with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/teams\\&#39; route with the filter, sort and pagination options passed in the query parameters it will respond with the paginated teams along with the current state of pagination .\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTeams(requestParameters: GetTeamsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TeamDtoPaginatedResponseApi>;\n    public getTeams(requestParameters: GetTeamsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TeamDtoPaginatedResponseApi>>;\n    public getTeams(requestParameters: GetTeamsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TeamDtoPaginatedResponseApi>>;\n    public getTeams(requestParameters: GetTeamsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n        const companyId = requestParameters.companyId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/teams`;\n        return this.httpClient.request<TeamDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Patch an existing team by ID\n     * This method handles PATCH requests to the \\&#39;/teams/:id\\&#39; route where :id is a team ID, it updates a single team with the ID :id and return it. If the team with ID does not exists we return an error.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public patchTeam(requestParameters: PatchTeamRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TeamDtoResponseApi>;\n    public patchTeam(requestParameters: PatchTeamRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TeamDtoResponseApi>>;\n    public patchTeam(requestParameters: PatchTeamRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TeamDtoResponseApi>>;\n    public patchTeam(requestParameters: PatchTeamRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling patchTeam.');\n        }\n        const patchTeamDtoApi = requestParameters.patchTeamDtoApi;\n        if (patchTeamDtoApi === null || patchTeamDtoApi === undefined) {\n            throw new Error('Required parameter patchTeamDtoApi was null or undefined when calling patchTeam.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/teams/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<TeamDtoResponseApi>('patch', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: patchTeamDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update the parcour for a specific team\n     * This method handles PATCH requests to the \\&#39;/update-parcour\\&#39; route, it updates the parcour for a specific team and return it.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public updateParcour(requestParameters: UpdateParcourRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<TeamDtoResponseApi>;\n    public updateParcour(requestParameters: UpdateParcourRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<TeamDtoResponseApi>>;\n    public updateParcour(requestParameters: UpdateParcourRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<TeamDtoResponseApi>>;\n    public updateParcour(requestParameters: UpdateParcourRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling updateParcour.');\n        }\n        const updateParcourDtoApi = requestParameters.updateParcourDtoApi;\n        if (updateParcourDtoApi === null || updateParcourDtoApi === undefined) {\n            throw new Error('Required parameter updateParcourDtoApi was null or undefined when calling updateParcour.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/teams/update-parcour/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<TeamDtoResponseApi>('patch', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: updateParcourDtoApi,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TheOfficeApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Receive a message from the PubSub subscription\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public theOfficeMessages(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public theOfficeMessages(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public theOfficeMessages(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public theOfficeMessages(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/the-office/messages`;\n        return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface TriggerAcceleratedProgramRequestParams {\n    /** The id of the accelerated program to trigger */\n    acceleratedProgramId: string;\n    /** The id of the company to trigger */\n    companyId: string;\n}\n\nexport interface TriggerAskSlackAuthorizationRequestParams {\n    /** email of the slack admin to send the slack authorization request email to */\n    slackAdminEmail: string;\n}\n\nexport interface TriggerCompanyStatsRequestParams {\n    /** An array of company ids to filter company that will be concerned by the trigger The company still need to match the trigger conditions (Connector time, Connector day, etc.)  if not provided, all companies will be concerned by the trigger and the company will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    companyIds?: string;\n    /** An array of user ids to filter users that will be concerned by the trigger  The user still need to match the trigger conditions (Company concerned by the trigger, Connector is active, etc.)  if not provided, all users will be concerned by the trigger and the user will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    userIds?: string;\n    /** The datetime to use to trigger the session continue (used to simulate a trigger in the past or in the future for example)  Should be used only for debug and test purpose and not in production */\n    datetime?: Date;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface TriggerSessionContinueRequestParams {\n    /** An array of company ids to filter company that will be concerned by the trigger The company still need to match the trigger conditions (Connector time, Connector day, etc.)  if not provided, all companies will be concerned by the trigger and the company will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    companyIds?: string;\n    /** An array of user ids to filter users that will be concerned by the trigger  The user still need to match the trigger conditions (Company concerned by the trigger, Connector is active, etc.)  if not provided, all users will be concerned by the trigger and the user will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    userIds?: string;\n    /** The datetime to use to trigger the session continue (used to simulate a trigger in the past or in the future for example)  Should be used only for debug and test purpose and not in production */\n    datetime?: Date;\n    /** An array of question idsto send to the connector when the trigger is triggered  if not provided, the getNextQuestion algorithm will be used to get the next question if provided, the getNextQuestion algorithm will be ignored and the questionIds will be used to push the questions  Should be used only for debug and test purpose and not in production */\n    questionIds?: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface TriggerUserStatsRequestParams {\n    /** An array of company ids to filter company that will be concerned by the trigger The company still need to match the trigger conditions (Connector time, Connector day, etc.)  if not provided, all companies will be concerned by the trigger and the company will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    companyIds?: string;\n    /** An array of user ids to filter users that will be concerned by the trigger  The user still need to match the trigger conditions (Company concerned by the trigger, Connector is active, etc.)  if not provided, all users will be concerned by the trigger and the user will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    userIds?: string;\n    /** The datetime to use to trigger the session continue (used to simulate a trigger in the past or in the future for example)  Should be used only for debug and test purpose and not in production */\n    datetime?: Date;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface TriggerUsersInactivityRequestParams {\n    /** An array of company ids to filter company that will be concerned by the trigger The company still need to match the trigger conditions (Connector time, Connector day, etc.)  if not provided, all companies will be concerned by the trigger and the company will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    companyIds?: string;\n    /** An array of user ids to filter users that will be concerned by the trigger  The user still need to match the trigger conditions (Company concerned by the trigger, Connector is active, etc.)  if not provided, all users will be concerned by the trigger and the user will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    userIds?: string;\n    /** The datetime to use to trigger the session continue (used to simulate a trigger in the past or in the future for example)  Should be used only for debug and test purpose and not in production */\n    datetime?: Date;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface TriggerUsersNoActivityRequestParams {\n    /** An array of company ids to filter company that will be concerned by the trigger The company still need to match the trigger conditions (Connector time, Connector day, etc.)  if not provided, all companies will be concerned by the trigger and the company will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    companyIds?: string;\n    /** An array of user ids to filter users that will be concerned by the trigger  The user still need to match the trigger conditions (Company concerned by the trigger, Connector is active, etc.)  if not provided, all users will be concerned by the trigger and the user will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    userIds?: string;\n    /** The datetime to use to trigger the session continue (used to simulate a trigger in the past or in the future for example)  Should be used only for debug and test purpose and not in production */\n    datetime?: Date;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface TriggerWaitingModerationRequestParams {\n    /** An array of company ids to filter company that will be concerned by the trigger The company still need to match the trigger conditions (Connector time, Connector day, etc.)  if not provided, all companies will be concerned by the trigger and the company will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    companyIds?: string;\n    /** An array of user ids to filter users that will be concerned by the trigger  The user still need to match the trigger conditions (Company concerned by the trigger, Connector is active, etc.)  if not provided, all users will be concerned by the trigger and the user will be filtered by the trigger conditions  Should be used only for debug and test purpose and not in production */\n    userIds?: string;\n    /** The datetime to use to trigger the session continue (used to simulate a trigger in the past or in the future for example)  Should be used only for debug and test purpose and not in production */\n    datetime?: Date;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TriggersApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Trigger the accelerated program\n     * This endpoint is used to trigger the accelerated program event  In production it should be called by a company lead It will trigger the accelerated program event for the teams concerned by the event\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public triggerAcceleratedProgram(requestParameters: TriggerAcceleratedProgramRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public triggerAcceleratedProgram(requestParameters: TriggerAcceleratedProgramRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public triggerAcceleratedProgram(requestParameters: TriggerAcceleratedProgramRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public triggerAcceleratedProgram(requestParameters: TriggerAcceleratedProgramRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n        const acceleratedProgramId = requestParameters.acceleratedProgramId;\n        if (acceleratedProgramId === null || acceleratedProgramId === undefined) {\n            throw new Error('Required parameter acceleratedProgramId was null or undefined when calling triggerAcceleratedProgram.');\n        }\n        const companyId = requestParameters.companyId;\n        if (companyId === null || companyId === undefined) {\n            throw new Error('Required parameter companyId was null or undefined when calling triggerAcceleratedProgram.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (acceleratedProgramId !== undefined && acceleratedProgramId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>acceleratedProgramId, 'acceleratedProgramId');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/triggers/accelerated-program`;\n        return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Trigger the ask slack authorization event to send an email to the slack admin to ask him to authorize Alto to access the slack workspace\n     * This endpoint is used to trigger the email-ask-slack-authorization  it will be called by a trainX lead to ask the slack admin to authorize Alto to access the slack workspace\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public triggerAskSlackAuthorization(requestParameters: TriggerAskSlackAuthorizationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public triggerAskSlackAuthorization(requestParameters: TriggerAskSlackAuthorizationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public triggerAskSlackAuthorization(requestParameters: TriggerAskSlackAuthorizationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public triggerAskSlackAuthorization(requestParameters: TriggerAskSlackAuthorizationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n        const slackAdminEmail = requestParameters.slackAdminEmail;\n        if (slackAdminEmail === null || slackAdminEmail === undefined) {\n            throw new Error('Required parameter slackAdminEmail was null or undefined when calling triggerAskSlackAuthorization.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (slackAdminEmail !== undefined && slackAdminEmail !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>slackAdminEmail, 'slackAdminEmail');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/triggers/email-ask-slack-authorization`;\n        return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Trigger the company stats event\n     * This endpoint is used to trigger the company stats event  In production it should be called by a cron job at the specified datetime It will trigger the company stats event for all companies and users concerned by the event It will send an event on the right topic the event will contains the company stats and the id of the user who will receive the event\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public triggerCompanyStats(requestParameters: TriggerCompanyStatsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public triggerCompanyStats(requestParameters: TriggerCompanyStatsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public triggerCompanyStats(requestParameters: TriggerCompanyStatsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public triggerCompanyStats(requestParameters: TriggerCompanyStatsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n        const companyIds = requestParameters.companyIds;\n        const userIds = requestParameters.userIds;\n        const datetime = requestParameters.datetime;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyIds !== undefined && companyIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyIds, 'companyIds');\n        }\n        if (userIds !== undefined && userIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userIds, 'userIds');\n        }\n        if (datetime !== undefined && datetime !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>datetime, 'datetime');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/triggers/company-stats`;\n        return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Trigger the send gchat instruction event to send an email to the users to explain how to install the gchat connector\n     * This endpoint is used to trigger the email-send-gchat-instruction  it will be called by a trainX lead to send an email to the users to explain how to install the gchat connector\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public triggerSendGchatInstruction(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public triggerSendGchatInstruction(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public triggerSendGchatInstruction(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public triggerSendGchatInstruction(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/triggers/email-send-gchat-instruction`;\n        return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Trigger the send microsoft Teams instruction event to send an email to the users to explain how to install the microsoft teams connector\n     * This endpoint is used to trigger the email-send-teams-instruction  it will be called by a trainX lead to send an email to the users to explain how to install the Microsoft teams connector\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public triggerSendTeamsInstruction(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public triggerSendTeamsInstruction(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public triggerSendTeamsInstruction(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public triggerSendTeamsInstruction(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/triggers/email-send-teams-instruction`;\n        return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Trigger the session continue\n     * This endpoint is used to trigger the session continue event  In production it should be called by a cron job at the specified time (connectorTime for example) It will trigger the session continue event for all companies and users concerned by the event It will send an event on the right topic the event will contains the company and user ids and a list of questions\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public triggerSessionContinue(requestParameters: TriggerSessionContinueRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public triggerSessionContinue(requestParameters: TriggerSessionContinueRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public triggerSessionContinue(requestParameters: TriggerSessionContinueRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public triggerSessionContinue(requestParameters: TriggerSessionContinueRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n        const companyIds = requestParameters.companyIds;\n        const userIds = requestParameters.userIds;\n        const datetime = requestParameters.datetime;\n        const questionIds = requestParameters.questionIds;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyIds !== undefined && companyIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyIds, 'companyIds');\n        }\n        if (userIds !== undefined && userIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userIds, 'userIds');\n        }\n        if (datetime !== undefined && datetime !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>datetime, 'datetime');\n        }\n        if (questionIds !== undefined && questionIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>questionIds, 'questionIds');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/triggers/session-continue`;\n        return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Trigger the users stats event\n     * This endpoint is used to trigger the users stats event  In production it should be called by a cron job at the specified datetime It will trigger the users stats event for all companies and users concerned by the event It will send an event on the right topic the event will contains the user statistics\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public triggerUserStats(requestParameters: TriggerUserStatsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public triggerUserStats(requestParameters: TriggerUserStatsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public triggerUserStats(requestParameters: TriggerUserStatsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public triggerUserStats(requestParameters: TriggerUserStatsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n        const companyIds = requestParameters.companyIds;\n        const userIds = requestParameters.userIds;\n        const datetime = requestParameters.datetime;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyIds !== undefined && companyIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyIds, 'companyIds');\n        }\n        if (userIds !== undefined && userIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userIds, 'userIds');\n        }\n        if (datetime !== undefined && datetime !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>datetime, 'datetime');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/triggers/user-stats`;\n        return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Trigger the users inactivity event\n     * This endpoint is used to trigger the users inactivity event  In production it should be called by a cron job at the specified time It will trigger the users inactivity event for all companies and users concerned by the event It will send an event on the right topic the event will contains the company and user ids and the inactive users\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public triggerUsersInactivity(requestParameters: TriggerUsersInactivityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public triggerUsersInactivity(requestParameters: TriggerUsersInactivityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public triggerUsersInactivity(requestParameters: TriggerUsersInactivityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public triggerUsersInactivity(requestParameters: TriggerUsersInactivityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n        const companyIds = requestParameters.companyIds;\n        const userIds = requestParameters.userIds;\n        const datetime = requestParameters.datetime;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyIds !== undefined && companyIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyIds, 'companyIds');\n        }\n        if (userIds !== undefined && userIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userIds, 'userIds');\n        }\n        if (datetime !== undefined && datetime !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>datetime, 'datetime');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/triggers/users-inactivity`;\n        return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Trigger the users no activity event to send an email to users who have not been active for 15 days\n     * This endpoint is used to trigger the trainx-notif-user-no-activity-for-15days  In production it should be called by a daily cron job It will trigger check activity for all companies and users and send an email to the users who have not been active for 15 days\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public triggerUsersNoActivity(requestParameters: TriggerUsersNoActivityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public triggerUsersNoActivity(requestParameters: TriggerUsersNoActivityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public triggerUsersNoActivity(requestParameters: TriggerUsersNoActivityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public triggerUsersNoActivity(requestParameters: TriggerUsersNoActivityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n        const companyIds = requestParameters.companyIds;\n        const userIds = requestParameters.userIds;\n        const datetime = requestParameters.datetime;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyIds !== undefined && companyIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyIds, 'companyIds');\n        }\n        if (userIds !== undefined && userIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userIds, 'userIds');\n        }\n        if (datetime !== undefined && datetime !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>datetime, 'datetime');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/triggers/mail-users-no-activity`;\n        return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Trigger the waiting moderation event\n     * This endpoint is used to trigger the waiting moderation event  In production it should be called by a cron job at the specified time It will trigger the waiting moderation event for all companies and leads concerned by the event It will send an event on the right topic the event will contains the company and lead ids and the number of comments and questions submitted\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public triggerWaitingModeration(requestParameters: TriggerWaitingModerationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public triggerWaitingModeration(requestParameters: TriggerWaitingModerationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public triggerWaitingModeration(requestParameters: TriggerWaitingModerationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public triggerWaitingModeration(requestParameters: TriggerWaitingModerationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n        const companyIds = requestParameters.companyIds;\n        const userIds = requestParameters.userIds;\n        const datetime = requestParameters.datetime;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyIds !== undefined && companyIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyIds, 'companyIds');\n        }\n        if (userIds !== undefined && userIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userIds, 'userIds');\n        }\n        if (datetime !== undefined && datetime !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>datetime, 'datetime');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/triggers/waiting-moderation`;\n        return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface UploadsControllerUploadQuestionsRequestParams {\n    file: Blob;\n    companyId2: string;\n    userId2: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n    coachId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UploadsApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n    /**\n     * @param consumes string[] mime-types\n     * @return true: consumes contains 'multipart/form-data', false: otherwise\n     */\n    private canConsumeForm(consumes: string[]): boolean {\n        const form = 'multipart/form-data';\n        for (const consume of consumes) {\n            if (form === consume) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * \n     * Import .csv file following the format below: &lt;br&gt;&lt;br&gt; Question,A,B,C,D,CorrectAnswers,CorrectAnswersInfo,Tags,Programs,KB_Link&lt;br&gt; What is the capital of France?,Paris,London,Berlin,Madrid,A,Paris is the capital of France,Geography,Capitals,https://en.wikipedia.org/wiki/Paris&lt;br&gt; What is the capital of Germany?,Paris,London,Berlin,Madrid,C,Berlin is the capital of Germany,Geography,Capitals,https://en.wikipedia.org/wiki/Berlin&lt;br&gt;&lt;br&gt; If you want to custom the number of propositions, you need to add a \\&quot;AnswersColNames\\&quot; column listing the columns names.&lt;br&gt; For example, if you want to have 3 propositions, you need to add a column \\&quot;AnswersColNames\\&quot; with the value \\&quot;A,B,C\\&quot;.&lt;br&gt; Question,A,B,C,CorrectAnswers,CorrectAnswersInfo,Tags,Programs,AnswersColNames,KB_Link&lt;br&gt; What is the capital of France?,Paris,London,Berlin,A,Paris is the capital of France,Geography,Capitals,A,B,C,https://en.wikipedia.org/wiki/Paris,&lt;br&gt;&lt;br&gt; You can also custom the propositions columns headers and add them to the \\&quot;AnswersColNames\\&quot; column.&lt;br&gt; For example, if you want to have 2 propositions with the headers \\&quot;Proposition 1\\&quot; and \\&quot;Proposition 2\\&quot;, you need to add a column \\&quot;AnswersColNames\\&quot; with the value \\&quot;Proposition 1,Proposition 2\\&quot;.&lt;br&gt; Question,Proposition 1,Proposition 2,CorrectAnswers,CorrectAnswersInfo,Tags,Programs,AnswersColNames,KB_Link&lt;br&gt; What is the capital of France?,Paris,London,A,Paris is the capital of France,Geography,Capitals,Proposition 1,Proposition 2,https://en.wikipedia.org/wiki/Paris,&lt;br&gt;&lt;br&gt;\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public uploadsControllerUploadQuestions(requestParameters: UploadsControllerUploadQuestionsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any>;\n    public uploadsControllerUploadQuestions(requestParameters: UploadsControllerUploadQuestionsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpResponse<any>>;\n    public uploadsControllerUploadQuestions(requestParameters: UploadsControllerUploadQuestionsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<HttpEvent<any>>;\n    public uploadsControllerUploadQuestions(requestParameters: UploadsControllerUploadQuestionsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext}): Observable<any> {\n        const file = requestParameters.file;\n        if (file === null || file === undefined) {\n            throw new Error('Required parameter file was null or undefined when calling uploadsControllerUploadQuestions.');\n        }\n        const companyId2 = requestParameters.companyId2;\n        if (companyId2 === null || companyId2 === undefined) {\n            throw new Error('Required parameter companyId2 was null or undefined when calling uploadsControllerUploadQuestions.');\n        }\n        const userId2 = requestParameters.userId2;\n        if (userId2 === null || userId2 === undefined) {\n            throw new Error('Required parameter userId2 was null or undefined when calling uploadsControllerUploadQuestions.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const coachId = requestParameters.coachId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'multipart/form-data'\n        ];\n\n        const canConsumeForm = this.canConsumeForm(consumes);\n\n        let localVarFormParams: { append(param: string, value: any): any; };\n        let localVarUseForm = false;\n        let localVarConvertFormParamsToString = false;\n        // use FormData to transmit files using content-type \"multipart/form-data\"\n        // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n        localVarUseForm = canConsumeForm;\n        if (localVarUseForm) {\n            localVarFormParams = new FormData();\n        } else {\n            localVarFormParams = new HttpParams({encoder: this.encoder});\n        }\n\n        if (file !== undefined) {\n            localVarFormParams = localVarFormParams.append('file', <any>file) as any || localVarFormParams;\n        }\n        if (companyId2 !== undefined) {\n            localVarFormParams = localVarFormParams.append('companyId', <any>companyId2) as any || localVarFormParams;\n        }\n        if (userId2 !== undefined) {\n            localVarFormParams = localVarFormParams.append('userId', <any>userId2) as any || localVarFormParams;\n        }\n        if (coachId !== undefined) {\n            localVarFormParams = localVarFormParams.append('coachId', <any>coachId) as any || localVarFormParams;\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/uploads/questions`;\n        return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { CreateUserDtoApi } from '../model/createUserDto';\n// @ts-ignore\nimport { DeleteResponseApi } from '../model/deleteResponse';\n// @ts-ignore\nimport { NextQuestionDtoPaginatedResponseApi } from '../model/nextQuestionDtoPaginatedResponse';\n// @ts-ignore\nimport { PatchUserDtoApi } from '../model/patchUserDto';\n// @ts-ignore\nimport { UserDtoCreatedResponseApi } from '../model/userDtoCreatedResponse';\n// @ts-ignore\nimport { UserDtoPaginatedResponseApi } from '../model/userDtoPaginatedResponse';\n// @ts-ignore\nimport { UserDtoResponseApi } from '../model/userDtoResponse';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\nexport interface CreateUserRequestParams {\n    createUserDtoApi: CreateUserDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface DeleteUserRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetNextQuestionsForUserRequestParams {\n    id: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n}\n\nexport interface GetUserByIdRequestParams {\n    id: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\nexport interface GetUsersRequestParams {\n    createdBy?: string;\n    /** The fields to sort by.  The Sort by allow to sort the results by specific properties, for example to sort the results by createdAt in scending order you can use the following syntaxt :  ?sortBy&#x3D;createdAt:asc  if you want to apply multiple sort you can do it by adding more sortBy options like this :  ?sortBy&#x3D;createdAt:asc,questionId:desc */\n    sortBy?: string;\n    /** An array of  IDs used to filter the results to only include entities with the specified IDs */\n    ids?: string;\n    /** An array of team IDs used to filter the results. If no team IDs are provided, all users will be returned.  The filter applied is an &lt;b&gt;OR&lt;/b&gt;.  &lt;b&gt;The query will return the users that have are assigned to the team.&lt;/b&gt; */\n    teamIds?: string;\n    /** Filter by email If email is provided, we only want to return users that have the provided email If email is not provided, we return all users */\n    emails?: string;\n    /** Filter by isCompanyAdmin If isCompanyAdmin is true, we only want to return users that have the company-admin role If isCompanyAdmin is false, we only want to return users that do not have the company-admin role If isCompanyAdmin is not provided, we return all users  isCompanyAdmin is computed by checking if the user has the company-admin role */\n    isCompanyAdmin?: boolean;\n    /** Filter by isActive If isActive is true, we only want to return users that are active If isActive is false, we only want to return users that are not active If isActive is not provided, we return all users  isActive is computed by checking if the user has created any guesses in the past 7 days */\n    isActive?: boolean;\n    /** Include soft deleted users If includeDeleted is true and authenticated user is company admin or alto admin, we want to return all users, including soft deleted users */\n    includeSoftDeleted?: boolean;\n    /** Search by email If search is provided, we want to return all users that match the search criteria If search is not provided, we return all users  Search is computed by checking if the user\\&#39;s email contains the search string */\n    search?: string;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    userId?: string;\n    /** The page of results to retrieve. */\n    page?: number;\n    /** The number of items per page to retrieve. */\n    itemsPerPage?: number;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created after this date. the operator used for this filter is  &gt;&#x3D; (greater than or equal to)  If the createdAfter field is provided with a date without a time, it will include resources created on the same day as the provided date, starting at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdAfter?: Date;\n    /** A date used to filter the results based on the createdAt field of the resources, only including resources created before this date. the operator used for this filter is &lt;&#x3D; (less than or equal to)  If the createdBefore field is provided with a date without a time, it will include resources created on the same day as the provided date, ending at midnight.  The format of the datetime should be ISO 8601 with timezone: YYYY-MM-DDTHH:mm:ss.sssZ.  Example: 2023-02-27T21:42:00.000Z. */\n    createdBefore?: Date;\n}\n\nexport interface PatchUserRequestParams {\n    id: string;\n    patchUserDtoApi: PatchUserDtoApi;\n    /** The ID of the company that the user sending the request is related to.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication. */\n    companyId?: string;\n    /** The ID of the user sending the request.  This field is required when using the API Key.  It will be included in the JSON Web Token (JWT) when using Auth0 authentication.  Used to set the &#x60;createdBy&#x60; property on creation of entities. */\n    userId?: string;\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UsersApiService {\n\n    protected basePath = 'http://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (Array.isArray(basePath) && basePath.length > 0) {\n                basePath = basePath[0];\n            }\n\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Create a new user\n     * This method handles POST requests to the \\&#39;/users\\&#39; route to create a new user using the data passed in the body. It will respond with the newly created user.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public createUser(requestParameters: CreateUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<UserDtoCreatedResponseApi>;\n    public createUser(requestParameters: CreateUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<UserDtoCreatedResponseApi>>;\n    public createUser(requestParameters: CreateUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<UserDtoCreatedResponseApi>>;\n    public createUser(requestParameters: CreateUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createUserDtoApi = requestParameters.createUserDtoApi;\n        if (createUserDtoApi === null || createUserDtoApi === undefined) {\n            throw new Error('Required parameter createUserDtoApi was null or undefined when calling createUser.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users`;\n        return this.httpClient.request<UserDtoCreatedResponseApi>('post', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: createUserDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Soft delete an existing user by ID\n     * This method handles DELETE requests to the \\&#39;/users/{id}\\&#39; route with &#x60;{id}&#x60; the id of the user we want to delete. Access will be removed from the concerned user.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteUser(requestParameters: DeleteUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<DeleteResponseApi>;\n    public deleteUser(requestParameters: DeleteUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<DeleteResponseApi>>;\n    public deleteUser(requestParameters: DeleteUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<DeleteResponseApi>>;\n    public deleteUser(requestParameters: DeleteUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling deleteUser.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<DeleteResponseApi>('delete', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single user by ID\n     * This method handles GET requests to the \\&#39;/users/me\\&#39; route to get the current user. It will respond with the current user.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getMe(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<UserDtoResponseApi>;\n    public getMe(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<UserDtoResponseApi>>;\n    public getMe(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<UserDtoResponseApi>>;\n    public getMe(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users/me`;\n        return this.httpClient.request<UserDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get next questions for a user\n     * This method handles GET requests to the \\&#39;/users/{id}/next-questions\\&#39; route with &#x60;{id}&#x60; the id of the concerned user.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getNextQuestionsForUser(requestParameters: GetNextQuestionsForUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<NextQuestionDtoPaginatedResponseApi>;\n    public getNextQuestionsForUser(requestParameters: GetNextQuestionsForUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<NextQuestionDtoPaginatedResponseApi>>;\n    public getNextQuestionsForUser(requestParameters: GetNextQuestionsForUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<NextQuestionDtoPaginatedResponseApi>>;\n    public getNextQuestionsForUser(requestParameters: GetNextQuestionsForUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getNextQuestionsForUser.');\n        }\n        const ids = requestParameters.ids;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const companyId = requestParameters.companyId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}/next-questions`;\n        return this.httpClient.request<NextQuestionDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a single user by ID\n     * This method handles GET requests to the \\&#39;/users/{id}\\&#39; route with &#x60;{id}&#x60; the id of the user we want to find. If the user exists it will return it, otherwise it will respond with an error.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getUserById(requestParameters: GetUserByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<UserDtoResponseApi>;\n    public getUserById(requestParameters: GetUserByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<UserDtoResponseApi>>;\n    public getUserById(requestParameters: GetUserByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<UserDtoResponseApi>>;\n    public getUserById(requestParameters: GetUserByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling getUserById.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<UserDtoResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get Users with filter, sort and pagination options\n     * This method handles GET requests to the \\&#39;/users\\&#39; route with the filter, sort and pagination options passed in the query parameters. It will respond with the paginated users along with the current state of pagination.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getUsers(requestParameters: GetUsersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<UserDtoPaginatedResponseApi>;\n    public getUsers(requestParameters: GetUsersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<UserDtoPaginatedResponseApi>>;\n    public getUsers(requestParameters: GetUsersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<UserDtoPaginatedResponseApi>>;\n    public getUsers(requestParameters: GetUsersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const createdBy = requestParameters.createdBy;\n        const sortBy = requestParameters.sortBy;\n        const ids = requestParameters.ids;\n        const teamIds = requestParameters.teamIds;\n        const emails = requestParameters.emails;\n        const isCompanyAdmin = requestParameters.isCompanyAdmin;\n        const isActive = requestParameters.isActive;\n        const includeSoftDeleted = requestParameters.includeSoftDeleted;\n        const search = requestParameters.search;\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n        const page = requestParameters.page;\n        const itemsPerPage = requestParameters.itemsPerPage;\n        const createdAfter = requestParameters.createdAfter;\n        const createdBefore = requestParameters.createdBefore;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (createdBy !== undefined && createdBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBy, 'createdBy');\n        }\n        if (sortBy !== undefined && sortBy !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>sortBy, 'sortBy');\n        }\n        if (ids !== undefined && ids !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ids, 'ids');\n        }\n        if (teamIds !== undefined && teamIds !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>teamIds, 'teamIds');\n        }\n        if (emails !== undefined && emails !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>emails, 'emails');\n        }\n        if (isCompanyAdmin !== undefined && isCompanyAdmin !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isCompanyAdmin, 'isCompanyAdmin');\n        }\n        if (isActive !== undefined && isActive !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>isActive, 'isActive');\n        }\n        if (includeSoftDeleted !== undefined && includeSoftDeleted !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>includeSoftDeleted, 'includeSoftDeleted');\n        }\n        if (search !== undefined && search !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>search, 'search');\n        }\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n        if (itemsPerPage !== undefined && itemsPerPage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsPerPage, 'itemsPerPage');\n        }\n        if (createdAfter !== undefined && createdAfter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdAfter, 'createdAfter');\n        }\n        if (createdBefore !== undefined && createdBefore !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>createdBefore, 'createdBefore');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users`;\n        return this.httpClient.request<UserDtoPaginatedResponseApi>('get', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Patch an existing user by ID\n     * This method handles PATCH requests to the \\&#39;/users/{id}\\&#39; route with &#x60;{id}&#x60; the id of the user we want to update.\n     * @param requestParameters\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public patchUser(requestParameters: PatchUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<UserDtoResponseApi>;\n    public patchUser(requestParameters: PatchUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<UserDtoResponseApi>>;\n    public patchUser(requestParameters: PatchUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<UserDtoResponseApi>>;\n    public patchUser(requestParameters: PatchUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {\n        const id = requestParameters.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling patchUser.');\n        }\n        const patchUserDtoApi = requestParameters.patchUserDtoApi;\n        if (patchUserDtoApi === null || patchUserDtoApi === undefined) {\n            throw new Error('Required parameter patchUserDtoApi was null or undefined when calling patchUser.');\n        }\n        const companyId = requestParameters.companyId;\n        const userId = requestParameters.userId;\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (companyId !== undefined && companyId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>companyId, 'companyId');\n        }\n        if (userId !== undefined && userId !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>userId, 'userId');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (x-api-key) required\n        localVarCredential = this.configuration.lookupCredential('x-api-key');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('x-api-key', localVarCredential);\n        }\n\n        // authentication (bearer) required\n        localVarCredential = this.configuration.lookupCredential('bearer');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                'application/json'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n            'application/json'\n        ];\n        const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n        if (httpContentTypeSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n        }\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'blob';\n            }\n        }\n\n        let localVarPath = `/v1/users/${this.configuration.encodeParam({name: \"id\", value: id, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n        return this.httpClient.request<UserDtoResponseApi>('patch', `${this.configuration.basePath}${localVarPath}`,\n            {\n                context: localVarHttpContext,\n                body: patchUserDtoApi,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","export * from './admin.service';\nimport { AdminApiService } from './admin.service';\nexport * from './coachs.service';\nimport { CoachsApiService } from './coachs.service';\nexport * from './comments.service';\nimport { CommentsApiService } from './comments.service';\nexport * from './companies.service';\nimport { CompaniesApiService } from './companies.service';\nexport * from './exports.service';\nimport { ExportsApiService } from './exports.service';\nexport * from './guesses.service';\nimport { GuessesApiService } from './guesses.service';\nexport * from './programRuns.service';\nimport { ProgramRunsApiService } from './programRuns.service';\nexport * from './programs.service';\nimport { ProgramsApiService } from './programs.service';\nexport * from './questions.service';\nimport { QuestionsApiService } from './questions.service';\nexport * from './questionsSubmitted.service';\nimport { QuestionsSubmittedApiService } from './questionsSubmitted.service';\nexport * from './scores.service';\nimport { ScoresApiService } from './scores.service';\nexport * from './stats.service';\nimport { StatsApiService } from './stats.service';\nexport * from './tags.service';\nimport { TagsApiService } from './tags.service';\nexport * from './teams.service';\nimport { TeamsApiService } from './teams.service';\nexport * from './theOffice.service';\nimport { TheOfficeApiService } from './theOffice.service';\nexport * from './triggers.service';\nimport { TriggersApiService } from './triggers.service';\nexport * from './uploads.service';\nimport { UploadsApiService } from './uploads.service';\nexport * from './users.service';\nimport { UsersApiService } from './users.service';\nexport const APIS = [AdminApiService, CoachsApiService, CommentsApiService, CompaniesApiService, ExportsApiService, GuessesApiService, ProgramRunsApiService, ProgramsApiService, QuestionsApiService, QuestionsSubmittedApiService, ScoresApiService, StatsApiService, TagsApiService, TeamsApiService, TheOfficeApiService, TriggersApiService, UploadsApiService, UsersApiService];\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum AltoConnectorEnumApi {\n    Web = 'web',\n    Slack = 'slack',\n    Teams = 'teams',\n    GoogleChat = 'google-chat',\n    Unknown = 'unknown'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum AnswerFormatTypeEnumApi {\n    Text = 'text',\n    Number = 'number',\n    Date = 'date'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { UserLightDtoApi } from './userLightDto';\n\n\nexport interface CompanyDtoApi { \n    domain?: string;\n    name: string;\n    connector?: CompanyDtoApiConnectorEnumApi;\n    isConnectorActive?: boolean;\n    isIntegrationEnabled?: boolean;\n    connectorDays?: Array<CompanyDtoApiConnectorDaysEnumApi>;\n    connectorQuestionsPerQuiz?: number;\n    connectorTimes?: Array<CompanyDtoApiConnectorTimesEnumApi>;\n    admins?: Array<UserLightDtoApi>;\n    usersHaveWebAccess: boolean;\n    theOfficeId: string;\n    licenseCount: number;\n    id: string;\n    createdAt: Date;\n    createdBy?: string;\n    createdByUser?: UserLightDtoApi;\n    updatedAt: Date;\n    deletedAt?: Date;\n}\nexport enum CompanyDtoApiConnectorEnumApi {\n    Web = 'web',\n    Slack = 'slack',\n    Teams = 'teams',\n    GoogleChat = 'google-chat',\n    Unknown = 'unknown'\n};\nexport enum CompanyDtoApiConnectorDaysEnumApi {\n    Monday = 'Monday',\n    Tuesday = 'Tuesday',\n    Wednesday = 'Wednesday',\n    Thursday = 'Thursday',\n    Friday = 'Friday'\n};\nexport enum CompanyDtoApiConnectorTimesEnumApi {\n    _10h = '10h',\n    _13h30 = '13h30',\n    _17h = '17h'\n};\n\n\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum ConnectorTimeEnumApi {\n    _10h = '10h',\n    _13h30 = '13h30',\n    _17h = '17h'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CreateQuestionSubmittedDtoApi { \n    companyId?: string;\n    /**\n     * The title of the question-submitted. It\\'s the actual question written by the user.\n     */\n    title: string;\n    /**\n     * The status of the question-submitted.\n     */\n    status: CreateQuestionSubmittedDtoApiStatusEnumApi;\n}\nexport enum CreateQuestionSubmittedDtoApiStatusEnumApi {\n    Submitted = 'submitted',\n    Accepted = 'accepted',\n    Declined = 'declined'\n};\n\n\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CompanyLightDtoApi } from './companyLightDto';\nimport { UserLightDtoApi } from './userLightDto';\nimport { TeamLightDtoApi } from './teamLightDto';\nimport { ProgramRunLightDtoApi } from './programRunLightDto';\nimport { QuestionLightDtoApi } from './questionLightDto';\n\n\nexport interface GuessDtoApi { \n    questionId?: string;\n    question?: QuestionLightDtoApi;\n    programRuns?: Array<ProgramRunLightDtoApi>;\n    programRunIds?: Array<string>;\n    answers?: Array<string>;\n    isValid: boolean;\n    isTimedOut: boolean;\n    team?: TeamLightDtoApi;\n    teamId?: string;\n    source: GuessDtoApiSourceEnumApi;\n    author?: UserLightDtoApi;\n    company: CompanyLightDtoApi;\n    companyId: string;\n    id: string;\n    createdAt: Date;\n    createdBy?: string;\n    createdByUser?: UserLightDtoApi;\n    updatedAt: Date;\n    deletedAt?: Date;\n}\nexport enum GuessDtoApiSourceEnumApi {\n    Web = 'web',\n    Slack = 'slack',\n    GoogleChat = 'google-chat',\n    Teams = 'teams',\n    Unknown = 'unknown'\n};\n\n\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum GuessSourceEnumApi {\n    Web = 'web',\n    Slack = 'slack',\n    GoogleChat = 'google-chat',\n    Teams = 'teams',\n    Unknown = 'unknown'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CommentLightDtoApi } from './commentLightDto';\nimport { CompanyLightDtoApi } from './companyLightDto';\nimport { UserLightDtoApi } from './userLightDto';\nimport { ProgramLightDtoApi } from './programLightDto';\nimport { TagLightDtoApi } from './tagLightDto';\n\n\nexport interface NextQuestionDtoApi { \n    pushAndNoGuess: boolean;\n    title: string;\n    type: NextQuestionDtoApiTypeEnumApi;\n    tags?: Array<TagLightDtoApi>;\n    programs?: Array<ProgramLightDtoApi>;\n    answerType: NextQuestionDtoApiAnswerTypeEnumApi;\n    answersAccepted: Array<string>;\n    answersWrong: Array<string>;\n    explanation?: string;\n    link?: string;\n    comments?: Array<CommentLightDtoApi>;\n    coachId?: string;\n    company: CompanyLightDtoApi;\n    companyId: string;\n    id: string;\n    createdAt: Date;\n    createdBy?: string;\n    createdByUser?: UserLightDtoApi;\n    updatedAt: Date;\n    deletedAt?: Date;\n}\nexport enum NextQuestionDtoApiTypeEnumApi {\n    MultipleChoice = 'multiple_choice',\n    FreeText = 'free_text',\n    NumberRange = 'number_range'\n};\nexport enum NextQuestionDtoApiAnswerTypeEnumApi {\n    Text = 'text',\n    Number = 'number',\n    Date = 'date'\n};\n\n\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PatchQuestionSubmittedDtoApi { \n    /**\n     * Optional string that represents the response to the submitted question.\n     */\n    response?: string;\n    /**\n     * Optional string that represents the uuid of the user that responded to the submitted question.\n     */\n    updatedBy?: string;\n    /**\n     * Optional string that represents the uuid of the question created from this submitted question.\n     */\n    questionId?: string;\n    /**\n     * The title of the question-submitted. It\\'s the actual question written by the user.\n     */\n    title?: string;\n    /**\n     * The status of the question-submitted.\n     */\n    status?: PatchQuestionSubmittedDtoApiStatusEnumApi;\n}\nexport enum PatchQuestionSubmittedDtoApiStatusEnumApi {\n    Submitted = 'submitted',\n    Accepted = 'accepted',\n    Declined = 'declined'\n};\n\n\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum PriorityEnumApi {\n    High = 'High',\n    Low = 'Low',\n    Medium = 'Medium'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CompanyLightDtoApi } from './companyLightDto';\nimport { UserLightDtoApi } from './userLightDto';\nimport { TeamLightDtoApi } from './teamLightDto';\n\n\nexport interface ProgramDtoApi { \n    isAccelerated: boolean;\n    startDate?: Date;\n    isActive: boolean;\n    name: string;\n    description?: string;\n    expectation: number;\n    priority: ProgramDtoApiPriorityEnumApi;\n    showTimer: boolean;\n    teams: Array<TeamLightDtoApi>;\n    questionsCount: number;\n    owner?: UserLightDtoApi;\n    coachId?: string;\n    company: CompanyLightDtoApi;\n    companyId: string;\n    id: string;\n    createdAt: Date;\n    createdBy?: string;\n    createdByUser?: UserLightDtoApi;\n    updatedAt: Date;\n    deletedAt?: Date;\n}\nexport enum ProgramDtoApiPriorityEnumApi {\n    High = 'High',\n    Low = 'Low',\n    Medium = 'Medium'\n};\n\n\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CommentLightDtoApi } from './commentLightDto';\nimport { CompanyLightDtoApi } from './companyLightDto';\nimport { UserLightDtoApi } from './userLightDto';\nimport { ProgramLightDtoApi } from './programLightDto';\nimport { TagLightDtoApi } from './tagLightDto';\n\n\nexport interface QuestionDtoApi { \n    title: string;\n    type: QuestionDtoApiTypeEnumApi;\n    tags?: Array<TagLightDtoApi>;\n    programs?: Array<ProgramLightDtoApi>;\n    answerType: QuestionDtoApiAnswerTypeEnumApi;\n    answersAccepted: Array<string>;\n    answersWrong: Array<string>;\n    explanation?: string;\n    link?: string;\n    comments?: Array<CommentLightDtoApi>;\n    coachId?: string;\n    company: CompanyLightDtoApi;\n    companyId: string;\n    id: string;\n    createdAt: Date;\n    createdBy?: string;\n    createdByUser?: UserLightDtoApi;\n    updatedAt: Date;\n    deletedAt?: Date;\n}\nexport enum QuestionDtoApiTypeEnumApi {\n    MultipleChoice = 'multiple_choice',\n    FreeText = 'free_text',\n    NumberRange = 'number_range'\n};\nexport enum QuestionDtoApiAnswerTypeEnumApi {\n    Text = 'text',\n    Number = 'number',\n    Date = 'date'\n};\n\n\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CompanyLightDtoApi } from './companyLightDto';\nimport { UserLightDtoApi } from './userLightDto';\nimport { QuestionLightDtoApi } from './questionLightDto';\n\n\nexport interface QuestionSubmittedDtoApi { \n    title: string;\n    status: QuestionSubmittedDtoApiStatusEnumApi;\n    response?: string;\n    updatedBy?: string;\n    updatedByUser?: UserLightDtoApi;\n    questionId?: string;\n    question?: QuestionLightDtoApi;\n    author?: UserLightDtoApi;\n    company: CompanyLightDtoApi;\n    companyId: string;\n    id: string;\n    createdAt: Date;\n    createdBy?: string;\n    createdByUser?: UserLightDtoApi;\n    updatedAt: Date;\n    deletedAt?: Date;\n}\nexport enum QuestionSubmittedDtoApiStatusEnumApi {\n    Submitted = 'submitted',\n    Accepted = 'accepted',\n    Declined = 'declined'\n};\n\n\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum QuestionSubmittedStatusEnumApi {\n    Submitted = 'submitted',\n    Accepted = 'accepted',\n    Declined = 'declined'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum QuestionTypeEnumApi {\n    MultipleChoice = 'multiple_choice',\n    FreeText = 'free_text',\n    NumberRange = 'number_range'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum RoleEnumApi {\n    AltoAdmin = 'alto-admin',\n    CompanyAdmin = 'company-admin',\n    CompanyUser = 'company-user'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum ScoreByTypeEnumApi {\n    Tag = 'tag',\n    Program = 'program',\n    Team = 'team',\n    Question = 'question',\n    User = 'user'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum ScoreFillValuesEnumApi {\n    _0 = '0',\n    Null = 'null',\n    False = 'false'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum ScoreTimeframeEnumApi {\n    Day = 'day',\n    Week = 'week',\n    Month = 'month',\n    Year = 'year'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum ScoreTypeEnumApi {\n    Tag = 'tag',\n    User = 'user',\n    Program = 'program',\n    Team = 'team',\n    Question = 'question',\n    QuestionSubmitted = 'questionSubmitted',\n    Comment = 'comment',\n    Guess = 'guess'\n}\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CompanyLightDtoApi } from './companyLightDto';\nimport { StreakDtoApi } from './streakDto';\nimport { UserLightDtoApi } from './userLightDto';\nimport { TeamLightDtoApi } from './teamLightDto';\n\n\nexport interface UserDtoApi { \n    email: string;\n    team?: TeamLightDtoApi;\n    teamId?: string;\n    roles: Array<UserDtoApiRolesEnumApi>;\n    pref?: object;\n    pictureUrl?: string;\n    firstname: string;\n    lastname: string;\n    timezone?: string;\n    country?: string;\n    isConnectorActive?: boolean;\n    longestStreak: StreakDtoApi;\n    currentStreak: StreakDtoApi;\n    hasLicense: boolean;\n    company: CompanyLightDtoApi;\n    companyId: string;\n    id: string;\n    createdAt: Date;\n    createdBy?: string;\n    createdByUser?: UserLightDtoApi;\n    updatedAt: Date;\n    deletedAt?: Date;\n}\nexport enum UserDtoApiRolesEnumApi {\n    AltoAdmin = 'alto-admin',\n    CompanyAdmin = 'company-admin',\n    CompanyUser = 'company-user'\n};\n\n\n\n","/**\n * TrainX API\n *  ### The TrainX API documentation   In order to use the Swagger, please retrieve your JWT at the following link:  [https://trainx.getcockpit.io/jwt](https://trainx.getcockpit.io/jwt)  and add it to the bearer field in the authorization section. \n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport enum WeekDayEnumApi {\n    Monday = 'Monday',\n    Tuesday = 'Tuesday',\n    Wednesday = 'Wednesday',\n    Thursday = 'Thursday',\n    Friday = 'Friday'\n}\n\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\n@NgModule({\n  imports:      [],\n  declarations: [],\n  exports:      [],\n  providers: []\n})\nexport class ApiModule {\n    public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<ApiModule> {\n        return {\n            ngModule: ApiModule,\n            providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n        };\n    }\n\n    constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n                 @Optional() http: HttpClient) {\n        if (parentModule) {\n            throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n        }\n        if (!http) {\n            throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n            'See also https://github.com/angular/angular/issues/20575');\n        }\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.Configuration"],"mappings":"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"}