{"version":3,"file":"apaleo-angular-api-proxy-rateplan.mjs","sources":["../../encoder.ts","../../variables.ts","../../configuration.ts","../../api/ageCategory.service.ts","../../api/cancellationPolicy.service.ts","../../api/company.service.ts","../../api/corporateCodes.service.ts","../../api/noShowPolicy.service.ts","../../api/promoCodes.service.ts","../../api/rate.service.ts","../../api/ratePlan.service.ts","../../api/ratePlanActions.service.ts","../../api/service.service.ts","../../api/api.ts","../../model/accountingConfigModel.ts","../../model/addressModel.ts","../../model/ageCategoryCreatedModel.ts","../../model/ageCategoryItemModel.ts","../../model/ageCategoryListModel.ts","../../model/ageCategoryModel.ts","../../model/ageCategorySurchargeModel.ts","../../model/availabilityModel.ts","../../model/monetaryValueModel.ts","../../model/rateRestrictionsModel.ts","../../model/batchRateItemModel.ts","../../model/batchRateListModel.ts","../../model/bookingPeriodModel.ts","../../model/periodModel.ts","../../model/bookingRestrictionsModel.ts","../../model/calculatedRateModel.ts","../../model/cancellationPolicyCreatedModel.ts","../../model/percentValueModel.ts","../../model/feeDetailsModel.ts","../../model/cancellationPolicyItemModel.ts","../../model/cancellationPolicyListModel.ts","../../model/cancellationPolicyModel.ts","../../model/companyAddressModel.ts","../../model/companyCreatedModel.ts","../../model/companyListModel.ts","../../model/companyModel.ts","../../model/companyRatePlanModel.ts","../../model/corporateCodeListModel.ts","../../model/corporateCodeModel.ts","../../model/countModel.ts","../../model/createAgeCategoryModel.ts","../../model/createCancellationPolicyModel.ts","../../model/createCompanyModel.ts","../../model/createCompanyRatePlanModel.ts","../../model/createNoShowPolicyModel.ts","../../model/createPricingRuleModel.ts","../../model/createRatePlanCompanyModel.ts","../../model/createRatePlanModel.ts","../../model/createServiceModel.ts","../../model/embeddedCancellationPolicyModel.ts","../../model/embeddedMarketSegmentModel.ts","../../model/embeddedNoShowPolicyModel.ts","../../model/embeddedPropertyModel.ts","../../model/embeddedRatePlanModel.ts","../../model/embeddedServiceModel.ts","../../model/embeddedTimeSliceDefinitionModel.ts","../../model/embeddedUnitGroupModel.ts","../../model/messageItemCollection.ts","../../model/noShowPolicyCreatedModel.ts","../../model/noShowPolicyItemModel.ts","../../model/noShowPolicyListModel.ts","../../model/noShowPolicyModel.ts","../../model/operation.ts","../../model/pricingRuleModel.ts","../../model/promoCodeListModel.ts","../../model/promoCodeModel.ts","../../model/rateItemModel.ts","../../model/rateListModel.ts","../../model/ratePatchModel.ts","../../model/ratePlanAgeCategoryModel.ts","../../model/ratePlanCompanyModel.ts","../../model/ratePlanCreatedModel.ts","../../model/ratesRangeModel.ts","../../model/ratePlanItemModel.ts","../../model/ratePlanListModel.ts","../../model/ratePlanModel.ts","../../model/ratePlanServiceItemModel.ts","../../model/ratePlanServiceModel.ts","../../model/ratesPatchRequestModel.ts","../../model/replaceCompanyRatePlanModel.ts","../../model/replaceRateListModel.ts","../../model/replaceRateModel.ts","../../model/replaceRatePlanModel.ts","../../model/revenueAllocationModel.ts","../../model/serviceAccountingConfigModel.ts","../../model/serviceCreatedModel.ts","../../model/serviceItemAccountingConfigModel.ts","../../model/serviceItemModel.ts","../../model/serviceListModel.ts","../../model/serviceModel.ts","../../model/surchargeModel.ts","../../api.module.ts","../../apaleo-angular-api-proxy-rateplan.ts"],"sourcesContent":["import { HttpUrlEncodingCodec } from '@angular/common/http';\n\n/**\n* CustomHttpUrlEncodingCodec\n* Fix plus sign (+) not encoding, so sent as blank space\n* See: https://github.com/angular/angular/issues/11058#issuecomment-247367318\n*/\nexport class CustomHttpUrlEncodingCodec extends HttpUrlEncodingCodec {\n    encodeKey(k: string): string {\n        k = super.encodeKey(k);\n        return k.replace(/\\+/gi, '%2B');\n    }\n    encodeValue(v: string): string {\n        v = super.encodeValue(v);\n        return v.replace(/\\+/gi, '%2B');\n    }\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","export interface ConfigurationParameters {\n    apiKeys?: {[ key: string ]: string};\n    username?: string;\n    password?: string;\n    accessToken?: string | (() => string);\n    basePath?: string;\n    withCredentials?: boolean;\n}\n\nexport class Configuration {\n    apiKeys?: {[ key: string ]: string};\n    username?: string;\n    password?: string;\n    accessToken?: string | (() => string);\n    basePath?: string;\n    withCredentials?: boolean;\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    }\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        let type = contentTypes.find(x => 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        let type = accepts.find(x => 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","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\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, HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { dateToApaleoIso } from '@apaleo/angular-api-proxy-common';\n\nimport { AgeCategoryCreatedModel } from '../model/ageCategoryCreatedModel';\nimport { AgeCategoryListModel } from '../model/ageCategoryListModel';\nimport { AgeCategoryModel } from '../model/ageCategoryModel';\nimport { CreateAgeCategoryModel } from '../model/createAgeCategoryModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { Operation } from '../model/operation';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\ntype FormParams = URLSearchParams | FormData | HttpParams;\n\nfunction append(formParams: FormParams, param: string, value: any) {\n    if (formParams instanceof FormData)\n    {\n        formParams.append(param, value);\n        return formParams;\n    }\n    else if (formParams instanceof HttpParams)\n    {\n        return formParams.append(param, value);        \n    }\n    formParams.append(param, value);\n    return formParams;    \n};\n\n\nexport namespace settingsAgeCategoriesByIdDelete {\n    export interface Params {\n    \n        /**\n        * The id of the age category.\n        */\n        id: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace settingsAgeCategoriesByIdGet {\n    export interface Params {\n    \n        /**\n        * The id of the age category.\n        */\n        id: string;\n    \n        /**\n        * 'all' or comma separated list of two-letter language codes (ISO Alpha-2)\n        */\n        languages?: Array<string>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace settingsAgeCategoriesByIdPatch {\n    export interface Params {\n    \n        /**\n        * The id of the age category to be modified.\n        */\n        id: string;\n    \n        /**\n        * Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n        */\n        body: Array<Operation>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace settingsAgeCategoriesGet {\n    export interface Params {\n    \n        /**\n        * Return age categories for the specific property\n        */\n        propertyId: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace settingsAgeCategoriesPost {\n    export interface Params {\n    \n        /**\n        * The definition of the age category.\n        */\n        body: CreateAgeCategoryModel;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Unique key for safely retrying requests without accidentally performing the same operation twice.  We'll always send back the same response for requests made with the same key,  and keys can't be reused with different request parameters. Keys expire after 24 hours.\n        */\n        idempotencyKey?: string;\n    \n    }\n    \n}\n\n@Injectable()\nexport class AgeCategoryService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(\n        protected httpClient: HttpClient, \n        @Optional() @Inject(BASE_PATH) basePath: string, \n        @Optional() configuration: Configuration\n    ) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n            this.basePath = basePath || configuration.basePath || this.basePath;\n        }\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    /**\n     * Delete an age category\n     * Use this call to delete an age category. You can only delete an age category if it is not already used in a rate  plan to define age specific prices. &lt;br&gt;You must have at least one of these scopes: &#39;settings.manage, setup.manage&#39;.\n     * @param $params.id The id of the age category.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 settingsAgeCategoriesByIdDelete($params: settingsAgeCategoriesByIdDelete.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public settingsAgeCategoriesByIdDelete($params: settingsAgeCategoriesByIdDelete.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public settingsAgeCategoriesByIdDelete($params: settingsAgeCategoriesByIdDelete.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public settingsAgeCategoriesByIdDelete($params: settingsAgeCategoriesByIdDelete.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling settingsAgeCategoriesByIdDelete.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.delete<any>(`${this.basePath}/settings/v0-nsfw/age-categories/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get an age category\n     * Get an age category by id.&lt;br&gt;You must have at least one of these scopes: &#39;settings.read, setup.read, setup.manage&#39;.\n     * @param $params.id The id of the age category.\n     * @param $params.languages &#39;all&#39; or comma separated list of two-letter language codes (ISO Alpha-2)\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 settingsAgeCategoriesByIdGet($params: settingsAgeCategoriesByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<AgeCategoryModel>;\n    public settingsAgeCategoriesByIdGet($params: settingsAgeCategoriesByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AgeCategoryModel>>;\n    public settingsAgeCategoriesByIdGet($params: settingsAgeCategoriesByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AgeCategoryModel>>;\n    public settingsAgeCategoriesByIdGet($params: settingsAgeCategoriesByIdGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling settingsAgeCategoriesByIdGet.');\n        }\n        const languages = $params.languages;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (languages) {\n            queryParameters = queryParameters.set('languages', languages.join(COLLECTION_FORMATS['csv']));\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<AgeCategoryModel>(`${this.basePath}/settings/v0-nsfw/age-categories/${encodeURIComponent(String(id))}`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Allows to modify properties of an age category\n     * Here is the list of operations that are currently allowed:  - Replace name, minimum age and maximum age  &lt;br&gt;You must have at least one of these scopes: &#39;settings.manage, setup.manage&#39;.\n     * @param $params.id The id of the age category to be modified.\n     * @param $params.body Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 settingsAgeCategoriesByIdPatch($params: settingsAgeCategoriesByIdPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public settingsAgeCategoriesByIdPatch($params: settingsAgeCategoriesByIdPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public settingsAgeCategoriesByIdPatch($params: settingsAgeCategoriesByIdPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public settingsAgeCategoriesByIdPatch($params: settingsAgeCategoriesByIdPatch.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling settingsAgeCategoriesByIdPatch.');\n        }\n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling settingsAgeCategoriesByIdPatch.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.patch<any>(`${this.basePath}/settings/v0-nsfw/age-categories/${encodeURIComponent(String(id))}`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get an age category list\n     * Get the list of age categories. &lt;br&gt;You must have at least one of these scopes: &#39;settings.read, setup.read, setup.manage&#39;.\n     * @param $params.propertyId Return age categories for the specific property\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 settingsAgeCategoriesGet($params: settingsAgeCategoriesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<AgeCategoryListModel|null>;\n    public settingsAgeCategoriesGet($params: settingsAgeCategoriesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AgeCategoryListModel|null>>;\n    public settingsAgeCategoriesGet($params: settingsAgeCategoriesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AgeCategoryListModel|null>>;\n    public settingsAgeCategoriesGet($params: settingsAgeCategoriesGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyId = $params.propertyId;\n        if (propertyId === null || propertyId === undefined) {\n            throw new Error('Required parameter propertyId was null or undefined when calling settingsAgeCategoriesGet.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyId !== undefined && propertyId !== null) {\n            queryParameters = queryParameters.set('propertyId', <any>propertyId);\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<AgeCategoryListModel|null>(`${this.basePath}/settings/v0-nsfw/age-categories`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Create an age category\n     * Use this call to create a new age category. The age ranges for categories must not overlap each other and the  allowed values span from 0 to 17. &lt;br&gt;You must have at least one of these scopes: &#39;settings.manage, setup.manage&#39;.\n     * @param $params.body The definition of the age category.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.idempotencyKey Unique key for safely retrying requests without accidentally performing the same operation twice.  We&#39;ll always send back the same response for requests made with the same key,  and keys can&#39;t be reused with different request parameters. Keys expire after 24 hours.\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 settingsAgeCategoriesPost($params: settingsAgeCategoriesPost.Params, observe?: 'body', reportProgress?: boolean): Observable<AgeCategoryCreatedModel>;\n    public settingsAgeCategoriesPost($params: settingsAgeCategoriesPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AgeCategoryCreatedModel>>;\n    public settingsAgeCategoriesPost($params: settingsAgeCategoriesPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AgeCategoryCreatedModel>>;\n    public settingsAgeCategoriesPost($params: settingsAgeCategoriesPost.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling settingsAgeCategoriesPost.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const idempotencyKey = $params.idempotencyKey;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n        if (idempotencyKey !== undefined && idempotencyKey !== null) {\n            headers = headers.set('Idempotency-Key', String(idempotencyKey));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.post<AgeCategoryCreatedModel>(`${this.basePath}/settings/v0-nsfw/age-categories`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\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, HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { dateToApaleoIso } from '@apaleo/angular-api-proxy-common';\n\nimport { CancellationPolicyCreatedModel } from '../model/cancellationPolicyCreatedModel';\nimport { CancellationPolicyListModel } from '../model/cancellationPolicyListModel';\nimport { CancellationPolicyModel } from '../model/cancellationPolicyModel';\nimport { CreateCancellationPolicyModel } from '../model/createCancellationPolicyModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { Operation } from '../model/operation';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\ntype FormParams = URLSearchParams | FormData | HttpParams;\n\nfunction append(formParams: FormParams, param: string, value: any) {\n    if (formParams instanceof FormData)\n    {\n        formParams.append(param, value);\n        return formParams;\n    }\n    else if (formParams instanceof HttpParams)\n    {\n        return formParams.append(param, value);        \n    }\n    formParams.append(param, value);\n    return formParams;    \n};\n\n\nexport namespace rateplanCancellationPoliciesByIdDelete {\n    export interface Params {\n    \n        /**\n        * The id of the cancellation policy.\n        */\n        id: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanCancellationPoliciesByIdGet {\n    export interface Params {\n    \n        /**\n        * The id of the cancellation policy.\n        */\n        id: string;\n    \n        /**\n        * 'all' or comma separated list of two-letter language codes (ISO Alpha-2)\n        */\n        languages?: Array<string>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanCancellationPoliciesByIdPatch {\n    export interface Params {\n    \n        /**\n        * The id of the cancellation policy to be modified.\n        */\n        id: string;\n    \n        /**\n        * Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n        */\n        body: Array<Operation>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanCancellationPoliciesGet {\n    export interface Params {\n    \n        /**\n        * Filter cancellation policies by the specified property\n        */\n        propertyId?: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n        */\n        pageNumber?: number;\n    \n        /**\n        * Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\n        */\n        pageSize?: number;\n    \n    }\n    \n}\nexport namespace rateplanCancellationPoliciesPost {\n    export interface Params {\n    \n        /**\n        * The definition of the cancellation policy.\n        */\n        body: CreateCancellationPolicyModel;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Unique key for safely retrying requests without accidentally performing the same operation twice.  We'll always send back the same response for requests made with the same key,  and keys can't be reused with different request parameters. Keys expire after 24 hours.\n        */\n        idempotencyKey?: string;\n    \n    }\n    \n}\n\n@Injectable()\nexport class CancellationPolicyService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(\n        protected httpClient: HttpClient, \n        @Optional() @Inject(BASE_PATH) basePath: string, \n        @Optional() configuration: Configuration\n    ) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n            this.basePath = basePath || configuration.basePath || this.basePath;\n        }\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    /**\n     * Delete a cancellation policy\n     * Use this call to delete a cancellation policy.&lt;br&gt;You must have this scope: &#39;setup.manage&#39;.\n     * @param $params.id The id of the cancellation policy.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanCancellationPoliciesByIdDelete($params: rateplanCancellationPoliciesByIdDelete.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanCancellationPoliciesByIdDelete($params: rateplanCancellationPoliciesByIdDelete.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanCancellationPoliciesByIdDelete($params: rateplanCancellationPoliciesByIdDelete.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanCancellationPoliciesByIdDelete($params: rateplanCancellationPoliciesByIdDelete.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanCancellationPoliciesByIdDelete.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.delete<any>(`${this.basePath}/rateplan/v0-nsfw/cancellation-policies/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a specific cancellation policy.\n     * Get a specific cancellation policy.&lt;br&gt;You must have at least one of these scopes: &#39;settings.read, setup.read, setup.manage&#39;.\n     * @param $params.id The id of the cancellation policy.\n     * @param $params.languages &#39;all&#39; or comma separated list of two-letter language codes (ISO Alpha-2)\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanCancellationPoliciesByIdGet($params: rateplanCancellationPoliciesByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<CancellationPolicyModel>;\n    public rateplanCancellationPoliciesByIdGet($params: rateplanCancellationPoliciesByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CancellationPolicyModel>>;\n    public rateplanCancellationPoliciesByIdGet($params: rateplanCancellationPoliciesByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CancellationPolicyModel>>;\n    public rateplanCancellationPoliciesByIdGet($params: rateplanCancellationPoliciesByIdGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanCancellationPoliciesByIdGet.');\n        }\n        const languages = $params.languages;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (languages) {\n            queryParameters = queryParameters.set('languages', languages.join(COLLECTION_FORMATS['csv']));\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<CancellationPolicyModel>(`${this.basePath}/rateplan/v0-nsfw/cancellation-policies/${encodeURIComponent(String(id))}`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Allows to modify properties of a cancellation policy\n     * Here is the list of operations that are currently allowed:  - Replace name and description  - Replace the period from reference  - Replace the reference  - Replace the fee details: fixed and percent values&lt;br&gt;You must have at least one of these scopes: &#39;settings.manage, setup.manage&#39;.\n     * @param $params.id The id of the cancellation policy to be modified.\n     * @param $params.body Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanCancellationPoliciesByIdPatch($params: rateplanCancellationPoliciesByIdPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanCancellationPoliciesByIdPatch($params: rateplanCancellationPoliciesByIdPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanCancellationPoliciesByIdPatch($params: rateplanCancellationPoliciesByIdPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanCancellationPoliciesByIdPatch($params: rateplanCancellationPoliciesByIdPatch.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanCancellationPoliciesByIdPatch.');\n        }\n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanCancellationPoliciesByIdPatch.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.patch<any>(`${this.basePath}/rateplan/v0-nsfw/cancellation-policies/${encodeURIComponent(String(id))}`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get all cancellation policies.\n     * Get the list of cancellation policies.&lt;br&gt;You must have at least one of these scopes: &#39;settings.read, setup.read, setup.manage&#39;.\n     * @param $params.propertyId Filter cancellation policies by the specified property\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.pageNumber Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n     * @param $params.pageSize Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\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 rateplanCancellationPoliciesGet($params: rateplanCancellationPoliciesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<CancellationPolicyListModel|null>;\n    public rateplanCancellationPoliciesGet($params: rateplanCancellationPoliciesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CancellationPolicyListModel|null>>;\n    public rateplanCancellationPoliciesGet($params: rateplanCancellationPoliciesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CancellationPolicyListModel|null>>;\n    public rateplanCancellationPoliciesGet($params: rateplanCancellationPoliciesGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyId = $params.propertyId;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyId !== undefined && propertyId !== null) {\n            queryParameters = queryParameters.set('propertyId', <any>propertyId);\n        }\n        if (pageNumber !== undefined && pageNumber !== null) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n        if (pageSize !== undefined && pageSize !== null) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<CancellationPolicyListModel|null>(`${this.basePath}/rateplan/v0-nsfw/cancellation-policies`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Create a cancellation policy.\n     * Create a cancellation policy.&lt;br&gt;You must have at least one of these scopes: &#39;settings.manage, setup.manage&#39;.\n     * @param $params.body The definition of the cancellation policy.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.idempotencyKey Unique key for safely retrying requests without accidentally performing the same operation twice.  We&#39;ll always send back the same response for requests made with the same key,  and keys can&#39;t be reused with different request parameters. Keys expire after 24 hours.\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 rateplanCancellationPoliciesPost($params: rateplanCancellationPoliciesPost.Params, observe?: 'body', reportProgress?: boolean): Observable<CancellationPolicyCreatedModel>;\n    public rateplanCancellationPoliciesPost($params: rateplanCancellationPoliciesPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CancellationPolicyCreatedModel>>;\n    public rateplanCancellationPoliciesPost($params: rateplanCancellationPoliciesPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CancellationPolicyCreatedModel>>;\n    public rateplanCancellationPoliciesPost($params: rateplanCancellationPoliciesPost.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanCancellationPoliciesPost.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const idempotencyKey = $params.idempotencyKey;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n        if (idempotencyKey !== undefined && idempotencyKey !== null) {\n            headers = headers.set('Idempotency-Key', String(idempotencyKey));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.post<CancellationPolicyCreatedModel>(`${this.basePath}/rateplan/v0-nsfw/cancellation-policies`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\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, HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { dateToApaleoIso } from '@apaleo/angular-api-proxy-common';\n\nimport { CompanyCreatedModel } from '../model/companyCreatedModel';\nimport { CompanyListModel } from '../model/companyListModel';\nimport { CompanyModel } from '../model/companyModel';\nimport { CreateCompanyModel } from '../model/createCompanyModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { Operation } from '../model/operation';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\ntype FormParams = URLSearchParams | FormData | HttpParams;\n\nfunction append(formParams: FormParams, param: string, value: any) {\n    if (formParams instanceof FormData)\n    {\n        formParams.append(param, value);\n        return formParams;\n    }\n    else if (formParams instanceof HttpParams)\n    {\n        return formParams.append(param, value);        \n    }\n    formParams.append(param, value);\n    return formParams;    \n};\n\n\nexport namespace rateplanCompaniesByIdDelete {\n    export interface Params {\n    \n        /**\n        * The ID of the company to delete\n        */\n        id: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanCompaniesByIdGet {\n    export interface Params {\n    \n        /**\n        * The ID of the company.\n        */\n        id: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanCompaniesByIdPatch {\n    export interface Params {\n    \n        /**\n        * The ID of the company to be modified.\n        */\n        id: string;\n    \n        /**\n        * Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n        */\n        body: Array<Operation>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanCompaniesGet {\n    export interface Params {\n    \n        /**\n        * Filter by the specified property\n        */\n        propertyId?: string;\n    \n        /**\n        * Return companies with any of the specified rate plans\n        */\n        ratePlanIds?: Array<string>;\n    \n        /**\n        * Return companies that have any of the requested corporate codes\n        */\n        corporateCodes?: Array<string>;\n    \n        /**\n        * This will filter all companies for the provided free text.  Currently it only looks up if the company name contains one of the provided values\n        */\n        textSearch?: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n        */\n        pageNumber?: number;\n    \n        /**\n        * Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\n        */\n        pageSize?: number;\n    \n    }\n    \n}\nexport namespace rateplanCompaniesPost {\n    export interface Params {\n    \n        /**\n        * The definition of the company.\n        */\n        body: CreateCompanyModel;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Unique key for safely retrying requests without accidentally performing the same operation twice.  We'll always send back the same response for requests made with the same key,  and keys can't be reused with different request parameters. Keys expire after 24 hours.\n        */\n        idempotencyKey?: string;\n    \n    }\n    \n}\n\n@Injectable()\nexport class CompanyService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(\n        protected httpClient: HttpClient, \n        @Optional() @Inject(BASE_PATH) basePath: string, \n        @Optional() configuration: Configuration\n    ) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n            this.basePath = basePath || configuration.basePath || this.basePath;\n        }\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    /**\n     * Delete a company\n     * Deletes a company.  Warning: This operation also removes company from all rate plans if not yet used.  The deleted company won&#39;t be available in the company VAT report anymore.&lt;br&gt;You must have this scope: &#39;companies.manage&#39;.\n     * @param $params.id The ID of the company to delete\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanCompaniesByIdDelete($params: rateplanCompaniesByIdDelete.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanCompaniesByIdDelete($params: rateplanCompaniesByIdDelete.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanCompaniesByIdDelete($params: rateplanCompaniesByIdDelete.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanCompaniesByIdDelete($params: rateplanCompaniesByIdDelete.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanCompaniesByIdDelete.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.delete<any>(`${this.basePath}/rateplan/v0-nsfw/companies/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a company\n     * Get a company by ID.&lt;br&gt;You must have at least one of these scopes: &#39;companies.read, companies.manage&#39;.\n     * @param $params.id The ID of the company.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanCompaniesByIdGet($params: rateplanCompaniesByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<CompanyModel>;\n    public rateplanCompaniesByIdGet($params: rateplanCompaniesByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CompanyModel>>;\n    public rateplanCompaniesByIdGet($params: rateplanCompaniesByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CompanyModel>>;\n    public rateplanCompaniesByIdGet($params: rateplanCompaniesByIdGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanCompaniesByIdGet.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<CompanyModel>(`${this.basePath}/rateplan/v0-nsfw/companies/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Modify a company\n     * Here is the list of operations that are currently allowed:  - Replace name, invoicingEmail, phone, taxId, additionalTaxId, additionalTaxId2, address, canCheckOutOnAr  - Add, replace and remove rate plans&lt;br&gt;You must have this scope: &#39;companies.manage&#39;.\n     * @param $params.id The ID of the company to be modified.\n     * @param $params.body Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanCompaniesByIdPatch($params: rateplanCompaniesByIdPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanCompaniesByIdPatch($params: rateplanCompaniesByIdPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanCompaniesByIdPatch($params: rateplanCompaniesByIdPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanCompaniesByIdPatch($params: rateplanCompaniesByIdPatch.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanCompaniesByIdPatch.');\n        }\n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanCompaniesByIdPatch.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.patch<any>(`${this.basePath}/rateplan/v0-nsfw/companies/${encodeURIComponent(String(id))}`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a list of companies\n     * Get the list of companies. &lt;br&gt;You must have at least one of these scopes: &#39;companies.read, companies.manage&#39;.\n     * @param $params.propertyId Filter by the specified property\n     * @param $params.ratePlanIds Return companies with any of the specified rate plans\n     * @param $params.corporateCodes Return companies that have any of the requested corporate codes\n     * @param $params.textSearch This will filter all companies for the provided free text.  Currently it only looks up if the company name contains one of the provided values\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.pageNumber Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n     * @param $params.pageSize Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\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 rateplanCompaniesGet($params: rateplanCompaniesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<CompanyListModel|null>;\n    public rateplanCompaniesGet($params: rateplanCompaniesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CompanyListModel|null>>;\n    public rateplanCompaniesGet($params: rateplanCompaniesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CompanyListModel|null>>;\n    public rateplanCompaniesGet($params: rateplanCompaniesGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyId = $params.propertyId;\n        const ratePlanIds = $params.ratePlanIds;\n        const corporateCodes = $params.corporateCodes;\n        const textSearch = $params.textSearch;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyId !== undefined && propertyId !== null) {\n            queryParameters = queryParameters.set('propertyId', <any>propertyId);\n        }\n        if (ratePlanIds) {\n            queryParameters = queryParameters.set('ratePlanIds', ratePlanIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (corporateCodes) {\n            queryParameters = queryParameters.set('corporateCodes', corporateCodes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (textSearch !== undefined && textSearch !== null) {\n            queryParameters = queryParameters.set('textSearch', <any>textSearch);\n        }\n        if (pageNumber !== undefined && pageNumber !== null) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n        if (pageSize !== undefined && pageSize !== null) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<CompanyListModel|null>(`${this.basePath}/rateplan/v0-nsfw/companies`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Create a company\n     * Use this call to create a new company.&lt;br&gt;You must have at least one of these scopes: &#39;companies.create, companies.manage&#39;.\n     * @param $params.body The definition of the company.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.idempotencyKey Unique key for safely retrying requests without accidentally performing the same operation twice.  We&#39;ll always send back the same response for requests made with the same key,  and keys can&#39;t be reused with different request parameters. Keys expire after 24 hours.\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 rateplanCompaniesPost($params: rateplanCompaniesPost.Params, observe?: 'body', reportProgress?: boolean): Observable<CompanyCreatedModel>;\n    public rateplanCompaniesPost($params: rateplanCompaniesPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CompanyCreatedModel>>;\n    public rateplanCompaniesPost($params: rateplanCompaniesPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CompanyCreatedModel>>;\n    public rateplanCompaniesPost($params: rateplanCompaniesPost.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanCompaniesPost.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const idempotencyKey = $params.idempotencyKey;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n        if (idempotencyKey !== undefined && idempotencyKey !== null) {\n            headers = headers.set('Idempotency-Key', String(idempotencyKey));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.post<CompanyCreatedModel>(`${this.basePath}/rateplan/v0-nsfw/companies`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\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, HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { dateToApaleoIso } from '@apaleo/angular-api-proxy-common';\n\nimport { CorporateCodeListModel } from '../model/corporateCodeListModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\ntype FormParams = URLSearchParams | FormData | HttpParams;\n\nfunction append(formParams: FormParams, param: string, value: any) {\n    if (formParams instanceof FormData)\n    {\n        formParams.append(param, value);\n        return formParams;\n    }\n    else if (formParams instanceof HttpParams)\n    {\n        return formParams.append(param, value);        \n    }\n    formParams.append(param, value);\n    return formParams;    \n};\n\n\nexport namespace rateplanCorporateCodesCodesGet {\n    export interface Params {\n    \n        /**\n        * Return codes for a specific property\n        */\n        propertyId?: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n        */\n        pageNumber?: number;\n    \n        /**\n        * Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\n        */\n        pageSize?: number;\n    \n    }\n    \n}\n\n@Injectable()\nexport class CorporateCodesService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(\n        protected httpClient: HttpClient, \n        @Optional() @Inject(BASE_PATH) basePath: string, \n        @Optional() configuration: Configuration\n    ) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n            this.basePath = basePath || configuration.basePath || this.basePath;\n        }\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    /**\n     * Returns a list of corporate codes.\n     * Returns all existing corporate codes that match given criteria.&lt;br&gt;You must have this scope: &#39;rateplans.read-corporate&#39;.\n     * @param $params.propertyId Return codes for a specific property\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.pageNumber Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n     * @param $params.pageSize Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\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 rateplanCorporateCodesCodesGet($params: rateplanCorporateCodesCodesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<CorporateCodeListModel|null>;\n    public rateplanCorporateCodesCodesGet($params: rateplanCorporateCodesCodesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CorporateCodeListModel|null>>;\n    public rateplanCorporateCodesCodesGet($params: rateplanCorporateCodesCodesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CorporateCodeListModel|null>>;\n    public rateplanCorporateCodesCodesGet($params: rateplanCorporateCodesCodesGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyId = $params.propertyId;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyId !== undefined && propertyId !== null) {\n            queryParameters = queryParameters.set('propertyId', <any>propertyId);\n        }\n        if (pageNumber !== undefined && pageNumber !== null) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n        if (pageSize !== undefined && pageSize !== null) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<CorporateCodeListModel|null>(`${this.basePath}/rateplan/v0-nsfw/corporate-codes/codes`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\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, HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { dateToApaleoIso } from '@apaleo/angular-api-proxy-common';\n\nimport { CreateNoShowPolicyModel } from '../model/createNoShowPolicyModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { NoShowPolicyCreatedModel } from '../model/noShowPolicyCreatedModel';\nimport { NoShowPolicyListModel } from '../model/noShowPolicyListModel';\nimport { NoShowPolicyModel } from '../model/noShowPolicyModel';\nimport { Operation } from '../model/operation';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\ntype FormParams = URLSearchParams | FormData | HttpParams;\n\nfunction append(formParams: FormParams, param: string, value: any) {\n    if (formParams instanceof FormData)\n    {\n        formParams.append(param, value);\n        return formParams;\n    }\n    else if (formParams instanceof HttpParams)\n    {\n        return formParams.append(param, value);        \n    }\n    formParams.append(param, value);\n    return formParams;    \n};\n\n\nexport namespace rateplanNoShowPoliciesByIdDelete {\n    export interface Params {\n    \n        /**\n        * The id of the no-show policy.\n        */\n        id: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanNoShowPoliciesByIdGet {\n    export interface Params {\n    \n        /**\n        * The id of the no-show policy.\n        */\n        id: string;\n    \n        /**\n        * 'all' or comma separated list of two-letter language codes (ISO Alpha-2)\n        */\n        languages?: Array<string>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanNoShowPoliciesByIdPatch {\n    export interface Params {\n    \n        /**\n        * The id of the no-show policy to be modified.\n        */\n        id: string;\n    \n        /**\n        * Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n        */\n        body: Array<Operation>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanNoShowPoliciesGet {\n    export interface Params {\n    \n        /**\n        * Filter no-show policies by the specified property\n        */\n        propertyId?: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n        */\n        pageNumber?: number;\n    \n        /**\n        * Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\n        */\n        pageSize?: number;\n    \n    }\n    \n}\nexport namespace rateplanNoShowPoliciesPost {\n    export interface Params {\n    \n        /**\n        * The definition of the no-show policy.\n        */\n        body: CreateNoShowPolicyModel;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Unique key for safely retrying requests without accidentally performing the same operation twice.  We'll always send back the same response for requests made with the same key,  and keys can't be reused with different request parameters. Keys expire after 24 hours.\n        */\n        idempotencyKey?: string;\n    \n    }\n    \n}\n\n@Injectable()\nexport class NoShowPolicyService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(\n        protected httpClient: HttpClient, \n        @Optional() @Inject(BASE_PATH) basePath: string, \n        @Optional() configuration: Configuration\n    ) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n            this.basePath = basePath || configuration.basePath || this.basePath;\n        }\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    /**\n     * Delete a no-show policy\n     * Use this call to delete a no-show policy.&lt;br&gt;You must have this scope: &#39;setup.manage&#39;.\n     * @param $params.id The id of the no-show policy.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanNoShowPoliciesByIdDelete($params: rateplanNoShowPoliciesByIdDelete.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanNoShowPoliciesByIdDelete($params: rateplanNoShowPoliciesByIdDelete.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanNoShowPoliciesByIdDelete($params: rateplanNoShowPoliciesByIdDelete.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanNoShowPoliciesByIdDelete($params: rateplanNoShowPoliciesByIdDelete.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanNoShowPoliciesByIdDelete.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.delete<any>(`${this.basePath}/rateplan/v0-nsfw/no-show-policies/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a specific no-show policy.\n     * Get a specific no-show policy.&lt;br&gt;You must have at least one of these scopes: &#39;settings.read, setup.read, setup.manage&#39;.\n     * @param $params.id The id of the no-show policy.\n     * @param $params.languages &#39;all&#39; or comma separated list of two-letter language codes (ISO Alpha-2)\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanNoShowPoliciesByIdGet($params: rateplanNoShowPoliciesByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<NoShowPolicyModel>;\n    public rateplanNoShowPoliciesByIdGet($params: rateplanNoShowPoliciesByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<NoShowPolicyModel>>;\n    public rateplanNoShowPoliciesByIdGet($params: rateplanNoShowPoliciesByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<NoShowPolicyModel>>;\n    public rateplanNoShowPoliciesByIdGet($params: rateplanNoShowPoliciesByIdGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanNoShowPoliciesByIdGet.');\n        }\n        const languages = $params.languages;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (languages) {\n            queryParameters = queryParameters.set('languages', languages.join(COLLECTION_FORMATS['csv']));\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<NoShowPolicyModel>(`${this.basePath}/rateplan/v0-nsfw/no-show-policies/${encodeURIComponent(String(id))}`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Allows to modify properties of a no-show policy\n     * Here is the list of operations that are currently allowed:  - Replace name and description  - Replace the fee details: fixed and percent values&lt;br&gt;You must have at least one of these scopes: &#39;settings.manage, setup.manage&#39;.\n     * @param $params.id The id of the no-show policy to be modified.\n     * @param $params.body Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanNoShowPoliciesByIdPatch($params: rateplanNoShowPoliciesByIdPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanNoShowPoliciesByIdPatch($params: rateplanNoShowPoliciesByIdPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanNoShowPoliciesByIdPatch($params: rateplanNoShowPoliciesByIdPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanNoShowPoliciesByIdPatch($params: rateplanNoShowPoliciesByIdPatch.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanNoShowPoliciesByIdPatch.');\n        }\n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanNoShowPoliciesByIdPatch.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.patch<any>(`${this.basePath}/rateplan/v0-nsfw/no-show-policies/${encodeURIComponent(String(id))}`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get all no-show policies.\n     * Get the list of no-show policies.&lt;br&gt;You must have at least one of these scopes: &#39;settings.read, setup.read, setup.manage&#39;.\n     * @param $params.propertyId Filter no-show policies by the specified property\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.pageNumber Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n     * @param $params.pageSize Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\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 rateplanNoShowPoliciesGet($params: rateplanNoShowPoliciesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<NoShowPolicyListModel|null>;\n    public rateplanNoShowPoliciesGet($params: rateplanNoShowPoliciesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<NoShowPolicyListModel|null>>;\n    public rateplanNoShowPoliciesGet($params: rateplanNoShowPoliciesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<NoShowPolicyListModel|null>>;\n    public rateplanNoShowPoliciesGet($params: rateplanNoShowPoliciesGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyId = $params.propertyId;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyId !== undefined && propertyId !== null) {\n            queryParameters = queryParameters.set('propertyId', <any>propertyId);\n        }\n        if (pageNumber !== undefined && pageNumber !== null) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n        if (pageSize !== undefined && pageSize !== null) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<NoShowPolicyListModel|null>(`${this.basePath}/rateplan/v0-nsfw/no-show-policies`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Create a no-show policy.\n     * Create a no-show policy.&lt;br&gt;You must have at least one of these scopes: &#39;settings.manage, setup.manage&#39;.\n     * @param $params.body The definition of the no-show policy.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.idempotencyKey Unique key for safely retrying requests without accidentally performing the same operation twice.  We&#39;ll always send back the same response for requests made with the same key,  and keys can&#39;t be reused with different request parameters. Keys expire after 24 hours.\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 rateplanNoShowPoliciesPost($params: rateplanNoShowPoliciesPost.Params, observe?: 'body', reportProgress?: boolean): Observable<NoShowPolicyCreatedModel>;\n    public rateplanNoShowPoliciesPost($params: rateplanNoShowPoliciesPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<NoShowPolicyCreatedModel>>;\n    public rateplanNoShowPoliciesPost($params: rateplanNoShowPoliciesPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<NoShowPolicyCreatedModel>>;\n    public rateplanNoShowPoliciesPost($params: rateplanNoShowPoliciesPost.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanNoShowPoliciesPost.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const idempotencyKey = $params.idempotencyKey;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n        if (idempotencyKey !== undefined && idempotencyKey !== null) {\n            headers = headers.set('Idempotency-Key', String(idempotencyKey));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.post<NoShowPolicyCreatedModel>(`${this.basePath}/rateplan/v0-nsfw/no-show-policies`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\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, HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { dateToApaleoIso } from '@apaleo/angular-api-proxy-common';\n\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { PromoCodeListModel } from '../model/promoCodeListModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\ntype FormParams = URLSearchParams | FormData | HttpParams;\n\nfunction append(formParams: FormParams, param: string, value: any) {\n    if (formParams instanceof FormData)\n    {\n        formParams.append(param, value);\n        return formParams;\n    }\n    else if (formParams instanceof HttpParams)\n    {\n        return formParams.append(param, value);        \n    }\n    formParams.append(param, value);\n    return formParams;    \n};\n\n\nexport namespace rateplanPromoCodesCodesGet {\n    export interface Params {\n    \n        /**\n        * Return codes for a specific property\n        */\n        propertyId?: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n        */\n        pageNumber?: number;\n    \n        /**\n        * Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\n        */\n        pageSize?: number;\n    \n    }\n    \n}\n\n@Injectable()\nexport class PromoCodesService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(\n        protected httpClient: HttpClient, \n        @Optional() @Inject(BASE_PATH) basePath: string, \n        @Optional() configuration: Configuration\n    ) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n            this.basePath = basePath || configuration.basePath || this.basePath;\n        }\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    /**\n     * Returns a list of promo codes.\n     * Returns all existing promo codes that match given criteria.&lt;br&gt;You must have this scope: &#39;rateplans.read-corporate&#39;.\n     * @param $params.propertyId Return codes for a specific property\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.pageNumber Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n     * @param $params.pageSize Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\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 rateplanPromoCodesCodesGet($params: rateplanPromoCodesCodesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<PromoCodeListModel|null>;\n    public rateplanPromoCodesCodesGet($params: rateplanPromoCodesCodesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PromoCodeListModel|null>>;\n    public rateplanPromoCodesCodesGet($params: rateplanPromoCodesCodesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PromoCodeListModel|null>>;\n    public rateplanPromoCodesCodesGet($params: rateplanPromoCodesCodesGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyId = $params.propertyId;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyId !== undefined && propertyId !== null) {\n            queryParameters = queryParameters.set('propertyId', <any>propertyId);\n        }\n        if (pageNumber !== undefined && pageNumber !== null) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n        if (pageSize !== undefined && pageSize !== null) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<PromoCodeListModel|null>(`${this.basePath}/rateplan/v0-nsfw/promo-codes/codes`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\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, HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { dateToApaleoIso } from '@apaleo/angular-api-proxy-common';\n\nimport { BatchRateListModel } from '../model/batchRateListModel';\nimport { CountModel } from '../model/countModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { Operation } from '../model/operation';\nimport { RateListModel } from '../model/rateListModel';\nimport { RatesPatchRequestModel } from '../model/ratesPatchRequestModel';\nimport { ReplaceRateListModel } from '../model/replaceRateListModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\ntype FormParams = URLSearchParams | FormData | HttpParams;\n\nfunction append(formParams: FormParams, param: string, value: any) {\n    if (formParams instanceof FormData)\n    {\n        formParams.append(param, value);\n        return formParams;\n    }\n    else if (formParams instanceof HttpParams)\n    {\n        return formParams.append(param, value);        \n    }\n    formParams.append(param, value);\n    return formParams;    \n};\n\n\nexport namespace rateplanRatePlansByIdRatesDelete {\n    export interface Params {\n    \n        /**\n        * The id of the rate plan.\n        */\n        id: string;\n    \n        /**\n        * The start of the time range to filter the rates by. All rates where the from date and time is equal or later than  the specified date and optional time will be affected<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n        */\n        from: string;\n    \n        /**\n        * The end of the time range to filter the rates by. All rates where the from date and time is earlier than  the specified date and optional time will be affected<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n        */\n        to: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanRatePlansByIdRatesGet {\n    export interface Params {\n    \n        /**\n        * The id of the rate plan.\n        */\n        id: string;\n    \n        /**\n        * The start of the time range to filter the rates by. All rates where the from date and time is equal or later than  the specified date and optional time will be affected<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n        */\n        from: string;\n    \n        /**\n        * The end of the time range to filter the rates by. All rates where the from date and time is earlier than  the specified date and optional time will be affected<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n        */\n        to: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n        */\n        pageNumber?: number;\n    \n        /**\n        * Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\n        */\n        pageSize?: number;\n    \n    }\n    \n}\nexport namespace rateplanRatePlansByIdRatesPatch {\n    export interface Params {\n    \n        /**\n        * The id of the rate plan.\n        */\n        id: string;\n    \n        /**\n        * Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n        */\n        body: RatesPatchRequestModel;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanRatePlansByIdRatesPut {\n    export interface Params {\n    \n        /**\n        * The id of the rate plan.\n        */\n        id: string;\n    \n        /**\n        * The definition of the rates.\n        */\n        body: ReplaceRateListModel;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanRatePlansByIdRatescountGet {\n    export interface Params {\n    \n        /**\n        * The id of the rate plan.\n        */\n        id: string;\n    \n        /**\n        * The start of the time range to filter the rates by. All rates where the from date and time is equal or later than  the specified date and optional time will be affected<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n        */\n        from: string;\n    \n        /**\n        * The end of the time range to filter the rates by. All rates where the from date and time is earlier than  the specified date and optional time will be affected<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n        */\n        to: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanRatesGet {\n    export interface Params {\n    \n        /**\n        * The id of the property.\n        */\n        propertyId: string;\n    \n        /**\n        * The rate plan ids. At most 50 ids can be specified.\n        */\n        ratePlanIds: Array<string>;\n    \n        /**\n        * The start of the time range to filter the rates by. All rates where the from date and time is equal or later than  the specified date and optional time will be affected. The specified time range cannot span more than 60 days.<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n        */\n        from: string;\n    \n        /**\n        * The end of the time range to filter the rates by. All rates where the from date and time is earlier than  the specified date and optional time will be affected. The specified time range cannot span more than 60 days.<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n        */\n        to: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanRatesPatch {\n    export interface Params {\n    \n        /**\n        * Filter rates for patching by rate plan ids\n        */\n        ratePlanIds: Array<string>;\n    \n        /**\n        * The start of the time range to filter the rates by. All rates where the from date and time is equal or later than  the specified date and optional time will be affected<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n        */\n        from: string;\n    \n        /**\n        * The end of the time range to filter the rates by. All rates where the from date and time is earlier than  the specified date and optional time will be affected<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n        */\n        to: string;\n    \n        /**\n        * Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n        */\n        body: Array<Operation>;\n    \n        /**\n        * The weekdays that will be patched. If not specified, all weekdays will be patched.\n        */\n        weekDays?: Array<WeekDaysEnum>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n    export type WeekDaysEnum = 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday';\n\n    export const WeekDaysEnumValues = Object.freeze(\n        ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] as WeekDaysEnum[]);\n    \n}\n\n@Injectable()\nexport class RateService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(\n        protected httpClient: HttpClient, \n        @Optional() @Inject(BASE_PATH) basePath: string, \n        @Optional() configuration: Configuration\n    ) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n            this.basePath = basePath || configuration.basePath || this.basePath;\n        }\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    /**\n     * Deletes the rates for the rate plan\n     * Deletes all rates in the specifed time range.&lt;br&gt;You must have at least one of these scopes: &#39;rates.delete, rates.manage&#39;.\n     * @param $params.id The id of the rate plan.\n     * @param $params.from The start of the time range to filter the rates by. All rates where the from date and time is equal or later than  the specified date and optional time will be affected&lt;br /&gt;Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;\n     * @param $params.to The end of the time range to filter the rates by. All rates where the from date and time is earlier than  the specified date and optional time will be affected&lt;br /&gt;Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatePlansByIdRatesDelete($params: rateplanRatePlansByIdRatesDelete.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanRatePlansByIdRatesDelete($params: rateplanRatePlansByIdRatesDelete.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanRatePlansByIdRatesDelete($params: rateplanRatePlansByIdRatesDelete.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanRatePlansByIdRatesDelete($params: rateplanRatePlansByIdRatesDelete.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanRatePlansByIdRatesDelete.');\n        }\n        const from = $params.from;\n        if (from === null || from === undefined) {\n            throw new Error('Required parameter from was null or undefined when calling rateplanRatePlansByIdRatesDelete.');\n        }\n        const to = $params.to;\n        if (to === null || to === undefined) {\n            throw new Error('Required parameter to was null or undefined when calling rateplanRatePlansByIdRatesDelete.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>from);\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>to);\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.delete<any>(`${this.basePath}/rateplan/v0-nsfw/rate-plans/${encodeURIComponent(String(id))}/rates`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of rates.\n     * Returns all rates for a specific rate plan within the specified time range. If a rate has not  been initialized, it will still be returned, but anything besides the from and to values will be empty.  The time range of a rate is defined by the time slice definition of the rate plan.   Time ranges with no initialized rates will not be available for sell.    To be able to read rates for a corporate rate plan a client must additionally have  the &#39;rateplans.read-corporate&#39; scope.&lt;br&gt;You must have at least one of these scopes: &#39;rates.read, rates.manage&#39;.\n     * @param $params.id The id of the rate plan.\n     * @param $params.from The start of the time range to filter the rates by. All rates where the from date and time is equal or later than  the specified date and optional time will be affected&lt;br /&gt;Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;\n     * @param $params.to The end of the time range to filter the rates by. All rates where the from date and time is earlier than  the specified date and optional time will be affected&lt;br /&gt;Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.pageNumber Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n     * @param $params.pageSize Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\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 rateplanRatePlansByIdRatesGet($params: rateplanRatePlansByIdRatesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<RateListModel|null>;\n    public rateplanRatePlansByIdRatesGet($params: rateplanRatePlansByIdRatesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<RateListModel|null>>;\n    public rateplanRatePlansByIdRatesGet($params: rateplanRatePlansByIdRatesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<RateListModel|null>>;\n    public rateplanRatePlansByIdRatesGet($params: rateplanRatePlansByIdRatesGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanRatePlansByIdRatesGet.');\n        }\n        const from = $params.from;\n        if (from === null || from === undefined) {\n            throw new Error('Required parameter from was null or undefined when calling rateplanRatePlansByIdRatesGet.');\n        }\n        const to = $params.to;\n        if (to === null || to === undefined) {\n            throw new Error('Required parameter to was null or undefined when calling rateplanRatePlansByIdRatesGet.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>from);\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>to);\n        }\n        if (pageNumber !== undefined && pageNumber !== null) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n        if (pageSize !== undefined && pageSize !== null) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<RateListModel|null>(`${this.basePath}/rateplan/v0-nsfw/rate-plans/${encodeURIComponent(String(id))}/rates`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Allows to patch multiple rates of a single rate plan.\n     * Note that the specified PATCH operations are applied to each and every rate for the specified time ranges.  Here is the list of operations that are currently allowed:  - Add, replace and remove Price  - Add, replace and remove Restrictions&lt;br&gt;You must have this scope: &#39;rates.manage&#39;.\n     * @param $params.id The id of the rate plan.\n     * @param $params.body Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatePlansByIdRatesPatch($params: rateplanRatePlansByIdRatesPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanRatePlansByIdRatesPatch($params: rateplanRatePlansByIdRatesPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanRatePlansByIdRatesPatch($params: rateplanRatePlansByIdRatesPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanRatePlansByIdRatesPatch($params: rateplanRatePlansByIdRatesPatch.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanRatePlansByIdRatesPatch.');\n        }\n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanRatePlansByIdRatesPatch.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.patch<any>(`${this.basePath}/rateplan/v0-nsfw/rate-plans/${encodeURIComponent(String(id))}/rates`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Initializes and changes the rates for the rate plan.\n     * All rates specified in the request will be initialized, or overwritten if they already exist.      Make sure that the from and to date and time in the rates match the time slice definition of the rate plan.  The easiest way to achieve this is calling the GET /rate-plans/{id}/rates for the time range you want to update  and then resend the payload with the set prices and restrictions.&lt;br&gt;You must have this scope: &#39;rates.manage&#39;.\n     * @param $params.id The id of the rate plan.\n     * @param $params.body The definition of the rates.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatePlansByIdRatesPut($params: rateplanRatePlansByIdRatesPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanRatePlansByIdRatesPut($params: rateplanRatePlansByIdRatesPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanRatePlansByIdRatesPut($params: rateplanRatePlansByIdRatesPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanRatePlansByIdRatesPut($params: rateplanRatePlansByIdRatesPut.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanRatePlansByIdRatesPut.');\n        }\n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanRatePlansByIdRatesPut.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.put<any>(`${this.basePath}/rateplan/v0-nsfw/rate-plans/${encodeURIComponent(String(id))}/rates`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the number of rates for a specific rate plan within the specifed time range.\n     * To be able to count rates for a corporate rate plan a client must additionaly have  the &#39;rateplans.read-corporate&#39; scope.&lt;br&gt;You must have at least one of these scopes: &#39;rates.read, rates.manage&#39;.\n     * @param $params.id The id of the rate plan.\n     * @param $params.from The start of the time range to filter the rates by. All rates where the from date and time is equal or later than  the specified date and optional time will be affected&lt;br /&gt;Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;\n     * @param $params.to The end of the time range to filter the rates by. All rates where the from date and time is earlier than  the specified date and optional time will be affected&lt;br /&gt;Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatePlansByIdRatescountGet($params: rateplanRatePlansByIdRatescountGet.Params, observe?: 'body', reportProgress?: boolean): Observable<CountModel>;\n    public rateplanRatePlansByIdRatescountGet($params: rateplanRatePlansByIdRatescountGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CountModel>>;\n    public rateplanRatePlansByIdRatescountGet($params: rateplanRatePlansByIdRatescountGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CountModel>>;\n    public rateplanRatePlansByIdRatescountGet($params: rateplanRatePlansByIdRatescountGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanRatePlansByIdRatescountGet.');\n        }\n        const from = $params.from;\n        if (from === null || from === undefined) {\n            throw new Error('Required parameter from was null or undefined when calling rateplanRatePlansByIdRatescountGet.');\n        }\n        const to = $params.to;\n        if (to === null || to === undefined) {\n            throw new Error('Required parameter to was null or undefined when calling rateplanRatePlansByIdRatescountGet.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>from);\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>to);\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<CountModel>(`${this.basePath}/rateplan/v0-nsfw/rate-plans/${encodeURIComponent(String(id))}/rates/$count`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of rates for multiple rate plans.\n     * Returns all rates for multiple rate plans within the specified time range. If a rate has not  been initialized, it will still be returned, but anything besides the from and to values will be empty.  The time range of a rate is defined by the time slice definition of the rate plan.   Time ranges with no initialized rates will not be available for sell.    To be able to read rates for a corporate rate plan a client must additionally have  the &#39;rateplans.read-corporate&#39; scope.&lt;br&gt;You must have at least one of these scopes: &#39;rates.read, rates.manage&#39;.\n     * @param $params.propertyId The id of the property.\n     * @param $params.ratePlanIds The rate plan ids. At most 50 ids can be specified.\n     * @param $params.from The start of the time range to filter the rates by. All rates where the from date and time is equal or later than  the specified date and optional time will be affected. The specified time range cannot span more than 60 days.&lt;br /&gt;Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;\n     * @param $params.to The end of the time range to filter the rates by. All rates where the from date and time is earlier than  the specified date and optional time will be affected. The specified time range cannot span more than 60 days.&lt;br /&gt;Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatesGet($params: rateplanRatesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<BatchRateListModel|null>;\n    public rateplanRatesGet($params: rateplanRatesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BatchRateListModel|null>>;\n    public rateplanRatesGet($params: rateplanRatesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BatchRateListModel|null>>;\n    public rateplanRatesGet($params: rateplanRatesGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyId = $params.propertyId;\n        if (propertyId === null || propertyId === undefined) {\n            throw new Error('Required parameter propertyId was null or undefined when calling rateplanRatesGet.');\n        }\n        const ratePlanIds = $params.ratePlanIds;\n        if (ratePlanIds === null || ratePlanIds === undefined) {\n            throw new Error('Required parameter ratePlanIds was null or undefined when calling rateplanRatesGet.');\n        }\n        const from = $params.from;\n        if (from === null || from === undefined) {\n            throw new Error('Required parameter from was null or undefined when calling rateplanRatesGet.');\n        }\n        const to = $params.to;\n        if (to === null || to === undefined) {\n            throw new Error('Required parameter to was null or undefined when calling rateplanRatesGet.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyId !== undefined && propertyId !== null) {\n            queryParameters = queryParameters.set('propertyId', <any>propertyId);\n        }\n        if (ratePlanIds) {\n            queryParameters = queryParameters.set('ratePlanIds', ratePlanIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>from);\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>to);\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<BatchRateListModel|null>(`${this.basePath}/rateplan/v0-nsfw/rates`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Allows to patch the rates of multiple rate plans.\n     * Note that the specified PATCH operations are applied to each and every rate for the specified time range.  Here is the list of operations that are currently allowed:  - Add, replace and remove Price  - Add, replace and remove Restrictions&lt;br&gt;You must have this scope: &#39;rates.manage&#39;.\n     * @param $params.ratePlanIds Filter rates for patching by rate plan ids\n     * @param $params.from The start of the time range to filter the rates by. All rates where the from date and time is equal or later than  the specified date and optional time will be affected&lt;br /&gt;Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;\n     * @param $params.to The end of the time range to filter the rates by. All rates where the from date and time is earlier than  the specified date and optional time will be affected&lt;br /&gt;Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;\n     * @param $params.body Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n     * @param $params.weekDays The weekdays that will be patched. If not specified, all weekdays will be patched.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatesPatch($params: rateplanRatesPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanRatesPatch($params: rateplanRatesPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanRatesPatch($params: rateplanRatesPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanRatesPatch($params: rateplanRatesPatch.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const ratePlanIds = $params.ratePlanIds;\n        if (ratePlanIds === null || ratePlanIds === undefined) {\n            throw new Error('Required parameter ratePlanIds was null or undefined when calling rateplanRatesPatch.');\n        }\n        const from = $params.from;\n        if (from === null || from === undefined) {\n            throw new Error('Required parameter from was null or undefined when calling rateplanRatesPatch.');\n        }\n        const to = $params.to;\n        if (to === null || to === undefined) {\n            throw new Error('Required parameter to was null or undefined when calling rateplanRatesPatch.');\n        }\n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanRatesPatch.');\n        }\n        const weekDays = $params.weekDays;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (ratePlanIds) {\n            queryParameters = queryParameters.set('ratePlanIds', ratePlanIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>from);\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>to);\n        }\n        if (weekDays) {\n            queryParameters = queryParameters.set('weekDays', weekDays.join(COLLECTION_FORMATS['csv']));\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.patch<any>(`${this.basePath}/rateplan/v0-nsfw/rates`,\n            body,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\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, HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { dateToApaleoIso } from '@apaleo/angular-api-proxy-common';\n\nimport { CountModel } from '../model/countModel';\nimport { CreateRatePlanModel } from '../model/createRatePlanModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { Operation } from '../model/operation';\nimport { RatePlanCreatedModel } from '../model/ratePlanCreatedModel';\nimport { RatePlanListModel } from '../model/ratePlanListModel';\nimport { RatePlanModel } from '../model/ratePlanModel';\nimport { ReplaceRatePlanModel } from '../model/replaceRatePlanModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\ntype FormParams = URLSearchParams | FormData | HttpParams;\n\nfunction append(formParams: FormParams, param: string, value: any) {\n    if (formParams instanceof FormData)\n    {\n        formParams.append(param, value);\n        return formParams;\n    }\n    else if (formParams instanceof HttpParams)\n    {\n        return formParams.append(param, value);        \n    }\n    formParams.append(param, value);\n    return formParams;    \n};\n\n\nexport namespace rateplanRatePlansByIdDelete {\n    export interface Params {\n    \n        /**\n        * The id of the rate plan.\n        */\n        id: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanRatePlansByIdGet {\n    export interface Params {\n    \n        /**\n        * The id of the rate plan.\n        */\n        id: string;\n    \n        /**\n        * 'all' or comma separated list of two-letter language codes (ISO Alpha-2)\n        */\n        languages?: Array<string>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * List of all embedded resources that should be expanded in the response. Possible values are: property, cancellationPolicy. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type ExpandEnum = 'property' | 'cancellationPolicy';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['property', 'cancellationPolicy'] as ExpandEnum[]);\n    \n}\nexport namespace rateplanRatePlansByIdHead {\n    export interface Params {\n    \n        /**\n        * The id of the rate plan.\n        */\n        id: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanRatePlansByIdPut {\n    export interface Params {\n    \n        /**\n        * The id of the rate plan.\n        */\n        id: string;\n    \n        /**\n        * The definition of the rate plan.\n        */\n        body: ReplaceRatePlanModel;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanRatePlansDelete {\n    export interface Params {\n    \n        /**\n        * Comma separated list of rate plan IDs, at least one.\n        */\n        ratePlanIds: Array<string>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanRatePlansGet {\n    export interface Params {\n    \n        /**\n        * Return rate plans for the specific property\n        */\n        propertyId?: string;\n    \n        /**\n        * Return rate plans filtered by requested codes\n        */\n        ratePlanCodes?: Array<string>;\n    \n        /**\n        * Return rate plans that have any of the requested included services\n        */\n        includedServiceIds?: Array<string>;\n    \n        /**\n        * Return rate plans that are sold though any of the specified channels\n        */\n        channelCodes?: Array<ChannelCodesEnum>;\n    \n        /**\n        * Return rate plans that have any of the requested promo codes\n        */\n        promoCodes?: Array<string>;\n    \n        /**\n        * Return rate plans filtered by requested companies\n        */\n        companyIds?: Array<string>;\n    \n        /**\n        * Return rate plans derived from any of the specified rate plans\n        */\n        baseRatePlanIds?: Array<string>;\n    \n        /**\n        * Return rate plans with any of the specified unit groups\n        */\n        unitGroupIds?: Array<string>;\n    \n        /**\n        * Return rate plans with any of the specified time slice definitions\n        */\n        timeSliceDefinitionIds?: Array<string>;\n    \n        /**\n        * Return rate plans with any of the specified unit group types\n        */\n        unitGroupTypes?: Array<UnitGroupTypesEnum>;\n    \n        /**\n        * The time slice template, defaults to 'over night'\n        */\n        timeSliceTemplate?: TimeSliceTemplateEnum;\n    \n        /**\n        * Return rate plans with any of the specified min guarantee types\n        */\n        minGuaranteeTypes?: Array<MinGuaranteeTypesEnum>;\n    \n        /**\n        * Return rate plans with any of the specified cancellation policies\n        */\n        cancellationPolicyIds?: Array<string>;\n    \n        /**\n        * Return rate plans with any of the specified no-show policies\n        */\n        noShowPolicyIds?: Array<string>;\n    \n        /**\n        * Return only derived or base rate plans\n        */\n        isDerived?: boolean;\n    \n        /**\n        * This will filter rate plans based on their derivation level<br />You can provide an array of string expressions which all need to apply.<br />Each expression has the form of 'OPERATION_VALUE' where VALUE needs to be of the valid format of the property type and OPERATION can be:<br />'eq' for equals<br />'neq' for not equals<br />'lt' for less than<br />'gt' for greater than<br />'lte' for less than or equals<br />'gte' for greater than or equals<br />For instance<br />'eq_5' would mean the value should equal 5<br />'lte_7' would mean the value should be less than or equal to 7\n        */\n        derivationLevelFilter?: Array<string>;\n    \n        /**\n        * Return archived rate plans. Defaults to false\n        */\n        includeArchived?: boolean;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n        */\n        pageNumber?: number;\n    \n        /**\n        * Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\n        */\n        pageSize?: number;\n    \n        /**\n        * List of all embedded resources that should be expanded in the response. Possible values are: property, unitGroup, cancellationPolicy, services, bookingPeriods, surcharges, ageCategories. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type ChannelCodesEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodesEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodesEnum[]);\n    \n    export type UnitGroupTypesEnum = 'BedRoom' | 'MeetingRoom' | 'EventSpace' | 'ParkingLot' | 'Other';\n\n    export const UnitGroupTypesEnumValues = Object.freeze(\n        ['BedRoom', 'MeetingRoom', 'EventSpace', 'ParkingLot', 'Other'] as UnitGroupTypesEnum[]);\n    \n    export type TimeSliceTemplateEnum = 'DayUse' | 'OverNight';\n\n    export const TimeSliceTemplateEnumValues = Object.freeze(\n        ['DayUse', 'OverNight'] as TimeSliceTemplateEnum[]);\n    \n    export type MinGuaranteeTypesEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company';\n\n    export const MinGuaranteeTypesEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company'] as MinGuaranteeTypesEnum[]);\n    \n    export type ExpandEnum = 'property' | 'unitGroup' | 'cancellationPolicy' | 'services' | 'bookingPeriods' | 'surcharges' | 'ageCategories';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['property', 'unitGroup', 'cancellationPolicy', 'services', 'bookingPeriods', 'surcharges', 'ageCategories'] as ExpandEnum[]);\n    \n}\nexport namespace rateplanRatePlansPatch {\n    export interface Params {\n    \n        /**\n        * Comma separated list of rate plan IDs, at least one.\n        */\n        ratePlanIds: Array<string>;\n    \n        /**\n        * Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n        */\n        body: Array<Operation>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanRatePlansPost {\n    export interface Params {\n    \n        /**\n        * The definition of the rate plan.\n        */\n        body: CreateRatePlanModel;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Unique key for safely retrying requests without accidentally performing the same operation twice.  We'll always send back the same response for requests made with the same key,  and keys can't be reused with different request parameters. Keys expire after 24 hours.\n        */\n        idempotencyKey?: string;\n    \n    }\n    \n}\nexport namespace rateplanRatePlanscountGet {\n    export interface Params {\n    \n        /**\n        * Return rate plans for the specific property\n        */\n        propertyId?: string;\n    \n        /**\n        * Return rate plans filtered by requested codes\n        */\n        ratePlanCodes?: Array<string>;\n    \n        /**\n        * Return rate plans that have any of the requested included services\n        */\n        includedServiceIds?: Array<string>;\n    \n        /**\n        * Return rate plans that are sold though any of the specified channels\n        */\n        channelCodes?: Array<ChannelCodesEnum>;\n    \n        /**\n        * Return rate plans that have any of the requested promo codes\n        */\n        promoCodes?: Array<string>;\n    \n        /**\n        * Return rate plans filtered by requested companies\n        */\n        companyIds?: Array<string>;\n    \n        /**\n        * Return rate plans derived from any of the specified rate plans\n        */\n        baseRatePlanIds?: Array<string>;\n    \n        /**\n        * Return rate plans with any of the specified unit groups\n        */\n        unitGroupIds?: Array<string>;\n    \n        /**\n        * Return rate plans with any of the specified time slice definitions\n        */\n        timeSliceDefinitionIds?: Array<string>;\n    \n        /**\n        * Return rate plans with any of the specified unit group types\n        */\n        unitGroupTypes?: Array<UnitGroupTypesEnum>;\n    \n        /**\n        * The time slice template, defaults to 'over night'\n        */\n        timeSliceTemplate?: TimeSliceTemplateEnum;\n    \n        /**\n        * Return rate plans with any of the specified min guarantee types\n        */\n        minGuaranteeTypes?: Array<MinGuaranteeTypesEnum>;\n    \n        /**\n        * Return rate plans with any of the specified cancellation policies\n        */\n        cancellationPolicyIds?: Array<string>;\n    \n        /**\n        * Return rate plans with any of the specified no-show policies\n        */\n        noShowPolicyIds?: Array<string>;\n    \n        /**\n        * Return only derived or base rate plans\n        */\n        isDerived?: boolean;\n    \n        /**\n        * This will filter rate plans based on their derivation level<br />You can provide an array of string expressions which all need to apply.<br />Each expression has the form of 'OPERATION_VALUE' where VALUE needs to be of the valid format of the property type and OPERATION can be:<br />'eq' for equals<br />'neq' for not equals<br />'lt' for less than<br />'gt' for greater than<br />'lte' for less than or equals<br />'gte' for greater than or equals<br />For instance<br />'eq_5' would mean the value should equal 5<br />'lte_7' would mean the value should be less than or equal to 7\n        */\n        derivationLevelFilter?: Array<string>;\n    \n        /**\n        * Return archived rate plans. Defaults to false\n        */\n        includeArchived?: boolean;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n    export type ChannelCodesEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodesEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodesEnum[]);\n    \n    export type UnitGroupTypesEnum = 'BedRoom' | 'MeetingRoom' | 'EventSpace' | 'ParkingLot' | 'Other';\n\n    export const UnitGroupTypesEnumValues = Object.freeze(\n        ['BedRoom', 'MeetingRoom', 'EventSpace', 'ParkingLot', 'Other'] as UnitGroupTypesEnum[]);\n    \n    export type TimeSliceTemplateEnum = 'DayUse' | 'OverNight';\n\n    export const TimeSliceTemplateEnumValues = Object.freeze(\n        ['DayUse', 'OverNight'] as TimeSliceTemplateEnum[]);\n    \n    export type MinGuaranteeTypesEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company';\n\n    export const MinGuaranteeTypesEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company'] as MinGuaranteeTypesEnum[]);\n    \n}\n\n@Injectable()\nexport class RatePlanService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(\n        protected httpClient: HttpClient, \n        @Optional() @Inject(BASE_PATH) basePath: string, \n        @Optional() configuration: Configuration\n    ) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n            this.basePath = basePath || configuration.basePath || this.basePath;\n        }\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    /**\n     * Delete a rate plan\n     * Use this call to delete a rate plan.&lt;br&gt;You must have at least one of these scopes: &#39;rateplans.delete, setup.manage&#39;.\n     * @param $params.id The id of the rate plan.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatePlansByIdDelete($params: rateplanRatePlansByIdDelete.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanRatePlansByIdDelete($params: rateplanRatePlansByIdDelete.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanRatePlansByIdDelete($params: rateplanRatePlansByIdDelete.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanRatePlansByIdDelete($params: rateplanRatePlansByIdDelete.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanRatePlansByIdDelete.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.delete<any>(`${this.basePath}/rateplan/v0-nsfw/rate-plans/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a rate plan\n     * Get a rate plan by id.                  To be able to read a corporate rate plan a client must additionaly have  &#39;rateplans.read-corporate&#39; scope assigned.&lt;br&gt;You must have at least one of these scopes: &#39;rateplans.read, setup.read, setup.manage&#39;.\n     * @param $params.id The id of the rate plan.\n     * @param $params.languages &#39;all&#39; or comma separated list of two-letter language codes (ISO Alpha-2)\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.expand List of all embedded resources that should be expanded in the response. Possible values are: property, cancellationPolicy. All other values will be silently ignored.\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 rateplanRatePlansByIdGet($params: rateplanRatePlansByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<RatePlanModel>;\n    public rateplanRatePlansByIdGet($params: rateplanRatePlansByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<RatePlanModel>>;\n    public rateplanRatePlansByIdGet($params: rateplanRatePlansByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<RatePlanModel>>;\n    public rateplanRatePlansByIdGet($params: rateplanRatePlansByIdGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanRatePlansByIdGet.');\n        }\n        const languages = $params.languages;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (languages) {\n            queryParameters = queryParameters.set('languages', languages.join(COLLECTION_FORMATS['csv']));\n        }\n        if (expand) {\n            queryParameters = queryParameters.set('expand', expand.join(COLLECTION_FORMATS['csv']));\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<RatePlanModel>(`${this.basePath}/rateplan/v0-nsfw/rate-plans/${encodeURIComponent(String(id))}`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Check if a rate plan exists\n     * Check if a rate plan exists by id.                  To be able to check if a corporate rate plan exists  a client must additionaly have &#39;rateplans.read-corporate&#39; scope assigned.&lt;br&gt;You must have at least one of these scopes: &#39;rateplans.read, setup.read, setup.manage&#39;.\n     * @param $params.id The id of the rate plan.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatePlansByIdHead($params: rateplanRatePlansByIdHead.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanRatePlansByIdHead($params: rateplanRatePlansByIdHead.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanRatePlansByIdHead($params: rateplanRatePlansByIdHead.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanRatePlansByIdHead($params: rateplanRatePlansByIdHead.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanRatePlansByIdHead.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.head<any>(`${this.basePath}/rateplan/v0-nsfw/rate-plans/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Replace a rate plan\n     * Use this call to modify a rate plan.&lt;br&gt;You must have at least one of these scopes: &#39;rateplans.manage, setup.manage&#39;.\n     * @param $params.id The id of the rate plan.\n     * @param $params.body The definition of the rate plan.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatePlansByIdPut($params: rateplanRatePlansByIdPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanRatePlansByIdPut($params: rateplanRatePlansByIdPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanRatePlansByIdPut($params: rateplanRatePlansByIdPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanRatePlansByIdPut($params: rateplanRatePlansByIdPut.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanRatePlansByIdPut.');\n        }\n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanRatePlansByIdPut.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.put<any>(`${this.basePath}/rateplan/v0-nsfw/rate-plans/${encodeURIComponent(String(id))}`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Delete multiple rate plans\n     * Use this call to delete multiple rate plans.&lt;br&gt;You must have at least one of these scopes: &#39;rateplans.delete, setup.manage&#39;.\n     * @param $params.ratePlanIds Comma separated list of rate plan IDs, at least one.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatePlansDelete($params: rateplanRatePlansDelete.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanRatePlansDelete($params: rateplanRatePlansDelete.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanRatePlansDelete($params: rateplanRatePlansDelete.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanRatePlansDelete($params: rateplanRatePlansDelete.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const ratePlanIds = $params.ratePlanIds;\n        if (ratePlanIds === null || ratePlanIds === undefined) {\n            throw new Error('Required parameter ratePlanIds was null or undefined when calling rateplanRatePlansDelete.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (ratePlanIds) {\n            queryParameters = queryParameters.set('ratePlanIds', ratePlanIds.join(COLLECTION_FORMATS['csv']));\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.delete<any>(`${this.basePath}/rateplan/v0-nsfw/rate-plans`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a rate plan list.\n     * Get the list of rate plans depending on client scopes.                  If a client has no additional scopes, only public rate plans are returned.   The &#39;rateplans.read-corporate&#39; scope adds corporate rate plans to the response.&lt;br&gt;You must have at least one of these scopes: &#39;rateplans.read, setup.read, setup.manage&#39;.\n     * @param $params.propertyId Return rate plans for the specific property\n     * @param $params.ratePlanCodes Return rate plans filtered by requested codes\n     * @param $params.includedServiceIds Return rate plans that have any of the requested included services\n     * @param $params.channelCodes Return rate plans that are sold though any of the specified channels\n     * @param $params.promoCodes Return rate plans that have any of the requested promo codes\n     * @param $params.companyIds Return rate plans filtered by requested companies\n     * @param $params.baseRatePlanIds Return rate plans derived from any of the specified rate plans\n     * @param $params.unitGroupIds Return rate plans with any of the specified unit groups\n     * @param $params.timeSliceDefinitionIds Return rate plans with any of the specified time slice definitions\n     * @param $params.unitGroupTypes Return rate plans with any of the specified unit group types\n     * @param $params.timeSliceTemplate The time slice template, defaults to &#39;over night&#39;\n     * @param $params.minGuaranteeTypes Return rate plans with any of the specified min guarantee types\n     * @param $params.cancellationPolicyIds Return rate plans with any of the specified cancellation policies\n     * @param $params.noShowPolicyIds Return rate plans with any of the specified no-show policies\n     * @param $params.isDerived Return only derived or base rate plans\n     * @param $params.derivationLevelFilter This will filter rate plans based on their derivation level&lt;br /&gt;You can provide an array of string expressions which all need to apply.&lt;br /&gt;Each expression has the form of &#39;OPERATION_VALUE&#39; where VALUE needs to be of the valid format of the property type and OPERATION can be:&lt;br /&gt;&#39;eq&#39; for equals&lt;br /&gt;&#39;neq&#39; for not equals&lt;br /&gt;&#39;lt&#39; for less than&lt;br /&gt;&#39;gt&#39; for greater than&lt;br /&gt;&#39;lte&#39; for less than or equals&lt;br /&gt;&#39;gte&#39; for greater than or equals&lt;br /&gt;For instance&lt;br /&gt;&#39;eq_5&#39; would mean the value should equal 5&lt;br /&gt;&#39;lte_7&#39; would mean the value should be less than or equal to 7\n     * @param $params.includeArchived Return archived rate plans. Defaults to false\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.pageNumber Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n     * @param $params.pageSize Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\n     * @param $params.expand List of all embedded resources that should be expanded in the response. Possible values are: property, unitGroup, cancellationPolicy, services, bookingPeriods, surcharges, ageCategories. All other values will be silently ignored.\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 rateplanRatePlansGet($params: rateplanRatePlansGet.Params, observe?: 'body', reportProgress?: boolean): Observable<RatePlanListModel|null>;\n    public rateplanRatePlansGet($params: rateplanRatePlansGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<RatePlanListModel|null>>;\n    public rateplanRatePlansGet($params: rateplanRatePlansGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<RatePlanListModel|null>>;\n    public rateplanRatePlansGet($params: rateplanRatePlansGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyId = $params.propertyId;\n        const ratePlanCodes = $params.ratePlanCodes;\n        const includedServiceIds = $params.includedServiceIds;\n        const channelCodes = $params.channelCodes;\n        const promoCodes = $params.promoCodes;\n        const companyIds = $params.companyIds;\n        const baseRatePlanIds = $params.baseRatePlanIds;\n        const unitGroupIds = $params.unitGroupIds;\n        const timeSliceDefinitionIds = $params.timeSliceDefinitionIds;\n        const unitGroupTypes = $params.unitGroupTypes;\n        const timeSliceTemplate = $params.timeSliceTemplate;\n        const minGuaranteeTypes = $params.minGuaranteeTypes;\n        const cancellationPolicyIds = $params.cancellationPolicyIds;\n        const noShowPolicyIds = $params.noShowPolicyIds;\n        const isDerived = $params.isDerived;\n        const derivationLevelFilter = $params.derivationLevelFilter;\n        const includeArchived = $params.includeArchived;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyId !== undefined && propertyId !== null) {\n            queryParameters = queryParameters.set('propertyId', <any>propertyId);\n        }\n        if (ratePlanCodes) {\n            queryParameters = queryParameters.set('ratePlanCodes', ratePlanCodes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (includedServiceIds) {\n            queryParameters = queryParameters.set('includedServiceIds', includedServiceIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (channelCodes) {\n            queryParameters = queryParameters.set('channelCodes', channelCodes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (promoCodes) {\n            queryParameters = queryParameters.set('promoCodes', promoCodes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (companyIds) {\n            queryParameters = queryParameters.set('companyIds', companyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (baseRatePlanIds) {\n            queryParameters = queryParameters.set('baseRatePlanIds', baseRatePlanIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupIds) {\n            queryParameters = queryParameters.set('unitGroupIds', unitGroupIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (timeSliceDefinitionIds) {\n            queryParameters = queryParameters.set('timeSliceDefinitionIds', timeSliceDefinitionIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupTypes) {\n            queryParameters = queryParameters.set('unitGroupTypes', unitGroupTypes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (timeSliceTemplate !== undefined && timeSliceTemplate !== null) {\n            queryParameters = queryParameters.set('timeSliceTemplate', <any>timeSliceTemplate);\n        }\n        if (minGuaranteeTypes) {\n            queryParameters = queryParameters.set('minGuaranteeTypes', minGuaranteeTypes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (cancellationPolicyIds) {\n            queryParameters = queryParameters.set('cancellationPolicyIds', cancellationPolicyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (noShowPolicyIds) {\n            queryParameters = queryParameters.set('noShowPolicyIds', noShowPolicyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (isDerived !== undefined && isDerived !== null) {\n            queryParameters = queryParameters.set('isDerived', <any>isDerived);\n        }\n        if (derivationLevelFilter) {\n            queryParameters = queryParameters.set('derivationLevelFilter', derivationLevelFilter.join(COLLECTION_FORMATS['csv']));\n        }\n        if (includeArchived !== undefined && includeArchived !== null) {\n            queryParameters = queryParameters.set('includeArchived', <any>includeArchived);\n        }\n        if (pageNumber !== undefined && pageNumber !== null) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n        if (pageSize !== undefined && pageSize !== null) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n        if (expand) {\n            queryParameters = queryParameters.set('expand', expand.join(COLLECTION_FORMATS['csv']));\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<RatePlanListModel|null>(`${this.basePath}/rateplan/v0-nsfw/rate-plans`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Allows to patch one or more rate plans\n     * Here is the list of operations that are currently allowed:  - Replace Name  - Replace Description  - Replace MinGuaranteeType  - Replace PriceCalculationMode  - Replace CancellationPolicy  - Replace NoShowPolicy  - Replace ChannelCodes  - Replace Companies  - Add, replace and remove PromoCode  - Add, replace and remove Restrictions  - Add, replace and remove BookingPeriods  - Add, replace and remove IsSubjectToCityTax  - Add, replace and remove PricingRule  - Add, replace and remove Surcharges  - Add, replace and remove AgeCategories  - Add, replace and remove IncludedServices  - Add/Replace/Remove/Update AccountingConfigs  - Add, replace and remove MarketSegment/Id&lt;br&gt;You must have at least one of these scopes: &#39;rateplans.manage, setup.manage&#39;.\n     * @param $params.ratePlanIds Comma separated list of rate plan IDs, at least one.\n     * @param $params.body Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatePlansPatch($params: rateplanRatePlansPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanRatePlansPatch($params: rateplanRatePlansPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanRatePlansPatch($params: rateplanRatePlansPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanRatePlansPatch($params: rateplanRatePlansPatch.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const ratePlanIds = $params.ratePlanIds;\n        if (ratePlanIds === null || ratePlanIds === undefined) {\n            throw new Error('Required parameter ratePlanIds was null or undefined when calling rateplanRatePlansPatch.');\n        }\n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanRatePlansPatch.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (ratePlanIds) {\n            queryParameters = queryParameters.set('ratePlanIds', ratePlanIds.join(COLLECTION_FORMATS['csv']));\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.patch<any>(`${this.basePath}/rateplan/v0-nsfw/rate-plans`,\n            body,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Create a rate plan\n     * Use this call to create a new rate plan. The rate plan will already contain empty rates, fill them later using PUT rates.&lt;br&gt;You must have at least one of these scopes: &#39;rateplans.create, setup.manage&#39;.\n     * @param $params.body The definition of the rate plan.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.idempotencyKey Unique key for safely retrying requests without accidentally performing the same operation twice.  We&#39;ll always send back the same response for requests made with the same key,  and keys can&#39;t be reused with different request parameters. Keys expire after 24 hours.\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 rateplanRatePlansPost($params: rateplanRatePlansPost.Params, observe?: 'body', reportProgress?: boolean): Observable<RatePlanCreatedModel>;\n    public rateplanRatePlansPost($params: rateplanRatePlansPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<RatePlanCreatedModel>>;\n    public rateplanRatePlansPost($params: rateplanRatePlansPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<RatePlanCreatedModel>>;\n    public rateplanRatePlansPost($params: rateplanRatePlansPost.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanRatePlansPost.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const idempotencyKey = $params.idempotencyKey;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n        if (idempotencyKey !== undefined && idempotencyKey !== null) {\n            headers = headers.set('Idempotency-Key', String(idempotencyKey));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.post<RatePlanCreatedModel>(`${this.basePath}/rateplan/v0-nsfw/rate-plans`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns number of rate plans\n     * Returns number of rate plans matching the filter criteria, and depending on client scopes                  If a client has no additional scopes, only public rate plans are counted.   The &#39;rateplans.read-corporate&#39; scope adds corporate rate plans to the result number.&lt;br&gt;You must have at least one of these scopes: &#39;rateplans.read, setup.read, setup.manage&#39;.\n     * @param $params.propertyId Return rate plans for the specific property\n     * @param $params.ratePlanCodes Return rate plans filtered by requested codes\n     * @param $params.includedServiceIds Return rate plans that have any of the requested included services\n     * @param $params.channelCodes Return rate plans that are sold though any of the specified channels\n     * @param $params.promoCodes Return rate plans that have any of the requested promo codes\n     * @param $params.companyIds Return rate plans filtered by requested companies\n     * @param $params.baseRatePlanIds Return rate plans derived from any of the specified rate plans\n     * @param $params.unitGroupIds Return rate plans with any of the specified unit groups\n     * @param $params.timeSliceDefinitionIds Return rate plans with any of the specified time slice definitions\n     * @param $params.unitGroupTypes Return rate plans with any of the specified unit group types\n     * @param $params.timeSliceTemplate The time slice template, defaults to &#39;over night&#39;\n     * @param $params.minGuaranteeTypes Return rate plans with any of the specified min guarantee types\n     * @param $params.cancellationPolicyIds Return rate plans with any of the specified cancellation policies\n     * @param $params.noShowPolicyIds Return rate plans with any of the specified no-show policies\n     * @param $params.isDerived Return only derived or base rate plans\n     * @param $params.derivationLevelFilter This will filter rate plans based on their derivation level&lt;br /&gt;You can provide an array of string expressions which all need to apply.&lt;br /&gt;Each expression has the form of &#39;OPERATION_VALUE&#39; where VALUE needs to be of the valid format of the property type and OPERATION can be:&lt;br /&gt;&#39;eq&#39; for equals&lt;br /&gt;&#39;neq&#39; for not equals&lt;br /&gt;&#39;lt&#39; for less than&lt;br /&gt;&#39;gt&#39; for greater than&lt;br /&gt;&#39;lte&#39; for less than or equals&lt;br /&gt;&#39;gte&#39; for greater than or equals&lt;br /&gt;For instance&lt;br /&gt;&#39;eq_5&#39; would mean the value should equal 5&lt;br /&gt;&#39;lte_7&#39; would mean the value should be less than or equal to 7\n     * @param $params.includeArchived Return archived rate plans. Defaults to false\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatePlanscountGet($params: rateplanRatePlanscountGet.Params, observe?: 'body', reportProgress?: boolean): Observable<CountModel>;\n    public rateplanRatePlanscountGet($params: rateplanRatePlanscountGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CountModel>>;\n    public rateplanRatePlanscountGet($params: rateplanRatePlanscountGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CountModel>>;\n    public rateplanRatePlanscountGet($params: rateplanRatePlanscountGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyId = $params.propertyId;\n        const ratePlanCodes = $params.ratePlanCodes;\n        const includedServiceIds = $params.includedServiceIds;\n        const channelCodes = $params.channelCodes;\n        const promoCodes = $params.promoCodes;\n        const companyIds = $params.companyIds;\n        const baseRatePlanIds = $params.baseRatePlanIds;\n        const unitGroupIds = $params.unitGroupIds;\n        const timeSliceDefinitionIds = $params.timeSliceDefinitionIds;\n        const unitGroupTypes = $params.unitGroupTypes;\n        const timeSliceTemplate = $params.timeSliceTemplate;\n        const minGuaranteeTypes = $params.minGuaranteeTypes;\n        const cancellationPolicyIds = $params.cancellationPolicyIds;\n        const noShowPolicyIds = $params.noShowPolicyIds;\n        const isDerived = $params.isDerived;\n        const derivationLevelFilter = $params.derivationLevelFilter;\n        const includeArchived = $params.includeArchived;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyId !== undefined && propertyId !== null) {\n            queryParameters = queryParameters.set('propertyId', <any>propertyId);\n        }\n        if (ratePlanCodes) {\n            queryParameters = queryParameters.set('ratePlanCodes', ratePlanCodes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (includedServiceIds) {\n            queryParameters = queryParameters.set('includedServiceIds', includedServiceIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (channelCodes) {\n            queryParameters = queryParameters.set('channelCodes', channelCodes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (promoCodes) {\n            queryParameters = queryParameters.set('promoCodes', promoCodes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (companyIds) {\n            queryParameters = queryParameters.set('companyIds', companyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (baseRatePlanIds) {\n            queryParameters = queryParameters.set('baseRatePlanIds', baseRatePlanIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupIds) {\n            queryParameters = queryParameters.set('unitGroupIds', unitGroupIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (timeSliceDefinitionIds) {\n            queryParameters = queryParameters.set('timeSliceDefinitionIds', timeSliceDefinitionIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupTypes) {\n            queryParameters = queryParameters.set('unitGroupTypes', unitGroupTypes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (timeSliceTemplate !== undefined && timeSliceTemplate !== null) {\n            queryParameters = queryParameters.set('timeSliceTemplate', <any>timeSliceTemplate);\n        }\n        if (minGuaranteeTypes) {\n            queryParameters = queryParameters.set('minGuaranteeTypes', minGuaranteeTypes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (cancellationPolicyIds) {\n            queryParameters = queryParameters.set('cancellationPolicyIds', cancellationPolicyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (noShowPolicyIds) {\n            queryParameters = queryParameters.set('noShowPolicyIds', noShowPolicyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (isDerived !== undefined && isDerived !== null) {\n            queryParameters = queryParameters.set('isDerived', <any>isDerived);\n        }\n        if (derivationLevelFilter) {\n            queryParameters = queryParameters.set('derivationLevelFilter', derivationLevelFilter.join(COLLECTION_FORMATS['csv']));\n        }\n        if (includeArchived !== undefined && includeArchived !== null) {\n            queryParameters = queryParameters.set('includeArchived', <any>includeArchived);\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<CountModel>(`${this.basePath}/rateplan/v0-nsfw/rate-plans/$count`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\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, HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { dateToApaleoIso } from '@apaleo/angular-api-proxy-common';\n\nimport { MessageItemCollection } from '../model/messageItemCollection';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\ntype FormParams = URLSearchParams | FormData | HttpParams;\n\nfunction append(formParams: FormParams, param: string, value: any) {\n    if (formParams instanceof FormData)\n    {\n        formParams.append(param, value);\n        return formParams;\n    }\n    else if (formParams instanceof HttpParams)\n    {\n        return formParams.append(param, value);        \n    }\n    formParams.append(param, value);\n    return formParams;    \n};\n\n\nexport namespace rateplanRatePlanActionsByIdArchivePut {\n    export interface Params {\n    \n        /**\n        * Id of the rate plan that should be archived.\n        */\n        id: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\n\n@Injectable()\nexport class RatePlanActionsService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(\n        protected httpClient: HttpClient, \n        @Optional() @Inject(BASE_PATH) basePath: string, \n        @Optional() configuration: Configuration\n    ) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n            this.basePath = basePath || configuration.basePath || this.basePath;\n        }\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    /**\n     * Archive a rate plan\n     * Archive the specific rate plan.  This action makes rate plan unavailable for all operations and cannot be undone.&lt;br&gt;You must have at least one of these scopes: &#39;rateplans.manage, setup.manage&#39;.\n     * @param $params.id Id of the rate plan that should be archived.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanRatePlanActionsByIdArchivePut($params: rateplanRatePlanActionsByIdArchivePut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanRatePlanActionsByIdArchivePut($params: rateplanRatePlanActionsByIdArchivePut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanRatePlanActionsByIdArchivePut($params: rateplanRatePlanActionsByIdArchivePut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanRatePlanActionsByIdArchivePut($params: rateplanRatePlanActionsByIdArchivePut.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanRatePlanActionsByIdArchivePut.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.put<any>(`${this.basePath}/rateplan/v0-nsfw/rate-plan-actions/${encodeURIComponent(String(id))}/archive`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\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, HttpResponse, HttpEvent } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { dateToApaleoIso } from '@apaleo/angular-api-proxy-common';\n\nimport { CountModel } from '../model/countModel';\nimport { CreateServiceModel } from '../model/createServiceModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { Operation } from '../model/operation';\nimport { ServiceCreatedModel } from '../model/serviceCreatedModel';\nimport { ServiceListModel } from '../model/serviceListModel';\nimport { ServiceModel } from '../model/serviceModel';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\ntype FormParams = URLSearchParams | FormData | HttpParams;\n\nfunction append(formParams: FormParams, param: string, value: any) {\n    if (formParams instanceof FormData)\n    {\n        formParams.append(param, value);\n        return formParams;\n    }\n    else if (formParams instanceof HttpParams)\n    {\n        return formParams.append(param, value);        \n    }\n    formParams.append(param, value);\n    return formParams;    \n};\n\n\nexport namespace rateplanServicesByIdDelete {\n    export interface Params {\n    \n        /**\n        * The id of the service.\n        */\n        id: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanServicesByIdGet {\n    export interface Params {\n    \n        /**\n        * The id of the service.\n        */\n        id: string;\n    \n        /**\n        * 'all' or comma separated list of two-letter language codes (ISO Alpha-2)\n        */\n        languages?: Array<string>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * List of all embedded resources that should be expanded in the response. Possible values are: property. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type ExpandEnum = 'property';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['property'] as ExpandEnum[]);\n    \n}\nexport namespace rateplanServicesByIdHead {\n    export interface Params {\n    \n        /**\n        * The id of the service.\n        */\n        id: string;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanServicesByIdPatch {\n    export interface Params {\n    \n        /**\n        * The id of the service.\n        */\n        id: string;\n    \n        /**\n        * Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n        */\n        body: Array<Operation>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n}\nexport namespace rateplanServicesGet {\n    export interface Params {\n    \n        /**\n        * Filter services by the specified property\n        */\n        propertyId?: string;\n    \n        /**\n        * This will filter all services for the provided free text.  Currently it only looks up if the service name contains one of the provided values.\n        */\n        textSearch?: string;\n    \n        /**\n        * If set to true, return only services that can be sold as extras. Otherwise, it returns both, extras, and include-only.\n        */\n        onlySoldAsExtras?: boolean;\n    \n        /**\n        * The channel codes the service is sold through\n        */\n        channelCodes?: Array<ChannelCodesEnum>;\n    \n        /**\n        * The service types offered\n        */\n        serviceTypes?: Array<ServiceTypesEnum>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n        */\n        pageNumber?: number;\n    \n        /**\n        * Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\n        */\n        pageSize?: number;\n    \n        /**\n        * List of all embedded resources that should be expanded in the response. Possible values are: property. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type ChannelCodesEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodesEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodesEnum[]);\n    \n    export type ServiceTypesEnum = 'Other' | 'Accommodation' | 'FoodAndBeverages';\n\n    export const ServiceTypesEnumValues = Object.freeze(\n        ['Other', 'Accommodation', 'FoodAndBeverages'] as ServiceTypesEnum[]);\n    \n    export type ExpandEnum = 'property';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['property'] as ExpandEnum[]);\n    \n}\nexport namespace rateplanServicesPost {\n    export interface Params {\n    \n        /**\n        * The definition of the service.\n        */\n        body: CreateServiceModel;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n        /**\n        * Unique key for safely retrying requests without accidentally performing the same operation twice.  We'll always send back the same response for requests made with the same key,  and keys can't be reused with different request parameters. Keys expire after 24 hours.\n        */\n        idempotencyKey?: string;\n    \n    }\n    \n}\nexport namespace rateplanServicescountGet {\n    export interface Params {\n    \n        /**\n        * Filter services by the specified property\n        */\n        propertyId?: string;\n    \n        /**\n        * This will filter all services for the provided free text.  Currently it only looks up if the service name contains one of the provided values.\n        */\n        textSearch?: string;\n    \n        /**\n        * If set to true, return only services that can be sold as extras. Otherwise, it returns both, extras, and include-only.\n        */\n        onlySoldAsExtras?: boolean;\n    \n        /**\n        * The channel codes the service is sold through\n        */\n        channelCodes?: Array<ChannelCodesEnum>;\n    \n        /**\n        * The service types offered\n        */\n        serviceTypes?: Array<ServiceTypesEnum>;\n    \n        /**\n        * Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>.This header will only take effect on development environments.\n        */\n        apaleoCurrentDateTime?: Date;\n    \n    }\n    \n    export type ChannelCodesEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodesEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodesEnum[]);\n    \n    export type ServiceTypesEnum = 'Other' | 'Accommodation' | 'FoodAndBeverages';\n\n    export const ServiceTypesEnumValues = Object.freeze(\n        ['Other', 'Accommodation', 'FoodAndBeverages'] as ServiceTypesEnum[]);\n    \n}\n\n@Injectable()\nexport class ServiceService {\n\n    protected basePath = 'https://localhost';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(\n        protected httpClient: HttpClient, \n        @Optional() @Inject(BASE_PATH) basePath: string, \n        @Optional() configuration: Configuration\n    ) {\n        if (basePath) {\n            this.basePath = basePath;\n        }\n        if (configuration) {\n            this.configuration = configuration;\n            this.basePath = basePath || configuration.basePath || this.basePath;\n        }\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    /**\n     * Delete a service\n     * Use this call to delete a service.&lt;br&gt;You must have at least one of these scopes: &#39;services.create, setup.manage&#39;.\n     * @param $params.id The id of the service.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanServicesByIdDelete($params: rateplanServicesByIdDelete.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanServicesByIdDelete($params: rateplanServicesByIdDelete.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanServicesByIdDelete($params: rateplanServicesByIdDelete.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanServicesByIdDelete($params: rateplanServicesByIdDelete.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanServicesByIdDelete.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.delete<any>(`${this.basePath}/rateplan/v0-nsfw/services/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get a specific service.\n     * Get a specific service.&lt;br&gt;You must have at least one of these scopes: &#39;services.read, setup.read, setup.manage&#39;.\n     * @param $params.id The id of the service.\n     * @param $params.languages &#39;all&#39; or comma separated list of two-letter language codes (ISO Alpha-2)\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.expand List of all embedded resources that should be expanded in the response. Possible values are: property. All other values will be silently ignored.\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 rateplanServicesByIdGet($params: rateplanServicesByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<ServiceModel>;\n    public rateplanServicesByIdGet($params: rateplanServicesByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ServiceModel>>;\n    public rateplanServicesByIdGet($params: rateplanServicesByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ServiceModel>>;\n    public rateplanServicesByIdGet($params: rateplanServicesByIdGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanServicesByIdGet.');\n        }\n        const languages = $params.languages;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (languages) {\n            queryParameters = queryParameters.set('languages', languages.join(COLLECTION_FORMATS['csv']));\n        }\n        if (expand) {\n            queryParameters = queryParameters.set('expand', expand.join(COLLECTION_FORMATS['csv']));\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<ServiceModel>(`${this.basePath}/rateplan/v0-nsfw/services/${encodeURIComponent(String(id))}`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Check if a service exists\n     * Check if a service exists by id.&lt;br&gt;You must have at least one of these scopes: &#39;services.read, setup.read, setup.manage&#39;.\n     * @param $params.id The id of the service.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanServicesByIdHead($params: rateplanServicesByIdHead.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanServicesByIdHead($params: rateplanServicesByIdHead.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanServicesByIdHead($params: rateplanServicesByIdHead.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanServicesByIdHead($params: rateplanServicesByIdHead.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanServicesByIdHead.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.head<any>(`${this.basePath}/rateplan/v0-nsfw/services/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Modify a service.\n     * Here is the list of operations that are currently allowed:  - Replace Name  - Replace Description  - Replace DefaultGrossPrice  - Replace PricingUnit  - Replace PostNextDay  - Replace Availability  - Add/Replace/Remove/Update AccountingConfigs  - Replace ChannelCodes  - Replace AgeCategoryId&lt;br&gt;You must have at least one of these scopes: &#39;services.manage, setup.manage&#39;.\n     * @param $params.id The id of the service.\n     * @param $params.body Define the list of operations to be applied to the resource. Learn more about JSON Patch here: http://jsonpatch.com/.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanServicesByIdPatch($params: rateplanServicesByIdPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public rateplanServicesByIdPatch($params: rateplanServicesByIdPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public rateplanServicesByIdPatch($params: rateplanServicesByIdPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public rateplanServicesByIdPatch($params: rateplanServicesByIdPatch.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const id = $params.id;\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling rateplanServicesByIdPatch.');\n        }\n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanServicesByIdPatch.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.patch<any>(`${this.basePath}/rateplan/v0-nsfw/services/${encodeURIComponent(String(id))}`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get all services.\n     * Get the list of services.&lt;br&gt;You must have at least one of these scopes: &#39;services.read, setup.read, setup.manage&#39;.\n     * @param $params.propertyId Filter services by the specified property\n     * @param $params.textSearch This will filter all services for the provided free text.  Currently it only looks up if the service name contains one of the provided values.\n     * @param $params.onlySoldAsExtras If set to true, return only services that can be sold as extras. Otherwise, it returns both, extras, and include-only.\n     * @param $params.channelCodes The channel codes the service is sold through\n     * @param $params.serviceTypes The service types offered\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.pageNumber Page number, 1-based. Default value is 1 (if this is not set or not positive). Results in 204 if there are no items on that page.\n     * @param $params.pageSize Page size. If this is not set or not positive, the pageNumber is ignored and all items are returned.\n     * @param $params.expand List of all embedded resources that should be expanded in the response. Possible values are: property. All other values will be silently ignored.\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 rateplanServicesGet($params: rateplanServicesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<ServiceListModel|null>;\n    public rateplanServicesGet($params: rateplanServicesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ServiceListModel|null>>;\n    public rateplanServicesGet($params: rateplanServicesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ServiceListModel|null>>;\n    public rateplanServicesGet($params: rateplanServicesGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyId = $params.propertyId;\n        const textSearch = $params.textSearch;\n        const onlySoldAsExtras = $params.onlySoldAsExtras;\n        const channelCodes = $params.channelCodes;\n        const serviceTypes = $params.serviceTypes;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyId !== undefined && propertyId !== null) {\n            queryParameters = queryParameters.set('propertyId', <any>propertyId);\n        }\n        if (textSearch !== undefined && textSearch !== null) {\n            queryParameters = queryParameters.set('textSearch', <any>textSearch);\n        }\n        if (onlySoldAsExtras !== undefined && onlySoldAsExtras !== null) {\n            queryParameters = queryParameters.set('onlySoldAsExtras', <any>onlySoldAsExtras);\n        }\n        if (channelCodes) {\n            queryParameters = queryParameters.set('channelCodes', channelCodes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (serviceTypes) {\n            queryParameters = queryParameters.set('serviceTypes', serviceTypes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (pageNumber !== undefined && pageNumber !== null) {\n            queryParameters = queryParameters.set('pageNumber', <any>pageNumber);\n        }\n        if (pageSize !== undefined && pageSize !== null) {\n            queryParameters = queryParameters.set('pageSize', <any>pageSize);\n        }\n        if (expand) {\n            queryParameters = queryParameters.set('expand', expand.join(COLLECTION_FORMATS['csv']));\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<ServiceListModel|null>(`${this.basePath}/rateplan/v0-nsfw/services`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Create a service.\n     * Create a service.&lt;br&gt;You must have at least one of these scopes: &#39;services.create, setup.manage&#39;.\n     * @param $params.body The definition of the service.\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\n     * @param $params.idempotencyKey Unique key for safely retrying requests without accidentally performing the same operation twice.  We&#39;ll always send back the same response for requests made with the same key,  and keys can&#39;t be reused with different request parameters. Keys expire after 24 hours.\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 rateplanServicesPost($params: rateplanServicesPost.Params, observe?: 'body', reportProgress?: boolean): Observable<ServiceCreatedModel>;\n    public rateplanServicesPost($params: rateplanServicesPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ServiceCreatedModel>>;\n    public rateplanServicesPost($params: rateplanServicesPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ServiceCreatedModel>>;\n    public rateplanServicesPost($params: rateplanServicesPost.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const body = $params.body;\n        if (body === null || body === undefined) {\n            throw new Error('Required parameter body was null or undefined when calling rateplanServicesPost.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const idempotencyKey = $params.idempotencyKey;\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n        if (idempotencyKey !== undefined && idempotencyKey !== null) {\n            headers = headers.set('Idempotency-Key', String(idempotencyKey));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\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            headers = headers.set('Content-Type', httpContentTypeSelected);\n        }\n\n        return this.httpClient.post<ServiceCreatedModel>(`${this.basePath}/rateplan/v0-nsfw/services`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns number of services.\n     * Returns number of services&lt;br&gt;You must have at least one of these scopes: &#39;services.read, setup.read, setup.manage&#39;.\n     * @param $params.propertyId Filter services by the specified property\n     * @param $params.textSearch This will filter all services for the provided free text.  Currently it only looks up if the service name contains one of the provided values.\n     * @param $params.onlySoldAsExtras If set to true, return only services that can be sold as extras. Otherwise, it returns both, extras, and include-only.\n     * @param $params.channelCodes The channel codes the service is sold through\n     * @param $params.serviceTypes The service types offered\n     * @param $params.apaleoCurrentDateTime Use this parameter to override the current date and time for the current request. Specify a date and time (without fractional second part) in UTC or with UTC offset as defined in the &lt;a href&#x3D;\\&quot;https://en.wikipedia.org/wiki/ISO_8601\\&quot;&gt;ISO8601:2004&lt;/a&gt;.This header will only take effect on development environments.\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 rateplanServicescountGet($params: rateplanServicescountGet.Params, observe?: 'body', reportProgress?: boolean): Observable<CountModel>;\n    public rateplanServicescountGet($params: rateplanServicescountGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CountModel>>;\n    public rateplanServicescountGet($params: rateplanServicescountGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CountModel>>;\n    public rateplanServicescountGet($params: rateplanServicescountGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyId = $params.propertyId;\n        const textSearch = $params.textSearch;\n        const onlySoldAsExtras = $params.onlySoldAsExtras;\n        const channelCodes = $params.channelCodes;\n        const serviceTypes = $params.serviceTypes;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyId !== undefined && propertyId !== null) {\n            queryParameters = queryParameters.set('propertyId', <any>propertyId);\n        }\n        if (textSearch !== undefined && textSearch !== null) {\n            queryParameters = queryParameters.set('textSearch', <any>textSearch);\n        }\n        if (onlySoldAsExtras !== undefined && onlySoldAsExtras !== null) {\n            queryParameters = queryParameters.set('onlySoldAsExtras', <any>onlySoldAsExtras);\n        }\n        if (channelCodes) {\n            queryParameters = queryParameters.set('channelCodes', channelCodes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (serviceTypes) {\n            queryParameters = queryParameters.set('serviceTypes', serviceTypes.join(COLLECTION_FORMATS['csv']));\n        }\n\n        let headers = this.defaultHeaders;\n        if (apaleoCurrentDateTime !== undefined && apaleoCurrentDateTime !== null) {\n            headers = headers.set('Apaleo-Current-DateTime', String(apaleoCurrentDateTime));\n        }\n\n        // authentication (oauth2) required\n        if (this.configuration.accessToken) {\n            const accessToken = typeof this.configuration.accessToken === 'function'\n                ? this.configuration.accessToken()\n                : this.configuration.accessToken;\n            headers = headers.set('Authorization', 'Bearer ' + accessToken);\n        }\n\n        // to determine the Accept header\n        let httpHeaderAccepts: string[] = [\n            'application/json'\n        ];\n        const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        if (httpHeaderAcceptSelected != undefined) {\n            headers = headers.set('Accept', httpHeaderAcceptSelected);\n        }\n\n        // to determine the Content-Type header\n        const consumes: string[] = [\n        ];\n\n        return this.httpClient.get<CountModel>(`${this.basePath}/rateplan/v0-nsfw/services/$count`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","export * from './ageCategory.service';\nimport { AgeCategoryService } from './ageCategory.service';\nexport * from './cancellationPolicy.service';\nimport { CancellationPolicyService } from './cancellationPolicy.service';\nexport * from './company.service';\nimport { CompanyService } from './company.service';\nexport * from './corporateCodes.service';\nimport { CorporateCodesService } from './corporateCodes.service';\nexport * from './noShowPolicy.service';\nimport { NoShowPolicyService } from './noShowPolicy.service';\nexport * from './promoCodes.service';\nimport { PromoCodesService } from './promoCodes.service';\nexport * from './rate.service';\nimport { RateService } from './rate.service';\nexport * from './ratePlan.service';\nimport { RatePlanService } from './ratePlan.service';\nexport * from './ratePlanActions.service';\nimport { RatePlanActionsService } from './ratePlanActions.service';\nexport * from './service.service';\nimport { ServiceService } from './service.service';\nexport const APIS = [AgeCategoryService, CancellationPolicyService, CompanyService, CorporateCodesService, NoShowPolicyService, PromoCodesService, RateService, RatePlanService, RatePlanActionsService, ServiceService];\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AccountingConfigModel { \n    /**\n     * The VAT type\n     */\n    vatType: AccountingConfigModel.VatTypeEnum;\n    /**\n     * The service type\n     */\n    serviceType: AccountingConfigModel.ServiceTypeEnum;\n    /**\n     * The sub-accounts id\n     */\n    subAccountId?: string;\n    /**\n     * Which date this configuration is valid from\n     */\n    validFrom: string;\n}\nexport namespace AccountingConfigModel {\n    export type VatTypeEnum = 'Null' | 'VeryReduced' | 'Reduced' | 'Normal' | 'Without' | 'Special' | 'ReducedCovid19' | 'NormalCovid19' | 'Mixed';\n    export const VatTypeEnumValues = Object.freeze(\n        ['Null', 'VeryReduced', 'Reduced', 'Normal', 'Without', 'Special', 'ReducedCovid19', 'NormalCovid19', 'Mixed'] as VatTypeEnum[]);\n    export type ServiceTypeEnum = 'Other' | 'Accommodation' | 'FoodAndBeverages';\n    export const ServiceTypeEnumValues = Object.freeze(\n        ['Other', 'Accommodation', 'FoodAndBeverages'] as ServiceTypeEnum[]);\n}\n\nexport namespace AccountingConfigModel {\n    export const $metaData: ClassMetaData<AccountingConfigModel> = { \n        vatType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: VatTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        serviceType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ServiceTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        subAccountId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        validFrom: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AddressModel { \n    addressLine1: string;\n    addressLine2?: string;\n    postalCode: string;\n    city: string;\n    regionCode?: string;\n    countryCode: string;\n}\n\nexport namespace AddressModel {\n    export const $metaData: ClassMetaData<AddressModel> = { \n        addressLine1: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        addressLine2: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        postalCode: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        city: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        regionCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        countryCode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AgeCategoryCreatedModel { \n    /**\n     * The age category id\n     */\n    id: string;\n}\n\nexport namespace AgeCategoryCreatedModel {\n    export const $metaData: ClassMetaData<AgeCategoryCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AgeCategoryItemModel { \n    /**\n     * The age category id\n     */\n    id: string;\n    /**\n     * The code for the age category\n     */\n    code: string;\n    /**\n     * The id of the property for which the age category will be created\n     */\n    propertyId: string;\n    /**\n     * The name for the age category\n     */\n    name: string;\n    /**\n     * The minimum age for the age category. The specified value is included in the age range\n     */\n    minAge: number;\n    /**\n     * The maximum age for the age category. The specified value is included in the age range\n     */\n    maxAge: number;\n}\n\nexport namespace AgeCategoryItemModel {\n    export const $metaData: ClassMetaData<AgeCategoryItemModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        minAge: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        maxAge: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AgeCategoryItemModel } from './ageCategoryItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AgeCategoryListModel { \n    /**\n     * List of age categories\n     */\n    ageCategories: Array<AgeCategoryItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace AgeCategoryListModel {\n    export const $metaData: ClassMetaData<AgeCategoryListModel> = { \n        ageCategories: Object.freeze({ \n            isRequired: true,\n            type: 'Array<AgeCategoryItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AgeCategoryModel { \n    /**\n     * The age category id\n     */\n    id: string;\n    /**\n     * The code for the age category\n     */\n    code: string;\n    /**\n     * The id of the property for which the age category will be created\n     */\n    propertyId: string;\n    /**\n     * The name for the age category\n     */\n    name: { [key: string]: string; };\n    /**\n     * The minimum age for the age category. The specified value is included in the age range\n     */\n    minAge: number;\n    /**\n     * The maximum age for the age category. The specified value is included in the age range\n     */\n    maxAge: number;\n}\n\nexport namespace AgeCategoryModel {\n    export const $metaData: ClassMetaData<AgeCategoryModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        minAge: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        maxAge: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AgeCategorySurchargeModel { \n    /**\n     * The number of adults\n     */\n    adults: number;\n    /**\n     * The absolute value in the currency of the rate plan as surcharge for each child accompanied by the given number of 'adults'.  The minimum value is 0.\n     */\n    value: number;\n}\n\nexport namespace AgeCategorySurchargeModel {\n    export const $metaData: ClassMetaData<AgeCategorySurchargeModel> = { \n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        value: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AvailabilityModel { \n    /**\n     * You can choose if the service will only be offered  for the arrival or departure time slice like early check-in or a final cleaning service. You can also define  a service that is available to be booked for the whole stay. The property defaults to 'Daily'.\n     */\n    mode: AvailabilityModel.ModeEnum;\n    /**\n     * Quota/Limit for service. By default service is unlimited.\n     */\n    quantity?: number;\n    /**\n     * You can choose if the service should be available for specific days of the week\n     */\n    daysOfWeek?: Array<AvailabilityModel.DaysOfWeekEnum>;\n}\nexport namespace AvailabilityModel {\n    export type ModeEnum = 'Arrival' | 'Departure' | 'Daily';\n    export const ModeEnumValues = Object.freeze(\n        ['Arrival', 'Departure', 'Daily'] as ModeEnum[]);\n    export type DaysOfWeekEnum = 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday';\n    export const DaysOfWeekEnumValues = Object.freeze(\n        ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] as DaysOfWeekEnum[]);\n}\n\nexport namespace AvailabilityModel {\n    export const $metaData: ClassMetaData<AvailabilityModel> = { \n        mode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ModeEnumValues,\n            isPrimitiveType: true,\n        }),\n        quantity: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        daysOfWeek: Object.freeze({ \n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface MonetaryValueModel { \n    amount: number;\n    currency: string;\n}\n\nexport namespace MonetaryValueModel {\n    export const $metaData: ClassMetaData<MonetaryValueModel> = { \n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        currency: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RateRestrictionsModel { \n    /**\n     * The minimum length of stay in order to book the rate. If at least this number  of time slices are covered by the stay duration the rate will be offered.\n     */\n    minLengthOfStay?: number;\n    /**\n     * The maximum length of stay in order to book the rate. If not more than this number  of time slices are covered by the stay duration the rate will be offered.\n     */\n    maxLengthOfStay?: number;\n    /**\n     * Whether the rate can be booked for a stay-through reservation\n     */\n    closed: boolean;\n    /**\n     * Whether the rate can be booked on the reservation's arrival date\n     */\n    closedOnArrival: boolean;\n    /**\n     * Whether the rate can be booked on the reservation's departure date\n     */\n    closedOnDeparture: boolean;\n}\n\nexport namespace RateRestrictionsModel {\n    export const $metaData: ClassMetaData<RateRestrictionsModel> = { \n        minLengthOfStay: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        maxLengthOfStay: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        closed: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        closedOnArrival: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        closedOnDeparture: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { CalculatedRateModel } from './calculatedRateModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { RateRestrictionsModel } from './rateRestrictionsModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BatchRateItemModel { \n    /**\n     * The rate plan id\n     */\n    ratePlanId: string;\n    /**\n     * Date and time the rate begins<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    from: Date;\n    /**\n     * Date and time the rate ends<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    to: Date;\n    price?: MonetaryValueModel;\n    includedServicesPrice?: MonetaryValueModel;\n    /**\n     * A list of prices for occupancies 2 or higher. Only set, if the rate plan defines surcharges for different occupancies\n     */\n    calculatedPrices?: Array<CalculatedRateModel>;\n    restrictions?: RateRestrictionsModel;\n}\n\nexport namespace BatchRateItemModel {\n    export const $metaData: ClassMetaData<BatchRateItemModel> = { \n        ratePlanId: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        from: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        to: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        price: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        includedServicesPrice: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        calculatedPrices: Object.freeze({ \n            type: 'Array<CalculatedRateModel>',\n            isListContainer: true,\n        }),\n        restrictions: Object.freeze({ \n            type: 'RateRestrictionsModel',\n            metaData: RateRestrictionsModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { BatchRateItemModel } from './batchRateItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BatchRateListModel { \n    /**\n     * List of rates\n     */\n    rates: Array<BatchRateItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace BatchRateListModel {\n    export const $metaData: ClassMetaData<BatchRateListModel> = { \n        rates: Object.freeze({ \n            isRequired: true,\n            type: 'Array<BatchRateItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BookingPeriodModel { \n    /**\n     * Start of booking period<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    from: Date;\n    /**\n     * End of booking period<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    to: Date;\n}\n\nexport namespace BookingPeriodModel {\n    export const $metaData: ClassMetaData<BookingPeriodModel> = { \n        from: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        to: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PeriodModel { \n    /**\n     * The number of hours within the period\n     */\n    hours?: number;\n    /**\n     * The number of days within the period\n     */\n    days?: number;\n    /**\n     * The number of months within the period\n     */\n    months?: number;\n}\n\nexport namespace PeriodModel {\n    export const $metaData: ClassMetaData<PeriodModel> = { \n        hours: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        days: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        months: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { PeriodModel } from './periodModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BookingRestrictionsModel { \n    minAdvance?: PeriodModel;\n    maxAdvance?: PeriodModel;\n    /**\n     * Time of day until the late booking can be made for this rate plan  Restrictions:  - the time has to be between the check-in (excl.) and check-out time (excl.)  - can only be set, if MinAdvance is not set<br />A time (without fractional second part) as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    lateBookingUntil?: string;\n}\n\nexport namespace BookingRestrictionsModel {\n    export const $metaData: ClassMetaData<BookingRestrictionsModel> = { \n        minAdvance: Object.freeze({ \n            type: 'PeriodModel',\n            metaData: PeriodModel.$metaData\n        }),\n        maxAdvance: Object.freeze({ \n            type: 'PeriodModel',\n            metaData: PeriodModel.$metaData\n        }),\n        lateBookingUntil: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CalculatedRateModel { \n    /**\n     * Number of adults this rate is valid for\n     */\n    adults: number;\n    price: MonetaryValueModel;\n    includedServicesPrice?: MonetaryValueModel;\n}\n\nexport namespace CalculatedRateModel {\n    export const $metaData: ClassMetaData<CalculatedRateModel> = { \n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        price: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        includedServicesPrice: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CancellationPolicyCreatedModel { \n    /**\n     * The cancellation policy ID\n     */\n    id: string;\n}\n\nexport namespace CancellationPolicyCreatedModel {\n    export const $metaData: ClassMetaData<CancellationPolicyCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PercentValueModel { \n    /**\n     * Percent to take from the base. Must be between 0 and 100.\n     */\n    percent: number;\n    /**\n     * If set, limits the calculation base to the specified number of time slices, starting from the beginning.   If not set, the entire stay will be used as a base.\n     */\n    limit?: number;\n    /**\n     * Services included in the calculation base. If none are set, only charges for the unit will be used.   The services are only included, if they are part of the rate plan. Extra services are ignored.\n     */\n    includeServiceIds?: Array<string>;\n}\n\nexport namespace PercentValueModel {\n    export const $metaData: ClassMetaData<PercentValueModel> = { \n        percent: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        limit: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        includeServiceIds: Object.freeze({ \n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { PercentValueModel } from './percentValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface FeeDetailsModel { \n    /**\n     * VAT that applies for the fee\n     */\n    vatType: FeeDetailsModel.VatTypeEnum;\n    fixedValue?: MonetaryValueModel;\n    percentValue?: PercentValueModel;\n}\nexport namespace FeeDetailsModel {\n    export type VatTypeEnum = 'Null' | 'VeryReduced' | 'Reduced' | 'Normal' | 'Without' | 'Special' | 'ReducedCovid19' | 'NormalCovid19' | 'Mixed';\n    export const VatTypeEnumValues = Object.freeze(\n        ['Null', 'VeryReduced', 'Reduced', 'Normal', 'Without', 'Special', 'ReducedCovid19', 'NormalCovid19', 'Mixed'] as VatTypeEnum[]);\n}\n\nexport namespace FeeDetailsModel {\n    export const $metaData: ClassMetaData<FeeDetailsModel> = { \n        vatType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: VatTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        fixedValue: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        percentValue: Object.freeze({ \n            type: 'PercentValueModel',\n            metaData: PercentValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { FeeDetailsModel } from './feeDetailsModel';\nimport { PeriodModel } from './periodModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CancellationPolicyItemModel { \n    /**\n     * Id\n     */\n    id: string;\n    /**\n     * Name\n     */\n    name: string;\n    /**\n     * The code for the cancellation policy\n     */\n    code: string;\n    /**\n     * Description\n     */\n    description: string;\n    /**\n     * The id of the property where the cancellation policy was created\n     */\n    propertyId: string;\n    periodFromReference: PeriodModel;\n    /**\n     * The due date for the cancellation policy will be calculated based on this reference point, and the defined time period.      Examples:   - 1 day and 12 hours prior to arrival   - 0 prior to arrival (meaning, cancellations are always free)   - 24 hours after booking   - 0 after booking (meaning, cancellations ar never free)\n     */\n    reference: CancellationPolicyItemModel.ReferenceEnum;\n    fee: FeeDetailsModel;\n}\nexport namespace CancellationPolicyItemModel {\n    export type ReferenceEnum = 'PriorToArrival' | 'AfterBooking';\n    export const ReferenceEnumValues = Object.freeze(\n        ['PriorToArrival', 'AfterBooking'] as ReferenceEnum[]);\n}\n\nexport namespace CancellationPolicyItemModel {\n    export const $metaData: ClassMetaData<CancellationPolicyItemModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        periodFromReference: Object.freeze({ \n            isRequired: true,\n            type: 'PeriodModel',\n            metaData: PeriodModel.$metaData\n        }),\n        reference: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ReferenceEnumValues,\n            isPrimitiveType: true,\n        }),\n        fee: Object.freeze({ \n            isRequired: true,\n            type: 'FeeDetailsModel',\n            metaData: FeeDetailsModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { CancellationPolicyItemModel } from './cancellationPolicyItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CancellationPolicyListModel { \n    /**\n     * List of cancellation policies\n     */\n    cancellationPolicies: Array<CancellationPolicyItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace CancellationPolicyListModel {\n    export const $metaData: ClassMetaData<CancellationPolicyListModel> = { \n        cancellationPolicies: Object.freeze({ \n            isRequired: true,\n            type: 'Array<CancellationPolicyItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { FeeDetailsModel } from './feeDetailsModel';\nimport { PeriodModel } from './periodModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CancellationPolicyModel { \n    /**\n     * The cancellation policy id\n     */\n    id: string;\n    /**\n     * The code for the policy\n     */\n    code: string;\n    /**\n     * The name for the cancellation policy\n     */\n    name: { [key: string]: string; };\n    /**\n     * The description for the cancellation policy\n     */\n    description: { [key: string]: string; };\n    /**\n     * The id of the property where the cancellation policy was created\n     */\n    propertyId: string;\n    periodFromReference: PeriodModel;\n    /**\n     * The due date for the cancellation policy will be calculated based on this reference point, and the defined time period.      Examples:   - 1 day and 12 hours prior to arrival   - 0 prior to arrival (meaning, cancellations are always free)   - 24 hours after booking   - 0 after booking (meaning, cancellations ar never free)\n     */\n    reference: CancellationPolicyModel.ReferenceEnum;\n    fee: FeeDetailsModel;\n}\nexport namespace CancellationPolicyModel {\n    export type ReferenceEnum = 'PriorToArrival' | 'AfterBooking';\n    export const ReferenceEnumValues = Object.freeze(\n        ['PriorToArrival', 'AfterBooking'] as ReferenceEnum[]);\n}\n\nexport namespace CancellationPolicyModel {\n    export const $metaData: ClassMetaData<CancellationPolicyModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            minLength: 3,\n            maxLength: 10,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        periodFromReference: Object.freeze({ \n            isRequired: true,\n            type: 'PeriodModel',\n            metaData: PeriodModel.$metaData\n        }),\n        reference: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ReferenceEnumValues,\n            isPrimitiveType: true,\n        }),\n        fee: Object.freeze({ \n            isRequired: true,\n            type: 'FeeDetailsModel',\n            metaData: FeeDetailsModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CompanyAddressModel { \n    addressLine1: string;\n    addressLine2?: string;\n    postalCode: string;\n    city: string;\n    regionCode?: string;\n    countryCode: string;\n}\n\nexport namespace CompanyAddressModel {\n    export const $metaData: ClassMetaData<CompanyAddressModel> = { \n        addressLine1: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        addressLine2: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        postalCode: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        city: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        regionCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        countryCode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CompanyCreatedModel { \n    /**\n     * The company ID\n     */\n    id: string;\n}\n\nexport namespace CompanyCreatedModel {\n    export const $metaData: ClassMetaData<CompanyCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { CompanyModel } from './companyModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CompanyListModel { \n    /**\n     * List of companies\n     */\n    companies: Array<CompanyModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace CompanyListModel {\n    export const $metaData: ClassMetaData<CompanyListModel> = { \n        companies: Object.freeze({ \n            isRequired: true,\n            type: 'Array<CompanyModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { CompanyAddressModel } from './companyAddressModel';\nimport { RatePlanCompanyModel } from './ratePlanCompanyModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CompanyModel { \n    /**\n     * The ID of this company\n     */\n    id: string;\n    /**\n     * The code for the company\n     */\n    code: string;\n    /**\n     * The ID of the property\n     */\n    propertyId: string;\n    /**\n     * The name of the company\n     */\n    name: string;\n    /**\n     * The email address for invoicing purposes\n     */\n    invoicingEmail?: string;\n    /**\n     * The company's phone number\n     */\n    phone?: string;\n    /**\n     * The tax ID of the company\n     */\n    taxId?: string;\n    /**\n     * The additional tax ID of the company (e.g. SIRET in France, Codice Destinatario in Italy, SST in Malaysia)\n     */\n    additionalTaxId?: string;\n    /**\n     * The additional tax ID of the company (e.g. BRN in Malaysia)\n     */\n    additionalTaxId2?: string;\n    address: CompanyAddressModel;\n    /**\n     * Whether or not the company is allowed to check out on AR / invoice\n     */\n    canCheckOutOnAr: boolean;\n    /**\n     * Rate plans that can be booked by this company\n     */\n    ratePlans?: Array<RatePlanCompanyModel>;\n}\n\nexport namespace CompanyModel {\n    export const $metaData: ClassMetaData<CompanyModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        invoicingEmail: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        phone: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        taxId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        additionalTaxId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        additionalTaxId2: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        address: Object.freeze({ \n            isRequired: true,\n            type: 'CompanyAddressModel',\n            metaData: CompanyAddressModel.$metaData\n        }),\n        canCheckOutOnAr: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        ratePlans: Object.freeze({ \n            type: 'Array<RatePlanCompanyModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CompanyRatePlanModel { \n    /**\n     * Company ID that can use this rate plan\n     */\n    id: string;\n    /**\n     * The code of the company that can book this rate plan\n     */\n    code: string;\n    /**\n     * Company rate plan code, identifying the company + rate plan pair. Is used is offers.\n     */\n    corporateCode: string;\n    /**\n     * The name of the company that can book this rate plan\n     */\n    name: string;\n}\n\nexport namespace CompanyRatePlanModel {\n    export const $metaData: ClassMetaData<CompanyRatePlanModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { CorporateCodeModel } from './corporateCodeModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CorporateCodeListModel { \n    /**\n     * List of existing corporate codes\n     */\n    corporateCodes: Array<CorporateCodeModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace CorporateCodeListModel {\n    export const $metaData: ClassMetaData<CorporateCodeListModel> = { \n        corporateCodes: Object.freeze({ \n            isRequired: true,\n            type: 'Array<CorporateCodeModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CorporateCodeModel { \n    /**\n     * The corporate rate code\n     */\n    code: string;\n}\n\nexport namespace CorporateCodeModel {\n    export const $metaData: ClassMetaData<CorporateCodeModel> = { \n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CountModel { \n    count: number;\n}\n\nexport namespace CountModel {\n    export const $metaData: ClassMetaData<CountModel> = { \n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateAgeCategoryModel { \n    /**\n     * The code for the age category\n     */\n    code: string;\n    /**\n     * The id of the property for which the age category will be created\n     */\n    propertyId: string;\n    /**\n     * The name for the age category\n     */\n    name: { [key: string]: string; };\n    /**\n     * The minimum age for the age category. The specified value is included in the age range\n     */\n    minAge: number;\n    /**\n     * The maximum age for the age category. The specified value is included in the age range and the maximum value  is 17\n     */\n    maxAge: number;\n}\n\nexport namespace CreateAgeCategoryModel {\n    export const $metaData: ClassMetaData<CreateAgeCategoryModel> = { \n        code: Object.freeze({ \n            isRequired: true,\n            minLength: 3,\n            maxLength: 10,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        minAge: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        maxAge: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { FeeDetailsModel } from './feeDetailsModel';\nimport { PeriodModel } from './periodModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateCancellationPolicyModel { \n    /**\n     * The code for the cancellation policy, used to assemble its id\n     */\n    code: string;\n    /**\n     * The name for the cancellation policy\n     */\n    name: { [key: string]: string; };\n    /**\n     * The description for the cancellation policy\n     */\n    description: { [key: string]: string; };\n    /**\n     * The id of the property where the cancellation policy will be created\n     */\n    propertyId: string;\n    periodFromReference?: PeriodModel;\n    /**\n     * The due date for the cancellation policy will be calculated based on this reference point\n     */\n    reference: CreateCancellationPolicyModel.ReferenceEnum;\n    fee: FeeDetailsModel;\n}\nexport namespace CreateCancellationPolicyModel {\n    export type ReferenceEnum = 'PriorToArrival' | 'AfterBooking';\n    export const ReferenceEnumValues = Object.freeze(\n        ['PriorToArrival', 'AfterBooking'] as ReferenceEnum[]);\n}\n\nexport namespace CreateCancellationPolicyModel {\n    export const $metaData: ClassMetaData<CreateCancellationPolicyModel> = { \n        code: Object.freeze({ \n            isRequired: true,\n            minLength: 3,\n            maxLength: 10,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        periodFromReference: Object.freeze({ \n            type: 'PeriodModel',\n            metaData: PeriodModel.$metaData\n        }),\n        reference: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ReferenceEnumValues,\n            isPrimitiveType: true,\n        }),\n        fee: Object.freeze({ \n            isRequired: true,\n            type: 'FeeDetailsModel',\n            metaData: FeeDetailsModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AddressModel } from './addressModel';\nimport { CreateRatePlanCompanyModel } from './createRatePlanCompanyModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateCompanyModel { \n    /**\n     * The code for the company\n     */\n    code: string;\n    /**\n     * The ID of the property\n     */\n    propertyId: string;\n    /**\n     * The name of the company\n     */\n    name: string;\n    /**\n     * The email address for invoicing purposes\n     */\n    invoicingEmail?: string;\n    /**\n     * The company's phone\n     */\n    phone?: string;\n    /**\n     * The tax ID of the company\n     */\n    taxId?: string;\n    /**\n     * The additional tax ID of the company (e.g. SIRET in France, Codice Destinatario in Italy, SST in Malaysia)\n     */\n    additionalTaxId?: string;\n    /**\n     * The additional tax ID of the company (e.g. BRN in Malaysia)\n     */\n    additionalTaxId2?: string;\n    address: AddressModel;\n    /**\n     * Whether or not the company is allowed to check out on AR / invoice\n     */\n    canCheckOutOnAr: boolean;\n    /**\n     * Rate plans that can be booked by this company\n     */\n    ratePlans?: Array<CreateRatePlanCompanyModel>;\n}\n\nexport namespace CreateCompanyModel {\n    export const $metaData: ClassMetaData<CreateCompanyModel> = { \n        code: Object.freeze({ \n            isRequired: true,\n            minLength: 3,\n            maxLength: 10,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        invoicingEmail: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        phone: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        taxId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        additionalTaxId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        additionalTaxId2: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        address: Object.freeze({ \n            isRequired: true,\n            type: 'AddressModel',\n            metaData: AddressModel.$metaData\n        }),\n        canCheckOutOnAr: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        ratePlans: Object.freeze({ \n            type: 'Array<CreateRatePlanCompanyModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateCompanyRatePlanModel { \n    /**\n     * Company ID that can use this rate plan\n     */\n    id: string;\n    /**\n     * Optional rate plan code that is used by the company. Default is companyCode-ratePlanCode.  Same code can be specified for several rate plans in one company.  No two companies can have a rate plan with the same code.\n     */\n    corporateCode?: string;\n}\n\nexport namespace CreateCompanyRatePlanModel {\n    export const $metaData: ClassMetaData<CreateCompanyRatePlanModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { FeeDetailsModel } from './feeDetailsModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateNoShowPolicyModel { \n    /**\n     * The code for the no-show policy, used to assemble its id\n     */\n    code: string;\n    /**\n     * The name for the no-show policy\n     */\n    name: { [key: string]: string; };\n    /**\n     * The description for the no-show policy\n     */\n    description: { [key: string]: string; };\n    /**\n     * The id of the property where the no-show policy will be created\n     */\n    propertyId: string;\n    fee: FeeDetailsModel;\n}\n\nexport namespace CreateNoShowPolicyModel {\n    export const $metaData: ClassMetaData<CreateNoShowPolicyModel> = { \n        code: Object.freeze({ \n            isRequired: true,\n            minLength: 3,\n            maxLength: 10,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        fee: Object.freeze({ \n            isRequired: true,\n            type: 'FeeDetailsModel',\n            metaData: FeeDetailsModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreatePricingRuleModel { \n    /**\n     * The id of the rate plan that will be used as base when calculating the rates.  The derivation level of the rate plan used as base rate plan cannot be greater than 2\n     */\n    baseRatePlanId: string;\n    /**\n     * The type used to control the calculation of the difference to the rates of the defined base  rate plan\n     */\n    type: CreatePricingRuleModel.TypeEnum;\n    /**\n     * The value used to control the calculation of the difference to the rates of the defined base  rate plan. It can be a positive and a negative value. The system will prevent you to define  a value that would lead to negative rates\n     */\n    value: number;\n}\nexport namespace CreatePricingRuleModel {\n    export type TypeEnum = 'Absolute' | 'Percent';\n    export const TypeEnumValues = Object.freeze(\n        ['Absolute', 'Percent'] as TypeEnum[]);\n}\n\nexport namespace CreatePricingRuleModel {\n    export const $metaData: ClassMetaData<CreatePricingRuleModel> = { \n        baseRatePlanId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        type: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        value: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateRatePlanCompanyModel { \n    /**\n     * Rate plan ID that is used by this company\n     */\n    id: string;\n    /**\n     * Optional rate plan code that is used by this company. Default is companyCode-ratePlanCode.  Same code can be specified for several rate plans in one company.  No two companies can have a rate plan with the same code.\n     */\n    corporateCode?: string;\n}\n\nexport namespace CreateRatePlanCompanyModel {\n    export const $metaData: ClassMetaData<CreateRatePlanCompanyModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AccountingConfigModel } from './accountingConfigModel';\nimport { BookingPeriodModel } from './bookingPeriodModel';\nimport { BookingRestrictionsModel } from './bookingRestrictionsModel';\nimport { CreateCompanyRatePlanModel } from './createCompanyRatePlanModel';\nimport { CreatePricingRuleModel } from './createPricingRuleModel';\nimport { RatePlanAgeCategoryModel } from './ratePlanAgeCategoryModel';\nimport { RatePlanServiceModel } from './ratePlanServiceModel';\nimport { SurchargeModel } from './surchargeModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateRatePlanModel { \n    /**\n     * The code for the rate plan that can be shown in reports and table views\n     */\n    code: string;\n    /**\n     * The id of the property for which the rate plan will be created\n     */\n    propertyId: string;\n    /**\n     * The id of the unit group offered with this rate plan\n     */\n    unitGroupId: string;\n    /**\n     * The id of the cancellation policy valid for this rate plan\n     */\n    cancellationPolicyId: string;\n    /**\n     * The id of the no-show policy valid for this rate plan\n     */\n    noShowPolicyId?: string;\n    /**\n     * The channel codes the rate plan is sold through\n     */\n    channelCodes: Array<CreateRatePlanModel.ChannelCodesEnum>;\n    /**\n     * The rate codes for promotional and hidden rates. If at least one code is set the rate will be not publicly visible  anymore and only be offered when one of the promo codes is given in the offer request.  For backward compatibility it is still not possible to set multiple promo codes.\n     */\n    promoCodes?: Array<string>;\n    /**\n     * Whether the rate plan is subject to city tax or not.  Default value is `true`\n     */\n    isSubjectToCityTax?: boolean;\n    /**\n     * Defines the time periods for which the unit group related to this rate plan is rented out\n     */\n    timeSliceDefinitionId: string;\n    /**\n     * The name for the rate plan\n     */\n    name: { [key: string]: string; };\n    /**\n     * The description for the rate plan\n     */\n    description: { [key: string]: string; };\n    /**\n     * The minimum guarantee to be provided when this rate plan is booked so  the reservation will be guaranteed to the guest\n     */\n    minGuaranteeType: CreateRatePlanModel.MinGuaranteeTypeEnum;\n    /**\n     * The calculation mode is used when calculating the adults' surcharges and derived rates.  Defaults to Truncate. Example: for a rate of 125.99 and a surcharge of +10%,  when Truncate is selected, the result would be 125.99 + 12 = 137.99  When Round is selected, the result would be 125.99 + 12.60 = 138.59\n     */\n    priceCalculationMode?: CreateRatePlanModel.PriceCalculationModeEnum;\n    /**\n     * Time periods when the rate plan is bookable\n     */\n    bookingPeriods?: Array<BookingPeriodModel>;\n    restrictions?: BookingRestrictionsModel;\n    pricingRule?: CreatePricingRuleModel;\n    /**\n     * Additional charges for more than single occupancy. The percent or absolute value will be added to  the manually defined or calculated derived rates.  The values for 'adults' must be unique within the list and starting from occupancy of 2 adults. Values higher than the maximum unit group occupancy will be silently ignored.  The surcharges are required for all possible occupancies defined by the 'MaxPersons' of the unit group.\n     */\n    surcharges?: Array<SurchargeModel>;\n    /**\n     * Additional charges per age category.\n     */\n    ageCategories?: Array<RatePlanAgeCategoryModel>;\n    /**\n     * Services that are included in the rate plan\n     */\n    includedServices?: Array<RatePlanServiceModel>;\n    /**\n     * Companies that can use this rate plan\n     */\n    companies?: Array<CreateCompanyRatePlanModel>;\n    /**\n     * The collection of accounting configs with validity periods.  This is a temporary field, avoid using it.\n     */\n    accountingConfigs?: Array<AccountingConfigModel>;\n}\nexport namespace CreateRatePlanModel {\n    export type ChannelCodesEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodesEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodesEnum[]);\n    export type MinGuaranteeTypeEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company';\n    export const MinGuaranteeTypeEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company'] as MinGuaranteeTypeEnum[]);\n    export type PriceCalculationModeEnum = 'Truncate' | 'Round';\n    export const PriceCalculationModeEnumValues = Object.freeze(\n        ['Truncate', 'Round'] as PriceCalculationModeEnum[]);\n}\n\nexport namespace CreateRatePlanModel {\n    export const $metaData: ClassMetaData<CreateRatePlanModel> = { \n        code: Object.freeze({ \n            isRequired: true,\n            minLength: 3,\n            maxLength: 20,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        unitGroupId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        cancellationPolicyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        noShowPolicyId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        channelCodes: Object.freeze({ \n            isRequired: true,\n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        promoCodes: Object.freeze({ \n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        isSubjectToCityTax: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        timeSliceDefinitionId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        minGuaranteeType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: MinGuaranteeTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        priceCalculationMode: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PriceCalculationModeEnumValues,\n            isPrimitiveType: true,\n        }),\n        bookingPeriods: Object.freeze({ \n            type: 'Array<BookingPeriodModel>',\n            isListContainer: true,\n        }),\n        restrictions: Object.freeze({ \n            type: 'BookingRestrictionsModel',\n            metaData: BookingRestrictionsModel.$metaData\n        }),\n        pricingRule: Object.freeze({ \n            type: 'CreatePricingRuleModel',\n            metaData: CreatePricingRuleModel.$metaData\n        }),\n        surcharges: Object.freeze({ \n            type: 'Array<SurchargeModel>',\n            isListContainer: true,\n        }),\n        ageCategories: Object.freeze({ \n            type: 'Array<RatePlanAgeCategoryModel>',\n            isListContainer: true,\n        }),\n        includedServices: Object.freeze({ \n            type: 'Array<RatePlanServiceModel>',\n            isListContainer: true,\n        }),\n        companies: Object.freeze({ \n            type: 'Array<CreateCompanyRatePlanModel>',\n            isListContainer: true,\n        }),\n        accountingConfigs: Object.freeze({ \n            type: 'Array<AccountingConfigModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AvailabilityModel } from './availabilityModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { ServiceAccountingConfigModel } from './serviceAccountingConfigModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateServiceModel { \n    /**\n     * The code for the service that can be shown in reports and table views\n     */\n    code: string;\n    /**\n     * The name for the service\n     */\n    name: { [key: string]: string; };\n    /**\n     * The description for the service\n     */\n    description: { [key: string]: string; };\n    /**\n     * The id of the property where the item will be created\n     */\n    propertyId: string;\n    defaultGrossPrice: MonetaryValueModel;\n    /**\n     * Defines the granularity for which this item is offered and priced.\n     */\n    pricingUnit: CreateServiceModel.PricingUnitEnum;\n    /**\n     * Whether the service is delivered and posted on the same business date as the accommodation, or on the next day.\n     */\n    postNextDay: boolean;\n    availability?: AvailabilityModel;\n    /**\n     * The channel codes the service is sold through. When no channels are defined, the service is sold only in a package\n     */\n    channelCodes?: Array<CreateServiceModel.ChannelCodesEnum>;\n    /**\n     * The collection of accounting configs with validity periods.  This is a temporary field, avoid using it.\n     */\n    accountingConfigs?: Array<ServiceAccountingConfigModel>;\n    /**\n     * The id of the age category associated with this service.\n     */\n    ageCategoryId?: string;\n}\nexport namespace CreateServiceModel {\n    export type PricingUnitEnum = 'Room' | 'Person';\n    export const PricingUnitEnumValues = Object.freeze(\n        ['Room', 'Person'] as PricingUnitEnum[]);\n    export type ChannelCodesEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodesEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodesEnum[]);\n}\n\nexport namespace CreateServiceModel {\n    export const $metaData: ClassMetaData<CreateServiceModel> = { \n        code: Object.freeze({ \n            isRequired: true,\n            minLength: 3,\n            maxLength: 10,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        defaultGrossPrice: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        pricingUnit: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PricingUnitEnumValues,\n            isPrimitiveType: true,\n        }),\n        postNextDay: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        availability: Object.freeze({ \n            type: 'AvailabilityModel',\n            metaData: AvailabilityModel.$metaData\n        }),\n        channelCodes: Object.freeze({ \n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        accountingConfigs: Object.freeze({ \n            type: 'Array<ServiceAccountingConfigModel>',\n            isListContainer: true,\n        }),\n        ageCategoryId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { PeriodModel } from './periodModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface EmbeddedCancellationPolicyModel { \n    /**\n     * The cancellation policy id\n     */\n    id: string;\n    /**\n     * The code for the cancellation policy that can be shown in reports and table views\n     */\n    code?: string;\n    /**\n     * The name for the cancellation policy\n     */\n    name?: string;\n    /**\n     * The description for the cancellation policy\n     */\n    description?: string;\n    periodPriorToArrival?: PeriodModel;\n}\n\nexport namespace EmbeddedCancellationPolicyModel {\n    export const $metaData: ClassMetaData<EmbeddedCancellationPolicyModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        periodPriorToArrival: Object.freeze({ \n            type: 'PeriodModel',\n            metaData: PeriodModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\n/**\n * The market segment identifier to help categorize your bookings for revenue management and reporting purposes.\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface EmbeddedMarketSegmentModel { \n    /**\n     * The market segment id\n     */\n    id: string;\n    /**\n     * The market segment code\n     */\n    code?: string;\n    /**\n     * The market segment name\n     */\n    name?: string;\n}\n\nexport namespace EmbeddedMarketSegmentModel {\n    export const $metaData: ClassMetaData<EmbeddedMarketSegmentModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface EmbeddedNoShowPolicyModel { \n    /**\n     * The no-show policy id\n     */\n    id: string;\n    /**\n     * The code for the no-show policy that can be shown in reports and table views\n     */\n    code?: string;\n    /**\n     * The name for the no-show policy\n     */\n    name?: string;\n    /**\n     * The description for the no-show policy\n     */\n    description?: string;\n}\n\nexport namespace EmbeddedNoShowPolicyModel {\n    export const $metaData: ClassMetaData<EmbeddedNoShowPolicyModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface EmbeddedPropertyModel { \n    /**\n     * The property id\n     */\n    id: string;\n    /**\n     * The code for the property that can be shown in reports and table views\n     */\n    code?: string;\n    /**\n     * The name for the property\n     */\n    name?: string;\n    /**\n     * The description for the property\n     */\n    readonly description?: string;\n}\n\nexport namespace EmbeddedPropertyModel {\n    export const $metaData: ClassMetaData<EmbeddedPropertyModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface EmbeddedRatePlanModel { \n    /**\n     * The rate plan id\n     */\n    id: string;\n    /**\n     * The code for the rate plan that can be shown in reports and table views\n     */\n    code?: string;\n    /**\n     * The name for the rate plan\n     */\n    name?: string;\n    /**\n     * The description for the rate plan\n     */\n    description?: string;\n    /**\n     * Whether the rate plan is subject to city tax or not\n     */\n    isSubjectToCityTax: boolean;\n}\n\nexport namespace EmbeddedRatePlanModel {\n    export const $metaData: ClassMetaData<EmbeddedRatePlanModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        isSubjectToCityTax: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface EmbeddedServiceModel { \n    /**\n     * The service id\n     */\n    id: string;\n    /**\n     * The code for the service\n     */\n    code?: string;\n    /**\n     * The name for the service\n     */\n    name?: string;\n    /**\n     * The description for the service\n     */\n    description?: string;\n}\n\nexport namespace EmbeddedServiceModel {\n    export const $metaData: ClassMetaData<EmbeddedServiceModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface EmbeddedTimeSliceDefinitionModel { \n    /**\n     * The time slice definition id\n     */\n    id: string;\n    /**\n     * The name for the time slice definition\n     */\n    name: string;\n    /**\n     * The template used by the time slice defintion\n     */\n    template: EmbeddedTimeSliceDefinitionModel.TemplateEnum;\n    /**\n     * The check-in time for reservations based on this rate plan<br />A time (without fractional second part) as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    checkInTime: string;\n    /**\n     * The check-out time for reservations based on this rate plan<br />A time (without fractional second part) as defined in the <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    checkOutTime: string;\n}\nexport namespace EmbeddedTimeSliceDefinitionModel {\n    export type TemplateEnum = 'DayUse' | 'OverNight';\n    export const TemplateEnumValues = Object.freeze(\n        ['DayUse', 'OverNight'] as TemplateEnum[]);\n}\n\nexport namespace EmbeddedTimeSliceDefinitionModel {\n    export const $metaData: ClassMetaData<EmbeddedTimeSliceDefinitionModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        template: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TemplateEnumValues,\n            isPrimitiveType: true,\n        }),\n        checkInTime: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        checkOutTime: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface EmbeddedUnitGroupModel { \n    /**\n     * The unit group id\n     */\n    id: string;\n    /**\n     * The code for the unit group that can be shown in reports and table views\n     */\n    code?: string;\n    /**\n     * The name for the unit group\n     */\n    name?: string;\n    /**\n     * The description for the unit group\n     */\n    description?: string;\n    /**\n     * The unit group type\n     */\n    type?: EmbeddedUnitGroupModel.TypeEnum;\n}\nexport namespace EmbeddedUnitGroupModel {\n    export type TypeEnum = 'BedRoom' | 'MeetingRoom' | 'EventSpace' | 'ParkingLot' | 'Other';\n    export const TypeEnumValues = Object.freeze(\n        ['BedRoom', 'MeetingRoom', 'EventSpace', 'ParkingLot', 'Other'] as TypeEnum[]);\n}\n\nexport namespace EmbeddedUnitGroupModel {\n    export const $metaData: ClassMetaData<EmbeddedUnitGroupModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        type: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TypeEnumValues,\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface MessageItemCollection { \n    readonly messages?: Array<string>;\n}\n\nexport namespace MessageItemCollection {\n    export const $metaData: ClassMetaData<MessageItemCollection> = { \n        messages: Object.freeze({ \n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface NoShowPolicyCreatedModel { \n    /**\n     * The no-show policy ID\n     */\n    id: string;\n}\n\nexport namespace NoShowPolicyCreatedModel {\n    export const $metaData: ClassMetaData<NoShowPolicyCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { FeeDetailsModel } from './feeDetailsModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface NoShowPolicyItemModel { \n    /**\n     * The no-show policy id\n     */\n    id: string;\n    /**\n     * The code for the policy\n     */\n    code: string;\n    /**\n     * The name for the no-show policy\n     */\n    name: string;\n    /**\n     * The description for the no-show policy\n     */\n    description: string;\n    /**\n     * The id of the property where the no-show policy was created\n     */\n    propertyId: string;\n    fee: FeeDetailsModel;\n}\n\nexport namespace NoShowPolicyItemModel {\n    export const $metaData: ClassMetaData<NoShowPolicyItemModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        fee: Object.freeze({ \n            isRequired: true,\n            type: 'FeeDetailsModel',\n            metaData: FeeDetailsModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { NoShowPolicyItemModel } from './noShowPolicyItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface NoShowPolicyListModel { \n    /**\n     * List of no-show policies\n     */\n    noShowPolicies: Array<NoShowPolicyItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace NoShowPolicyListModel {\n    export const $metaData: ClassMetaData<NoShowPolicyListModel> = { \n        noShowPolicies: Object.freeze({ \n            isRequired: true,\n            type: 'Array<NoShowPolicyItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { FeeDetailsModel } from './feeDetailsModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface NoShowPolicyModel { \n    /**\n     * The no-show policy id\n     */\n    id: string;\n    /**\n     * The code for the policy\n     */\n    code: string;\n    /**\n     * The name for the no-show policy\n     */\n    name: { [key: string]: string; };\n    /**\n     * The description for the no-show policy\n     */\n    description: { [key: string]: string; };\n    /**\n     * The id of the property where the no-show policy was created\n     */\n    propertyId: string;\n    fee: FeeDetailsModel;\n}\n\nexport namespace NoShowPolicyModel {\n    export const $metaData: ClassMetaData<NoShowPolicyModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            minLength: 3,\n            maxLength: 10,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        fee: Object.freeze({ \n            isRequired: true,\n            type: 'FeeDetailsModel',\n            metaData: FeeDetailsModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface Operation { \n    value?: any;\n    path?: string;\n    op?: string;\n    from?: string;\n}\n\nexport namespace Operation {\n    export const $metaData: ClassMetaData<Operation> = { \n        value: Object.freeze({ \n            type: 'any',\n            isPrimitiveType: true,\n        }),\n        path: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        op: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        from: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { EmbeddedRatePlanModel } from './embeddedRatePlanModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PricingRuleModel { \n    baseRatePlan: EmbeddedRatePlanModel;\n    /**\n     * The type used to control the calculation of the difference to the rates of the defined base  rate plan\n     */\n    type: PricingRuleModel.TypeEnum;\n    /**\n     * The value used to control the calculation of the difference to the rates of the defined base  rate plan. It can be a positive and a negative value\n     */\n    value: number;\n}\nexport namespace PricingRuleModel {\n    export type TypeEnum = 'Absolute' | 'Percent';\n    export const TypeEnumValues = Object.freeze(\n        ['Absolute', 'Percent'] as TypeEnum[]);\n}\n\nexport namespace PricingRuleModel {\n    export const $metaData: ClassMetaData<PricingRuleModel> = { \n        baseRatePlan: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedRatePlanModel',\n            metaData: EmbeddedRatePlanModel.$metaData\n        }),\n        type: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        value: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { PromoCodeModel } from './promoCodeModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PromoCodeListModel { \n    /**\n     * List of existing promo codes\n     */\n    promoCodes: Array<PromoCodeModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace PromoCodeListModel {\n    export const $metaData: ClassMetaData<PromoCodeListModel> = { \n        promoCodes: Object.freeze({ \n            isRequired: true,\n            type: 'Array<PromoCodeModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PromoCodeModel { \n    /**\n     * The code of special rate or discount  or agreement between the hotel and an organization\n     */\n    code: string;\n    /**\n     * All rate plan IDs having this code\n     */\n    relatedRateplanIds: Array<string>;\n}\n\nexport namespace PromoCodeModel {\n    export const $metaData: ClassMetaData<PromoCodeModel> = { \n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        relatedRateplanIds: Object.freeze({ \n            isRequired: true,\n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { CalculatedRateModel } from './calculatedRateModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { RateRestrictionsModel } from './rateRestrictionsModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RateItemModel { \n    /**\n     * Date and time the rate begins<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    from: Date;\n    /**\n     * Date and time the rate ends<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    to: Date;\n    price?: MonetaryValueModel;\n    includedServicesPrice?: MonetaryValueModel;\n    /**\n     * A list of prices for occupancies 2 or higher. Only set, if the rate plan defines surcharges for different occupancies\n     */\n    calculatedPrices?: Array<CalculatedRateModel>;\n    restrictions?: RateRestrictionsModel;\n}\n\nexport namespace RateItemModel {\n    export const $metaData: ClassMetaData<RateItemModel> = { \n        from: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        to: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        price: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        includedServicesPrice: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        calculatedPrices: Object.freeze({ \n            type: 'Array<CalculatedRateModel>',\n            isListContainer: true,\n        }),\n        restrictions: Object.freeze({ \n            type: 'RateRestrictionsModel',\n            metaData: RateRestrictionsModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { RateItemModel } from './rateItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RateListModel { \n    /**\n     * List of rates\n     */\n    rates: Array<RateItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace RateListModel {\n    export const $metaData: ClassMetaData<RateListModel> = { \n        rates: Object.freeze({ \n            isRequired: true,\n            type: 'Array<RateItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { Operation } from './operation';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatePatchModel { \n    /**\n     * The start of the time range to filter the rates by. All rates where the from date and time is equal or later than  the specified date and optional time will be affected<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    from: string;\n    /**\n     * The end of the time range to filter the rates by. All rates where the from date and time is earlier than  the specified date and optional time will be affected<br />Specify either a pure date or a date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    to: string;\n    /**\n     * The weekdays that will be patched. If not specified, all weekdays will be patched.\n     */\n    weekDays?: Array<RatePatchModel.WeekDaysEnum>;\n    operations?: Array<Operation>;\n}\nexport namespace RatePatchModel {\n    export type WeekDaysEnum = 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday';\n    export const WeekDaysEnumValues = Object.freeze(\n        ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] as WeekDaysEnum[]);\n}\n\nexport namespace RatePatchModel {\n    export const $metaData: ClassMetaData<RatePatchModel> = { \n        from: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        to: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        weekDays: Object.freeze({ \n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        operations: Object.freeze({ \n            type: 'Array<Operation>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AgeCategorySurchargeModel } from './ageCategorySurchargeModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatePlanAgeCategoryModel { \n    /**\n     * The id of the age category\n     */\n    id: string;\n    /**\n     * Additional charges for the current age category. The absolute value will be added to the manually defined or calculated derived rates.  The values for 'adults' must be unique within the list, and starting from 1. Values equal or higher than  the maximum unit group occupancy will be silently ignored.\n     */\n    surcharges: Array<AgeCategorySurchargeModel>;\n}\n\nexport namespace RatePlanAgeCategoryModel {\n    export const $metaData: ClassMetaData<RatePlanAgeCategoryModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        surcharges: Object.freeze({ \n            isRequired: true,\n            type: 'Array<AgeCategorySurchargeModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatePlanCompanyModel { \n    /**\n     * Rate plan ID that is used by this company\n     */\n    id: string;\n    /**\n     * Rate plan code that is used by this company\n     */\n    code: string;\n    /**\n     * Company rate plan code, identifying the company + rate plan pair. Is used is offers.\n     */\n    corporateCode?: string;\n    /**\n     * The name of the rate plan\n     */\n    name: string;\n}\n\nexport namespace RatePlanCompanyModel {\n    export const $metaData: ClassMetaData<RatePlanCompanyModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatePlanCreatedModel { \n    /**\n     * The rate plan id\n     */\n    id: string;\n}\n\nexport namespace RatePlanCreatedModel {\n    export const $metaData: ClassMetaData<RatePlanCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatesRangeModel { \n    /**\n     * The first date when the rate plan has rates set\n     */\n    from: string;\n    /**\n     * The last date when the rate plan has rates set\n     */\n    to: string;\n}\n\nexport namespace RatesRangeModel {\n    export const $metaData: ClassMetaData<RatesRangeModel> = { \n        from: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        to: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AccountingConfigModel } from './accountingConfigModel';\nimport { BookingPeriodModel } from './bookingPeriodModel';\nimport { BookingRestrictionsModel } from './bookingRestrictionsModel';\nimport { CompanyRatePlanModel } from './companyRatePlanModel';\nimport { EmbeddedCancellationPolicyModel } from './embeddedCancellationPolicyModel';\nimport { EmbeddedMarketSegmentModel } from './embeddedMarketSegmentModel';\nimport { EmbeddedNoShowPolicyModel } from './embeddedNoShowPolicyModel';\nimport { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { EmbeddedTimeSliceDefinitionModel } from './embeddedTimeSliceDefinitionModel';\nimport { EmbeddedUnitGroupModel } from './embeddedUnitGroupModel';\nimport { PricingRuleModel } from './pricingRuleModel';\nimport { RatePlanAgeCategoryModel } from './ratePlanAgeCategoryModel';\nimport { RatePlanServiceItemModel } from './ratePlanServiceItemModel';\nimport { RatesRangeModel } from './ratesRangeModel';\nimport { SurchargeModel } from './surchargeModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatePlanItemModel { \n    /**\n     * The rate plan id\n     */\n    id: string;\n    /**\n     * The code for the rate plan that can be shown in reports and table views\n     */\n    code: string;\n    /**\n     * The name for the rate plan\n     */\n    name: string;\n    /**\n     * The description for the rate plan\n     */\n    description: string;\n    /**\n     * The minimum guarantee to be provided when this rate plan is booked so  the reservation will be guaranteed to the guest\n     */\n    minGuaranteeType: RatePlanItemModel.MinGuaranteeTypeEnum;\n    /**\n     * The calculation mode is used when calculating the adults' surcharges and derived rates.  Defaults to Truncate. Example: for a rate of 125.99 and a surcharge of +10%,  when Truncate is selected, the result would be 125.99 + 12 = 137.99  When Round is selected, the result would be 125.99 + 12.60 = 138.59\n     */\n    priceCalculationMode?: RatePlanItemModel.PriceCalculationModeEnum;\n    property: EmbeddedPropertyModel;\n    unitGroup: EmbeddedUnitGroupModel;\n    cancellationPolicy: EmbeddedCancellationPolicyModel;\n    noShowPolicy: EmbeddedNoShowPolicyModel;\n    /**\n     * The channel codes the rate plan is sold through\n     */\n    channelCodes: Array<RatePlanItemModel.ChannelCodesEnum>;\n    /**\n     * The rate codes for promotional and hidden rates. If at least one code is set the rate will be not publicly visible  anymore and only be offered when one of the promo codes is given in the offer request.  For backward compatibility it is still not possible to set multiple promo codes.\n     */\n    promoCodes?: Array<string>;\n    timeSliceDefinition: EmbeddedTimeSliceDefinitionModel;\n    restrictions?: BookingRestrictionsModel;\n    /**\n     * Time periods when the rate plan is bookable\n     */\n    bookingPeriods?: Array<BookingPeriodModel>;\n    /**\n     * Indicates whether the rate plan has an active booking period\n     */\n    isBookable: boolean;\n    /**\n     * Whether the rate plan is subject to city tax or not\n     */\n    isSubjectToCityTax: boolean;\n    pricingRule?: PricingRuleModel;\n    /**\n     * Indicates whether the rates for this rate plan are derived from another rate plan\n     */\n    isDerived: boolean;\n    /**\n     * Indicates the derivation level of the rate plan. When zero, it is a rate plan with manually managed prices.\n     */\n    derivationLevel: number;\n    /**\n     * Additional charges for more than single occupancy. The percent or absolute value will be added to the manually defined or calculated derived rates.\n     */\n    surcharges?: Array<SurchargeModel>;\n    /**\n     * Additional charges per age category.\n     */\n    ageCategories?: Array<RatePlanAgeCategoryModel>;\n    /**\n     * Services that are included in the rate plan\n     */\n    includedServices?: Array<RatePlanServiceItemModel>;\n    /**\n     * Companies that can use this rate plan\n     */\n    companies?: Array<CompanyRatePlanModel>;\n    ratesRange?: RatesRangeModel;\n    /**\n     * The collection of accounting configs with validity periods.\n     */\n    accountingConfigs: Array<AccountingConfigModel>;\n    marketSegment?: EmbeddedMarketSegmentModel;\n    /**\n     * Whether the rate plan is archived or not.\n     */\n    isArchived?: boolean;\n}\nexport namespace RatePlanItemModel {\n    export type MinGuaranteeTypeEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company';\n    export const MinGuaranteeTypeEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company'] as MinGuaranteeTypeEnum[]);\n    export type PriceCalculationModeEnum = 'Truncate' | 'Round';\n    export const PriceCalculationModeEnumValues = Object.freeze(\n        ['Truncate', 'Round'] as PriceCalculationModeEnum[]);\n    export type ChannelCodesEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodesEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodesEnum[]);\n}\n\nexport namespace RatePlanItemModel {\n    export const $metaData: ClassMetaData<RatePlanItemModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        minGuaranteeType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: MinGuaranteeTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        priceCalculationMode: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PriceCalculationModeEnumValues,\n            isPrimitiveType: true,\n        }),\n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitGroupModel',\n            metaData: EmbeddedUnitGroupModel.$metaData\n        }),\n        cancellationPolicy: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedCancellationPolicyModel',\n            metaData: EmbeddedCancellationPolicyModel.$metaData\n        }),\n        noShowPolicy: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedNoShowPolicyModel',\n            metaData: EmbeddedNoShowPolicyModel.$metaData\n        }),\n        channelCodes: Object.freeze({ \n            isRequired: true,\n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        promoCodes: Object.freeze({ \n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        timeSliceDefinition: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedTimeSliceDefinitionModel',\n            metaData: EmbeddedTimeSliceDefinitionModel.$metaData\n        }),\n        restrictions: Object.freeze({ \n            type: 'BookingRestrictionsModel',\n            metaData: BookingRestrictionsModel.$metaData\n        }),\n        bookingPeriods: Object.freeze({ \n            type: 'Array<BookingPeriodModel>',\n            isListContainer: true,\n        }),\n        isBookable: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        isSubjectToCityTax: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        pricingRule: Object.freeze({ \n            type: 'PricingRuleModel',\n            metaData: PricingRuleModel.$metaData\n        }),\n        isDerived: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        derivationLevel: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        surcharges: Object.freeze({ \n            type: 'Array<SurchargeModel>',\n            isListContainer: true,\n        }),\n        ageCategories: Object.freeze({ \n            type: 'Array<RatePlanAgeCategoryModel>',\n            isListContainer: true,\n        }),\n        includedServices: Object.freeze({ \n            type: 'Array<RatePlanServiceItemModel>',\n            isListContainer: true,\n        }),\n        companies: Object.freeze({ \n            type: 'Array<CompanyRatePlanModel>',\n            isListContainer: true,\n        }),\n        ratesRange: Object.freeze({ \n            type: 'RatesRangeModel',\n            metaData: RatesRangeModel.$metaData\n        }),\n        accountingConfigs: Object.freeze({ \n            isRequired: true,\n            type: 'Array<AccountingConfigModel>',\n            isListContainer: true,\n        }),\n        marketSegment: Object.freeze({ \n            type: 'EmbeddedMarketSegmentModel',\n            metaData: EmbeddedMarketSegmentModel.$metaData\n        }),\n        isArchived: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { RatePlanItemModel } from './ratePlanItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatePlanListModel { \n    /**\n     * List of rate plans\n     */\n    ratePlans: Array<RatePlanItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace RatePlanListModel {\n    export const $metaData: ClassMetaData<RatePlanListModel> = { \n        ratePlans: Object.freeze({ \n            isRequired: true,\n            type: 'Array<RatePlanItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AccountingConfigModel } from './accountingConfigModel';\nimport { BookingPeriodModel } from './bookingPeriodModel';\nimport { BookingRestrictionsModel } from './bookingRestrictionsModel';\nimport { CompanyRatePlanModel } from './companyRatePlanModel';\nimport { EmbeddedCancellationPolicyModel } from './embeddedCancellationPolicyModel';\nimport { EmbeddedMarketSegmentModel } from './embeddedMarketSegmentModel';\nimport { EmbeddedNoShowPolicyModel } from './embeddedNoShowPolicyModel';\nimport { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { EmbeddedTimeSliceDefinitionModel } from './embeddedTimeSliceDefinitionModel';\nimport { EmbeddedUnitGroupModel } from './embeddedUnitGroupModel';\nimport { PricingRuleModel } from './pricingRuleModel';\nimport { RatePlanAgeCategoryModel } from './ratePlanAgeCategoryModel';\nimport { RatePlanServiceModel } from './ratePlanServiceModel';\nimport { RatesRangeModel } from './ratesRangeModel';\nimport { SurchargeModel } from './surchargeModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatePlanModel { \n    /**\n     * The rate plan  id\n     */\n    id: string;\n    /**\n     * The code for the rate plan that can be shown in reports and table views\n     */\n    code: string;\n    /**\n     * The name for the rate plan\n     */\n    name: { [key: string]: string; };\n    /**\n     * The description for the rate plan\n     */\n    description: { [key: string]: string; };\n    /**\n     * The minimum guarantee to be provided when this rate plan is booked so  the reservation will be guaranteed to the guest\n     */\n    minGuaranteeType: RatePlanModel.MinGuaranteeTypeEnum;\n    /**\n     * The calculation mode is used when calculating the adults' surcharges and derived rates.  Defaults to Truncate. Example: for a rate of 125.99 and a surcharge of +10%,  when Truncate is selected, the result would be 125.99 + 12 = 137.99  When Round is selected, the result would be 125.99 + 12.60 = 138.59\n     */\n    priceCalculationMode?: RatePlanModel.PriceCalculationModeEnum;\n    property: EmbeddedPropertyModel;\n    unitGroup: EmbeddedUnitGroupModel;\n    cancellationPolicy: EmbeddedCancellationPolicyModel;\n    noShowPolicy: EmbeddedNoShowPolicyModel;\n    /**\n     * The channel codes the rate plan is sold through\n     */\n    channelCodes: Array<RatePlanModel.ChannelCodesEnum>;\n    /**\n     * The collection of accounting configs with validity periods.\n     */\n    accountingConfigs: Array<AccountingConfigModel>;\n    /**\n     * The rate codes for promotional and hidden rates. If at least one code is set the rate will be not publicly visible  anymore and only be offered when one of the promo codes is given in the offer request.  For backward compatibility it is still not possible to set multiple promo codes.\n     */\n    promoCodes?: Array<string>;\n    timeSliceDefinition: EmbeddedTimeSliceDefinitionModel;\n    restrictions?: BookingRestrictionsModel;\n    /**\n     * Time periods when the rate plan is bookable\n     */\n    bookingPeriods?: Array<BookingPeriodModel>;\n    /**\n     * Indicates whether the rate plan has an active booking period\n     */\n    isBookable: boolean;\n    /**\n     * Whether the rate plan is subject to city tax or not.  Default value is `true`\n     */\n    isSubjectToCityTax: boolean;\n    pricingRule?: PricingRuleModel;\n    /**\n     * Indicates whether the rates for this rate plan are derived from another rate plan\n     */\n    isDerived: boolean;\n    /**\n     * Indicates the derivation level of the rate plan. When zero, it is a rate plan with manually managed prices.\n     */\n    derivationLevel: number;\n    /**\n     * Additional charges for more than single occupancy. The percent or absolute value will be added to the manually defined or calculated derived rates.\n     */\n    surcharges?: Array<SurchargeModel>;\n    /**\n     * Additional charges per age category.\n     */\n    ageCategories?: Array<RatePlanAgeCategoryModel>;\n    /**\n     * Services that are included in the rate plan\n     */\n    includedServices?: Array<RatePlanServiceModel>;\n    /**\n     * Companies that can use this rate plan\n     */\n    companies?: Array<CompanyRatePlanModel>;\n    ratesRange?: RatesRangeModel;\n    marketSegment?: EmbeddedMarketSegmentModel;\n    /**\n     * Whether the rate plan is archived or not\n     */\n    isArchived?: boolean;\n}\nexport namespace RatePlanModel {\n    export type MinGuaranteeTypeEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company';\n    export const MinGuaranteeTypeEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company'] as MinGuaranteeTypeEnum[]);\n    export type PriceCalculationModeEnum = 'Truncate' | 'Round';\n    export const PriceCalculationModeEnumValues = Object.freeze(\n        ['Truncate', 'Round'] as PriceCalculationModeEnum[]);\n    export type ChannelCodesEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodesEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodesEnum[]);\n}\n\nexport namespace RatePlanModel {\n    export const $metaData: ClassMetaData<RatePlanModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        minGuaranteeType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: MinGuaranteeTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        priceCalculationMode: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PriceCalculationModeEnumValues,\n            isPrimitiveType: true,\n        }),\n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitGroupModel',\n            metaData: EmbeddedUnitGroupModel.$metaData\n        }),\n        cancellationPolicy: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedCancellationPolicyModel',\n            metaData: EmbeddedCancellationPolicyModel.$metaData\n        }),\n        noShowPolicy: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedNoShowPolicyModel',\n            metaData: EmbeddedNoShowPolicyModel.$metaData\n        }),\n        channelCodes: Object.freeze({ \n            isRequired: true,\n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        accountingConfigs: Object.freeze({ \n            isRequired: true,\n            type: 'Array<AccountingConfigModel>',\n            isListContainer: true,\n        }),\n        promoCodes: Object.freeze({ \n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        timeSliceDefinition: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedTimeSliceDefinitionModel',\n            metaData: EmbeddedTimeSliceDefinitionModel.$metaData\n        }),\n        restrictions: Object.freeze({ \n            type: 'BookingRestrictionsModel',\n            metaData: BookingRestrictionsModel.$metaData\n        }),\n        bookingPeriods: Object.freeze({ \n            type: 'Array<BookingPeriodModel>',\n            isListContainer: true,\n        }),\n        isBookable: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        isSubjectToCityTax: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        pricingRule: Object.freeze({ \n            type: 'PricingRuleModel',\n            metaData: PricingRuleModel.$metaData\n        }),\n        isDerived: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        derivationLevel: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        surcharges: Object.freeze({ \n            type: 'Array<SurchargeModel>',\n            isListContainer: true,\n        }),\n        ageCategories: Object.freeze({ \n            type: 'Array<RatePlanAgeCategoryModel>',\n            isListContainer: true,\n        }),\n        includedServices: Object.freeze({ \n            type: 'Array<RatePlanServiceModel>',\n            isListContainer: true,\n        }),\n        companies: Object.freeze({ \n            type: 'Array<CompanyRatePlanModel>',\n            isListContainer: true,\n        }),\n        ratesRange: Object.freeze({ \n            type: 'RatesRangeModel',\n            metaData: RatesRangeModel.$metaData\n        }),\n        marketSegment: Object.freeze({ \n            type: 'EmbeddedMarketSegmentModel',\n            metaData: EmbeddedMarketSegmentModel.$metaData\n        }),\n        isArchived: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { EmbeddedServiceModel } from './embeddedServiceModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatePlanServiceItemModel { \n    service: EmbeddedServiceModel;\n    grossPrice: MonetaryValueModel;\n    /**\n     * Whether the service price is included in or added to the base rate. The property defaults to `Included`.\n     */\n    pricingMode: RatePlanServiceItemModel.PricingModeEnum;\n}\nexport namespace RatePlanServiceItemModel {\n    export type PricingModeEnum = 'Included' | 'Additional';\n    export const PricingModeEnumValues = Object.freeze(\n        ['Included', 'Additional'] as PricingModeEnum[]);\n}\n\nexport namespace RatePlanServiceItemModel {\n    export const $metaData: ClassMetaData<RatePlanServiceItemModel> = { \n        service: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedServiceModel',\n            metaData: EmbeddedServiceModel.$metaData\n        }),\n        grossPrice: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        pricingMode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PricingModeEnumValues,\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatePlanServiceModel { \n    /**\n     * Service id to be included in the rate plan\n     */\n    serviceId: string;\n    grossPrice: MonetaryValueModel;\n    /**\n     * Whether the service price is included in or added to the base rate. The property defaults to `Included`.\n     */\n    pricingMode?: RatePlanServiceModel.PricingModeEnum;\n}\nexport namespace RatePlanServiceModel {\n    export type PricingModeEnum = 'Included' | 'Additional';\n    export const PricingModeEnumValues = Object.freeze(\n        ['Included', 'Additional'] as PricingModeEnum[]);\n}\n\nexport namespace RatePlanServiceModel {\n    export const $metaData: ClassMetaData<RatePlanServiceModel> = { \n        serviceId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        grossPrice: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        pricingMode: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PricingModeEnumValues,\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { RatePatchModel } from './ratePatchModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatesPatchRequestModel { \n    rates?: Array<RatePatchModel>;\n}\n\nexport namespace RatesPatchRequestModel {\n    export const $metaData: ClassMetaData<RatesPatchRequestModel> = { \n        rates: Object.freeze({ \n            type: 'Array<RatePatchModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReplaceCompanyRatePlanModel { \n    /**\n     * Company ID that can use this rate plan\n     */\n    id: string;\n    /**\n     * Optional rate plan code that is used by the company. Default is companyCode-ratePlanCode.  Same code can be specified for several rate plans in one company.  No two companies can have a rate plan with the same code.\n     */\n    corporateCode?: string;\n}\n\nexport namespace ReplaceCompanyRatePlanModel {\n    export const $metaData: ClassMetaData<ReplaceCompanyRatePlanModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { ReplaceRateModel } from './replaceRateModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReplaceRateListModel { \n    /**\n     * List of rates\n     */\n    rates: Array<ReplaceRateModel>;\n}\n\nexport namespace ReplaceRateListModel {\n    export const $metaData: ClassMetaData<ReplaceRateListModel> = { \n        rates: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ReplaceRateModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { RateRestrictionsModel } from './rateRestrictionsModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReplaceRateModel { \n    /**\n     * Date and time the rate begins<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    from: Date;\n    /**\n     * Date and time the rate ends<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href=\\\"https://en.wikipedia.org/wiki/ISO_8601\\\">ISO8601:2004</a>\n     */\n    to: Date;\n    price?: MonetaryValueModel;\n    restrictions?: RateRestrictionsModel;\n}\n\nexport namespace ReplaceRateModel {\n    export const $metaData: ClassMetaData<ReplaceRateModel> = { \n        from: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        to: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        price: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        restrictions: Object.freeze({ \n            type: 'RateRestrictionsModel',\n            metaData: RateRestrictionsModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AccountingConfigModel } from './accountingConfigModel';\nimport { BookingPeriodModel } from './bookingPeriodModel';\nimport { BookingRestrictionsModel } from './bookingRestrictionsModel';\nimport { CreatePricingRuleModel } from './createPricingRuleModel';\nimport { RatePlanAgeCategoryModel } from './ratePlanAgeCategoryModel';\nimport { RatePlanServiceModel } from './ratePlanServiceModel';\nimport { ReplaceCompanyRatePlanModel } from './replaceCompanyRatePlanModel';\nimport { SurchargeModel } from './surchargeModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReplaceRatePlanModel { \n    /**\n     * The name for the rate plan\n     */\n    name: { [key: string]: string; };\n    /**\n     * The description for the rate plan\n     */\n    description: { [key: string]: string; };\n    /**\n     * The minimum guarantee to be provided when this rate plan is booked so  the reservation will be guaranteed to the guest\n     */\n    minGuaranteeType: ReplaceRatePlanModel.MinGuaranteeTypeEnum;\n    /**\n     * The calculation mode is used when calculating the adults' surcharges and derived rates.  Defaults to Truncate. Example: for a rate of 125.99 and a surcharge of +10%,  when Truncate is selected, the result would be 125.99 + 12 = 137.99  When Round is selected, the result would be 125.99 + 12.60 = 138.59\n     */\n    priceCalculationMode?: ReplaceRatePlanModel.PriceCalculationModeEnum;\n    /**\n     * The channel codes the rate plan is sold through\n     */\n    channelCodes: Array<ReplaceRatePlanModel.ChannelCodesEnum>;\n    /**\n     * The rate codes for promotional and hidden rates. If at least one code is set the rate will be not publicly visible  anymore and only be offered when one of the promo codes is given in the offer request.  For backward compatibility it is still not possible to set multiple promo codes.\n     */\n    promoCodes?: Array<string>;\n    /**\n     * Whether the rate plan is subject to city tax or not.  Default value is `true`\n     */\n    isSubjectToCityTax?: boolean;\n    /**\n     * The id of the cancellation policy valid for this rate plan\n     */\n    cancellationPolicyId: string;\n    /**\n     * The id of the no-show policy valid for this rate plan\n     */\n    noShowPolicyId?: string;\n    /**\n     * The id of the market segment for this rate plan\n     */\n    marketSegmentId?: string;\n    /**\n     * Time periods when the rate plan is bookable\n     */\n    bookingPeriods?: Array<BookingPeriodModel>;\n    restrictions?: BookingRestrictionsModel;\n    /**\n     * Services that are included in the rate plan\n     */\n    includedServices?: Array<RatePlanServiceModel>;\n    /**\n     * Companies that can use this rate plan\n     */\n    companies?: Array<ReplaceCompanyRatePlanModel>;\n    pricingRule?: CreatePricingRuleModel;\n    /**\n     * Additional charges for more than single occupancy. The percent or absolute value will be added to the manually defined or calculated derived rates.  The values for 'adults' must be unique within the list and starting from occupancy of 2 adults. Values higher than the maximum unit group occupancy will be silently ignored.  The surcharges are required for all possible occupancies defined by the 'MaxPersons' of the unit group.\n     */\n    surcharges?: Array<SurchargeModel>;\n    /**\n     * Additional charges per age category.\n     */\n    ageCategories?: Array<RatePlanAgeCategoryModel>;\n    /**\n     * The collection of accounting configs with validity periods.\n     */\n    accountingConfigs?: Array<AccountingConfigModel>;\n}\nexport namespace ReplaceRatePlanModel {\n    export type MinGuaranteeTypeEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company';\n    export const MinGuaranteeTypeEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company'] as MinGuaranteeTypeEnum[]);\n    export type PriceCalculationModeEnum = 'Truncate' | 'Round';\n    export const PriceCalculationModeEnumValues = Object.freeze(\n        ['Truncate', 'Round'] as PriceCalculationModeEnum[]);\n    export type ChannelCodesEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodesEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodesEnum[]);\n}\n\nexport namespace ReplaceRatePlanModel {\n    export const $metaData: ClassMetaData<ReplaceRatePlanModel> = { \n        name: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        minGuaranteeType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: MinGuaranteeTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        priceCalculationMode: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PriceCalculationModeEnumValues,\n            isPrimitiveType: true,\n        }),\n        channelCodes: Object.freeze({ \n            isRequired: true,\n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        promoCodes: Object.freeze({ \n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        isSubjectToCityTax: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        cancellationPolicyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        noShowPolicyId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        marketSegmentId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        bookingPeriods: Object.freeze({ \n            type: 'Array<BookingPeriodModel>',\n            isListContainer: true,\n        }),\n        restrictions: Object.freeze({ \n            type: 'BookingRestrictionsModel',\n            metaData: BookingRestrictionsModel.$metaData\n        }),\n        includedServices: Object.freeze({ \n            type: 'Array<RatePlanServiceModel>',\n            isListContainer: true,\n        }),\n        companies: Object.freeze({ \n            type: 'Array<ReplaceCompanyRatePlanModel>',\n            isListContainer: true,\n        }),\n        pricingRule: Object.freeze({ \n            type: 'CreatePricingRuleModel',\n            metaData: CreatePricingRuleModel.$metaData\n        }),\n        surcharges: Object.freeze({ \n            type: 'Array<SurchargeModel>',\n            isListContainer: true,\n        }),\n        ageCategories: Object.freeze({ \n            type: 'Array<RatePlanAgeCategoryModel>',\n            isListContainer: true,\n        }),\n        accountingConfigs: Object.freeze({ \n            type: 'Array<AccountingConfigModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RevenueAllocationModel { \n    /**\n     * The VAT type\n     */\n    vatType: RevenueAllocationModel.VatTypeEnum;\n    /**\n     * The custom sub-account ID\n     */\n    subAccountId?: string;\n    /**\n     * The percentage of revenue allocated to the VAT type\n     */\n    percent: number;\n}\nexport namespace RevenueAllocationModel {\n    export type VatTypeEnum = 'Null' | 'VeryReduced' | 'Reduced' | 'Normal' | 'Without' | 'Special' | 'ReducedCovid19' | 'NormalCovid19' | 'Mixed';\n    export const VatTypeEnumValues = Object.freeze(\n        ['Null', 'VeryReduced', 'Reduced', 'Normal', 'Without', 'Special', 'ReducedCovid19', 'NormalCovid19', 'Mixed'] as VatTypeEnum[]);\n}\n\nexport namespace RevenueAllocationModel {\n    export const $metaData: ClassMetaData<RevenueAllocationModel> = { \n        vatType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: VatTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        subAccountId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        percent: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { RevenueAllocationModel } from './revenueAllocationModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ServiceAccountingConfigModel { \n    /**\n     * The VAT type - <b>DEPRECATED: VatType is deprecated, use RevenueAllocation instead</b>\n     */\n    vatType?: ServiceAccountingConfigModel.VatTypeEnum;\n    /**\n     * The sub-accounts id - <b>DEPRECATED: SubAccountId is deprecated, use RevenueAllocation instead</b>\n     */\n    subAccountId?: string;\n    /**\n     * Revenue allocation for the service\n     */\n    revenueAllocation?: Array<RevenueAllocationModel>;\n    /**\n     * The service type\n     */\n    serviceType: ServiceAccountingConfigModel.ServiceTypeEnum;\n    /**\n     * Which date this configuration is valid from\n     */\n    validFrom: string;\n}\nexport namespace ServiceAccountingConfigModel {\n    export type VatTypeEnum = 'Null' | 'VeryReduced' | 'Reduced' | 'Normal' | 'Without' | 'Special' | 'ReducedCovid19' | 'NormalCovid19' | 'Mixed';\n    export const VatTypeEnumValues = Object.freeze(\n        ['Null', 'VeryReduced', 'Reduced', 'Normal', 'Without', 'Special', 'ReducedCovid19', 'NormalCovid19', 'Mixed'] as VatTypeEnum[]);\n    export type ServiceTypeEnum = 'Other' | 'Accommodation' | 'FoodAndBeverages';\n    export const ServiceTypeEnumValues = Object.freeze(\n        ['Other', 'Accommodation', 'FoodAndBeverages'] as ServiceTypeEnum[]);\n}\n\nexport namespace ServiceAccountingConfigModel {\n    export const $metaData: ClassMetaData<ServiceAccountingConfigModel> = { \n        vatType: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: VatTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        subAccountId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        revenueAllocation: Object.freeze({ \n            type: 'Array<RevenueAllocationModel>',\n            isListContainer: true,\n        }),\n        serviceType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ServiceTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        validFrom: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ServiceCreatedModel { \n    /**\n     * The item id\n     */\n    id: string;\n}\n\nexport namespace ServiceCreatedModel {\n    export const $metaData: ClassMetaData<ServiceCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { RevenueAllocationModel } from './revenueAllocationModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ServiceItemAccountingConfigModel { \n    /**\n     * Revenue allocation for the service\n     */\n    revenueAllocation?: Array<RevenueAllocationModel>;\n    /**\n     * The service type\n     */\n    serviceType?: ServiceItemAccountingConfigModel.ServiceTypeEnum;\n    /**\n     * Which date this configuration is valid from\n     */\n    validFrom?: string;\n}\nexport namespace ServiceItemAccountingConfigModel {\n    export type ServiceTypeEnum = 'Other' | 'Accommodation' | 'FoodAndBeverages';\n    export const ServiceTypeEnumValues = Object.freeze(\n        ['Other', 'Accommodation', 'FoodAndBeverages'] as ServiceTypeEnum[]);\n}\n\nexport namespace ServiceItemAccountingConfigModel {\n    export const $metaData: ClassMetaData<ServiceItemAccountingConfigModel> = { \n        revenueAllocation: Object.freeze({ \n            type: 'Array<RevenueAllocationModel>',\n            isListContainer: true,\n        }),\n        serviceType: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ServiceTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        validFrom: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AvailabilityModel } from './availabilityModel';\nimport { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { ServiceItemAccountingConfigModel } from './serviceItemAccountingConfigModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ServiceItemModel { \n    /**\n     * Id\n     */\n    id: string;\n    /**\n     * Name\n     */\n    name: string;\n    /**\n     * The code for the service\n     */\n    code: string;\n    /**\n     * Description\n     */\n    description: string;\n    defaultGrossPrice: MonetaryValueModel;\n    /**\n     * Defines per which unit (flat, room, person) this item is offered and priced\n     */\n    pricingUnit?: ServiceItemModel.PricingUnitEnum;\n    /**\n     * Whether the service is delivered and posted on the same business date as the accommodation, or on the next day.\n     */\n    postNextDay: boolean;\n    /**\n     * The service type, used by accounting to determine the correct revenue account - <b>DEPRECATED: ServiceType is deprecated, use AccountingConfig instead</b>\n     */\n    serviceType?: ServiceItemModel.ServiceTypeEnum;\n    /**\n     * The vat type, used by accounting to determine the correct vat amount and account - <b>DEPRECATED: VatType is deprecated, use AccountingConfig instead</b>\n     */\n    vatType?: ServiceItemModel.VatTypeEnum;\n    availability: AvailabilityModel;\n    property: EmbeddedPropertyModel;\n    /**\n     * ID of the custom sub-account, used by accounting to determine the correct revenue account - <b>DEPRECATED: SubAccountId is deprecated, use AccountingConfig instead</b>\n     */\n    subAccountId?: string;\n    accountingConfig?: ServiceItemAccountingConfigModel;\n    /**\n     * The channel codes the service is sold through\n     */\n    channelCodes?: Array<ServiceItemModel.ChannelCodesEnum>;\n    /**\n     * The id of the age category associated with this service.\n     */\n    ageCategoryId?: string;\n}\nexport namespace ServiceItemModel {\n    export type PricingUnitEnum = 'Room' | 'Person';\n    export const PricingUnitEnumValues = Object.freeze(\n        ['Room', 'Person'] as PricingUnitEnum[]);\n    export type ServiceTypeEnum = 'Other' | 'Accommodation' | 'FoodAndBeverages';\n    export const ServiceTypeEnumValues = Object.freeze(\n        ['Other', 'Accommodation', 'FoodAndBeverages'] as ServiceTypeEnum[]);\n    export type VatTypeEnum = 'Null' | 'VeryReduced' | 'Reduced' | 'Normal' | 'Without' | 'Special' | 'ReducedCovid19' | 'NormalCovid19' | 'Mixed';\n    export const VatTypeEnumValues = Object.freeze(\n        ['Null', 'VeryReduced', 'Reduced', 'Normal', 'Without', 'Special', 'ReducedCovid19', 'NormalCovid19', 'Mixed'] as VatTypeEnum[]);\n    export type ChannelCodesEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodesEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodesEnum[]);\n}\n\nexport namespace ServiceItemModel {\n    export const $metaData: ClassMetaData<ServiceItemModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        defaultGrossPrice: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        pricingUnit: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PricingUnitEnumValues,\n            isPrimitiveType: true,\n        }),\n        postNextDay: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        serviceType: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ServiceTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        vatType: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: VatTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        availability: Object.freeze({ \n            isRequired: true,\n            type: 'AvailabilityModel',\n            metaData: AvailabilityModel.$metaData\n        }),\n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        subAccountId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        accountingConfig: Object.freeze({ \n            type: 'ServiceItemAccountingConfigModel',\n            metaData: ServiceItemAccountingConfigModel.$metaData\n        }),\n        channelCodes: Object.freeze({ \n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        ageCategoryId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { ServiceItemModel } from './serviceItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ServiceListModel { \n    /**\n     * List of packages\n     */\n    services: Array<ServiceItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace ServiceListModel {\n    export const $metaData: ClassMetaData<ServiceListModel> = { \n        services: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ServiceItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\nimport { AvailabilityModel } from './availabilityModel';\nimport { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { ServiceAccountingConfigModel } from './serviceAccountingConfigModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ServiceModel { \n    /**\n     * The service id\n     */\n    id: string;\n    /**\n     * The code for the service\n     */\n    code: string;\n    /**\n     * The name for the service\n     */\n    name: { [key: string]: string; };\n    /**\n     * The description for the service\n     */\n    description: { [key: string]: string; };\n    defaultGrossPrice: MonetaryValueModel;\n    /**\n     * Defines the granularity (room, person) for which this item is offered and priced\n     */\n    pricingUnit: ServiceModel.PricingUnitEnum;\n    /**\n     * Whether the service is delivered and posted on the same business date as the accommodation, or on the next day.\n     */\n    postNextDay: boolean;\n    availability: AvailabilityModel;\n    /**\n     * The collection of accounting configs with validity periods.\n     */\n    accountingConfigs: Array<ServiceAccountingConfigModel>;\n    property: EmbeddedPropertyModel;\n    /**\n     * The channel codes the service is sold through. When no channels are defined, the service is sold only in a package\n     */\n    channelCodes?: Array<ServiceModel.ChannelCodesEnum>;\n    /**\n     * The id of the age category associated with this service.\n     */\n    ageCategoryId?: string;\n}\nexport namespace ServiceModel {\n    export type PricingUnitEnum = 'Room' | 'Person';\n    export const PricingUnitEnumValues = Object.freeze(\n        ['Room', 'Person'] as PricingUnitEnum[]);\n    export type ChannelCodesEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodesEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodesEnum[]);\n}\n\nexport namespace ServiceModel {\n    export const $metaData: ClassMetaData<ServiceModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        description: Object.freeze({ \n            isRequired: true,\n            type: '{ [key: string]: string; }',\n            isPrimitiveType: true,\n            isMapContainer: true,\n        }),\n        defaultGrossPrice: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        pricingUnit: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PricingUnitEnumValues,\n            isPrimitiveType: true,\n        }),\n        postNextDay: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        availability: Object.freeze({ \n            isRequired: true,\n            type: 'AvailabilityModel',\n            metaData: AvailabilityModel.$metaData\n        }),\n        accountingConfigs: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ServiceAccountingConfigModel>',\n            isListContainer: true,\n        }),\n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        channelCodes: Object.freeze({ \n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        ageCategoryId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Rate Plan API - not safe for work\n * Continuously evolving version - use at your own risk! Manage the rate plans and rates to rent out your inventory and extra services.\n *\n * OpenAPI spec version: v0-nsfw\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface SurchargeModel { \n    /**\n     * The total numbers of adults\n     */\n    adults: number;\n    /**\n     * Specifies how to interpret 'Value'\n     */\n    type: SurchargeModel.TypeEnum;\n    /**\n     * The percent or absolute value (in the rate plan's currency) of the surcharge\n     */\n    value: number;\n}\nexport namespace SurchargeModel {\n    export type TypeEnum = 'Absolute' | 'Percent';\n    export const TypeEnumValues = Object.freeze(\n        ['Absolute', 'Percent'] as TypeEnum[]);\n}\n\nexport namespace SurchargeModel {\n    export const $metaData: ClassMetaData<SurchargeModel> = { \n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        type: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        value: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\nimport { AgeCategoryService } from './api/ageCategory.service';\nimport { CancellationPolicyService } from './api/cancellationPolicy.service';\nimport { CompanyService } from './api/company.service';\nimport { CorporateCodesService } from './api/corporateCodes.service';\nimport { NoShowPolicyService } from './api/noShowPolicy.service';\nimport { PromoCodesService } from './api/promoCodes.service';\nimport { RateService } from './api/rate.service';\nimport { RatePlanService } from './api/ratePlan.service';\nimport { RatePlanActionsService } from './api/ratePlanActions.service';\nimport { ServiceService } from './api/service.service';\n\n@NgModule({\n  imports:      [],\n  declarations: [],\n  exports:      [],\n  providers: [\n    AgeCategoryService,\n    CancellationPolicyService,\n    CompanyService,\n    CorporateCodesService,\n    NoShowPolicyService,\n    PromoCodesService,\n    RateService,\n    RatePlanService,\n    RatePlanActionsService,\n    ServiceService \n  ]\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(\n        @Optional() @SkipSelf() parentModule: ApiModule,\n        @Optional() http: HttpClient\n    ) {\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":["append","i2.Configuration"],"mappings":"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"}