{"version":3,"file":"apaleo-angular-api-proxy-booking.mjs","sources":["../../encoder.ts","../../variables.ts","../../configuration.ts","../../api/authorization.service.ts","../../api/authorizationActions.service.ts","../../api/block.service.ts","../../api/blockActions.service.ts","../../api/booking.service.ts","../../api/group.service.ts","../../api/offer.service.ts","../../api/paymentAccount.service.ts","../../api/paymentAccountActions.service.ts","../../api/reservation.service.ts","../../api/reservationActions.service.ts","../../api/types.service.ts","../../api/api.ts","../../model/actionModelAuthorizationActionNotAllowedAuthorizationActionReason.ts","../../model/actionModelBlockActionNotAllowedBlockActionReason.ts","../../model/actionModelGroupActionNotAllowedGroupActionReason.ts","../../model/actionModelPaymentAccountActionNotAllowedPaymentAccountActionReason.ts","../../model/actionModelReservationActionNotAllowedReservationActionReason.ts","../../model/actionModelReservationTimeSliceActionNotAllowedReservationTimeSliceActionReason.ts","../../model/actionReasonModelNotAllowedAuthorizationActionReason.ts","../../model/actionReasonModelNotAllowedBlockActionReason.ts","../../model/actionReasonModelNotAllowedGroupActionReason.ts","../../model/actionReasonModelNotAllowedPaymentAccountActionReason.ts","../../model/actionReasonModelNotAllowedReservationActionReason.ts","../../model/actionReasonModelNotAllowedReservationTimeSliceActionReason.ts","../../model/addChannelReservationsModel.ts","../../model/addReservationValidationMessagesRequest.ts","../../model/addReservationsModel.ts","../../model/allowedValueListModel.ts","../../model/amountModel.ts","../../model/embeddedUnitModel.ts","../../model/assignedUnitModel.ts","../../model/authorizationCreatedModel.ts","../../model/authorizationListModel.ts","../../model/authorizationTargetModel.ts","../../model/externalAuthorizationReferenceModel.ts","../../model/monetaryValueModel.ts","../../model/authorizationModel.ts","../../model/authorizationRefreshRequest.ts","../../model/autoAssignedUnitItemModel.ts","../../model/autoAssignedUnitListModel.ts","../../model/blockCreatedModel.ts","../../model/embeddedGroupModel.ts","../../model/embeddedMarketSegmentModel.ts","../../model/embeddedPropertyModel.ts","../../model/embeddedRatePlanModel.ts","../../model/embeddedUnitGroupModel.ts","../../model/blockItemModel.ts","../../model/blockListModel.ts","../../model/blockModel.ts","../../model/blockOfferModel.ts","../../model/blockOfferTimeSliceModel.ts","../../model/blockOffersModel.ts","../../model/blockTimeSliceModel.ts","../../model/bookReservationServiceModel.ts","../../model/personAddressModel.ts","../../model/personCompanyModel.ts","../../model/bookerModel.ts","../../model/bookingCreatedModel.ts","../../model/paymentAccountModel.ts","../../model/registeredCardModel.ts","../../model/bookingItemModel.ts","../../model/bookingListModel.ts","../../model/bookingModel.ts","../../model/embeddedCompanyModel.ts","../../model/externalReferencesModel.ts","../../model/reservationCancellationFeeModel.ts","../../model/reservationNoShowFeeModel.ts","../../model/bookingReservationModel.ts","../../model/bulkTimeSliceListModel.ts","../../model/commissionModel.ts","../../model/commitAuthorizationModel.ts","../../model/paymentAccountDetailsModel.ts","../../model/commitPaymentAccountRequest.ts","../../model/countModel.ts","../../model/paymentAccountTargetModel.ts","../../model/createAuthorizationPaymentAccountRequest.ts","../../model/createAuthorizationRequest.ts","../../model/createBlockModel.ts","../../model/createBlockTimeSliceModel.ts","../../model/createPaymentAccountModel.ts","../../model/createBookingModel.ts","../../model/createChannelBookingModel.ts","../../model/createExternalReferencesModel.ts","../../model/vehicleRegistrationModel.ts","../../model/guestModel.ts","../../model/createChannelReservationModel.ts","../../model/createGroupModel.ts","../../model/createPaymentAccountAuthorizationRequest.ts","../../model/createPaymentLinkAuthorizationRequest.ts","../../model/createPaymentLinkPaymentAccountRequest.ts","../../model/createReservationModel.ts","../../model/createReservationTimeSliceModel.ts","../../model/createReservationValidationMessageModel.ts","../../model/createTerminalAuthorizationRequest.ts","../../model/createTerminalPaymentAccountRequest.ts","../../model/deleteReservationValidationMessagesRequest.ts","../../model/desiredStayDetailsChannelModel.ts","../../model/desiredStayDetailsModel.ts","../../model/desiredTimeSliceModel.ts","../../model/embeddedServiceModel.ts","../../model/externalPaymentAccountReferenceModel.ts","../../model/failAuthorizationRequest.ts","../../model/failPaymentAccountRequest.ts","../../model/groupBlockModel.ts","../../model/groupCreatedModel.ts","../../model/groupItemModel.ts","../../model/groupListModel.ts","../../model/groupModel.ts","../../model/messageItemCollection.ts","../../model/modelDate.ts","../../model/offerCancellationFeeModel.ts","../../model/offerCityTaxItemModel.ts","../../model/offerCityTaxModel.ts","../../model/offerFeeModel.ts","../../model/offerNoShowFeeModel.ts","../../model/offerUnitGroupModel.ts","../../model/offerModel.ts","../../model/offerServiceModel.ts","../../model/offerTimeSliceModel.ts","../../model/offerValidationMessageModel.ts","../../model/operation.ts","../../model/payableAmountModel.ts","../../model/paymentAccountCreatedModel.ts","../../model/paymentAccountPaymentLinkModel.ts","../../model/paymentAccountV2ListModel.ts","../../model/paymentAccountV2Model.ts","../../model/taxesModel.ts","../../model/priceModel.ts","../../model/perOccupancyPriceItemModel.ts","../../model/periodModel.ts","../../model/pickUpReservationModel.ts","../../model/pickUpReservationsModel.ts","../../model/propertyValueModel.ts","../../model/ratePlanTimeSliceListModel.ts","../../model/rateRestrictionsModel.ts","../../model/replaceBlockModel.ts","../../model/reservationAssignedUnitModel.ts","../../model/reservationAssignedUnitTimeRangeModel.ts","../../model/reservationCreatedModel.ts","../../model/reservationItemModel.ts","../../model/reservationListModel.ts","../../model/reservationModel.ts","../../model/serviceModel.ts","../../model/reservationServiceItemModel.ts","../../model/reservationServiceListModel.ts","../../model/reservationServiceModel.ts","../../model/reservationStayOfferModel.ts","../../model/reservationStayOfferServiceModel.ts","../../model/reservationStayOfferTimeSliceModel.ts","../../model/reservationStayOffersModel.ts","../../model/reservationValidationMessageModel.ts","../../model/reservationsCreatedModel.ts","../../model/serviceDateItemModel.ts","../../model/serviceOfferItemModel.ts","../../model/serviceOfferModel.ts","../../model/serviceOffersModel.ts","../../model/sourceListModel.ts","../../model/stayOffersModel.ts","../../model/taxDetailModel.ts","../../model/timeSliceItemModel.ts","../../model/timeSliceListModel.ts","../../model/timeSliceModel.ts","../../model/timeSliceOfferItemModel.ts","../../api.module.ts","../../apaleo-angular-api-proxy-booking.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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AuthorizationCreatedModel } from '../model/authorizationCreatedModel';\nimport { AuthorizationListModel } from '../model/authorizationListModel';\nimport { AuthorizationModel } from '../model/authorizationModel';\nimport { CreateAuthorizationRequest } from '../model/createAuthorizationRequest';\nimport { CreatePaymentAccountAuthorizationRequest } from '../model/createPaymentAccountAuthorizationRequest';\nimport { CreatePaymentLinkAuthorizationRequest } from '../model/createPaymentLinkAuthorizationRequest';\nimport { CreateTerminalAuthorizationRequest } from '../model/createTerminalAuthorizationRequest';\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 bookingAuthorizationsByAuthorizationPost {\n    export interface Params {\n    \n        /**\n        * The definition of the authorization to be created\n        */\n        body: CreateAuthorizationRequest;\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 bookingAuthorizationsByIdGet {\n    export interface Params {\n    \n        /**\n        * The identifier of the authorization\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        * List of all embedded resources that should be expanded in the response. Possible values are: actions. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type ExpandEnum = 'actions';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['actions'] as ExpandEnum[]);\n    \n}\nexport namespace bookingAuthorizationsByLinkPost {\n    export interface Params {\n    \n        /**\n        * The definition of the authorization to be created\n        */\n        body: CreatePaymentLinkAuthorizationRequest;\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 bookingAuthorizationsByPaymentAccountPost {\n    export interface Params {\n    \n        /**\n        * The definition of the authorization to be created\n        */\n        body: CreatePaymentAccountAuthorizationRequest;\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 bookingAuthorizationsByTerminalPost {\n    export interface Params {\n    \n        /**\n        * The definition of the authorization to be created\n        */\n        body: CreateTerminalAuthorizationRequest;\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 bookingAuthorizationsGet {\n    export interface Params {\n    \n        /**\n        * Filter result by requested properties\n        */\n        propertyIds?: Array<string>;\n    \n        /**\n        * Filter result by requested booking ids. Returns authorizations that are related to the specified booking or booking reservations.  Use in combination with the Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.TargetTypes to get authorizations related only to bookings or to reservations.\n        */\n        bookingIds?: Array<string>;\n    \n        /**\n        * Filter result by requested reservation ids\n        */\n        reservationIds?: Array<string>;\n    \n        /**\n        * Filter result by authorization status\n        */\n        status?: Array<StatusEnum>;\n    \n        /**\n        * Filter by target types\n        */\n        targetTypes?: Array<TargetTypesEnum>;\n    \n        /**\n        * Filter result by date and time attributes of authorization. Use in combination with the Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.From and Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.To attributes.  All filters will check if the date specified by the filter type is between Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.From (included) and Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.To (excluded).\n        */\n        dateField?: DateFieldEnum;\n    \n        /**\n        * The start of the time interval. When filtering by Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.DateField, at least one of Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.From and Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.To has to be specified<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        /**\n        * The end of the time interval, must be larger than Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.From. When filtering by Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.DateField, at least one of Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.From and Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.To has to be specified<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        /**\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 fields that can be used to sort the results. Possible values are: created:asc, created:desc, updated:asc, updated:desc, expiresat:asc, expiresat:desc. All other values will be silently ignored.\n        */\n        sort?: Array<SortEnum>;\n    \n        /**\n        * List of all embedded resources that should be expanded in the response. Possible values are: actions. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type StatusEnum = 'Pending' | 'Success' | 'Failure' | 'Canceled' | 'Expired';\n\n    export const StatusEnumValues = Object.freeze(\n        ['Pending', 'Success', 'Failure', 'Canceled', 'Expired'] as StatusEnum[]);\n    \n    export type TargetTypesEnum = 'Booking' | 'Reservation';\n\n    export const TargetTypesEnumValues = Object.freeze(\n        ['Booking', 'Reservation'] as TargetTypesEnum[]);\n    \n    export type DateFieldEnum = 'Creation' | 'Modification' | 'Expiration';\n\n    export const DateFieldEnumValues = Object.freeze(\n        ['Creation', 'Modification', 'Expiration'] as DateFieldEnum[]);\n    \n    export type SortEnum = 'created:asc' | 'created:desc' | 'updated:asc' | 'updated:desc' | 'expiresat:asc' | 'expiresat:desc';\n\n    export const SortEnumValues = Object.freeze(\n        ['created:asc', 'created:desc', 'updated:asc', 'updated:desc', 'expiresat:asc', 'expiresat:desc'] as SortEnum[]);\n    \n    export type ExpandEnum = 'actions';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['actions'] as ExpandEnum[]);\n    \n}\n\n@Injectable()\nexport class AuthorizationService {\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     * Creates the authorization based on an existing authorization created prior directly with the Payment Service Provider\n     * &lt;br&gt;You must have this scope: &#39;authorizations.manage&#39;.\n     * @param $params.body The definition of the authorization to be created\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 bookingAuthorizationsByAuthorizationPost($params: bookingAuthorizationsByAuthorizationPost.Params, observe?: 'body', reportProgress?: boolean): Observable<AuthorizationCreatedModel>;\n    public bookingAuthorizationsByAuthorizationPost($params: bookingAuthorizationsByAuthorizationPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AuthorizationCreatedModel>>;\n    public bookingAuthorizationsByAuthorizationPost($params: bookingAuthorizationsByAuthorizationPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AuthorizationCreatedModel>>;\n    public bookingAuthorizationsByAuthorizationPost($params: bookingAuthorizationsByAuthorizationPost.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 bookingAuthorizationsByAuthorizationPost.');\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<AuthorizationCreatedModel>(`${this.basePath}/booking/v0-nsfw/authorizations/by-authorization`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a single authorization by ID\n     * &lt;br&gt;You must have at least one of these scopes: &#39;authorizations.read, authorizations.manage&#39;.\n     * @param $params.id The identifier of the authorization\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: actions. 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 bookingAuthorizationsByIdGet($params: bookingAuthorizationsByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<AuthorizationModel>;\n    public bookingAuthorizationsByIdGet($params: bookingAuthorizationsByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AuthorizationModel>>;\n    public bookingAuthorizationsByIdGet($params: bookingAuthorizationsByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AuthorizationModel>>;\n    public bookingAuthorizationsByIdGet($params: bookingAuthorizationsByIdGet.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 bookingAuthorizationsByIdGet.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\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<AuthorizationModel>(`${this.basePath}/booking/v0-nsfw/authorizations/${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     * Creates a link to a payment form that allows guests to complete the authorization\n     * &lt;br&gt;You must have this scope: &#39;authorizations.manage&#39;.\n     * @param $params.body The definition of the authorization to be created\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 bookingAuthorizationsByLinkPost($params: bookingAuthorizationsByLinkPost.Params, observe?: 'body', reportProgress?: boolean): Observable<AuthorizationCreatedModel>;\n    public bookingAuthorizationsByLinkPost($params: bookingAuthorizationsByLinkPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AuthorizationCreatedModel>>;\n    public bookingAuthorizationsByLinkPost($params: bookingAuthorizationsByLinkPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AuthorizationCreatedModel>>;\n    public bookingAuthorizationsByLinkPost($params: bookingAuthorizationsByLinkPost.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 bookingAuthorizationsByLinkPost.');\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<AuthorizationCreatedModel>(`${this.basePath}/booking/v0-nsfw/authorizations/by-link`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Creates authorization by using a previously created payment account\n     * &lt;br&gt;You must have this scope: &#39;authorizations.manage&#39;.\n     * @param $params.body The definition of the authorization to be created\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 bookingAuthorizationsByPaymentAccountPost($params: bookingAuthorizationsByPaymentAccountPost.Params, observe?: 'body', reportProgress?: boolean): Observable<AuthorizationCreatedModel>;\n    public bookingAuthorizationsByPaymentAccountPost($params: bookingAuthorizationsByPaymentAccountPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AuthorizationCreatedModel>>;\n    public bookingAuthorizationsByPaymentAccountPost($params: bookingAuthorizationsByPaymentAccountPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AuthorizationCreatedModel>>;\n    public bookingAuthorizationsByPaymentAccountPost($params: bookingAuthorizationsByPaymentAccountPost.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 bookingAuthorizationsByPaymentAccountPost.');\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<AuthorizationCreatedModel>(`${this.basePath}/booking/v0-nsfw/authorizations/by-payment-account`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Creates the authorization by using the terminal\n     * &lt;br&gt;You must have this scope: &#39;authorizations.manage&#39;.\n     * @param $params.body The definition of the authorization to be created\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 bookingAuthorizationsByTerminalPost($params: bookingAuthorizationsByTerminalPost.Params, observe?: 'body', reportProgress?: boolean): Observable<AuthorizationCreatedModel>;\n    public bookingAuthorizationsByTerminalPost($params: bookingAuthorizationsByTerminalPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AuthorizationCreatedModel>>;\n    public bookingAuthorizationsByTerminalPost($params: bookingAuthorizationsByTerminalPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AuthorizationCreatedModel>>;\n    public bookingAuthorizationsByTerminalPost($params: bookingAuthorizationsByTerminalPost.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 bookingAuthorizationsByTerminalPost.');\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<AuthorizationCreatedModel>(`${this.basePath}/booking/v0-nsfw/authorizations/by-terminal`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of authorizations based on the query parameters\n     * &lt;br&gt;You must have at least one of these scopes: &#39;authorizations.read, authorizations.manage&#39;.\n     * @param $params.propertyIds Filter result by requested properties\n     * @param $params.bookingIds Filter result by requested booking ids. Returns authorizations that are related to the specified booking or booking reservations.  Use in combination with the Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.TargetTypes to get authorizations related only to bookings or to reservations.\n     * @param $params.reservationIds Filter result by requested reservation ids\n     * @param $params.status Filter result by authorization status\n     * @param $params.targetTypes Filter by target types\n     * @param $params.dateField Filter result by date and time attributes of authorization. Use in combination with the Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.From and Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.To attributes.  All filters will check if the date specified by the filter type is between Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.From (included) and Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.To (excluded).\n     * @param $params.from The start of the time interval. When filtering by Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.DateField, at least one of Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.From and Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.To has to be specified&lt;br /&gt;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 interval, must be larger than Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.From. When filtering by Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.DateField, at least one of Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.From and Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationListRequest.To has to be specified&lt;br /&gt;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 $params.sort List of all fields that can be used to sort the results. Possible values are: created:asc, created:desc, updated:asc, updated:desc, expiresat:asc, expiresat:desc. All other values will be silently ignored.\n     * @param $params.expand List of all embedded resources that should be expanded in the response. Possible values are: actions. 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 bookingAuthorizationsGet($params: bookingAuthorizationsGet.Params, observe?: 'body', reportProgress?: boolean): Observable<AuthorizationListModel>;\n    public bookingAuthorizationsGet($params: bookingAuthorizationsGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AuthorizationListModel>>;\n    public bookingAuthorizationsGet($params: bookingAuthorizationsGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AuthorizationListModel>>;\n    public bookingAuthorizationsGet($params: bookingAuthorizationsGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyIds = $params.propertyIds;\n        const bookingIds = $params.bookingIds;\n        const reservationIds = $params.reservationIds;\n        const status = $params.status;\n        const targetTypes = $params.targetTypes;\n        const dateField = $params.dateField;\n        const from = $params.from;\n        const to = $params.to;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n        const sort = $params.sort;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyIds) {\n            queryParameters = queryParameters.set('propertyIds', propertyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (bookingIds) {\n            queryParameters = queryParameters.set('bookingIds', bookingIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (reservationIds) {\n            queryParameters = queryParameters.set('reservationIds', reservationIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (status) {\n            queryParameters = queryParameters.set('status', status.join(COLLECTION_FORMATS['csv']));\n        }\n        if (targetTypes) {\n            queryParameters = queryParameters.set('targetTypes', targetTypes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (dateField !== undefined && dateField !== null) {\n            queryParameters = queryParameters.set('dateField', <any>dateField);\n        }\n        if (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>dateToApaleoIso(from));\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>dateToApaleoIso(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        if (sort) {\n            sort.forEach((element) => {\n                queryParameters = queryParameters.append('sort', <any>element);\n            })\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<AuthorizationListModel>(`${this.basePath}/booking/v0-nsfw/authorizations`,\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AuthorizationRefreshRequest } from '../model/authorizationRefreshRequest';\nimport { CommitAuthorizationModel } from '../model/commitAuthorizationModel';\nimport { FailAuthorizationRequest } from '../model/failAuthorizationRequest';\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 bookingAuthorizationActionsByAuthorizationIdCancelPut {\n    export interface Params {\n    \n        /**\n        * The identifier of the authorization\n        */\n        authorizationId: 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 bookingAuthorizationActionsByAuthorizationIdCommitPut {\n    export interface Params {\n    \n        /**\n        * The identifier of the authorization\n        */\n        authorizationId: string;\n    \n        /**\n        * The details related to the authorization to commit\n        */\n        body: CommitAuthorizationModel;\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 bookingAuthorizationActionsByAuthorizationIdFailPut {\n    export interface Params {\n    \n        /**\n        * The identifier of the authorization\n        */\n        authorizationId: string;\n    \n        /**\n        * The details related to the authorization to fail/expire\n        */\n        body: FailAuthorizationRequest;\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 bookingAuthorizationActionsByAuthorizationIdRefreshPut {\n    export interface Params {\n    \n        /**\n        * The identifier of the authorization\n        */\n        authorizationId: string;\n    \n        /**\n        * The definition of the authorization refresh request\n        */\n        body: AuthorizationRefreshRequest;\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 AuthorizationActionsService {\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     * Cancels the authorization\n     * &lt;br&gt;You must have this scope: &#39;authorizations.manage&#39;.\n     * @param $params.authorizationId The identifier of the authorization\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 bookingAuthorizationActionsByAuthorizationIdCancelPut($params: bookingAuthorizationActionsByAuthorizationIdCancelPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingAuthorizationActionsByAuthorizationIdCancelPut($params: bookingAuthorizationActionsByAuthorizationIdCancelPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingAuthorizationActionsByAuthorizationIdCancelPut($params: bookingAuthorizationActionsByAuthorizationIdCancelPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingAuthorizationActionsByAuthorizationIdCancelPut($params: bookingAuthorizationActionsByAuthorizationIdCancelPut.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const authorizationId = $params.authorizationId;\n        if (authorizationId === null || authorizationId === undefined) {\n            throw new Error('Required parameter authorizationId was null or undefined when calling bookingAuthorizationActionsByAuthorizationIdCancelPut.');\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}/booking/v0-nsfw/authorization-actions/${encodeURIComponent(String(authorizationId))}/cancel`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Sets the authorization to success\n     * &lt;br&gt;You must have this scope: &#39;payments.admin&#39;.\n     * @param $params.authorizationId The identifier of the authorization\n     * @param $params.body The details related to the authorization to commit\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 bookingAuthorizationActionsByAuthorizationIdCommitPut($params: bookingAuthorizationActionsByAuthorizationIdCommitPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingAuthorizationActionsByAuthorizationIdCommitPut($params: bookingAuthorizationActionsByAuthorizationIdCommitPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingAuthorizationActionsByAuthorizationIdCommitPut($params: bookingAuthorizationActionsByAuthorizationIdCommitPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingAuthorizationActionsByAuthorizationIdCommitPut($params: bookingAuthorizationActionsByAuthorizationIdCommitPut.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const authorizationId = $params.authorizationId;\n        if (authorizationId === null || authorizationId === undefined) {\n            throw new Error('Required parameter authorizationId was null or undefined when calling bookingAuthorizationActionsByAuthorizationIdCommitPut.');\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 bookingAuthorizationActionsByAuthorizationIdCommitPut.');\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}/booking/v0-nsfw/authorization-actions/${encodeURIComponent(String(authorizationId))}/commit`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Fails the authorization\n     * &lt;br&gt;You must have this scope: &#39;payments.admin&#39;.\n     * @param $params.authorizationId The identifier of the authorization\n     * @param $params.body The details related to the authorization to fail/expire\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 bookingAuthorizationActionsByAuthorizationIdFailPut($params: bookingAuthorizationActionsByAuthorizationIdFailPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingAuthorizationActionsByAuthorizationIdFailPut($params: bookingAuthorizationActionsByAuthorizationIdFailPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingAuthorizationActionsByAuthorizationIdFailPut($params: bookingAuthorizationActionsByAuthorizationIdFailPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingAuthorizationActionsByAuthorizationIdFailPut($params: bookingAuthorizationActionsByAuthorizationIdFailPut.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const authorizationId = $params.authorizationId;\n        if (authorizationId === null || authorizationId === undefined) {\n            throw new Error('Required parameter authorizationId was null or undefined when calling bookingAuthorizationActionsByAuthorizationIdFailPut.');\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 bookingAuthorizationActionsByAuthorizationIdFailPut.');\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}/booking/v0-nsfw/authorization-actions/${encodeURIComponent(String(authorizationId))}/fail`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Updates the requested amount and extends the expiry date of the authorization\n     * Allows to top up the authorization and renew expiry date. The top-up amount is specified in the payload and needs to be greater than the original amount.  If the amount specified is the same as the original one, the authorization is renewed and changes its expiry date.  If the amount specified is less than the original one, the authorization is adjusted down.&lt;br&gt;You must have this scope: &#39;authorizations.manage&#39;.\n     * @param $params.authorizationId The identifier of the authorization\n     * @param $params.body The definition of the authorization refresh request\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 bookingAuthorizationActionsByAuthorizationIdRefreshPut($params: bookingAuthorizationActionsByAuthorizationIdRefreshPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingAuthorizationActionsByAuthorizationIdRefreshPut($params: bookingAuthorizationActionsByAuthorizationIdRefreshPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingAuthorizationActionsByAuthorizationIdRefreshPut($params: bookingAuthorizationActionsByAuthorizationIdRefreshPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingAuthorizationActionsByAuthorizationIdRefreshPut($params: bookingAuthorizationActionsByAuthorizationIdRefreshPut.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const authorizationId = $params.authorizationId;\n        if (authorizationId === null || authorizationId === undefined) {\n            throw new Error('Required parameter authorizationId was null or undefined when calling bookingAuthorizationActionsByAuthorizationIdRefreshPut.');\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 bookingAuthorizationActionsByAuthorizationIdRefreshPut.');\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}/booking/v0-nsfw/authorization-actions/${encodeURIComponent(String(authorizationId))}/refresh`,\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BlockCreatedModel } from '../model/blockCreatedModel';\nimport { BlockListModel } from '../model/blockListModel';\nimport { BlockModel } from '../model/blockModel';\nimport { BlockOffersModel } from '../model/blockOffersModel';\nimport { CountModel } from '../model/countModel';\nimport { CreateBlockModel } from '../model/createBlockModel';\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 bookingBlocksByIdDelete {\n    export interface Params {\n    \n        /**\n        * The id of the block.\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 bookingBlocksByIdGet {\n    export interface Params {\n    \n        /**\n        * Id of the block to be retrieved.\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        * List of all embedded resources that should be expanded in the response. Possible values are: actions, timeSlices. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type ExpandEnum = 'actions' | 'timeSlices';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['actions', 'timeSlices'] as ExpandEnum[]);\n    \n}\nexport namespace bookingBlocksByIdHead {\n    export interface Params {\n    \n        /**\n        * The id of the block.\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 bookingBlocksByIdOffersGet {\n    export interface Params {\n    \n        /**\n        * Id of the block to be amended.\n        */\n        id: string;\n    \n        /**\n        * Date and optional time of arrival<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        arrival: string;\n    \n        /**\n        * Date and optional time of departure. Cannot be more than 5 years after arrival.<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        departure: string;\n    \n        /**\n        * Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\n        */\n        includeUnavailable?: 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}\nexport namespace bookingBlocksByIdPatch {\n    export interface Params {\n    \n        /**\n        * Id of the block 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 bookingBlocksGet {\n    export interface Params {\n    \n        /**\n        * Return blocks for the specific group\n        */\n        groupId?: string;\n    \n        /**\n        * Return blocks filtered by properties\n        */\n        propertyIds?: Array<string>;\n    \n        /**\n        * Return blocks filtered by statuses\n        */\n        status?: Array<StatusEnum>;\n    \n        /**\n        * Return blocks with any of the specified unit groups\n        */\n        unitGroupIds?: Array<string>;\n    \n        /**\n        * Return blocks with any of the specified rate plans\n        */\n        ratePlanIds?: Array<string>;\n    \n        /**\n        * Return blocks with any of the specified time slice definitions\n        */\n        timeSliceDefinitionIds?: Array<string>;\n    \n        /**\n        * Return blocks 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        * The start of the time range. All blocks that are overlapping with the interval specified by from and to  will be returned<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        /**\n        * The end of the time range. All blocks that are overlapping with the interval specified by from and to  will be returned<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        /**\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: actions, timeSlices. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type StatusEnum = 'Tentative' | 'Definite' | 'Canceled';\n\n    export const StatusEnumValues = Object.freeze(\n        ['Tentative', 'Definite', 'Canceled'] as StatusEnum[]);\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 ExpandEnum = 'actions' | 'timeSlices';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['actions', 'timeSlices'] as ExpandEnum[]);\n    \n}\nexport namespace bookingBlocksPost {\n    export interface Params {\n    \n        /**\n        * The details for the block you want to create.\n        */\n        body: CreateBlockModel;\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 bookingBlockscountGet {\n    export interface Params {\n    \n        /**\n        * Return blocks for the specific group\n        */\n        groupId?: string;\n    \n        /**\n        * Return blocks filtered by properties\n        */\n        propertyIds?: Array<string>;\n    \n        /**\n        * Return blocks filtered by statuses\n        */\n        status?: Array<StatusEnum>;\n    \n        /**\n        * Return blocks with any of the specified unit groups\n        */\n        unitGroupIds?: Array<string>;\n    \n        /**\n        * Return blocks with any of the specified rate plans\n        */\n        ratePlanIds?: Array<string>;\n    \n        /**\n        * Return blocks with any of the specified time slice definitions\n        */\n        timeSliceDefinitionIds?: Array<string>;\n    \n        /**\n        * Return blocks 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        * The start of the time range. All blocks that are overlapping with the interval specified by from and to  will be returned<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        /**\n        * The end of the time range. All blocks that are overlapping with the interval specified by from and to  will be returned<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        /**\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 StatusEnum = 'Tentative' | 'Definite' | 'Canceled';\n\n    export const StatusEnumValues = Object.freeze(\n        ['Tentative', 'Definite', 'Canceled'] as StatusEnum[]);\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}\n\n@Injectable()\nexport class BlockService {\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 specific block\n     * Use this call to delete a block. This is only possible as long as no reservation was picked up yet even if all of  them are canceled&lt;br&gt;You must have at least one of these scopes: &#39;blocks.manage, reservations.manage&#39;.\n     * @param $params.id The id of the block.\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 bookingBlocksByIdDelete($params: bookingBlocksByIdDelete.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingBlocksByIdDelete($params: bookingBlocksByIdDelete.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingBlocksByIdDelete($params: bookingBlocksByIdDelete.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingBlocksByIdDelete($params: bookingBlocksByIdDelete.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 bookingBlocksByIdDelete.');\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}/booking/v0-nsfw/blocks/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a specific block.\n     * Retrieves a block, specified by its ID.&lt;br&gt;You must have at least one of these scopes: &#39;blocks.read, reservations.read, reservations.manage&#39;.\n     * @param $params.id Id of the block to be retrieved.\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: actions, timeSlices. 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 bookingBlocksByIdGet($params: bookingBlocksByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<BlockModel>;\n    public bookingBlocksByIdGet($params: bookingBlocksByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BlockModel>>;\n    public bookingBlocksByIdGet($params: bookingBlocksByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BlockModel>>;\n    public bookingBlocksByIdGet($params: bookingBlocksByIdGet.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 bookingBlocksByIdGet.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\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<BlockModel>(`${this.basePath}/booking/v0-nsfw/blocks/${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 block exists\n     * Check if a block exists by id&lt;br&gt;You must have at least one of these scopes: &#39;blocks.read, reservations.read, reservations.manage&#39;.\n     * @param $params.id The id of the block.\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 bookingBlocksByIdHead($params: bookingBlocksByIdHead.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingBlocksByIdHead($params: bookingBlocksByIdHead.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingBlocksByIdHead($params: bookingBlocksByIdHead.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingBlocksByIdHead($params: bookingBlocksByIdHead.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 bookingBlocksByIdHead.');\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}/booking/v0-nsfw/blocks/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns offers for one specific block.\n     * Calculates and returns offers for amending a specific block.&lt;br&gt;You must have at least one of these scopes: &#39;offers.read, blocks.manage, reservations.manage&#39;.\n     * @param $params.id Id of the block to be amended.\n     * @param $params.arrival Date and optional time of arrival&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.departure Date and optional time of departure. Cannot be more than 5 years after arrival.&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.includeUnavailable Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\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 bookingBlocksByIdOffersGet($params: bookingBlocksByIdOffersGet.Params, observe?: 'body', reportProgress?: boolean): Observable<BlockOffersModel|null>;\n    public bookingBlocksByIdOffersGet($params: bookingBlocksByIdOffersGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BlockOffersModel|null>>;\n    public bookingBlocksByIdOffersGet($params: bookingBlocksByIdOffersGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BlockOffersModel|null>>;\n    public bookingBlocksByIdOffersGet($params: bookingBlocksByIdOffersGet.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 bookingBlocksByIdOffersGet.');\n        }\n        const arrival = $params.arrival;\n        if (arrival === null || arrival === undefined) {\n            throw new Error('Required parameter arrival was null or undefined when calling bookingBlocksByIdOffersGet.');\n        }\n        const departure = $params.departure;\n        if (departure === null || departure === undefined) {\n            throw new Error('Required parameter departure was null or undefined when calling bookingBlocksByIdOffersGet.');\n        }\n        const includeUnavailable = $params.includeUnavailable;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (arrival !== undefined && arrival !== null) {\n            queryParameters = queryParameters.set('arrival', <any>arrival);\n        }\n        if (departure !== undefined && departure !== null) {\n            queryParameters = queryParameters.set('departure', <any>departure);\n        }\n        if (includeUnavailable !== undefined && includeUnavailable !== null) {\n            queryParameters = queryParameters.set('includeUnavailable', <any>includeUnavailable);\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<BlockOffersModel|null>(`${this.basePath}/booking/v0-nsfw/blocks/${encodeURIComponent(String(id))}/offers`,\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 certain block properties\n     * Here is the list of operations that are currently allowed:  - Add, replace and remove MarketSegment&lt;br&gt;You must have at least one of these scopes: &#39;blocks.manage, reservations.manage&#39;.\n     * @param $params.id Id of the block 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 bookingBlocksByIdPatch($params: bookingBlocksByIdPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingBlocksByIdPatch($params: bookingBlocksByIdPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingBlocksByIdPatch($params: bookingBlocksByIdPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingBlocksByIdPatch($params: bookingBlocksByIdPatch.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 bookingBlocksByIdPatch.');\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 bookingBlocksByIdPatch.');\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}/booking/v0-nsfw/blocks/${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     * Returns a list of blocks\n     * Returns a list of all blocks, filtered by the specified parameters. If no parameters are set, returns the entire list.&lt;br&gt;You must have at least one of these scopes: &#39;blocks.read, reservations.read, reservations.manage&#39;.\n     * @param $params.groupId Return blocks for the specific group\n     * @param $params.propertyIds Return blocks filtered by properties\n     * @param $params.status Return blocks filtered by statuses\n     * @param $params.unitGroupIds Return blocks with any of the specified unit groups\n     * @param $params.ratePlanIds Return blocks with any of the specified rate plans\n     * @param $params.timeSliceDefinitionIds Return blocks with any of the specified time slice definitions\n     * @param $params.unitGroupTypes Return blocks 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.from The start of the time range. All blocks that are overlapping with the interval specified by from and to  will be returned&lt;br /&gt;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. All blocks that are overlapping with the interval specified by from and to  will be returned&lt;br /&gt;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 $params.expand List of all embedded resources that should be expanded in the response. Possible values are: actions, timeSlices. 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 bookingBlocksGet($params: bookingBlocksGet.Params, observe?: 'body', reportProgress?: boolean): Observable<BlockListModel|null>;\n    public bookingBlocksGet($params: bookingBlocksGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BlockListModel|null>>;\n    public bookingBlocksGet($params: bookingBlocksGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BlockListModel|null>>;\n    public bookingBlocksGet($params: bookingBlocksGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const groupId = $params.groupId;\n        const propertyIds = $params.propertyIds;\n        const status = $params.status;\n        const unitGroupIds = $params.unitGroupIds;\n        const ratePlanIds = $params.ratePlanIds;\n        const timeSliceDefinitionIds = $params.timeSliceDefinitionIds;\n        const unitGroupTypes = $params.unitGroupTypes;\n        const timeSliceTemplate = $params.timeSliceTemplate;\n        const from = $params.from;\n        const to = $params.to;\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 (groupId !== undefined && groupId !== null) {\n            queryParameters = queryParameters.set('groupId', <any>groupId);\n        }\n        if (propertyIds) {\n            queryParameters = queryParameters.set('propertyIds', propertyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (status) {\n            queryParameters = queryParameters.set('status', status.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupIds) {\n            queryParameters = queryParameters.set('unitGroupIds', unitGroupIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (ratePlanIds) {\n            queryParameters = queryParameters.set('ratePlanIds', ratePlanIds.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 (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>dateToApaleoIso(from));\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>dateToApaleoIso(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        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<BlockListModel|null>(`${this.basePath}/booking/v0-nsfw/blocks`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Creates a block\n     * &lt;br&gt;You must have at least one of these scopes: &#39;blocks.create, reservations.manage&#39;.\n     * @param $params.body The details for the block you want to create.\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 bookingBlocksPost($params: bookingBlocksPost.Params, observe?: 'body', reportProgress?: boolean): Observable<BlockCreatedModel>;\n    public bookingBlocksPost($params: bookingBlocksPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BlockCreatedModel>>;\n    public bookingBlocksPost($params: bookingBlocksPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BlockCreatedModel>>;\n    public bookingBlocksPost($params: bookingBlocksPost.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 bookingBlocksPost.');\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<BlockCreatedModel>(`${this.basePath}/booking/v0-nsfw/blocks`,\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 blocks\n     * Returns number of blocks matching the filter criteria&lt;br&gt;You must have at least one of these scopes: &#39;blocks.read, reservations.read, reservations.manage&#39;.\n     * @param $params.groupId Return blocks for the specific group\n     * @param $params.propertyIds Return blocks filtered by properties\n     * @param $params.status Return blocks filtered by statuses\n     * @param $params.unitGroupIds Return blocks with any of the specified unit groups\n     * @param $params.ratePlanIds Return blocks with any of the specified rate plans\n     * @param $params.timeSliceDefinitionIds Return blocks with any of the specified time slice definitions\n     * @param $params.unitGroupTypes Return blocks 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.from The start of the time range. All blocks that are overlapping with the interval specified by from and to  will be returned&lt;br /&gt;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. All blocks that are overlapping with the interval specified by from and to  will be returned&lt;br /&gt;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 bookingBlockscountGet($params: bookingBlockscountGet.Params, observe?: 'body', reportProgress?: boolean): Observable<CountModel>;\n    public bookingBlockscountGet($params: bookingBlockscountGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CountModel>>;\n    public bookingBlockscountGet($params: bookingBlockscountGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CountModel>>;\n    public bookingBlockscountGet($params: bookingBlockscountGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const groupId = $params.groupId;\n        const propertyIds = $params.propertyIds;\n        const status = $params.status;\n        const unitGroupIds = $params.unitGroupIds;\n        const ratePlanIds = $params.ratePlanIds;\n        const timeSliceDefinitionIds = $params.timeSliceDefinitionIds;\n        const unitGroupTypes = $params.unitGroupTypes;\n        const timeSliceTemplate = $params.timeSliceTemplate;\n        const from = $params.from;\n        const to = $params.to;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (groupId !== undefined && groupId !== null) {\n            queryParameters = queryParameters.set('groupId', <any>groupId);\n        }\n        if (propertyIds) {\n            queryParameters = queryParameters.set('propertyIds', propertyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (status) {\n            queryParameters = queryParameters.set('status', status.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupIds) {\n            queryParameters = queryParameters.set('unitGroupIds', unitGroupIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (ratePlanIds) {\n            queryParameters = queryParameters.set('ratePlanIds', ratePlanIds.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 (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>dateToApaleoIso(from));\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>dateToApaleoIso(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}/booking/v0-nsfw/blocks/$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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ReplaceBlockModel } from '../model/replaceBlockModel';\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 bookingBlockActionsByIdAmendPut {\n    export interface Params {\n    \n        /**\n        * Id of the block to be modified.\n        */\n        id: string;\n    \n        /**\n        * The definition of the block.\n        */\n        body: ReplaceBlockModel;\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 bookingBlockActionsByIdCancelPut {\n    export interface Params {\n    \n        /**\n        * Id of the block that should be processed.\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 bookingBlockActionsByIdConfirmPut {\n    export interface Params {\n    \n        /**\n        * Id of the block that should be processed.\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 bookingBlockActionsByIdReleasePut {\n    export interface Params {\n    \n        /**\n        * Id of the block that should be processed.\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 bookingBlockActionsByIdWashPut {\n    export interface Params {\n    \n        /**\n        * Id of the block that should be processed.\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 BlockActionsService {\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     * Allow to modify a block\n     * Use this call to modify a block.&lt;br&gt;You must have at least one of these scopes: &#39;blocks.manage, reservations.manage&#39;.\n     * @param $params.id Id of the block to be modified.\n     * @param $params.body The definition of the block.\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 bookingBlockActionsByIdAmendPut($params: bookingBlockActionsByIdAmendPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingBlockActionsByIdAmendPut($params: bookingBlockActionsByIdAmendPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingBlockActionsByIdAmendPut($params: bookingBlockActionsByIdAmendPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingBlockActionsByIdAmendPut($params: bookingBlockActionsByIdAmendPut.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 bookingBlockActionsByIdAmendPut.');\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 bookingBlockActionsByIdAmendPut.');\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}/booking/v0-nsfw/block-actions/${encodeURIComponent(String(id))}/amend`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Cancel a block.\n     * Cancel a specific block which is in status &#39;Definite&#39; or &#39;Tentative&#39;.  This changes the status to &#39;Canceled&#39;.&lt;br&gt;You must have at least one of these scopes: &#39;blocks.manage, reservations.manage&#39;.\n     * @param $params.id Id of the block that should be processed.\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 bookingBlockActionsByIdCancelPut($params: bookingBlockActionsByIdCancelPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingBlockActionsByIdCancelPut($params: bookingBlockActionsByIdCancelPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingBlockActionsByIdCancelPut($params: bookingBlockActionsByIdCancelPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingBlockActionsByIdCancelPut($params: bookingBlockActionsByIdCancelPut.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 bookingBlockActionsByIdCancelPut.');\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}/booking/v0-nsfw/block-actions/${encodeURIComponent(String(id))}/cancel`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Confirm a block.\n     * Confirm a specific block which is in status &#39;Tentative&#39;.  This changes the status to &#39;Definite&#39;.&lt;br&gt;You must have at least one of these scopes: &#39;blocks.manage, reservations.manage&#39;.\n     * @param $params.id Id of the block that should be processed.\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 bookingBlockActionsByIdConfirmPut($params: bookingBlockActionsByIdConfirmPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingBlockActionsByIdConfirmPut($params: bookingBlockActionsByIdConfirmPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingBlockActionsByIdConfirmPut($params: bookingBlockActionsByIdConfirmPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingBlockActionsByIdConfirmPut($params: bookingBlockActionsByIdConfirmPut.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 bookingBlockActionsByIdConfirmPut.');\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}/booking/v0-nsfw/block-actions/${encodeURIComponent(String(id))}/confirm`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Release a block.\n     * Release a specific block which is in status &#39;Definite&#39;.  This changes the status to &#39;Tentative&#39;.&lt;br&gt;You must have at least one of these scopes: &#39;blocks.manage, reservations.manage&#39;.\n     * @param $params.id Id of the block that should be processed.\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 bookingBlockActionsByIdReleasePut($params: bookingBlockActionsByIdReleasePut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingBlockActionsByIdReleasePut($params: bookingBlockActionsByIdReleasePut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingBlockActionsByIdReleasePut($params: bookingBlockActionsByIdReleasePut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingBlockActionsByIdReleasePut($params: bookingBlockActionsByIdReleasePut.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 bookingBlockActionsByIdReleasePut.');\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}/booking/v0-nsfw/block-actions/${encodeURIComponent(String(id))}/release`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Wash a block.\n     * Wash a specific block which is in status &#39;Definite&#39;.  This releases all unpicked units.&lt;br&gt;You must have at least one of these scopes: &#39;blocks.manage, reservations.manage&#39;.\n     * @param $params.id Id of the block that should be processed.\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 bookingBlockActionsByIdWashPut($params: bookingBlockActionsByIdWashPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingBlockActionsByIdWashPut($params: bookingBlockActionsByIdWashPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingBlockActionsByIdWashPut($params: bookingBlockActionsByIdWashPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingBlockActionsByIdWashPut($params: bookingBlockActionsByIdWashPut.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 bookingBlockActionsByIdWashPut.');\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}/booking/v0-nsfw/block-actions/${encodeURIComponent(String(id))}/wash`,\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AddChannelReservationsModel } from '../model/addChannelReservationsModel';\nimport { AddReservationsModel } from '../model/addReservationsModel';\nimport { BookingCreatedModel } from '../model/bookingCreatedModel';\nimport { BookingListModel } from '../model/bookingListModel';\nimport { BookingModel } from '../model/bookingModel';\nimport { CreateBookingModel } from '../model/createBookingModel';\nimport { CreateChannelBookingModel } from '../model/createChannelBookingModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { Operation } from '../model/operation';\nimport { ReservationsCreatedModel } from '../model/reservationsCreatedModel';\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 bookingBookingsByIdChannelReservationsPost {\n    export interface Params {\n    \n        /**\n        * Id of the booking the reservations should be attached to.\n        */\n        id: string;\n    \n        /**\n        * The list of reservations you want to add.\n        */\n        body: AddChannelReservationsModel;\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 bookingBookingsByIdGet {\n    export interface Params {\n    \n        /**\n        * Id of the booking to be retrieved.\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        * List of all embedded resources that should be expanded in the response. Possible values are: property, unitGroup, ratePlan, services, reservations, propertyValues. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type ExpandEnum = 'property' | 'unitGroup' | 'ratePlan' | 'services' | 'reservations' | 'propertyValues';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['property', 'unitGroup', 'ratePlan', 'services', 'reservations', 'propertyValues'] as ExpandEnum[]);\n    \n}\nexport namespace bookingBookingsByIdPatch {\n    export interface Params {\n    \n        /**\n        * Id of the booking 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 bookingBookingsByIdReservationsPost {\n    export interface Params {\n    \n        /**\n        * Id of the booking the reservations should be attached to.\n        */\n        id: string;\n    \n        /**\n        * The list of reservations you want to add.\n        */\n        body: AddReservationsModel;\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 bookingBookingsByIdReservationsforcePost {\n    export interface Params {\n    \n        /**\n        * Id of the booking the reservations should be attached to.\n        */\n        id: string;\n    \n        /**\n        * The list of reservations you want to add.\n        */\n        body: AddReservationsModel;\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 bookingBookingsGet {\n    export interface Params {\n    \n        /**\n        * Filter result by reservation id. The result set will contain all bookings having reservations with the specified id\n        */\n        reservationId?: string;\n    \n        /**\n        * Filter result by group id. The result set will contain all bookings having groups with the specified id\n        */\n        groupId?: string;\n    \n        /**\n        * Filter result by the channel code. The resul set will contain all bookings having reservations with the specified channel code\n        */\n        channelCode?: Array<ChannelCodeEnum>;\n    \n        /**\n        * Filter result by the external code. The result set will contain all bookings having reservations with external code starting with provided value\n        */\n        externalCode?: string;\n    \n        /**\n        * This will filter all bookings for the provided free text. Currently it only looks up if either the lastname, firstname, email or company name of the booker  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        * List of all embedded resources that should be expanded in the response. Possible values are: property, unitGroup, ratePlan, services, reservations. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    \n    export type ExpandEnum = 'property' | 'unitGroup' | 'ratePlan' | 'services' | 'reservations';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['property', 'unitGroup', 'ratePlan', 'services', 'reservations'] as ExpandEnum[]);\n    \n}\nexport namespace bookingBookingsPost {\n    export interface Params {\n    \n        /**\n        * The list of reservations you want to create.\n        */\n        body: CreateBookingModel;\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 bookingBookingsforcePost {\n    export interface Params {\n    \n        /**\n        * The list of reservations you want to create.\n        */\n        body: CreateBookingModel;\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 bookingChannelBookingsPost {\n    export interface Params {\n    \n        /**\n        * The list of reservations you want to create.\n        */\n        body: CreateChannelBookingModel;\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 BookingService {\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     * Add one or multiple channel reservations to an existing booking regardless of availability or restrictions.\n     * Creates new reservations and adds them to an existing booking taking a list of reservations as input&lt;br&gt;You must have at least one of these scopes: &#39;reservations.force-create, reservations.force-manage&#39;.\n     * @param $params.id Id of the booking the reservations should be attached to.\n     * @param $params.body The list of reservations you want to add.\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 bookingBookingsByIdChannelReservationsPost($params: bookingBookingsByIdChannelReservationsPost.Params, observe?: 'body', reportProgress?: boolean): Observable<ReservationsCreatedModel>;\n    public bookingBookingsByIdChannelReservationsPost($params: bookingBookingsByIdChannelReservationsPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ReservationsCreatedModel>>;\n    public bookingBookingsByIdChannelReservationsPost($params: bookingBookingsByIdChannelReservationsPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ReservationsCreatedModel>>;\n    public bookingBookingsByIdChannelReservationsPost($params: bookingBookingsByIdChannelReservationsPost.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 bookingBookingsByIdChannelReservationsPost.');\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 bookingBookingsByIdChannelReservationsPost.');\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<ReservationsCreatedModel>(`${this.basePath}/booking/v0-nsfw/bookings/${encodeURIComponent(String(id))}/channel-reservations`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a specific booking.\n     * Retrieves a booking with all its reservations.&lt;br&gt;You must have at least one of these scopes: &#39;reservations.read, reservations.manage&#39;.\n     * @param $params.id Id of the booking to be retrieved.\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, unitGroup, ratePlan, services, reservations, propertyValues. 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 bookingBookingsByIdGet($params: bookingBookingsByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<BookingModel>;\n    public bookingBookingsByIdGet($params: bookingBookingsByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BookingModel>>;\n    public bookingBookingsByIdGet($params: bookingBookingsByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BookingModel>>;\n    public bookingBookingsByIdGet($params: bookingBookingsByIdGet.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 bookingBookingsByIdGet.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\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<BookingModel>(`${this.basePath}/booking/v0-nsfw/bookings/${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 certain booking properties\n     * Here is the list of operations that are currently allowed:  - Add, replace and remove PaymentAccount  - Add, replace and remove Comment  - Add, replace and remove BookerComment  - Copy PaymentAccount, Comment and BookerComment from the booking to any reservation, or the other way around  - Replace Booker&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the booking 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 bookingBookingsByIdPatch($params: bookingBookingsByIdPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingBookingsByIdPatch($params: bookingBookingsByIdPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingBookingsByIdPatch($params: bookingBookingsByIdPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingBookingsByIdPatch($params: bookingBookingsByIdPatch.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 bookingBookingsByIdPatch.');\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 bookingBookingsByIdPatch.');\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}/booking/v0-nsfw/bookings/${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     * Add one or multiple reservations to an existing booking.\n     * Creates new reservations and adds them to an existing booking taking a list of reservations as input&lt;br&gt;You must have at least one of these scopes: &#39;reservations.create, reservations.manage&#39;.\n     * @param $params.id Id of the booking the reservations should be attached to.\n     * @param $params.body The list of reservations you want to add.\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 bookingBookingsByIdReservationsPost($params: bookingBookingsByIdReservationsPost.Params, observe?: 'body', reportProgress?: boolean): Observable<ReservationsCreatedModel>;\n    public bookingBookingsByIdReservationsPost($params: bookingBookingsByIdReservationsPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ReservationsCreatedModel>>;\n    public bookingBookingsByIdReservationsPost($params: bookingBookingsByIdReservationsPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ReservationsCreatedModel>>;\n    public bookingBookingsByIdReservationsPost($params: bookingBookingsByIdReservationsPost.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 bookingBookingsByIdReservationsPost.');\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 bookingBookingsByIdReservationsPost.');\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<ReservationsCreatedModel>(`${this.basePath}/booking/v0-nsfw/bookings/${encodeURIComponent(String(id))}/reservations`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Add one or multiple reservations to an existing booking regardless of availability or restrictions.\n     * Creates new reservations and adds them to an existing booking taking a list of reservations as input&lt;br&gt;You must have at least one of these scopes: &#39;reservations.force-create, reservations.force-manage&#39;.\n     * @param $params.id Id of the booking the reservations should be attached to.\n     * @param $params.body The list of reservations you want to add.\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 bookingBookingsByIdReservationsforcePost($params: bookingBookingsByIdReservationsforcePost.Params, observe?: 'body', reportProgress?: boolean): Observable<ReservationsCreatedModel>;\n    public bookingBookingsByIdReservationsforcePost($params: bookingBookingsByIdReservationsforcePost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ReservationsCreatedModel>>;\n    public bookingBookingsByIdReservationsforcePost($params: bookingBookingsByIdReservationsforcePost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ReservationsCreatedModel>>;\n    public bookingBookingsByIdReservationsforcePost($params: bookingBookingsByIdReservationsforcePost.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 bookingBookingsByIdReservationsforcePost.');\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 bookingBookingsByIdReservationsforcePost.');\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<ReservationsCreatedModel>(`${this.basePath}/booking/v0-nsfw/bookings/${encodeURIComponent(String(id))}/reservations/$force`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of all bookings, filtered by the specified parameters.\n     * Returns a list of all bookings, filtered by the specified parameters. If no parameters are set, returns the entire list.&lt;br&gt;You must have at least one of these scopes: &#39;reservations.read, reservations.manage&#39;.\n     * @param $params.reservationId Filter result by reservation id. The result set will contain all bookings having reservations with the specified id\n     * @param $params.groupId Filter result by group id. The result set will contain all bookings having groups with the specified id\n     * @param $params.channelCode Filter result by the channel code. The resul set will contain all bookings having reservations with the specified channel code\n     * @param $params.externalCode Filter result by the external code. The result set will contain all bookings having reservations with external code starting with provided value\n     * @param $params.textSearch This will filter all bookings for the provided free text. Currently it only looks up if either the lastname, firstname, email or company name of the booker  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 $params.expand List of all embedded resources that should be expanded in the response. Possible values are: property, unitGroup, ratePlan, services, reservations. 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 bookingBookingsGet($params: bookingBookingsGet.Params, observe?: 'body', reportProgress?: boolean): Observable<BookingListModel|null>;\n    public bookingBookingsGet($params: bookingBookingsGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BookingListModel|null>>;\n    public bookingBookingsGet($params: bookingBookingsGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BookingListModel|null>>;\n    public bookingBookingsGet($params: bookingBookingsGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const reservationId = $params.reservationId;\n        const groupId = $params.groupId;\n        const channelCode = $params.channelCode;\n        const externalCode = $params.externalCode;\n        const textSearch = $params.textSearch;\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 (reservationId !== undefined && reservationId !== null) {\n            queryParameters = queryParameters.set('reservationId', <any>reservationId);\n        }\n        if (groupId !== undefined && groupId !== null) {\n            queryParameters = queryParameters.set('groupId', <any>groupId);\n        }\n        if (channelCode) {\n            queryParameters = queryParameters.set('channelCode', channelCode.join(COLLECTION_FORMATS['csv']));\n        }\n        if (externalCode !== undefined && externalCode !== null) {\n            queryParameters = queryParameters.set('externalCode', <any>externalCode);\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        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<BookingListModel|null>(`${this.basePath}/booking/v0-nsfw/bookings`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Creates a booking for one or more reservations.\n     * Creates a booking taking a list of reservations as input&lt;br&gt;You must have at least one of these scopes: &#39;reservations.create, reservations.manage&#39;.\n     * @param $params.body The list of reservations you want to create.\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 bookingBookingsPost($params: bookingBookingsPost.Params, observe?: 'body', reportProgress?: boolean): Observable<BookingCreatedModel>;\n    public bookingBookingsPost($params: bookingBookingsPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BookingCreatedModel>>;\n    public bookingBookingsPost($params: bookingBookingsPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BookingCreatedModel>>;\n    public bookingBookingsPost($params: bookingBookingsPost.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 bookingBookingsPost.');\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<BookingCreatedModel>(`${this.basePath}/booking/v0-nsfw/bookings`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Creates a booking for one or more reservations regardless of availability or restrictions.\n     * Creates a booking taking a list of reservations as input.&lt;br&gt;You must have at least one of these scopes: &#39;reservations.force-create, reservations.force-manage&#39;.\n     * @param $params.body The list of reservations you want to create.\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 bookingBookingsforcePost($params: bookingBookingsforcePost.Params, observe?: 'body', reportProgress?: boolean): Observable<BookingCreatedModel>;\n    public bookingBookingsforcePost($params: bookingBookingsforcePost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BookingCreatedModel>>;\n    public bookingBookingsforcePost($params: bookingBookingsforcePost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BookingCreatedModel>>;\n    public bookingBookingsforcePost($params: bookingBookingsforcePost.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 bookingBookingsforcePost.');\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<BookingCreatedModel>(`${this.basePath}/booking/v0-nsfw/bookings/$force`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Creates a channel booking for one or more reservations regardless of availability or restrictions.\n     * Creates a booking taking a list of reservations as input&lt;br&gt;You must have at least one of these scopes: &#39;reservations.force-create, reservations.force-manage&#39;.\n     * @param $params.body The list of reservations you want to create.\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 bookingChannelBookingsPost($params: bookingChannelBookingsPost.Params, observe?: 'body', reportProgress?: boolean): Observable<BookingCreatedModel>;\n    public bookingChannelBookingsPost($params: bookingChannelBookingsPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BookingCreatedModel>>;\n    public bookingChannelBookingsPost($params: bookingChannelBookingsPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BookingCreatedModel>>;\n    public bookingChannelBookingsPost($params: bookingChannelBookingsPost.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 bookingChannelBookingsPost.');\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<BookingCreatedModel>(`${this.basePath}/booking/v0-nsfw/channel-bookings`,\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { CreateGroupModel } from '../model/createGroupModel';\nimport { GroupCreatedModel } from '../model/groupCreatedModel';\nimport { GroupListModel } from '../model/groupListModel';\nimport { GroupModel } from '../model/groupModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { Operation } from '../model/operation';\nimport { PickUpReservationsModel } from '../model/pickUpReservationsModel';\nimport { ReservationsCreatedModel } from '../model/reservationsCreatedModel';\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 bookingGroupsByIdDelete {\n    export interface Params {\n    \n        /**\n        * Id of the group booking to be deleted.\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 bookingGroupsByIdGet {\n    export interface Params {\n    \n        /**\n        * Id of the group booking to be retrieved.\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        * List of all embedded resources that should be expanded in the response. Possible values are: blocks, actions. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type ExpandEnum = 'blocks' | 'actions';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['blocks', 'actions'] as ExpandEnum[]);\n    \n}\nexport namespace bookingGroupsByIdHead {\n    export interface Params {\n    \n        /**\n        * Id of the group booking to be checked for existence.\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 bookingGroupsByIdPatch {\n    export interface Params {\n    \n        /**\n        * Id of the group booking 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 bookingGroupsByIdReservationsPost {\n    export interface Params {\n    \n        /**\n        * Id of the group booking the reservations should be attached to.\n        */\n        id: string;\n    \n        /**\n        * The list of reservations you want to create.\n        */\n        body: PickUpReservationsModel;\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 bookingGroupsGet {\n    export interface Params {\n    \n        /**\n        * This will filter all group bookings for the provided free text. Currently it only looks up if either the group name, lastname,  firstname, email or company name of the booker contains one of the provided values\n        */\n        textSearch?: string;\n    \n        /**\n        * Filter result by requested properties\n        */\n        propertyIds?: Array<string>;\n    \n        /**\n        * The start of the time range. All groups that have blocks overlapping with the interval specified by from and to  will be returned<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        /**\n        * The end of the time range. All groups that have blocks overlapping with the interval specified by from and to  will be returned<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        /**\n        * Filter result by requested block status\n        */\n        statuses?: Array<StatusesEnum>;\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 fields that can be used to sort the results. Possible values are: created:asc, created:desc, modified:asc, modified:desc, from:asc, from:desc, to:asc, to:desc. All other values will be silently ignored.\n        */\n        sort?: Array<SortEnum>;\n    \n        /**\n        * List of all embedded resources that should be expanded in the response. Possible values are: blocks, actions. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type StatusesEnum = 'Tentative' | 'Definite' | 'Canceled';\n\n    export const StatusesEnumValues = Object.freeze(\n        ['Tentative', 'Definite', 'Canceled'] as StatusesEnum[]);\n    \n    export type SortEnum = 'created:asc' | 'created:desc' | 'modified:asc' | 'modified:desc' | 'from:asc' | 'from:desc' | 'to:asc' | 'to:desc';\n\n    export const SortEnumValues = Object.freeze(\n        ['created:asc', 'created:desc', 'modified:asc', 'modified:desc', 'from:asc', 'from:desc', 'to:asc', 'to:desc'] as SortEnum[]);\n    \n    export type ExpandEnum = 'blocks' | 'actions';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['blocks', 'actions'] as ExpandEnum[]);\n    \n}\nexport namespace bookingGroupsPost {\n    export interface Params {\n    \n        /**\n        * The details of the group that should be created.\n        */\n        body: CreateGroupModel;\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 bookingGroupscountGet {\n    export interface Params {\n    \n        /**\n        * This will filter all group bookings for the provided free text. Currently it only looks up if either the group name, lastname,  firstname, email or company name of the booker contains one of the provided values\n        */\n        textSearch?: string;\n    \n        /**\n        * Filter result by requested properties\n        */\n        propertyIds?: Array<string>;\n    \n        /**\n        * The start of the time range. All groups that have blocks overlapping with the interval specified by from and to  will be returned<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        /**\n        * The end of the time range. All groups that have blocks overlapping with the interval specified by from and to  will be returned<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        /**\n        * Filter result by requested block status\n        */\n        statuses?: Array<StatusesEnum>;\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 StatusesEnum = 'Tentative' | 'Definite' | 'Canceled';\n\n    export const StatusesEnumValues = Object.freeze(\n        ['Tentative', 'Definite', 'Canceled'] as StatusesEnum[]);\n    \n}\n\n@Injectable()\nexport class GroupService {\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 certain group booking\n     * Use this call to delete a group booking. This is only possible as long as no blocks exist that are linked to  this group booking&lt;br&gt;You must have at least one of these scopes: &#39;groups.manage, reservations.manage&#39;.\n     * @param $params.id Id of the group booking to be deleted.\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 bookingGroupsByIdDelete($params: bookingGroupsByIdDelete.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingGroupsByIdDelete($params: bookingGroupsByIdDelete.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingGroupsByIdDelete($params: bookingGroupsByIdDelete.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingGroupsByIdDelete($params: bookingGroupsByIdDelete.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 bookingGroupsByIdDelete.');\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}/booking/v0-nsfw/groups/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a specific group booking.\n     * Retrieves a specific group booking with all its related blocks&lt;br&gt;You must have at least one of these scopes: &#39;groups.read, reservations.read, reservations.manage&#39;.\n     * @param $params.id Id of the group booking to be retrieved.\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: blocks, actions. 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 bookingGroupsByIdGet($params: bookingGroupsByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<GroupModel>;\n    public bookingGroupsByIdGet($params: bookingGroupsByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<GroupModel>>;\n    public bookingGroupsByIdGet($params: bookingGroupsByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<GroupModel>>;\n    public bookingGroupsByIdGet($params: bookingGroupsByIdGet.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 bookingGroupsByIdGet.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\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<GroupModel>(`${this.basePath}/booking/v0-nsfw/groups/${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 certain group booking exists\n     * Check if a group booking exists by id&lt;br&gt;You must have at least one of these scopes: &#39;groups.read, reservations.read, reservations.manage&#39;.\n     * @param $params.id Id of the group booking to be checked for existence.\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 bookingGroupsByIdHead($params: bookingGroupsByIdHead.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingGroupsByIdHead($params: bookingGroupsByIdHead.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingGroupsByIdHead($params: bookingGroupsByIdHead.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingGroupsByIdHead($params: bookingGroupsByIdHead.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 bookingGroupsByIdHead.');\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}/booking/v0-nsfw/groups/${encodeURIComponent(String(id))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Allows to modify certain group booking properties\n     * Here is the list of operations that are currently allowed:  - Add and replace Name  - Add, replace and remove Comment  - Add, replace and remove BookerComment  - Add, replace and remove PaymentAccount  - Add, replace and remove PropertyIds  - Replace Booker&lt;br&gt;You must have at least one of these scopes: &#39;groups.manage, reservations.manage&#39;.\n     * @param $params.id Id of the group booking 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 bookingGroupsByIdPatch($params: bookingGroupsByIdPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingGroupsByIdPatch($params: bookingGroupsByIdPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingGroupsByIdPatch($params: bookingGroupsByIdPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingGroupsByIdPatch($params: bookingGroupsByIdPatch.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 bookingGroupsByIdPatch.');\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 bookingGroupsByIdPatch.');\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}/booking/v0-nsfw/groups/${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     * Add one or multiple reservations to an existing group booking using blocked inventory.\n     * Creates new reservations and adds them to an existing group booking taking a list of reservations as input&lt;br&gt;You must have at least one of these scopes: &#39;groups.manage, reservations.manage&#39;.\n     * @param $params.id Id of the group booking the reservations should be attached to.\n     * @param $params.body The list of reservations you want to create.\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 bookingGroupsByIdReservationsPost($params: bookingGroupsByIdReservationsPost.Params, observe?: 'body', reportProgress?: boolean): Observable<ReservationsCreatedModel>;\n    public bookingGroupsByIdReservationsPost($params: bookingGroupsByIdReservationsPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ReservationsCreatedModel>>;\n    public bookingGroupsByIdReservationsPost($params: bookingGroupsByIdReservationsPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ReservationsCreatedModel>>;\n    public bookingGroupsByIdReservationsPost($params: bookingGroupsByIdReservationsPost.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 bookingGroupsByIdReservationsPost.');\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 bookingGroupsByIdReservationsPost.');\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<ReservationsCreatedModel>(`${this.basePath}/booking/v0-nsfw/groups/${encodeURIComponent(String(id))}/reservations`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of all group bookings, filtered by the specified parameters.\n     * Returns a list of all group bookings, filtered by the specified parameters.  If no parameters are set, returns the entire list&lt;br&gt;You must have at least one of these scopes: &#39;groups.read, reservations.read, reservations.manage&#39;.\n     * @param $params.textSearch This will filter all group bookings for the provided free text. Currently it only looks up if either the group name, lastname,  firstname, email or company name of the booker contains one of the provided values\n     * @param $params.propertyIds Filter result by requested properties\n     * @param $params.from The start of the time range. All groups that have blocks overlapping with the interval specified by from and to  will be returned&lt;br /&gt;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. All groups that have blocks overlapping with the interval specified by from and to  will be returned&lt;br /&gt;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.statuses Filter result by requested block status\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.sort List of all fields that can be used to sort the results. Possible values are: created:asc, created:desc, modified:asc, modified:desc, from:asc, from:desc, to:asc, to:desc. All other values will be silently ignored.\n     * @param $params.expand List of all embedded resources that should be expanded in the response. Possible values are: blocks, actions. 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 bookingGroupsGet($params: bookingGroupsGet.Params, observe?: 'body', reportProgress?: boolean): Observable<GroupListModel|null>;\n    public bookingGroupsGet($params: bookingGroupsGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<GroupListModel|null>>;\n    public bookingGroupsGet($params: bookingGroupsGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<GroupListModel|null>>;\n    public bookingGroupsGet($params: bookingGroupsGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const textSearch = $params.textSearch;\n        const propertyIds = $params.propertyIds;\n        const from = $params.from;\n        const to = $params.to;\n        const statuses = $params.statuses;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n        const sort = $params.sort;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (textSearch !== undefined && textSearch !== null) {\n            queryParameters = queryParameters.set('textSearch', <any>textSearch);\n        }\n        if (propertyIds) {\n            queryParameters = queryParameters.set('propertyIds', propertyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>dateToApaleoIso(from));\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>dateToApaleoIso(to));\n        }\n        if (statuses) {\n            queryParameters = queryParameters.set('statuses', statuses.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 (sort) {\n            sort.forEach((element) => {\n                queryParameters = queryParameters.append('sort', <any>element);\n            })\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<GroupListModel|null>(`${this.basePath}/booking/v0-nsfw/groups`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Creates a group booking.\n     * &lt;br&gt;You must have at least one of these scopes: &#39;groups.create, reservations.manage&#39;.\n     * @param $params.body The details of the group that should be created.\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 bookingGroupsPost($params: bookingGroupsPost.Params, observe?: 'body', reportProgress?: boolean): Observable<GroupCreatedModel>;\n    public bookingGroupsPost($params: bookingGroupsPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<GroupCreatedModel>>;\n    public bookingGroupsPost($params: bookingGroupsPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<GroupCreatedModel>>;\n    public bookingGroupsPost($params: bookingGroupsPost.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 bookingGroupsPost.');\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<GroupCreatedModel>(`${this.basePath}/booking/v0-nsfw/groups`,\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 group bookings\n     * Returns number of group bookings matching the filter criteria&lt;br&gt;You must have at least one of these scopes: &#39;groups.read, reservations.read, reservations.manage&#39;.\n     * @param $params.textSearch This will filter all group bookings for the provided free text. Currently it only looks up if either the group name, lastname,  firstname, email or company name of the booker contains one of the provided values\n     * @param $params.propertyIds Filter result by requested properties\n     * @param $params.from The start of the time range. All groups that have blocks overlapping with the interval specified by from and to  will be returned&lt;br /&gt;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. All groups that have blocks overlapping with the interval specified by from and to  will be returned&lt;br /&gt;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.statuses Filter result by requested block status\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 bookingGroupscountGet($params: bookingGroupscountGet.Params, observe?: 'body', reportProgress?: boolean): Observable<CountModel>;\n    public bookingGroupscountGet($params: bookingGroupscountGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CountModel>>;\n    public bookingGroupscountGet($params: bookingGroupscountGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CountModel>>;\n    public bookingGroupscountGet($params: bookingGroupscountGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const textSearch = $params.textSearch;\n        const propertyIds = $params.propertyIds;\n        const from = $params.from;\n        const to = $params.to;\n        const statuses = $params.statuses;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (textSearch !== undefined && textSearch !== null) {\n            queryParameters = queryParameters.set('textSearch', <any>textSearch);\n        }\n        if (propertyIds) {\n            queryParameters = queryParameters.set('propertyIds', propertyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>dateToApaleoIso(from));\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>dateToApaleoIso(to));\n        }\n        if (statuses) {\n            queryParameters = queryParameters.set('statuses', statuses.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}/booking/v0-nsfw/groups/$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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BulkTimeSliceListModel } from '../model/bulkTimeSliceListModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { ServiceOffersModel } from '../model/serviceOffersModel';\nimport { StayOffersModel } from '../model/stayOffersModel';\nimport { TimeSliceListModel } from '../model/timeSliceListModel';\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 bookingOfferIndexBulkGet {\n    export interface Params {\n    \n        /**\n        * \n        */\n        ratePlanIds: Array<string>;\n    \n        /**\n        * <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        * <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        * \n        */\n        channelCode: ChannelCodeEnum;\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    export type ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    \n}\nexport namespace bookingOfferIndexGet {\n    export interface Params {\n    \n        /**\n        * \n        */\n        ratePlanId: string;\n    \n        /**\n        * <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        * <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        * \n        */\n        channelCode: ChannelCodeEnum;\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    export type ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    \n}\nexport namespace bookingOffersGet {\n    export interface Params {\n    \n        /**\n        * The property ID\n        */\n        propertyId: string;\n    \n        /**\n        * Date and optional time of arrival<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        arrival: string;\n    \n        /**\n        * Date and optional time of departure. Cannot be more than 5 years after arrival.<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        departure: string;\n    \n        /**\n        * The number of adults you want offers for\n        */\n        adults: number;\n    \n        /**\n        * The time slice template used to filter the rate plans, defaults to 'over night'\n        */\n        timeSliceTemplate?: TimeSliceTemplateEnum;\n    \n        /**\n        * Time slice definition IDs, used to filter rate plans\n        */\n        timeSliceDefinitionIds?: Array<string>;\n    \n        /**\n        * Unit group IDs, used to filter rate plans\n        */\n        unitGroupIds?: Array<string>;\n    \n        /**\n        * Unit group types, used to filter rate plans\n        */\n        unitGroupTypes?: Array<UnitGroupTypesEnum>;\n    \n        /**\n        * Channel code, used to filter the rate plans\n        */\n        channelCode?: ChannelCodeEnum;\n    \n        /**\n        * The promo code associated with a certain special offer\n        */\n        promoCode?: string;\n    \n        /**\n        * The code associated with a corporate rate\n        */\n        corporateCode?: string;\n    \n        /**\n        * The ages of the children you want offers for\n        */\n        childrenAges?: Array<number>;\n    \n        /**\n        * Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\n        */\n        includeUnavailable?: 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 TimeSliceTemplateEnum = 'DayUse' | 'OverNight';\n\n    export const TimeSliceTemplateEnumValues = Object.freeze(\n        ['DayUse', 'OverNight'] as TimeSliceTemplateEnum[]);\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 ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    \n}\nexport namespace bookingRatePlanOffersGet {\n    export interface Params {\n    \n        /**\n        * The rate plan ID\n        */\n        ratePlanId: string;\n    \n        /**\n        * Date and optional time of arrival<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        arrival: string;\n    \n        /**\n        * Date and optional time of departure. Cannot be more than 5 years after arrival.<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        departure: string;\n    \n        /**\n        * The number of adults you want offers for\n        */\n        adults: number;\n    \n        /**\n        * The channel code\n        */\n        channelCode?: ChannelCodeEnum;\n    \n        /**\n        * The ages of the children you want offers for\n        */\n        childrenAges?: Array<number>;\n    \n        /**\n        * Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\n        */\n        includeUnavailable?: boolean;\n    \n        /**\n        * Desired prices for each timeslice\n        */\n        overridePrices?: Array<number>;\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 ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    \n}\nexport namespace bookingServiceOffersGet {\n    export interface Params {\n    \n        /**\n        * The rate plan ID\n        */\n        ratePlanId: string;\n    \n        /**\n        * Date and optional time of arrival<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        arrival: string;\n    \n        /**\n        * Date and optional time of departure. Cannot be more than 5 years after arrival.<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        departure: string;\n    \n        /**\n        * The number of adults you want offers for\n        */\n        adults: number;\n    \n        /**\n        * The channel code used to filter the services\n        */\n        channelCode?: ChannelCodeEnum;\n    \n        /**\n        * The ages of the children you want offers for\n        */\n        childrenAges?: Array<number>;\n    \n        /**\n        * Depending on the postNextDay setting of a service it will be posted before or after midnight.  Breakfast is usually delivered on the next morning, having 'postNextDay' set to true. Its 'default dates' are from the day after  arrival until the departure day. For services like dinner 'postNextDay' is false, and default dates are day of arrival until one  day before departure.  With this query parameter set to 'false', you can also ask for dates outside of those default dates. It defaults to true.\n        */\n        onlyDefaultDates?: boolean;\n    \n        /**\n        * Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\n        */\n        includeUnavailable?: 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 ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    \n}\n\n@Injectable()\nexport class OfferService {\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 offers with rates and availabilities for the specified range.\n     * Calculates and returns offers per time slice for multiple rate plans, arrival and departure date.  The rate plans must belong to the same unit group and have the same time slice definition.&lt;br&gt;You must have at least one of these scopes: &#39;offer-index.read, offers.read&#39;.\n     * @param $params.ratePlanIds \n     * @param $params.from &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 &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.channelCode \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 bookingOfferIndexBulkGet($params: bookingOfferIndexBulkGet.Params, observe?: 'body', reportProgress?: boolean): Observable<BulkTimeSliceListModel|null>;\n    public bookingOfferIndexBulkGet($params: bookingOfferIndexBulkGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<BulkTimeSliceListModel|null>>;\n    public bookingOfferIndexBulkGet($params: bookingOfferIndexBulkGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<BulkTimeSliceListModel|null>>;\n    public bookingOfferIndexBulkGet($params: bookingOfferIndexBulkGet.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 bookingOfferIndexBulkGet.');\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 bookingOfferIndexBulkGet.');\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 bookingOfferIndexBulkGet.');\n        }\n        const channelCode = $params.channelCode;\n        if (channelCode === null || channelCode === undefined) {\n            throw new Error('Required parameter channelCode was null or undefined when calling bookingOfferIndexBulkGet.');\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 (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 (channelCode !== undefined && channelCode !== null) {\n            queryParameters = queryParameters.set('channelCode', <any>channelCode);\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<BulkTimeSliceListModel|null>(`${this.basePath}/booking/v0-nsfw/offer-index-bulk`,\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 offers with rates and availabilities for the specified range.\n     * Calculates and returns offers per time slice for a specific rate plan, arrival and departure date.&lt;br&gt;You must have at least one of these scopes: &#39;offer-index.read, offers.read&#39;.\n     * @param $params.ratePlanId \n     * @param $params.from &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 &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.channelCode \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 bookingOfferIndexGet($params: bookingOfferIndexGet.Params, observe?: 'body', reportProgress?: boolean): Observable<TimeSliceListModel|null>;\n    public bookingOfferIndexGet($params: bookingOfferIndexGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<TimeSliceListModel|null>>;\n    public bookingOfferIndexGet($params: bookingOfferIndexGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<TimeSliceListModel|null>>;\n    public bookingOfferIndexGet($params: bookingOfferIndexGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const ratePlanId = $params.ratePlanId;\n        if (ratePlanId === null || ratePlanId === undefined) {\n            throw new Error('Required parameter ratePlanId was null or undefined when calling bookingOfferIndexGet.');\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 bookingOfferIndexGet.');\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 bookingOfferIndexGet.');\n        }\n        const channelCode = $params.channelCode;\n        if (channelCode === null || channelCode === undefined) {\n            throw new Error('Required parameter channelCode was null or undefined when calling bookingOfferIndexGet.');\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 (ratePlanId !== undefined && ratePlanId !== null) {\n            queryParameters = queryParameters.set('ratePlanId', <any>ratePlanId);\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 (channelCode !== undefined && channelCode !== null) {\n            queryParameters = queryParameters.set('channelCode', <any>channelCode);\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<TimeSliceListModel|null>(`${this.basePath}/booking/v0-nsfw/offer-index`,\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 offers for one specific stay.\n     * Calculates and returns available offers for a specific property, arrival and departure date.&lt;br&gt;You must have at least one of these scopes: &#39;offers.read, reservations.manage&#39;.\n     * @param $params.propertyId The property ID\n     * @param $params.arrival Date and optional time of arrival&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.departure Date and optional time of departure. Cannot be more than 5 years after arrival.&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.adults The number of adults you want offers for\n     * @param $params.timeSliceTemplate The time slice template used to filter the rate plans, defaults to &#39;over night&#39;\n     * @param $params.timeSliceDefinitionIds Time slice definition IDs, used to filter rate plans\n     * @param $params.unitGroupIds Unit group IDs, used to filter rate plans\n     * @param $params.unitGroupTypes Unit group types, used to filter rate plans\n     * @param $params.channelCode Channel code, used to filter the rate plans\n     * @param $params.promoCode The promo code associated with a certain special offer\n     * @param $params.corporateCode The code associated with a corporate rate\n     * @param $params.childrenAges The ages of the children you want offers for\n     * @param $params.includeUnavailable Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\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 bookingOffersGet($params: bookingOffersGet.Params, observe?: 'body', reportProgress?: boolean): Observable<StayOffersModel|null>;\n    public bookingOffersGet($params: bookingOffersGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<StayOffersModel|null>>;\n    public bookingOffersGet($params: bookingOffersGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<StayOffersModel|null>>;\n    public bookingOffersGet($params: bookingOffersGet.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 bookingOffersGet.');\n        }\n        const arrival = $params.arrival;\n        if (arrival === null || arrival === undefined) {\n            throw new Error('Required parameter arrival was null or undefined when calling bookingOffersGet.');\n        }\n        const departure = $params.departure;\n        if (departure === null || departure === undefined) {\n            throw new Error('Required parameter departure was null or undefined when calling bookingOffersGet.');\n        }\n        const adults = $params.adults;\n        if (adults === null || adults === undefined) {\n            throw new Error('Required parameter adults was null or undefined when calling bookingOffersGet.');\n        }\n        const timeSliceTemplate = $params.timeSliceTemplate;\n        const timeSliceDefinitionIds = $params.timeSliceDefinitionIds;\n        const unitGroupIds = $params.unitGroupIds;\n        const unitGroupTypes = $params.unitGroupTypes;\n        const channelCode = $params.channelCode;\n        const promoCode = $params.promoCode;\n        const corporateCode = $params.corporateCode;\n        const childrenAges = $params.childrenAges;\n        const includeUnavailable = $params.includeUnavailable;\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 (arrival !== undefined && arrival !== null) {\n            queryParameters = queryParameters.set('arrival', <any>arrival);\n        }\n        if (departure !== undefined && departure !== null) {\n            queryParameters = queryParameters.set('departure', <any>departure);\n        }\n        if (timeSliceTemplate !== undefined && timeSliceTemplate !== null) {\n            queryParameters = queryParameters.set('timeSliceTemplate', <any>timeSliceTemplate);\n        }\n        if (timeSliceDefinitionIds) {\n            queryParameters = queryParameters.set('timeSliceDefinitionIds', timeSliceDefinitionIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupIds) {\n            queryParameters = queryParameters.set('unitGroupIds', unitGroupIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupTypes) {\n            queryParameters = queryParameters.set('unitGroupTypes', unitGroupTypes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (channelCode !== undefined && channelCode !== null) {\n            queryParameters = queryParameters.set('channelCode', <any>channelCode);\n        }\n        if (promoCode !== undefined && promoCode !== null) {\n            queryParameters = queryParameters.set('promoCode', <any>promoCode);\n        }\n        if (corporateCode !== undefined && corporateCode !== null) {\n            queryParameters = queryParameters.set('corporateCode', <any>corporateCode);\n        }\n        if (adults !== undefined && adults !== null) {\n            queryParameters = queryParameters.set('adults', <any>adults);\n        }\n        if (childrenAges) {\n            queryParameters = queryParameters.set('childrenAges', childrenAges.join(COLLECTION_FORMATS['csv']));\n        }\n        if (includeUnavailable !== undefined && includeUnavailable !== null) {\n            queryParameters = queryParameters.set('includeUnavailable', <any>includeUnavailable);\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<StayOffersModel|null>(`${this.basePath}/booking/v0-nsfw/offers`,\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 offers for a specific rate plan.\n     * Calculates and returns available offers for a specific rate plan, arrival and departure date.&lt;br&gt;You must have at least one of these scopes: &#39;offers.read, reservations.manage&#39;.\n     * @param $params.ratePlanId The rate plan ID\n     * @param $params.arrival Date and optional time of arrival&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.departure Date and optional time of departure. Cannot be more than 5 years after arrival.&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.adults The number of adults you want offers for\n     * @param $params.channelCode The channel code\n     * @param $params.childrenAges The ages of the children you want offers for\n     * @param $params.includeUnavailable Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\n     * @param $params.overridePrices Desired prices for each timeslice\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 bookingRatePlanOffersGet($params: bookingRatePlanOffersGet.Params, observe?: 'body', reportProgress?: boolean): Observable<StayOffersModel|null>;\n    public bookingRatePlanOffersGet($params: bookingRatePlanOffersGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<StayOffersModel|null>>;\n    public bookingRatePlanOffersGet($params: bookingRatePlanOffersGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<StayOffersModel|null>>;\n    public bookingRatePlanOffersGet($params: bookingRatePlanOffersGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const ratePlanId = $params.ratePlanId;\n        if (ratePlanId === null || ratePlanId === undefined) {\n            throw new Error('Required parameter ratePlanId was null or undefined when calling bookingRatePlanOffersGet.');\n        }\n        const arrival = $params.arrival;\n        if (arrival === null || arrival === undefined) {\n            throw new Error('Required parameter arrival was null or undefined when calling bookingRatePlanOffersGet.');\n        }\n        const departure = $params.departure;\n        if (departure === null || departure === undefined) {\n            throw new Error('Required parameter departure was null or undefined when calling bookingRatePlanOffersGet.');\n        }\n        const adults = $params.adults;\n        if (adults === null || adults === undefined) {\n            throw new Error('Required parameter adults was null or undefined when calling bookingRatePlanOffersGet.');\n        }\n        const channelCode = $params.channelCode;\n        const childrenAges = $params.childrenAges;\n        const includeUnavailable = $params.includeUnavailable;\n        const overridePrices = $params.overridePrices;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (ratePlanId !== undefined && ratePlanId !== null) {\n            queryParameters = queryParameters.set('ratePlanId', <any>ratePlanId);\n        }\n        if (arrival !== undefined && arrival !== null) {\n            queryParameters = queryParameters.set('arrival', <any>arrival);\n        }\n        if (departure !== undefined && departure !== null) {\n            queryParameters = queryParameters.set('departure', <any>departure);\n        }\n        if (channelCode !== undefined && channelCode !== null) {\n            queryParameters = queryParameters.set('channelCode', <any>channelCode);\n        }\n        if (adults !== undefined && adults !== null) {\n            queryParameters = queryParameters.set('adults', <any>adults);\n        }\n        if (childrenAges) {\n            queryParameters = queryParameters.set('childrenAges', childrenAges.join(COLLECTION_FORMATS['csv']));\n        }\n        if (includeUnavailable !== undefined && includeUnavailable !== null) {\n            queryParameters = queryParameters.set('includeUnavailable', <any>includeUnavailable);\n        }\n        if (overridePrices) {\n            queryParameters = queryParameters.set('overridePrices', overridePrices.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<StayOffersModel|null>(`${this.basePath}/booking/v0-nsfw/rate-plan-offers`,\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 service offers for one specific stay.\n     * &lt;br&gt;You must have at least one of these scopes: &#39;offers.read, reservations.manage&#39;.\n     * @param $params.ratePlanId The rate plan ID\n     * @param $params.arrival Date and optional time of arrival&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.departure Date and optional time of departure. Cannot be more than 5 years after arrival.&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.adults The number of adults you want offers for\n     * @param $params.channelCode The channel code used to filter the services\n     * @param $params.childrenAges The ages of the children you want offers for\n     * @param $params.onlyDefaultDates Depending on the postNextDay setting of a service it will be posted before or after midnight.  Breakfast is usually delivered on the next morning, having &#39;postNextDay&#39; set to true. Its &#39;default dates&#39; are from the day after  arrival until the departure day. For services like dinner &#39;postNextDay&#39; is false, and default dates are day of arrival until one  day before departure.  With this query parameter set to &#39;false&#39;, you can also ask for dates outside of those default dates. It defaults to true.\n     * @param $params.includeUnavailable Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\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 bookingServiceOffersGet($params: bookingServiceOffersGet.Params, observe?: 'body', reportProgress?: boolean): Observable<ServiceOffersModel|null>;\n    public bookingServiceOffersGet($params: bookingServiceOffersGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ServiceOffersModel|null>>;\n    public bookingServiceOffersGet($params: bookingServiceOffersGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ServiceOffersModel|null>>;\n    public bookingServiceOffersGet($params: bookingServiceOffersGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const ratePlanId = $params.ratePlanId;\n        if (ratePlanId === null || ratePlanId === undefined) {\n            throw new Error('Required parameter ratePlanId was null or undefined when calling bookingServiceOffersGet.');\n        }\n        const arrival = $params.arrival;\n        if (arrival === null || arrival === undefined) {\n            throw new Error('Required parameter arrival was null or undefined when calling bookingServiceOffersGet.');\n        }\n        const departure = $params.departure;\n        if (departure === null || departure === undefined) {\n            throw new Error('Required parameter departure was null or undefined when calling bookingServiceOffersGet.');\n        }\n        const adults = $params.adults;\n        if (adults === null || adults === undefined) {\n            throw new Error('Required parameter adults was null or undefined when calling bookingServiceOffersGet.');\n        }\n        const channelCode = $params.channelCode;\n        const childrenAges = $params.childrenAges;\n        const onlyDefaultDates = $params.onlyDefaultDates;\n        const includeUnavailable = $params.includeUnavailable;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (ratePlanId !== undefined && ratePlanId !== null) {\n            queryParameters = queryParameters.set('ratePlanId', <any>ratePlanId);\n        }\n        if (arrival !== undefined && arrival !== null) {\n            queryParameters = queryParameters.set('arrival', <any>arrival);\n        }\n        if (departure !== undefined && departure !== null) {\n            queryParameters = queryParameters.set('departure', <any>departure);\n        }\n        if (channelCode !== undefined && channelCode !== null) {\n            queryParameters = queryParameters.set('channelCode', <any>channelCode);\n        }\n        if (adults !== undefined && adults !== null) {\n            queryParameters = queryParameters.set('adults', <any>adults);\n        }\n        if (childrenAges) {\n            queryParameters = queryParameters.set('childrenAges', childrenAges.join(COLLECTION_FORMATS['csv']));\n        }\n        if (onlyDefaultDates !== undefined && onlyDefaultDates !== null) {\n            queryParameters = queryParameters.set('onlyDefaultDates', <any>onlyDefaultDates);\n        }\n        if (includeUnavailable !== undefined && includeUnavailable !== null) {\n            queryParameters = queryParameters.set('includeUnavailable', <any>includeUnavailable);\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<ServiceOffersModel|null>(`${this.basePath}/booking/v0-nsfw/service-offers`,\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { CreateAuthorizationPaymentAccountRequest } from '../model/createAuthorizationPaymentAccountRequest';\nimport { CreatePaymentLinkPaymentAccountRequest } from '../model/createPaymentLinkPaymentAccountRequest';\nimport { CreateTerminalPaymentAccountRequest } from '../model/createTerminalPaymentAccountRequest';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { PaymentAccountCreatedModel } from '../model/paymentAccountCreatedModel';\nimport { PaymentAccountV2ListModel } from '../model/paymentAccountV2ListModel';\nimport { PaymentAccountV2Model } from '../model/paymentAccountV2Model';\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 bookingPaymentAccountsByAuthorizationPost {\n    export interface Params {\n    \n        /**\n        * The definition of the payment account to be created\n        */\n        body: CreateAuthorizationPaymentAccountRequest;\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 bookingPaymentAccountsByIdGet {\n    export interface Params {\n    \n        /**\n        * The identifier of the payment account\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        * List of all embedded resources that should be expanded in the response. Possible values are: actions. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type ExpandEnum = 'actions';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['actions'] as ExpandEnum[]);\n    \n}\nexport namespace bookingPaymentAccountsByLinkPost {\n    export interface Params {\n    \n        /**\n        * The definition of the payment account to be created\n        */\n        body: CreatePaymentLinkPaymentAccountRequest;\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 bookingPaymentAccountsByTerminalPost {\n    export interface Params {\n    \n        /**\n        * The definition of the payment account to be created\n        */\n        body: CreateTerminalPaymentAccountRequest;\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 bookingPaymentAccountsGet {\n    export interface Params {\n    \n        /**\n        * Filter result by requested properties\n        */\n        propertyIds?: Array<string>;\n    \n        /**\n        * Filter result by requested booking ids. Returns payment accounts that are related to the specified booking or booking reservations.  Use in combination with the Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.TargetTypes to get payment accounts related only to bookings or to reservations.\n        */\n        bookingIds?: Array<string>;\n    \n        /**\n        * Filter result by requested reservation ids\n        */\n        reservationIds?: Array<string>;\n    \n        /**\n        * Filter result by payment account payer interactions\n        */\n        payerInteractions?: Array<PayerInteractionsEnum>;\n    \n        /**\n        * Filter result by payment account status\n        */\n        status?: Array<StatusEnum>;\n    \n        /**\n        * Filter by target types\n        */\n        targetTypes?: Array<TargetTypesEnum>;\n    \n        /**\n        * Filter result by date and time attributes of payment account. Use in combination with the Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.From and Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.To attributes.  All filters will check if the date specified by the filter type is between Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.From (included) and Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.To (excluded).\n        */\n        dateField?: DateFieldEnum;\n    \n        /**\n        * The start of the time interval. When filtering by Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.DateField, at least one of Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.From and Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.To has to be specified<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        /**\n        * The end of the time interval, must be larger than Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.From. When filtering by Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.DateField, at least one of Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.From and Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.To has to be specified<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        /**\n        * Filter by payment link urls\n        */\n        paymentLinkUrls?: 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        * 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 fields that can be used to sort the results. Possible values are: created:asc, created:desc, updated:asc, updated:desc, expiresat:asc, expiresat:desc. All other values will be silently ignored.\n        */\n        sort?: Array<SortEnum>;\n    \n        /**\n        * List of all embedded resources that should be expanded in the response. Possible values are: actions. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type PayerInteractionsEnum = 'PciToken' | 'Terminal' | 'Authorization' | 'PaymentLink';\n\n    export const PayerInteractionsEnumValues = Object.freeze(\n        ['PciToken', 'Terminal', 'Authorization', 'PaymentLink'] as PayerInteractionsEnum[]);\n    \n    export type StatusEnum = 'Pending' | 'Success' | 'Failure' | 'Canceled' | 'Expired';\n\n    export const StatusEnumValues = Object.freeze(\n        ['Pending', 'Success', 'Failure', 'Canceled', 'Expired'] as StatusEnum[]);\n    \n    export type TargetTypesEnum = 'Booking' | 'Reservation';\n\n    export const TargetTypesEnumValues = Object.freeze(\n        ['Booking', 'Reservation'] as TargetTypesEnum[]);\n    \n    export type DateFieldEnum = 'Creation' | 'Modification';\n\n    export const DateFieldEnumValues = Object.freeze(\n        ['Creation', 'Modification'] as DateFieldEnum[]);\n    \n    export type SortEnum = 'created:asc' | 'created:desc' | 'updated:asc' | 'updated:desc' | 'expiresat:asc' | 'expiresat:desc';\n\n    export const SortEnumValues = Object.freeze(\n        ['created:asc', 'created:desc', 'updated:asc', 'updated:desc', 'expiresat:asc', 'expiresat:desc'] as SortEnum[]);\n    \n    export type ExpandEnum = 'actions';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['actions'] as ExpandEnum[]);\n    \n}\n\n@Injectable()\nexport class PaymentAccountService {\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     * Creates payment account based on an existing authorization created prior externally with the Payment Service Provider\n     * &lt;br&gt;You must have this scope: &#39;payment-accounts.manage&#39;.\n     * @param $params.body The definition of the payment account to be created\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 bookingPaymentAccountsByAuthorizationPost($params: bookingPaymentAccountsByAuthorizationPost.Params, observe?: 'body', reportProgress?: boolean): Observable<PaymentAccountCreatedModel>;\n    public bookingPaymentAccountsByAuthorizationPost($params: bookingPaymentAccountsByAuthorizationPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PaymentAccountCreatedModel>>;\n    public bookingPaymentAccountsByAuthorizationPost($params: bookingPaymentAccountsByAuthorizationPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PaymentAccountCreatedModel>>;\n    public bookingPaymentAccountsByAuthorizationPost($params: bookingPaymentAccountsByAuthorizationPost.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 bookingPaymentAccountsByAuthorizationPost.');\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<PaymentAccountCreatedModel>(`${this.basePath}/booking/v0-nsfw/payment-accounts/by-authorization`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a single payment account by ID\n     * &lt;br&gt;You must have at least one of these scopes: &#39;payment-accounts.read, payment-accounts.manage&#39;.\n     * @param $params.id The identifier of the payment account\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: actions. 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 bookingPaymentAccountsByIdGet($params: bookingPaymentAccountsByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<PaymentAccountV2Model>;\n    public bookingPaymentAccountsByIdGet($params: bookingPaymentAccountsByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PaymentAccountV2Model>>;\n    public bookingPaymentAccountsByIdGet($params: bookingPaymentAccountsByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PaymentAccountV2Model>>;\n    public bookingPaymentAccountsByIdGet($params: bookingPaymentAccountsByIdGet.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 bookingPaymentAccountsByIdGet.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\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<PaymentAccountV2Model>(`${this.basePath}/booking/v0-nsfw/payment-accounts/${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     * Creates a link to a payment form that allows guests to complete the payment account\n     * &lt;br&gt;You must have this scope: &#39;payment-accounts.manage&#39;.\n     * @param $params.body The definition of the payment account to be created\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 bookingPaymentAccountsByLinkPost($params: bookingPaymentAccountsByLinkPost.Params, observe?: 'body', reportProgress?: boolean): Observable<PaymentAccountCreatedModel>;\n    public bookingPaymentAccountsByLinkPost($params: bookingPaymentAccountsByLinkPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PaymentAccountCreatedModel>>;\n    public bookingPaymentAccountsByLinkPost($params: bookingPaymentAccountsByLinkPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PaymentAccountCreatedModel>>;\n    public bookingPaymentAccountsByLinkPost($params: bookingPaymentAccountsByLinkPost.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 bookingPaymentAccountsByLinkPost.');\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<PaymentAccountCreatedModel>(`${this.basePath}/booking/v0-nsfw/payment-accounts/by-link`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Creates payment account by using the terminal\n     * &lt;br&gt;You must have this scope: &#39;payment-accounts.manage&#39;.\n     * @param $params.body The definition of the payment account to be created\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 bookingPaymentAccountsByTerminalPost($params: bookingPaymentAccountsByTerminalPost.Params, observe?: 'body', reportProgress?: boolean): Observable<PaymentAccountCreatedModel>;\n    public bookingPaymentAccountsByTerminalPost($params: bookingPaymentAccountsByTerminalPost.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PaymentAccountCreatedModel>>;\n    public bookingPaymentAccountsByTerminalPost($params: bookingPaymentAccountsByTerminalPost.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PaymentAccountCreatedModel>>;\n    public bookingPaymentAccountsByTerminalPost($params: bookingPaymentAccountsByTerminalPost.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 bookingPaymentAccountsByTerminalPost.');\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<PaymentAccountCreatedModel>(`${this.basePath}/booking/v0-nsfw/payment-accounts/by-terminal`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of payment accounts based on the query parameters\n     * &lt;br&gt;You must have at least one of these scopes: &#39;payment-accounts.read, payment-accounts.manage&#39;.\n     * @param $params.propertyIds Filter result by requested properties\n     * @param $params.bookingIds Filter result by requested booking ids. Returns payment accounts that are related to the specified booking or booking reservations.  Use in combination with the Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.TargetTypes to get payment accounts related only to bookings or to reservations.\n     * @param $params.reservationIds Filter result by requested reservation ids\n     * @param $params.payerInteractions Filter result by payment account payer interactions\n     * @param $params.status Filter result by payment account status\n     * @param $params.targetTypes Filter by target types\n     * @param $params.dateField Filter result by date and time attributes of payment account. Use in combination with the Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.From and Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.To attributes.  All filters will check if the date specified by the filter type is between Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.From (included) and Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.To (excluded).\n     * @param $params.from The start of the time interval. When filtering by Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.DateField, at least one of Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.From and Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.To has to be specified&lt;br /&gt;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 interval, must be larger than Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.From. When filtering by Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.DateField, at least one of Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.From and Apaleo.Api.Modules.Booking.Models.PaymentAccountV2.PaymentAccountV2ListRequest.To has to be specified&lt;br /&gt;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.paymentLinkUrls Filter by payment link urls\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.sort List of all fields that can be used to sort the results. Possible values are: created:asc, created:desc, updated:asc, updated:desc, expiresat:asc, expiresat:desc. All other values will be silently ignored.\n     * @param $params.expand List of all embedded resources that should be expanded in the response. Possible values are: actions. 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 bookingPaymentAccountsGet($params: bookingPaymentAccountsGet.Params, observe?: 'body', reportProgress?: boolean): Observable<PaymentAccountV2ListModel|null>;\n    public bookingPaymentAccountsGet($params: bookingPaymentAccountsGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<PaymentAccountV2ListModel|null>>;\n    public bookingPaymentAccountsGet($params: bookingPaymentAccountsGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<PaymentAccountV2ListModel|null>>;\n    public bookingPaymentAccountsGet($params: bookingPaymentAccountsGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const propertyIds = $params.propertyIds;\n        const bookingIds = $params.bookingIds;\n        const reservationIds = $params.reservationIds;\n        const payerInteractions = $params.payerInteractions;\n        const status = $params.status;\n        const targetTypes = $params.targetTypes;\n        const dateField = $params.dateField;\n        const from = $params.from;\n        const to = $params.to;\n        const paymentLinkUrls = $params.paymentLinkUrls;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n        const sort = $params.sort;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (propertyIds) {\n            queryParameters = queryParameters.set('propertyIds', propertyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (bookingIds) {\n            queryParameters = queryParameters.set('bookingIds', bookingIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (reservationIds) {\n            queryParameters = queryParameters.set('reservationIds', reservationIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (payerInteractions) {\n            queryParameters = queryParameters.set('payerInteractions', payerInteractions.join(COLLECTION_FORMATS['csv']));\n        }\n        if (status) {\n            queryParameters = queryParameters.set('status', status.join(COLLECTION_FORMATS['csv']));\n        }\n        if (targetTypes) {\n            queryParameters = queryParameters.set('targetTypes', targetTypes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (dateField !== undefined && dateField !== null) {\n            queryParameters = queryParameters.set('dateField', <any>dateField);\n        }\n        if (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>dateToApaleoIso(from));\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>dateToApaleoIso(to));\n        }\n        if (paymentLinkUrls) {\n            queryParameters = queryParameters.set('paymentLinkUrls', paymentLinkUrls.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 (sort) {\n            sort.forEach((element) => {\n                queryParameters = queryParameters.append('sort', <any>element);\n            })\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<PaymentAccountV2ListModel|null>(`${this.basePath}/booking/v0-nsfw/payment-accounts`,\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { CommitPaymentAccountRequest } from '../model/commitPaymentAccountRequest';\nimport { FailPaymentAccountRequest } from '../model/failPaymentAccountRequest';\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 bookingPaymentAccountActionsByPaymentAccountIdCancelPut {\n    export interface Params {\n    \n        /**\n        * The identifier of the payment account to cancel\n        */\n        paymentAccountId: 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 bookingPaymentAccountActionsByPaymentAccountIdCommitPut {\n    export interface Params {\n    \n        /**\n        * The identifier of the payment account\n        */\n        paymentAccountId: string;\n    \n        /**\n        * The details related to the payment account to commit\n        */\n        body: CommitPaymentAccountRequest;\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 bookingPaymentAccountActionsByPaymentAccountIdExpirePaymentLinkPut {\n    export interface Params {\n    \n        /**\n        * The identifier of the payment account with the payment link to expire\n        */\n        paymentAccountId: 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 bookingPaymentAccountActionsByPaymentAccountIdFailPut {\n    export interface Params {\n    \n        /**\n        * The identifier of the payment account\n        */\n        paymentAccountId: string;\n    \n        /**\n        * The details related to the payment account to fail\n        */\n        body: FailPaymentAccountRequest;\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 PaymentAccountActionsService {\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     * Disables the recurring payment account authorization with the payment provider and updates the status to Canceled\n     * &lt;br&gt;You must have this scope: &#39;payments.admin&#39;.\n     * @param $params.paymentAccountId The identifier of the payment account to cancel\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 bookingPaymentAccountActionsByPaymentAccountIdCancelPut($params: bookingPaymentAccountActionsByPaymentAccountIdCancelPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingPaymentAccountActionsByPaymentAccountIdCancelPut($params: bookingPaymentAccountActionsByPaymentAccountIdCancelPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingPaymentAccountActionsByPaymentAccountIdCancelPut($params: bookingPaymentAccountActionsByPaymentAccountIdCancelPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingPaymentAccountActionsByPaymentAccountIdCancelPut($params: bookingPaymentAccountActionsByPaymentAccountIdCancelPut.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const paymentAccountId = $params.paymentAccountId;\n        if (paymentAccountId === null || paymentAccountId === undefined) {\n            throw new Error('Required parameter paymentAccountId was null or undefined when calling bookingPaymentAccountActionsByPaymentAccountIdCancelPut.');\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}/booking/v0-nsfw/payment-account-actions/${encodeURIComponent(String(paymentAccountId))}/cancel`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Sets payment account to success\n     * &lt;br&gt;You must have this scope: &#39;payments.admin&#39;.\n     * @param $params.paymentAccountId The identifier of the payment account\n     * @param $params.body The details related to the payment account to commit\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 bookingPaymentAccountActionsByPaymentAccountIdCommitPut($params: bookingPaymentAccountActionsByPaymentAccountIdCommitPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingPaymentAccountActionsByPaymentAccountIdCommitPut($params: bookingPaymentAccountActionsByPaymentAccountIdCommitPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingPaymentAccountActionsByPaymentAccountIdCommitPut($params: bookingPaymentAccountActionsByPaymentAccountIdCommitPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingPaymentAccountActionsByPaymentAccountIdCommitPut($params: bookingPaymentAccountActionsByPaymentAccountIdCommitPut.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const paymentAccountId = $params.paymentAccountId;\n        if (paymentAccountId === null || paymentAccountId === undefined) {\n            throw new Error('Required parameter paymentAccountId was null or undefined when calling bookingPaymentAccountActionsByPaymentAccountIdCommitPut.');\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 bookingPaymentAccountActionsByPaymentAccountIdCommitPut.');\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}/booking/v0-nsfw/payment-account-actions/${encodeURIComponent(String(paymentAccountId))}/commit`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Expires the pending payment link with the payment provider and updates the status to Expired\n     * &lt;br&gt;You must have this scope: &#39;payments.admin&#39;.\n     * @param $params.paymentAccountId The identifier of the payment account with the payment link to expire\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 bookingPaymentAccountActionsByPaymentAccountIdExpirePaymentLinkPut($params: bookingPaymentAccountActionsByPaymentAccountIdExpirePaymentLinkPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingPaymentAccountActionsByPaymentAccountIdExpirePaymentLinkPut($params: bookingPaymentAccountActionsByPaymentAccountIdExpirePaymentLinkPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingPaymentAccountActionsByPaymentAccountIdExpirePaymentLinkPut($params: bookingPaymentAccountActionsByPaymentAccountIdExpirePaymentLinkPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingPaymentAccountActionsByPaymentAccountIdExpirePaymentLinkPut($params: bookingPaymentAccountActionsByPaymentAccountIdExpirePaymentLinkPut.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const paymentAccountId = $params.paymentAccountId;\n        if (paymentAccountId === null || paymentAccountId === undefined) {\n            throw new Error('Required parameter paymentAccountId was null or undefined when calling bookingPaymentAccountActionsByPaymentAccountIdExpirePaymentLinkPut.');\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}/booking/v0-nsfw/payment-account-actions/${encodeURIComponent(String(paymentAccountId))}/expire-payment-link`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Sets payment account to failed\n     * &lt;br&gt;You must have this scope: &#39;payments.admin&#39;.\n     * @param $params.paymentAccountId The identifier of the payment account\n     * @param $params.body The details related to the payment account to fail\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 bookingPaymentAccountActionsByPaymentAccountIdFailPut($params: bookingPaymentAccountActionsByPaymentAccountIdFailPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingPaymentAccountActionsByPaymentAccountIdFailPut($params: bookingPaymentAccountActionsByPaymentAccountIdFailPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingPaymentAccountActionsByPaymentAccountIdFailPut($params: bookingPaymentAccountActionsByPaymentAccountIdFailPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingPaymentAccountActionsByPaymentAccountIdFailPut($params: bookingPaymentAccountActionsByPaymentAccountIdFailPut.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const paymentAccountId = $params.paymentAccountId;\n        if (paymentAccountId === null || paymentAccountId === undefined) {\n            throw new Error('Required parameter paymentAccountId was null or undefined when calling bookingPaymentAccountActionsByPaymentAccountIdFailPut.');\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 bookingPaymentAccountActionsByPaymentAccountIdFailPut.');\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}/booking/v0-nsfw/payment-account-actions/${encodeURIComponent(String(paymentAccountId))}/fail`,\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { MessageItemCollection } from '../model/messageItemCollection';\nimport { Operation } from '../model/operation';\nimport { ReservationListModel } from '../model/reservationListModel';\nimport { ReservationModel } from '../model/reservationModel';\nimport { ReservationServiceListModel } from '../model/reservationServiceListModel';\nimport { ReservationStayOffersModel } from '../model/reservationStayOffersModel';\nimport { ServiceOffersModel } from '../model/serviceOffersModel';\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 bookingReservationsByIdGet {\n    export interface Params {\n    \n        /**\n        * Id of the reservation to be retrieved.\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        * List of all embedded resources that should be expanded in the response. Possible values are: timeSlices, services, booker, actions, company, assignedUnits. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\n    \n    export type ExpandEnum = 'timeSlices' | 'services' | 'booker' | 'actions' | 'company' | 'assignedUnits';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['timeSlices', 'services', 'booker', 'actions', 'company', 'assignedUnits'] as ExpandEnum[]);\n    \n}\nexport namespace bookingReservationsByIdOffersGet {\n    export interface Params {\n    \n        /**\n        * Id of the reservation to be amended.\n        */\n        id: string;\n    \n        /**\n        * Date and optional time of arrival<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        arrival?: string;\n    \n        /**\n        * Date and optional time of departure. Cannot be more than 5 years after arrival.<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        departure?: string;\n    \n        /**\n        * Number of adults\n        */\n        adults?: number;\n    \n        /**\n        * Ages of children\n        */\n        childrenAges?: Array<number>;\n    \n        /**\n        * The channel code used to filter the rate plans\n        */\n        channelCode?: ChannelCodeEnum;\n    \n        /**\n        * The promo code associated with a certain special offer, like corporate rate\n        */\n        promoCode?: string;\n    \n        /**\n        * Whether the offers should be re-quoted based on current prices, or only additions like change of number of adults should be calculated.  Defaults to 'false'\n        */\n        requote?: boolean;\n    \n        /**\n        * Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\n        */\n        includeUnavailable?: boolean;\n    \n        /**\n        * The list of unit groups used to filter the offers.\n        */\n        unitGroupIds?: 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    export type ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    \n}\nexport namespace bookingReservationsByIdPatch {\n    export interface Params {\n    \n        /**\n        * Id of the reservation 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 bookingReservationsByIdServiceOffersGet {\n    export interface Params {\n    \n        /**\n        * Id of the reservation.\n        */\n        id: string;\n    \n        /**\n        * The channel code used to filter the services\n        */\n        channelCode?: ChannelCodeEnum;\n    \n        /**\n        * Depending on the postNextDay setting of a service it will by default be posted before or after midnight.  Breakfast is usually delivered on the next morning, so all the dates from the day after arrival to the departure day  are default dates and will have this flag set to true. For services like a dinner it is the other way around.  With this query parameter, you can also ask for the dates, that usually the service will not be booked. It defaults to true.\n        */\n        onlyDefaultDates?: boolean;\n    \n        /**\n        * Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\n        */\n        includeUnavailable?: 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 ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    \n}\nexport namespace bookingReservationsByIdServicesDelete {\n    export interface Params {\n    \n        /**\n        * Id of the reservation.\n        */\n        id: string;\n    \n        /**\n        * The id of the service to delete\n        */\n        serviceId: 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 bookingReservationsByIdServicesGet {\n    export interface Params {\n    \n        /**\n        * Id of the reservation.\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 bookingReservationsGet {\n    export interface Params {\n    \n        /**\n        * Filter result by booking id\n        */\n        bookingId?: string;\n    \n        /**\n        * Filter result by requested properties\n        */\n        propertyIds?: Array<string>;\n    \n        /**\n        * Filter result by requested rate plans\n        */\n        ratePlanIds?: Array<string>;\n    \n        /**\n        * Filter result by requested companies\n        */\n        companyIds?: Array<string>;\n    \n        /**\n        * Filter result by assigned units\n        */\n        unitIds?: Array<string>;\n    \n        /**\n        * Filter result by requested unit groups\n        */\n        unitGroupIds?: Array<string>;\n    \n        /**\n        * Filter result by requested unit group types\n        */\n        unitGroupTypes?: Array<UnitGroupTypesEnum>;\n    \n        /**\n        * Filter result by requested blocks\n        */\n        blockIds?: Array<string>;\n    \n        /**\n        * Filter result by requested market segments\n        */\n        marketSegmentIds?: Array<string>;\n    \n        /**\n        * Filter result by reservation status\n        */\n        status?: Array<StatusEnum>;\n    \n        /**\n        * Filter by date and time attributes of reservation. Use in combination with the 'To' and 'From' attributes.  All filters will check if the date specified by the filter type is between from (included) and to (excluded).  The exception being filtering for 'stay', which will return all reservations that are overlapping with the interval specified by from and to.\n        */\n        dateFilter?: DateFilterEnum;\n    \n        /**\n        * The start of the time interval. When filtering by date, at least one of 'from' and 'to' has to be specified<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        /**\n        * The end of the time interval, must be larger than 'from'. When filtering by date, at least one of 'from' and 'to' has to be specified<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        /**\n        * Filter result by the channel code\n        */\n        channelCode?: Array<ChannelCodeEnum>;\n    \n        /**\n        * Filter result by source\n        */\n        sources?: Array<string>;\n    \n        /**\n        * Filter result by validation message category\n        */\n        validationMessageCategory?: Array<ValidationMessageCategoryEnum>;\n    \n        /**\n        * Filter result by the external code. The result set will contain all reservations that have an external code starting with the  provided value\n        */\n        externalCode?: string;\n    \n        /**\n        * This will filter all reservations where the provided text is contained in: booker first name or last name or email or company name,  primary guest first name or last name or email or company name, external code, reservation id, unit name, or any of the external references. The search is case insensitive.\n        */\n        textSearch?: string;\n    \n        /**\n        * This will filter all reservation where the provided external references have an exact match on at least one of the properties in Apaleo.Api.Modules.Booking.Models.Reservation.ExternalReferencesModel\n        */\n        externalReferences?: Array<string>;\n    \n        /**\n        * This will filter reservations based on their balance.<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        balanceFilter?: Array<string>;\n    \n        /**\n        * If set to `true`, returns only reservations, in which all folios are closed and have an invoice.  If set to `false`, returns only reservations, in which some of the folios are open or don't have an invoice\n        */\n        allFoliosHaveInvoice?: boolean;\n    \n        /**\n        * If set to `true`, returns only the reservations marked as pre-checked-in.  If set to `false`, returns only the reservations not marked as pre-checked-in.\n        */\n        isPreCheckedIn?: boolean;\n    \n        /**\n        * If set to `true`, returns only unit assignment locked reservations.\n        */\n        isUnitAssignmentLocked?: 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 fields that can be used to sort the results. Possible values are: arrival:asc, arrival:desc, departure:asc, departure:desc, created:asc, created:desc, updated:asc, updated:desc, balance:asc, balance:desc, id:asc, id:desc, firstname:asc, firstname:desc, lastname:asc, lastname:desc, unitname:asc, unitname:desc. All other values will be silently ignored.\n        */\n        sort?: Array<SortEnum>;\n    \n        /**\n        * List of all embedded resources that should be expanded in the response. Possible values are: booker, actions, timeSlices, services, assignedUnits, company. All other values will be silently ignored.\n        */\n        expand?: Array<ExpandEnum>;\n    \n    }\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 StatusEnum = 'Confirmed' | 'InHouse' | 'CheckedOut' | 'Canceled' | 'NoShow';\n\n    export const StatusEnumValues = Object.freeze(\n        ['Confirmed', 'InHouse', 'CheckedOut', 'Canceled', 'NoShow'] as StatusEnum[]);\n    \n    export type DateFilterEnum = 'Arrival' | 'Departure' | 'Stay' | 'Creation' | 'Modification' | 'Cancellation' | 'ArrivalAndCheckIn' | 'DepartureAndCheckOut';\n\n    export const DateFilterEnumValues = Object.freeze(\n        ['Arrival', 'Departure', 'Stay', 'Creation', 'Modification', 'Cancellation', 'ArrivalAndCheckIn', 'DepartureAndCheckOut'] as DateFilterEnum[]);\n    \n    export type ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    \n    export type ValidationMessageCategoryEnum = 'OfferNotAvailable' | 'AutoUnitAssignment';\n\n    export const ValidationMessageCategoryEnumValues = Object.freeze(\n        ['OfferNotAvailable', 'AutoUnitAssignment'] as ValidationMessageCategoryEnum[]);\n    \n    export type SortEnum = 'arrival:asc' | 'arrival:desc' | 'departure:asc' | 'departure:desc' | 'created:asc' | 'created:desc' | 'updated:asc' | 'updated:desc' | 'balance:asc' | 'balance:desc' | 'id:asc' | 'id:desc' | 'firstname:asc' | 'firstname:desc' | 'lastname:asc' | 'lastname:desc' | 'unitname:asc' | 'unitname:desc';\n\n    export const SortEnumValues = Object.freeze(\n        ['arrival:asc', 'arrival:desc', 'departure:asc', 'departure:desc', 'created:asc', 'created:desc', 'updated:asc', 'updated:desc', 'balance:asc', 'balance:desc', 'id:asc', 'id:desc', 'firstname:asc', 'firstname:desc', 'lastname:asc', 'lastname:desc', 'unitname:asc', 'unitname:desc'] as SortEnum[]);\n    \n    export type ExpandEnum = 'booker' | 'actions' | 'timeSlices' | 'services' | 'assignedUnits' | 'company';\n\n    export const ExpandEnumValues = Object.freeze(\n        ['booker', 'actions', 'timeSlices', 'services', 'assignedUnits', 'company'] as ExpandEnum[]);\n    \n}\nexport namespace bookingReservationscountGet {\n    export interface Params {\n    \n        /**\n        * Filter result by booking id\n        */\n        bookingId?: string;\n    \n        /**\n        * Filter result by requested properties\n        */\n        propertyIds?: Array<string>;\n    \n        /**\n        * Filter result by requested rate plans\n        */\n        ratePlanIds?: Array<string>;\n    \n        /**\n        * Filter result by requested companies\n        */\n        companyIds?: Array<string>;\n    \n        /**\n        * Filter result by assigned units\n        */\n        unitIds?: Array<string>;\n    \n        /**\n        * Filter result by requested unit groups\n        */\n        unitGroupIds?: Array<string>;\n    \n        /**\n        * Filter result by requested unit group types\n        */\n        unitGroupTypes?: Array<UnitGroupTypesEnum>;\n    \n        /**\n        * Filter result by requested blocks\n        */\n        blockIds?: Array<string>;\n    \n        /**\n        * Filter result by requested market segments\n        */\n        marketSegmentIds?: Array<string>;\n    \n        /**\n        * Filter result by reservation status\n        */\n        status?: Array<StatusEnum>;\n    \n        /**\n        * Filter by date and time attributes of reservation. Use in combination with the 'To' and 'From' attributes.  All filters will check if the date specified by the filter type is between from (included) and to (excluded).  The exception being filtering for 'stay', which will return all reservations that are overlapping with the interval specified by from and to.\n        */\n        dateFilter?: DateFilterEnum;\n    \n        /**\n        * The start of the time interval. When filtering by date, at least one of 'from' and 'to' has to be specified<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        /**\n        * The end of the time interval, must be larger than 'from'. When filtering by date, at least one of 'from' and 'to' has to be specified<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        /**\n        * Filter result by the channel code\n        */\n        channelCode?: Array<ChannelCodeEnum>;\n    \n        /**\n        * Filter result by source\n        */\n        sources?: Array<string>;\n    \n        /**\n        * Filter result by validation message category\n        */\n        validationMessageCategory?: Array<ValidationMessageCategoryEnum>;\n    \n        /**\n        * Filter result by the external code. The result set will contain all reservations that have an external code starting with the  provided value\n        */\n        externalCode?: string;\n    \n        /**\n        * This will filter all reservations where the provided text is contained in: booker first name or last name or email or company name,  primary guest first name or last name or email or company name, external code, reservation id, unit name, or any of the external references. The search is case insensitive.\n        */\n        textSearch?: string;\n    \n        /**\n        * This will filter all reservation where the provided external references have an exact match on at least one of the properties in Apaleo.Api.Modules.Booking.Models.Reservation.ExternalReferencesModel\n        */\n        externalReferences?: Array<string>;\n    \n        /**\n        * This will filter reservations based on their balance.<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        balanceFilter?: Array<string>;\n    \n        /**\n        * If set to `true`, returns only reservations, in which all folios are closed and have an invoice.  If set to `false`, returns only reservations, in which some of the folios are open or don't have an invoice\n        */\n        allFoliosHaveInvoice?: boolean;\n    \n        /**\n        * If set to `true`, returns only the reservations marked as pre-checked-in.  If set to `false`, returns only the reservations not marked as pre-checked-in.\n        */\n        isPreCheckedIn?: boolean;\n    \n        /**\n        * If set to `true`, returns only unit assignment locked reservations.\n        */\n        isUnitAssignmentLocked?: 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 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 StatusEnum = 'Confirmed' | 'InHouse' | 'CheckedOut' | 'Canceled' | 'NoShow';\n\n    export const StatusEnumValues = Object.freeze(\n        ['Confirmed', 'InHouse', 'CheckedOut', 'Canceled', 'NoShow'] as StatusEnum[]);\n    \n    export type DateFilterEnum = 'Arrival' | 'Departure' | 'Stay' | 'Creation' | 'Modification' | 'Cancellation' | 'ArrivalAndCheckIn' | 'DepartureAndCheckOut';\n\n    export const DateFilterEnumValues = Object.freeze(\n        ['Arrival', 'Departure', 'Stay', 'Creation', 'Modification', 'Cancellation', 'ArrivalAndCheckIn', 'DepartureAndCheckOut'] as DateFilterEnum[]);\n    \n    export type ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    \n    export type ValidationMessageCategoryEnum = 'OfferNotAvailable' | 'AutoUnitAssignment';\n\n    export const ValidationMessageCategoryEnumValues = Object.freeze(\n        ['OfferNotAvailable', 'AutoUnitAssignment'] as ValidationMessageCategoryEnum[]);\n    \n}\n\n@Injectable()\nexport class ReservationService {\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 specific reservation.\n     * Retrieves a reservation, specified by its ID.&lt;br&gt;You must have at least one of these scopes: &#39;reservations.read, reservations.manage&#39;.\n     * @param $params.id Id of the reservation to be retrieved.\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: timeSlices, services, booker, actions, company, assignedUnits. 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 bookingReservationsByIdGet($params: bookingReservationsByIdGet.Params, observe?: 'body', reportProgress?: boolean): Observable<ReservationModel>;\n    public bookingReservationsByIdGet($params: bookingReservationsByIdGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ReservationModel>>;\n    public bookingReservationsByIdGet($params: bookingReservationsByIdGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ReservationModel>>;\n    public bookingReservationsByIdGet($params: bookingReservationsByIdGet.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 bookingReservationsByIdGet.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\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<ReservationModel>(`${this.basePath}/booking/v0-nsfw/reservations/${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     * Returns offers for one specific reservation.\n     * Calculates and returns offers for amending a specific reservation.&lt;br&gt;You must have at least one of these scopes: &#39;offers.read, reservations.manage&#39;.\n     * @param $params.id Id of the reservation to be amended.\n     * @param $params.arrival Date and optional time of arrival&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.departure Date and optional time of departure. Cannot be more than 5 years after arrival.&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.adults Number of adults\n     * @param $params.childrenAges Ages of children\n     * @param $params.channelCode The channel code used to filter the rate plans\n     * @param $params.promoCode The promo code associated with a certain special offer, like corporate rate\n     * @param $params.requote Whether the offers should be re-quoted based on current prices, or only additions like change of number of adults should be calculated.  Defaults to &#39;false&#39;\n     * @param $params.includeUnavailable Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\n     * @param $params.unitGroupIds The list of unit groups used to filter the offers.\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 bookingReservationsByIdOffersGet($params: bookingReservationsByIdOffersGet.Params, observe?: 'body', reportProgress?: boolean): Observable<ReservationStayOffersModel|null>;\n    public bookingReservationsByIdOffersGet($params: bookingReservationsByIdOffersGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ReservationStayOffersModel|null>>;\n    public bookingReservationsByIdOffersGet($params: bookingReservationsByIdOffersGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ReservationStayOffersModel|null>>;\n    public bookingReservationsByIdOffersGet($params: bookingReservationsByIdOffersGet.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 bookingReservationsByIdOffersGet.');\n        }\n        const arrival = $params.arrival;\n        const departure = $params.departure;\n        const adults = $params.adults;\n        const childrenAges = $params.childrenAges;\n        const channelCode = $params.channelCode;\n        const promoCode = $params.promoCode;\n        const requote = $params.requote;\n        const includeUnavailable = $params.includeUnavailable;\n        const unitGroupIds = $params.unitGroupIds;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (arrival !== undefined && arrival !== null) {\n            queryParameters = queryParameters.set('arrival', <any>arrival);\n        }\n        if (departure !== undefined && departure !== null) {\n            queryParameters = queryParameters.set('departure', <any>departure);\n        }\n        if (adults !== undefined && adults !== null) {\n            queryParameters = queryParameters.set('adults', <any>adults);\n        }\n        if (childrenAges) {\n            queryParameters = queryParameters.set('childrenAges', childrenAges.join(COLLECTION_FORMATS['csv']));\n        }\n        if (channelCode !== undefined && channelCode !== null) {\n            queryParameters = queryParameters.set('channelCode', <any>channelCode);\n        }\n        if (promoCode !== undefined && promoCode !== null) {\n            queryParameters = queryParameters.set('promoCode', <any>promoCode);\n        }\n        if (requote !== undefined && requote !== null) {\n            queryParameters = queryParameters.set('requote', <any>requote);\n        }\n        if (includeUnavailable !== undefined && includeUnavailable !== null) {\n            queryParameters = queryParameters.set('includeUnavailable', <any>includeUnavailable);\n        }\n        if (unitGroupIds) {\n            queryParameters = queryParameters.set('unitGroupIds', unitGroupIds.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<ReservationStayOffersModel|null>(`${this.basePath}/booking/v0-nsfw/reservations/${encodeURIComponent(String(id))}/offers`,\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 certain reservation properties\n     * Here is the list of operations that are currently allowed:  - Add, replace and remove Comment  - Add, replace and remove GuestComment  - Add, replace and remove PaymentAccount  - Add, replace and remove TravelPurpose  - Add, replace and remove AdditionalGuests  - Add, replace and remove ExternalReferences  - Add a company (using company/Id, and only if not already set)  - Add, replace and remove Commission  - Replace PrimaryGuest  - Remove ValidationMessages  - Add, replace and remove MarketSegment  - Replace IsOpenForCharges  - Replace IsPreCheckedIn&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation 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 bookingReservationsByIdPatch($params: bookingReservationsByIdPatch.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationsByIdPatch($params: bookingReservationsByIdPatch.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationsByIdPatch($params: bookingReservationsByIdPatch.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationsByIdPatch($params: bookingReservationsByIdPatch.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 bookingReservationsByIdPatch.');\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 bookingReservationsByIdPatch.');\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}/booking/v0-nsfw/reservations/${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     * Returns service offers for one specific reservation.\n     * Calculates and returns service offers for a specific reservation.&lt;br&gt;You must have at least one of these scopes: &#39;offers.read, reservations.manage&#39;.\n     * @param $params.id Id of the reservation.\n     * @param $params.channelCode The channel code used to filter the services\n     * @param $params.onlyDefaultDates Depending on the postNextDay setting of a service it will by default be posted before or after midnight.  Breakfast is usually delivered on the next morning, so all the dates from the day after arrival to the departure day  are default dates and will have this flag set to true. For services like a dinner it is the other way around.  With this query parameter, you can also ask for the dates, that usually the service will not be booked. It defaults to true.\n     * @param $params.includeUnavailable Return also offers that are currently not publicly bookable as restrictions are violated. By default only available offers are returned\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 bookingReservationsByIdServiceOffersGet($params: bookingReservationsByIdServiceOffersGet.Params, observe?: 'body', reportProgress?: boolean): Observable<ServiceOffersModel|null>;\n    public bookingReservationsByIdServiceOffersGet($params: bookingReservationsByIdServiceOffersGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ServiceOffersModel|null>>;\n    public bookingReservationsByIdServiceOffersGet($params: bookingReservationsByIdServiceOffersGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ServiceOffersModel|null>>;\n    public bookingReservationsByIdServiceOffersGet($params: bookingReservationsByIdServiceOffersGet.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 bookingReservationsByIdServiceOffersGet.');\n        }\n        const channelCode = $params.channelCode;\n        const onlyDefaultDates = $params.onlyDefaultDates;\n        const includeUnavailable = $params.includeUnavailable;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (channelCode !== undefined && channelCode !== null) {\n            queryParameters = queryParameters.set('channelCode', <any>channelCode);\n        }\n        if (onlyDefaultDates !== undefined && onlyDefaultDates !== null) {\n            queryParameters = queryParameters.set('onlyDefaultDates', <any>onlyDefaultDates);\n        }\n        if (includeUnavailable !== undefined && includeUnavailable !== null) {\n            queryParameters = queryParameters.set('includeUnavailable', <any>includeUnavailable);\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<ServiceOffersModel|null>(`${this.basePath}/booking/v0-nsfw/reservations/${encodeURIComponent(String(id))}/service-offers`,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Removes a service from a reservation.\n     * Removes a service from a reservation. The service will not be removed if it is mandatory, already posted or if the service date is in the past.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation.\n     * @param $params.serviceId The id of the service 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 bookingReservationsByIdServicesDelete($params: bookingReservationsByIdServicesDelete.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationsByIdServicesDelete($params: bookingReservationsByIdServicesDelete.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationsByIdServicesDelete($params: bookingReservationsByIdServicesDelete.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationsByIdServicesDelete($params: bookingReservationsByIdServicesDelete.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 bookingReservationsByIdServicesDelete.');\n        }\n        const serviceId = $params.serviceId;\n        if (serviceId === null || serviceId === undefined) {\n            throw new Error('Required parameter serviceId was null or undefined when calling bookingReservationsByIdServicesDelete.');\n        }\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (serviceId !== undefined && serviceId !== null) {\n            queryParameters = queryParameters.set('serviceId', <any>serviceId);\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}/booking/v0-nsfw/reservations/${encodeURIComponent(String(id))}/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     * Returns the services booked for a specific reservation.\n     * Returns the services booked for a specific reservation.&lt;br&gt;You must have at least one of these scopes: &#39;reservations.read, reservations.manage&#39;.\n     * @param $params.id Id of the reservation.\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 bookingReservationsByIdServicesGet($params: bookingReservationsByIdServicesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<ReservationServiceListModel|null>;\n    public bookingReservationsByIdServicesGet($params: bookingReservationsByIdServicesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ReservationServiceListModel|null>>;\n    public bookingReservationsByIdServicesGet($params: bookingReservationsByIdServicesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ReservationServiceListModel|null>>;\n    public bookingReservationsByIdServicesGet($params: bookingReservationsByIdServicesGet.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 bookingReservationsByIdServicesGet.');\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<ReservationServiceListModel|null>(`${this.basePath}/booking/v0-nsfw/reservations/${encodeURIComponent(String(id))}/services`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of all reservations, filtered by the specified parameters.\n     * Returns a list of all reservations, filtered by the specified parameters. If no parameters are set, returns the entire list.&lt;br&gt;You must have at least one of these scopes: &#39;reservations.read, reservations.manage&#39;.\n     * @param $params.bookingId Filter result by booking id\n     * @param $params.propertyIds Filter result by requested properties\n     * @param $params.ratePlanIds Filter result by requested rate plans\n     * @param $params.companyIds Filter result by requested companies\n     * @param $params.unitIds Filter result by assigned units\n     * @param $params.unitGroupIds Filter result by requested unit groups\n     * @param $params.unitGroupTypes Filter result by requested unit group types\n     * @param $params.blockIds Filter result by requested blocks\n     * @param $params.marketSegmentIds Filter result by requested market segments\n     * @param $params.status Filter result by reservation status\n     * @param $params.dateFilter Filter by date and time attributes of reservation. Use in combination with the &#39;To&#39; and &#39;From&#39; attributes.  All filters will check if the date specified by the filter type is between from (included) and to (excluded).  The exception being filtering for &#39;stay&#39;, which will return all reservations that are overlapping with the interval specified by from and to.\n     * @param $params.from The start of the time interval. When filtering by date, at least one of &#39;from&#39; and &#39;to&#39; has to be specified&lt;br /&gt;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 interval, must be larger than &#39;from&#39;. When filtering by date, at least one of &#39;from&#39; and &#39;to&#39; has to be specified&lt;br /&gt;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.channelCode Filter result by the channel code\n     * @param $params.sources Filter result by source\n     * @param $params.validationMessageCategory Filter result by validation message category\n     * @param $params.externalCode Filter result by the external code. The result set will contain all reservations that have an external code starting with the  provided value\n     * @param $params.textSearch This will filter all reservations where the provided text is contained in: booker first name or last name or email or company name,  primary guest first name or last name or email or company name, external code, reservation id, unit name, or any of the external references. The search is case insensitive.\n     * @param $params.externalReferences This will filter all reservation where the provided external references have an exact match on at least one of the properties in Apaleo.Api.Modules.Booking.Models.Reservation.ExternalReferencesModel\n     * @param $params.balanceFilter This will filter reservations based on their balance.&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.allFoliosHaveInvoice If set to &#x60;true&#x60;, returns only reservations, in which all folios are closed and have an invoice.  If set to &#x60;false&#x60;, returns only reservations, in which some of the folios are open or don&#39;t have an invoice\n     * @param $params.isPreCheckedIn If set to &#x60;true&#x60;, returns only the reservations marked as pre-checked-in.  If set to &#x60;false&#x60;, returns only the reservations not marked as pre-checked-in.\n     * @param $params.isUnitAssignmentLocked If set to &#x60;true&#x60;, returns only unit assignment locked reservations.\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.sort List of all fields that can be used to sort the results. Possible values are: arrival:asc, arrival:desc, departure:asc, departure:desc, created:asc, created:desc, updated:asc, updated:desc, balance:asc, balance:desc, id:asc, id:desc, firstname:asc, firstname:desc, lastname:asc, lastname:desc, unitname:asc, unitname:desc. All other values will be silently ignored.\n     * @param $params.expand List of all embedded resources that should be expanded in the response. Possible values are: booker, actions, timeSlices, services, assignedUnits, company. 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 bookingReservationsGet($params: bookingReservationsGet.Params, observe?: 'body', reportProgress?: boolean): Observable<ReservationListModel|null>;\n    public bookingReservationsGet($params: bookingReservationsGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ReservationListModel|null>>;\n    public bookingReservationsGet($params: bookingReservationsGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ReservationListModel|null>>;\n    public bookingReservationsGet($params: bookingReservationsGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const bookingId = $params.bookingId;\n        const propertyIds = $params.propertyIds;\n        const ratePlanIds = $params.ratePlanIds;\n        const companyIds = $params.companyIds;\n        const unitIds = $params.unitIds;\n        const unitGroupIds = $params.unitGroupIds;\n        const unitGroupTypes = $params.unitGroupTypes;\n        const blockIds = $params.blockIds;\n        const marketSegmentIds = $params.marketSegmentIds;\n        const status = $params.status;\n        const dateFilter = $params.dateFilter;\n        const from = $params.from;\n        const to = $params.to;\n        const channelCode = $params.channelCode;\n        const sources = $params.sources;\n        const validationMessageCategory = $params.validationMessageCategory;\n        const externalCode = $params.externalCode;\n        const textSearch = $params.textSearch;\n        const externalReferences = $params.externalReferences;\n        const balanceFilter = $params.balanceFilter;\n        const allFoliosHaveInvoice = $params.allFoliosHaveInvoice;\n        const isPreCheckedIn = $params.isPreCheckedIn;\n        const isUnitAssignmentLocked = $params.isUnitAssignmentLocked;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n        const sort = $params.sort;\n        const expand = $params.expand;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (bookingId !== undefined && bookingId !== null) {\n            queryParameters = queryParameters.set('bookingId', <any>bookingId);\n        }\n        if (propertyIds) {\n            queryParameters = queryParameters.set('propertyIds', propertyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (ratePlanIds) {\n            queryParameters = queryParameters.set('ratePlanIds', ratePlanIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (companyIds) {\n            queryParameters = queryParameters.set('companyIds', companyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitIds) {\n            queryParameters = queryParameters.set('unitIds', unitIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupIds) {\n            queryParameters = queryParameters.set('unitGroupIds', unitGroupIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupTypes) {\n            queryParameters = queryParameters.set('unitGroupTypes', unitGroupTypes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (blockIds) {\n            queryParameters = queryParameters.set('blockIds', blockIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (marketSegmentIds) {\n            queryParameters = queryParameters.set('marketSegmentIds', marketSegmentIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (status) {\n            queryParameters = queryParameters.set('status', status.join(COLLECTION_FORMATS['csv']));\n        }\n        if (dateFilter !== undefined && dateFilter !== null) {\n            queryParameters = queryParameters.set('dateFilter', <any>dateFilter);\n        }\n        if (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>dateToApaleoIso(from));\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>dateToApaleoIso(to));\n        }\n        if (channelCode) {\n            queryParameters = queryParameters.set('channelCode', channelCode.join(COLLECTION_FORMATS['csv']));\n        }\n        if (sources) {\n            queryParameters = queryParameters.set('sources', sources.join(COLLECTION_FORMATS['csv']));\n        }\n        if (validationMessageCategory) {\n            queryParameters = queryParameters.set('validationMessageCategory', validationMessageCategory.join(COLLECTION_FORMATS['csv']));\n        }\n        if (externalCode !== undefined && externalCode !== null) {\n            queryParameters = queryParameters.set('externalCode', <any>externalCode);\n        }\n        if (textSearch !== undefined && textSearch !== null) {\n            queryParameters = queryParameters.set('textSearch', <any>textSearch);\n        }\n        if (externalReferences) {\n            queryParameters = queryParameters.set('externalReferences', externalReferences.join(COLLECTION_FORMATS['csv']));\n        }\n        if (balanceFilter) {\n            queryParameters = queryParameters.set('balanceFilter', balanceFilter.join(COLLECTION_FORMATS['csv']));\n        }\n        if (allFoliosHaveInvoice !== undefined && allFoliosHaveInvoice !== null) {\n            queryParameters = queryParameters.set('allFoliosHaveInvoice', <any>allFoliosHaveInvoice);\n        }\n        if (isPreCheckedIn !== undefined && isPreCheckedIn !== null) {\n            queryParameters = queryParameters.set('isPreCheckedIn', <any>isPreCheckedIn);\n        }\n        if (isUnitAssignmentLocked !== undefined && isUnitAssignmentLocked !== null) {\n            queryParameters = queryParameters.set('isUnitAssignmentLocked', <any>isUnitAssignmentLocked);\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 (sort) {\n            sort.forEach((element) => {\n                queryParameters = queryParameters.append('sort', <any>element);\n            })\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<ReservationListModel|null>(`${this.basePath}/booking/v0-nsfw/reservations`,\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 the number of reservations fulfilling the criteria specified in the parameters.\n     * If no parameters are set, returns the total count of reservations.&lt;br&gt;You must have at least one of these scopes: &#39;reservations.read, reservations.manage&#39;.\n     * @param $params.bookingId Filter result by booking id\n     * @param $params.propertyIds Filter result by requested properties\n     * @param $params.ratePlanIds Filter result by requested rate plans\n     * @param $params.companyIds Filter result by requested companies\n     * @param $params.unitIds Filter result by assigned units\n     * @param $params.unitGroupIds Filter result by requested unit groups\n     * @param $params.unitGroupTypes Filter result by requested unit group types\n     * @param $params.blockIds Filter result by requested blocks\n     * @param $params.marketSegmentIds Filter result by requested market segments\n     * @param $params.status Filter result by reservation status\n     * @param $params.dateFilter Filter by date and time attributes of reservation. Use in combination with the &#39;To&#39; and &#39;From&#39; attributes.  All filters will check if the date specified by the filter type is between from (included) and to (excluded).  The exception being filtering for &#39;stay&#39;, which will return all reservations that are overlapping with the interval specified by from and to.\n     * @param $params.from The start of the time interval. When filtering by date, at least one of &#39;from&#39; and &#39;to&#39; has to be specified&lt;br /&gt;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 interval, must be larger than &#39;from&#39;. When filtering by date, at least one of &#39;from&#39; and &#39;to&#39; has to be specified&lt;br /&gt;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.channelCode Filter result by the channel code\n     * @param $params.sources Filter result by source\n     * @param $params.validationMessageCategory Filter result by validation message category\n     * @param $params.externalCode Filter result by the external code. The result set will contain all reservations that have an external code starting with the  provided value\n     * @param $params.textSearch This will filter all reservations where the provided text is contained in: booker first name or last name or email or company name,  primary guest first name or last name or email or company name, external code, reservation id, unit name, or any of the external references. The search is case insensitive.\n     * @param $params.externalReferences This will filter all reservation where the provided external references have an exact match on at least one of the properties in Apaleo.Api.Modules.Booking.Models.Reservation.ExternalReferencesModel\n     * @param $params.balanceFilter This will filter reservations based on their balance.&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.allFoliosHaveInvoice If set to &#x60;true&#x60;, returns only reservations, in which all folios are closed and have an invoice.  If set to &#x60;false&#x60;, returns only reservations, in which some of the folios are open or don&#39;t have an invoice\n     * @param $params.isPreCheckedIn If set to &#x60;true&#x60;, returns only the reservations marked as pre-checked-in.  If set to &#x60;false&#x60;, returns only the reservations not marked as pre-checked-in.\n     * @param $params.isUnitAssignmentLocked If set to &#x60;true&#x60;, returns only unit assignment locked reservations.\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 bookingReservationscountGet($params: bookingReservationscountGet.Params, observe?: 'body', reportProgress?: boolean): Observable<CountModel>;\n    public bookingReservationscountGet($params: bookingReservationscountGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CountModel>>;\n    public bookingReservationscountGet($params: bookingReservationscountGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CountModel>>;\n    public bookingReservationscountGet($params: bookingReservationscountGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const bookingId = $params.bookingId;\n        const propertyIds = $params.propertyIds;\n        const ratePlanIds = $params.ratePlanIds;\n        const companyIds = $params.companyIds;\n        const unitIds = $params.unitIds;\n        const unitGroupIds = $params.unitGroupIds;\n        const unitGroupTypes = $params.unitGroupTypes;\n        const blockIds = $params.blockIds;\n        const marketSegmentIds = $params.marketSegmentIds;\n        const status = $params.status;\n        const dateFilter = $params.dateFilter;\n        const from = $params.from;\n        const to = $params.to;\n        const channelCode = $params.channelCode;\n        const sources = $params.sources;\n        const validationMessageCategory = $params.validationMessageCategory;\n        const externalCode = $params.externalCode;\n        const textSearch = $params.textSearch;\n        const externalReferences = $params.externalReferences;\n        const balanceFilter = $params.balanceFilter;\n        const allFoliosHaveInvoice = $params.allFoliosHaveInvoice;\n        const isPreCheckedIn = $params.isPreCheckedIn;\n        const isUnitAssignmentLocked = $params.isUnitAssignmentLocked;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (bookingId !== undefined && bookingId !== null) {\n            queryParameters = queryParameters.set('bookingId', <any>bookingId);\n        }\n        if (propertyIds) {\n            queryParameters = queryParameters.set('propertyIds', propertyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (ratePlanIds) {\n            queryParameters = queryParameters.set('ratePlanIds', ratePlanIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (companyIds) {\n            queryParameters = queryParameters.set('companyIds', companyIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitIds) {\n            queryParameters = queryParameters.set('unitIds', unitIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupIds) {\n            queryParameters = queryParameters.set('unitGroupIds', unitGroupIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (unitGroupTypes) {\n            queryParameters = queryParameters.set('unitGroupTypes', unitGroupTypes.join(COLLECTION_FORMATS['csv']));\n        }\n        if (blockIds) {\n            queryParameters = queryParameters.set('blockIds', blockIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (marketSegmentIds) {\n            queryParameters = queryParameters.set('marketSegmentIds', marketSegmentIds.join(COLLECTION_FORMATS['csv']));\n        }\n        if (status) {\n            queryParameters = queryParameters.set('status', status.join(COLLECTION_FORMATS['csv']));\n        }\n        if (dateFilter !== undefined && dateFilter !== null) {\n            queryParameters = queryParameters.set('dateFilter', <any>dateFilter);\n        }\n        if (from !== undefined && from !== null) {\n            queryParameters = queryParameters.set('from', <any>dateToApaleoIso(from));\n        }\n        if (to !== undefined && to !== null) {\n            queryParameters = queryParameters.set('to', <any>dateToApaleoIso(to));\n        }\n        if (channelCode) {\n            queryParameters = queryParameters.set('channelCode', channelCode.join(COLLECTION_FORMATS['csv']));\n        }\n        if (sources) {\n            queryParameters = queryParameters.set('sources', sources.join(COLLECTION_FORMATS['csv']));\n        }\n        if (validationMessageCategory) {\n            queryParameters = queryParameters.set('validationMessageCategory', validationMessageCategory.join(COLLECTION_FORMATS['csv']));\n        }\n        if (externalCode !== undefined && externalCode !== null) {\n            queryParameters = queryParameters.set('externalCode', <any>externalCode);\n        }\n        if (textSearch !== undefined && textSearch !== null) {\n            queryParameters = queryParameters.set('textSearch', <any>textSearch);\n        }\n        if (externalReferences) {\n            queryParameters = queryParameters.set('externalReferences', externalReferences.join(COLLECTION_FORMATS['csv']));\n        }\n        if (balanceFilter) {\n            queryParameters = queryParameters.set('balanceFilter', balanceFilter.join(COLLECTION_FORMATS['csv']));\n        }\n        if (allFoliosHaveInvoice !== undefined && allFoliosHaveInvoice !== null) {\n            queryParameters = queryParameters.set('allFoliosHaveInvoice', <any>allFoliosHaveInvoice);\n        }\n        if (isPreCheckedIn !== undefined && isPreCheckedIn !== null) {\n            queryParameters = queryParameters.set('isPreCheckedIn', <any>isPreCheckedIn);\n        }\n        if (isUnitAssignmentLocked !== undefined && isUnitAssignmentLocked !== null) {\n            queryParameters = queryParameters.set('isUnitAssignmentLocked', <any>isUnitAssignmentLocked);\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}/booking/v0-nsfw/reservations/$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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AddReservationValidationMessagesRequest } from '../model/addReservationValidationMessagesRequest';\nimport { AssignedUnitModel } from '../model/assignedUnitModel';\nimport { AutoAssignedUnitListModel } from '../model/autoAssignedUnitListModel';\nimport { BookReservationServiceModel } from '../model/bookReservationServiceModel';\nimport { DeleteReservationValidationMessagesRequest } from '../model/deleteReservationValidationMessagesRequest';\nimport { DesiredStayDetailsChannelModel } from '../model/desiredStayDetailsChannelModel';\nimport { DesiredStayDetailsModel } from '../model/desiredStayDetailsModel';\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 bookingReservationActionsByIdAddCityTaxPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation.\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 bookingReservationActionsByIdAddValidationMessagesPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation.\n        */\n        id: string;\n    \n        /**\n        * List of validation messages needs to be added.\n        */\n        body: AddReservationValidationMessagesRequest;\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 bookingReservationActionsByIdAmendPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation that should be modified\n        */\n        id: string;\n    \n        /**\n        * The new stay details that should be applied to the reservation.\n        */\n        body: DesiredStayDetailsModel;\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 bookingReservationActionsByIdAmendforcePut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation that should be modified\n        */\n        id: string;\n    \n        /**\n        * The new stay details that should be applied to the reservation.\n        */\n        body: DesiredStayDetailsModel;\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 bookingReservationActionsByIdAssignUnitByUnitIdPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation the unit should be assigned to.\n        */\n        id: string;\n    \n        /**\n        * The id of the unit to be assigned.\n        */\n        unitId: string;\n    \n        /**\n        * The start date and optional time for the unit assignment. If not specified, the reservation's arrival will be used.<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 date and optional time for the unit assignment. If not specified, the reservation's departure will be used.<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 bookingReservationActionsByIdAssignUnitPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation a unit should be assigned to.\n        */\n        id: string;\n    \n        /**\n        * The optional unit conditions for unit that you want to auto assign for.\n        */\n        unitConditions?: Array<UnitConditionsEnum>;\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 UnitConditionsEnum = 'Clean' | 'CleanToBeInspected' | 'Dirty';\n\n    export const UnitConditionsEnumValues = Object.freeze(\n        ['Clean', 'CleanToBeInspected', 'Dirty'] as UnitConditionsEnum[]);\n    \n}\nexport namespace bookingReservationActionsByIdBookServicePut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation.\n        */\n        id: string;\n    \n        /**\n        * \n        */\n        body: BookReservationServiceModel;\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 bookingReservationActionsByIdBookServiceforcePut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation.\n        */\n        id: string;\n    \n        /**\n        * \n        */\n        body: BookReservationServiceModel;\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 bookingReservationActionsByIdCancelPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation that should be processed.\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 bookingReservationActionsByIdChannelAmendPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation that should be modified\n        */\n        id: string;\n    \n        /**\n        * The new stay details that should be applied to the reservation.\n        */\n        body: DesiredStayDetailsChannelModel;\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 bookingReservationActionsByIdCheckinPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation that should be processed.\n        */\n        id: string;\n    \n        /**\n        * Define if city tax should be added for this reservation or not. The default is \\\"true\\\".\n        */\n        withCityTax?: 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}\nexport namespace bookingReservationActionsByIdCheckoutPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation that should be processed.\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 bookingReservationActionsByIdLockUnitPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation\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 bookingReservationActionsByIdNoshowPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation that should be processed.\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 bookingReservationActionsByIdRemoveCityTaxPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation.\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 bookingReservationActionsByIdRemoveValidationMessagesPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation.\n        */\n        id: string;\n    \n        /**\n        * List of validation message codes need to be deleted.\n        */\n        body: DeleteReservationValidationMessagesRequest;\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 bookingReservationActionsByIdRevertCheckinPut {\n    export interface Params {\n    \n        /**\n        * The ID of the reservation to reverse the check-in for.\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 bookingReservationActionsByIdUnassignUnitsPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation the unit should be unassigned for.\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 bookingReservationActionsByIdUnlockUnitPut {\n    export interface Params {\n    \n        /**\n        * Id of the reservation\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 ReservationActionsService {\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     * Adds the city tax to a reservation.\n     * Use this if you want to add the city tax to a reservation.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation.\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 bookingReservationActionsByIdAddCityTaxPut($params: bookingReservationActionsByIdAddCityTaxPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdAddCityTaxPut($params: bookingReservationActionsByIdAddCityTaxPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdAddCityTaxPut($params: bookingReservationActionsByIdAddCityTaxPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdAddCityTaxPut($params: bookingReservationActionsByIdAddCityTaxPut.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 bookingReservationActionsByIdAddCityTaxPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/add-city-tax`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Adds validation messages to reservation.\n     * Use this if you want to add validation messages to reservation.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation.\n     * @param $params.body List of validation messages needs to be added.\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 bookingReservationActionsByIdAddValidationMessagesPut($params: bookingReservationActionsByIdAddValidationMessagesPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdAddValidationMessagesPut($params: bookingReservationActionsByIdAddValidationMessagesPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdAddValidationMessagesPut($params: bookingReservationActionsByIdAddValidationMessagesPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdAddValidationMessagesPut($params: bookingReservationActionsByIdAddValidationMessagesPut.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 bookingReservationActionsByIdAddValidationMessagesPut.');\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 bookingReservationActionsByIdAddValidationMessagesPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/add-validation-messages`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Allows you to amend the stay details of a reservation\n     * Modifies the stay-related data of a reservation.   If a reservation is &#39;Confirmed&#39;, you can change all fields.   If a reservation is &#39;InHouse&#39;, only changes to future time slices are possible.   Changes to reservations that are in the status &#39;CheckedOut&#39; or &#39;Canceled&#39; are not possible at all.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation that should be modified\n     * @param $params.body The new stay details that should be applied to the reservation.\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 bookingReservationActionsByIdAmendPut($params: bookingReservationActionsByIdAmendPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdAmendPut($params: bookingReservationActionsByIdAmendPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdAmendPut($params: bookingReservationActionsByIdAmendPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdAmendPut($params: bookingReservationActionsByIdAmendPut.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 bookingReservationActionsByIdAmendPut.');\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 bookingReservationActionsByIdAmendPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/amend`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Allows you to amend the stay details of a reservation regardless of availability or restrictions.\n     * Modifies the stay-related data of a reservation.   If a reservation is &#39;Confirmed&#39;, you can change all fields.   If a reservation is &#39;InHouse&#39;, only changes to future time slices are possible.   Changes to reservations that are in the status &#39;CheckedOut&#39; or &#39;Canceled&#39; are not possible at all.&lt;br&gt;You must have this scope: &#39;reservations.force-manage&#39;.\n     * @param $params.id Id of the reservation that should be modified\n     * @param $params.body The new stay details that should be applied to the reservation.\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 bookingReservationActionsByIdAmendforcePut($params: bookingReservationActionsByIdAmendforcePut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdAmendforcePut($params: bookingReservationActionsByIdAmendforcePut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdAmendforcePut($params: bookingReservationActionsByIdAmendforcePut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdAmendforcePut($params: bookingReservationActionsByIdAmendforcePut.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 bookingReservationActionsByIdAmendforcePut.');\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 bookingReservationActionsByIdAmendforcePut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/amend/$force`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Assign a specific unit to a reservation.\n     * Assigns a specific unit to a reservation which is in state &#39;Confirmed&#39; or &#39;InHouse&#39;. If the unit is not available, the call will return an error, and no unit will be assigned.&lt;br&gt;You must have at least one of these scopes: &#39;reservations.assign-unit, reservations.manage&#39;.\n     * @param $params.id Id of the reservation the unit should be assigned to.\n     * @param $params.unitId The id of the unit to be assigned.\n     * @param $params.from The start date and optional time for the unit assignment. If not specified, the reservation&#39;s arrival will be used.&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 date and optional time for the unit assignment. If not specified, the reservation&#39;s departure will be used.&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 bookingReservationActionsByIdAssignUnitByUnitIdPut($params: bookingReservationActionsByIdAssignUnitByUnitIdPut.Params, observe?: 'body', reportProgress?: boolean): Observable<AssignedUnitModel>;\n    public bookingReservationActionsByIdAssignUnitByUnitIdPut($params: bookingReservationActionsByIdAssignUnitByUnitIdPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AssignedUnitModel>>;\n    public bookingReservationActionsByIdAssignUnitByUnitIdPut($params: bookingReservationActionsByIdAssignUnitByUnitIdPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AssignedUnitModel>>;\n    public bookingReservationActionsByIdAssignUnitByUnitIdPut($params: bookingReservationActionsByIdAssignUnitByUnitIdPut.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 bookingReservationActionsByIdAssignUnitByUnitIdPut.');\n        }\n        const unitId = $params.unitId;\n        if (unitId === null || unitId === undefined) {\n            throw new Error('Required parameter unitId was null or undefined when calling bookingReservationActionsByIdAssignUnitByUnitIdPut.');\n        }\n        const from = $params.from;\n        const to = $params.to;\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.put<AssignedUnitModel>(`${this.basePath}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/assign-unit/${encodeURIComponent(String(unitId))}`,\n            null,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Assign a unit to a reservation.\n     * Assigns one of the available units to a reservation which is in state &#39;Confirmed&#39; or &#39;InHouse&#39;.&lt;br&gt;You must have at least one of these scopes: &#39;reservations.assign-unit, reservations.manage&#39;.\n     * @param $params.id Id of the reservation a unit should be assigned to.\n     * @param $params.unitConditions The optional unit conditions for unit that you want to auto assign for.\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 bookingReservationActionsByIdAssignUnitPut($params: bookingReservationActionsByIdAssignUnitPut.Params, observe?: 'body', reportProgress?: boolean): Observable<AutoAssignedUnitListModel>;\n    public bookingReservationActionsByIdAssignUnitPut($params: bookingReservationActionsByIdAssignUnitPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AutoAssignedUnitListModel>>;\n    public bookingReservationActionsByIdAssignUnitPut($params: bookingReservationActionsByIdAssignUnitPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AutoAssignedUnitListModel>>;\n    public bookingReservationActionsByIdAssignUnitPut($params: bookingReservationActionsByIdAssignUnitPut.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 bookingReservationActionsByIdAssignUnitPut.');\n        }\n        const unitConditions = $params.unitConditions;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (unitConditions) {\n            queryParameters = queryParameters.set('unitConditions', unitConditions.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.put<AutoAssignedUnitListModel>(`${this.basePath}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/assign-unit`,\n            null,\n            {\n                params: queryParameters,\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Book the service for a specific reservation.\n     * Use this to book a service for a specific reservation.  Please note that when dates are specified, all desired dates must be specified or they will be removed if not posted to the folio.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation.\n     * @param $params.body \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 bookingReservationActionsByIdBookServicePut($params: bookingReservationActionsByIdBookServicePut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdBookServicePut($params: bookingReservationActionsByIdBookServicePut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdBookServicePut($params: bookingReservationActionsByIdBookServicePut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdBookServicePut($params: bookingReservationActionsByIdBookServicePut.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 bookingReservationActionsByIdBookServicePut.');\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 bookingReservationActionsByIdBookServicePut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/book-service`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Book the service for a specific reservation regardless of availability.\n     * Use this to book a service for a specific reservation.  Please note that when dates are specified, all desired dates must be specified or they will be removed if not posted to the folio.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation.\n     * @param $params.body \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 bookingReservationActionsByIdBookServiceforcePut($params: bookingReservationActionsByIdBookServiceforcePut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdBookServiceforcePut($params: bookingReservationActionsByIdBookServiceforcePut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdBookServiceforcePut($params: bookingReservationActionsByIdBookServiceforcePut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdBookServiceforcePut($params: bookingReservationActionsByIdBookServiceforcePut.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 bookingReservationActionsByIdBookServiceforcePut.');\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 bookingReservationActionsByIdBookServiceforcePut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/book-service/$force`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Cancel a reservation.\n     * Cancel a specific reservation which is in status &#39;Confirmed&#39; and where the arrival time is in the future.  This changes the status to &#39;Canceled&#39;, and sets the cancellation date and time.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation that should be processed.\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 bookingReservationActionsByIdCancelPut($params: bookingReservationActionsByIdCancelPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdCancelPut($params: bookingReservationActionsByIdCancelPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdCancelPut($params: bookingReservationActionsByIdCancelPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdCancelPut($params: bookingReservationActionsByIdCancelPut.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 bookingReservationActionsByIdCancelPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/cancel`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Allows channel to amend the stay details of a reservation regardless of availability or restrictions.\n     * Modifies the stay-related data of a reservation.   If a reservation is &#39;Confirmed&#39;, you can change all fields.   If a reservation is &#39;InHouse&#39;, only changes to future time slices are possible.   Changes to reservations that are in the status &#39;CheckedOut&#39; or &#39;Canceled&#39; are not possible at all.&lt;br&gt;You must have this scope: &#39;reservations.force-manage&#39;.\n     * @param $params.id Id of the reservation that should be modified\n     * @param $params.body The new stay details that should be applied to the reservation.\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 bookingReservationActionsByIdChannelAmendPut($params: bookingReservationActionsByIdChannelAmendPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdChannelAmendPut($params: bookingReservationActionsByIdChannelAmendPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdChannelAmendPut($params: bookingReservationActionsByIdChannelAmendPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdChannelAmendPut($params: bookingReservationActionsByIdChannelAmendPut.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 bookingReservationActionsByIdChannelAmendPut.');\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 bookingReservationActionsByIdChannelAmendPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/channel-amend`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Check-in of a reservation.\n     * Check in a specific reservation which is in status &#39;Confirmed&#39;, and has a unit assigned. This changes the status to &#39;InHouse&#39;, and sets the check-in date and time.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation that should be processed.\n     * @param $params.withCityTax Define if city tax should be added for this reservation or not. The default is \\&quot;true\\&quot;.\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 bookingReservationActionsByIdCheckinPut($params: bookingReservationActionsByIdCheckinPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdCheckinPut($params: bookingReservationActionsByIdCheckinPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdCheckinPut($params: bookingReservationActionsByIdCheckinPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdCheckinPut($params: bookingReservationActionsByIdCheckinPut.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 bookingReservationActionsByIdCheckinPut.');\n        }\n        const withCityTax = $params.withCityTax;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (withCityTax !== undefined && withCityTax !== null) {\n            queryParameters = queryParameters.set('withCityTax', <any>withCityTax);\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.put<any>(`${this.basePath}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/checkin`,\n            null,\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-out of a reservation.\n     * Check out a specific reservation which is in status &#39;InHouse&#39;. This changes the status to &#39;CheckedOut&#39;, and sets the check-out date and time.  All open charges on the folio will be posted.     Check-out is only possible, if the departure date is not later than tomorrow. Otherwise, first amend the reservation and shorten the stay.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation that should be processed.\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 bookingReservationActionsByIdCheckoutPut($params: bookingReservationActionsByIdCheckoutPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdCheckoutPut($params: bookingReservationActionsByIdCheckoutPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdCheckoutPut($params: bookingReservationActionsByIdCheckoutPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdCheckoutPut($params: bookingReservationActionsByIdCheckoutPut.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 bookingReservationActionsByIdCheckoutPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/checkout`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Lock unit assignment for a reservation.\n     * Lock unit assignment for a reservation and prevent modification.  It will fail for reservations not in status &#39;Confirmed&#39; or &#39;InHouse&#39;.  It will also fail if Units have not been assigned to this reservation.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation\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 bookingReservationActionsByIdLockUnitPut($params: bookingReservationActionsByIdLockUnitPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdLockUnitPut($params: bookingReservationActionsByIdLockUnitPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdLockUnitPut($params: bookingReservationActionsByIdLockUnitPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdLockUnitPut($params: bookingReservationActionsByIdLockUnitPut.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 bookingReservationActionsByIdLockUnitPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/lock-unit`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Set a reservation to No-show.\n     * Set a specific reservation to No-show which is in status &#39;Confirmed&#39; and where the arrival date is in the past.  This changes the status to &#39;NoShow&#39;, and sets the no-show date and time.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation that should be processed.\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 bookingReservationActionsByIdNoshowPut($params: bookingReservationActionsByIdNoshowPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdNoshowPut($params: bookingReservationActionsByIdNoshowPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdNoshowPut($params: bookingReservationActionsByIdNoshowPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdNoshowPut($params: bookingReservationActionsByIdNoshowPut.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 bookingReservationActionsByIdNoshowPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/noshow`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Removes the city tax from a reservation.\n     * Use this is you want to remove the city tax from a reservation before the stay.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation.\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 bookingReservationActionsByIdRemoveCityTaxPut($params: bookingReservationActionsByIdRemoveCityTaxPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdRemoveCityTaxPut($params: bookingReservationActionsByIdRemoveCityTaxPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdRemoveCityTaxPut($params: bookingReservationActionsByIdRemoveCityTaxPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdRemoveCityTaxPut($params: bookingReservationActionsByIdRemoveCityTaxPut.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 bookingReservationActionsByIdRemoveCityTaxPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/remove-city-tax`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Removes the validation messages from a reservation by codes.\n     * Use this if you want to remove the validation messages from a reservation.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation.\n     * @param $params.body List of validation message codes need to be deleted.\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 bookingReservationActionsByIdRemoveValidationMessagesPut($params: bookingReservationActionsByIdRemoveValidationMessagesPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdRemoveValidationMessagesPut($params: bookingReservationActionsByIdRemoveValidationMessagesPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdRemoveValidationMessagesPut($params: bookingReservationActionsByIdRemoveValidationMessagesPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdRemoveValidationMessagesPut($params: bookingReservationActionsByIdRemoveValidationMessagesPut.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 bookingReservationActionsByIdRemoveValidationMessagesPut.');\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 bookingReservationActionsByIdRemoveValidationMessagesPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/remove-validation-messages`,\n            body,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Reverses the check-in of a reservation.\n     * &lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id The ID of the reservation to reverse the check-in for.\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 bookingReservationActionsByIdRevertCheckinPut($params: bookingReservationActionsByIdRevertCheckinPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdRevertCheckinPut($params: bookingReservationActionsByIdRevertCheckinPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdRevertCheckinPut($params: bookingReservationActionsByIdRevertCheckinPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdRevertCheckinPut($params: bookingReservationActionsByIdRevertCheckinPut.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 bookingReservationActionsByIdRevertCheckinPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/revert-checkin`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Unassign units from a reservation.\n     * Unassigns units for all time slices of the given reservation. If no units are assigned for the  reservation nothing will happen. It will fail for reservations in status &#39;CheckedOut&#39;.&lt;br&gt;You must have at least one of these scopes: &#39;reservations.assign-unit, reservations.manage&#39;.\n     * @param $params.id Id of the reservation the unit should be unassigned for.\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 bookingReservationActionsByIdUnassignUnitsPut($params: bookingReservationActionsByIdUnassignUnitsPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdUnassignUnitsPut($params: bookingReservationActionsByIdUnassignUnitsPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdUnassignUnitsPut($params: bookingReservationActionsByIdUnassignUnitsPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdUnassignUnitsPut($params: bookingReservationActionsByIdUnassignUnitsPut.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 bookingReservationActionsByIdUnassignUnitsPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/unassign-units`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Unlock unit assignment for a reservation.\n     * Unlock unit assignment for a reservation and allow modification.  It will fail if the reservation is not locked.&lt;br&gt;You must have this scope: &#39;reservations.manage&#39;.\n     * @param $params.id Id of the reservation\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 bookingReservationActionsByIdUnlockUnitPut($params: bookingReservationActionsByIdUnlockUnitPut.Params, observe?: 'body', reportProgress?: boolean): Observable<any>;\n    public bookingReservationActionsByIdUnlockUnitPut($params: bookingReservationActionsByIdUnlockUnitPut.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;\n    public bookingReservationActionsByIdUnlockUnitPut($params: bookingReservationActionsByIdUnlockUnitPut.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;\n    public bookingReservationActionsByIdUnlockUnitPut($params: bookingReservationActionsByIdUnlockUnitPut.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 bookingReservationActionsByIdUnlockUnitPut.');\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}/booking/v0-nsfw/reservation-actions/${encodeURIComponent(String(id))}/unlock-unit`,\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AllowedValueListModel } from '../model/allowedValueListModel';\nimport { MessageItemCollection } from '../model/messageItemCollection';\nimport { SourceListModel } from '../model/sourceListModel';\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 bookingTypesByTypeAllowedValuesGet {\n    export interface Params {\n    \n        /**\n        * The type to provide allowed values for\n        */\n        type: TypeEnum;\n    \n        /**\n        * The code of the country in which the property is located in ISO 3166-1 alpha-2 format.\n        */\n        countryCode: string;\n    \n        /**\n        * Filter the result by the provided free text.  If specified, only values that contain one of the provided values will be returned.\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        * List of all fields that can be used to sort the results. Possible values are: value:asc, value:desc. All other values will be silently ignored.\n        */\n        sort?: Array<SortEnum>;\n    \n    }\n    \n    export type TypeEnum = 'IdentificationIssuePlace' | 'BirthPlace' | 'City' | 'Gender' | 'IdentificationType' | 'RegionCode';\n\n    export const TypeEnumValues = Object.freeze(\n        ['IdentificationIssuePlace', 'BirthPlace', 'City', 'Gender', 'IdentificationType', 'RegionCode'] as TypeEnum[]);\n    \n    export type SortEnum = 'value:asc' | 'value:desc';\n\n    export const SortEnumValues = Object.freeze(\n        ['value:asc', 'value:desc'] as SortEnum[]);\n    \n}\nexport namespace bookingTypesSourcesGet {\n    export interface Params {\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 TypesService {\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 values that a field of the specified type can take in the specified country.\n     * &lt;br&gt;You need to be authorized (no particular scope required)\n     * @param $params.type The type to provide allowed values for\n     * @param $params.countryCode The code of the country in which the property is located in ISO 3166-1 alpha-2 format.\n     * @param $params.textSearch Filter the result by the provided free text.  If specified, only values that contain one of the provided values will be returned.\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.sort List of all fields that can be used to sort the results. Possible values are: value:asc, value:desc. 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 bookingTypesByTypeAllowedValuesGet($params: bookingTypesByTypeAllowedValuesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<AllowedValueListModel|null>;\n    public bookingTypesByTypeAllowedValuesGet($params: bookingTypesByTypeAllowedValuesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<AllowedValueListModel|null>>;\n    public bookingTypesByTypeAllowedValuesGet($params: bookingTypesByTypeAllowedValuesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<AllowedValueListModel|null>>;\n    public bookingTypesByTypeAllowedValuesGet($params: bookingTypesByTypeAllowedValuesGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \n        const type = $params.type;\n        if (type === null || type === undefined) {\n            throw new Error('Required parameter type was null or undefined when calling bookingTypesByTypeAllowedValuesGet.');\n        }\n        const countryCode = $params.countryCode;\n        if (countryCode === null || countryCode === undefined) {\n            throw new Error('Required parameter countryCode was null or undefined when calling bookingTypesByTypeAllowedValuesGet.');\n        }\n        const textSearch = $params.textSearch;\n        const apaleoCurrentDateTime = $params.apaleoCurrentDateTime;\n        const pageNumber = $params.pageNumber;\n        const pageSize = $params.pageSize;\n        const sort = $params.sort;\n\n        let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        \n        if (countryCode !== undefined && countryCode !== null) {\n            queryParameters = queryParameters.set('countryCode', <any>countryCode);\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        if (sort) {\n            sort.forEach((element) => {\n                queryParameters = queryParameters.append('sort', <any>element);\n            })\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<AllowedValueListModel|null>(`${this.basePath}/booking/v0-nsfw/types/${encodeURIComponent(String(type))}/allowed-values`,\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 supported sources.\n     * Returns a list of channels that could be used as a source to create bookings.\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 bookingTypesSourcesGet($params: bookingTypesSourcesGet.Params, observe?: 'body', reportProgress?: boolean): Observable<SourceListModel>;\n    public bookingTypesSourcesGet($params: bookingTypesSourcesGet.Params, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<SourceListModel>>;\n    public bookingTypesSourcesGet($params: bookingTypesSourcesGet.Params, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<SourceListModel>>;\n    public bookingTypesSourcesGet($params: bookingTypesSourcesGet.Params, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {    \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        // 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<SourceListModel>(`${this.basePath}/booking/v0-nsfw/types/sources`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","export * from './authorization.service';\nimport { AuthorizationService } from './authorization.service';\nexport * from './authorizationActions.service';\nimport { AuthorizationActionsService } from './authorizationActions.service';\nexport * from './block.service';\nimport { BlockService } from './block.service';\nexport * from './blockActions.service';\nimport { BlockActionsService } from './blockActions.service';\nexport * from './booking.service';\nimport { BookingService } from './booking.service';\nexport * from './group.service';\nimport { GroupService } from './group.service';\nexport * from './offer.service';\nimport { OfferService } from './offer.service';\nexport * from './paymentAccount.service';\nimport { PaymentAccountService } from './paymentAccount.service';\nexport * from './paymentAccountActions.service';\nimport { PaymentAccountActionsService } from './paymentAccountActions.service';\nexport * from './reservation.service';\nimport { ReservationService } from './reservation.service';\nexport * from './reservationActions.service';\nimport { ReservationActionsService } from './reservationActions.service';\nexport * from './types.service';\nimport { TypesService } from './types.service';\nexport const APIS = [AuthorizationService, AuthorizationActionsService, BlockService, BlockActionsService, BookingService, GroupService, OfferService, PaymentAccountService, PaymentAccountActionsService, ReservationService, ReservationActionsService, TypesService];\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionReasonModelNotAllowedAuthorizationActionReason } from './actionReasonModelNotAllowedAuthorizationActionReason';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ActionModelAuthorizationActionNotAllowedAuthorizationActionReason { \n    action: ActionModelAuthorizationActionNotAllowedAuthorizationActionReason.ActionEnum;\n    isAllowed: boolean;\n    reasons?: Array<ActionReasonModelNotAllowedAuthorizationActionReason>;\n}\nexport namespace ActionModelAuthorizationActionNotAllowedAuthorizationActionReason {\n    export type ActionEnum = 'Cancel' | 'Refresh';\n    export const ActionEnumValues = Object.freeze(\n        ['Cancel', 'Refresh'] as ActionEnum[]);\n}\n\nexport namespace ActionModelAuthorizationActionNotAllowedAuthorizationActionReason {\n    export const $metaData: ClassMetaData<ActionModelAuthorizationActionNotAllowedAuthorizationActionReason> = { \n        action: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ActionEnumValues,\n            isPrimitiveType: true,\n        }),\n        isAllowed: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        reasons: Object.freeze({ \n            type: 'Array<ActionReasonModelNotAllowedAuthorizationActionReason>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionReasonModelNotAllowedBlockActionReason } from './actionReasonModelNotAllowedBlockActionReason';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ActionModelBlockActionNotAllowedBlockActionReason { \n    action: ActionModelBlockActionNotAllowedBlockActionReason.ActionEnum;\n    isAllowed: boolean;\n    reasons?: Array<ActionReasonModelNotAllowedBlockActionReason>;\n}\nexport namespace ActionModelBlockActionNotAllowedBlockActionReason {\n    export type ActionEnum = 'Delete' | 'Confirm' | 'Release' | 'Cancel' | 'Pickup' | 'Modify' | 'Wash';\n    export const ActionEnumValues = Object.freeze(\n        ['Delete', 'Confirm', 'Release', 'Cancel', 'Pickup', 'Modify', 'Wash'] as ActionEnum[]);\n}\n\nexport namespace ActionModelBlockActionNotAllowedBlockActionReason {\n    export const $metaData: ClassMetaData<ActionModelBlockActionNotAllowedBlockActionReason> = { \n        action: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ActionEnumValues,\n            isPrimitiveType: true,\n        }),\n        isAllowed: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        reasons: Object.freeze({ \n            type: 'Array<ActionReasonModelNotAllowedBlockActionReason>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionReasonModelNotAllowedGroupActionReason } from './actionReasonModelNotAllowedGroupActionReason';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ActionModelGroupActionNotAllowedGroupActionReason { \n    action: ActionModelGroupActionNotAllowedGroupActionReason.ActionEnum;\n    isAllowed: boolean;\n    reasons?: Array<ActionReasonModelNotAllowedGroupActionReason>;\n}\nexport namespace ActionModelGroupActionNotAllowedGroupActionReason {\n    export type ActionEnum = 'Delete';\n    export const ActionEnumValues = Object.freeze(\n        ['Delete'] as ActionEnum[]);\n}\n\nexport namespace ActionModelGroupActionNotAllowedGroupActionReason {\n    export const $metaData: ClassMetaData<ActionModelGroupActionNotAllowedGroupActionReason> = { \n        action: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ActionEnumValues,\n            isPrimitiveType: true,\n        }),\n        isAllowed: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        reasons: Object.freeze({ \n            type: 'Array<ActionReasonModelNotAllowedGroupActionReason>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionReasonModelNotAllowedPaymentAccountActionReason } from './actionReasonModelNotAllowedPaymentAccountActionReason';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ActionModelPaymentAccountActionNotAllowedPaymentAccountActionReason { \n    action: ActionModelPaymentAccountActionNotAllowedPaymentAccountActionReason.ActionEnum;\n    isAllowed: boolean;\n    reasons?: Array<ActionReasonModelNotAllowedPaymentAccountActionReason>;\n}\nexport namespace ActionModelPaymentAccountActionNotAllowedPaymentAccountActionReason {\n    export type ActionEnum = 'Cancel' | 'ExpirePaymentLink';\n    export const ActionEnumValues = Object.freeze(\n        ['Cancel', 'ExpirePaymentLink'] as ActionEnum[]);\n}\n\nexport namespace ActionModelPaymentAccountActionNotAllowedPaymentAccountActionReason {\n    export const $metaData: ClassMetaData<ActionModelPaymentAccountActionNotAllowedPaymentAccountActionReason> = { \n        action: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ActionEnumValues,\n            isPrimitiveType: true,\n        }),\n        isAllowed: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        reasons: Object.freeze({ \n            type: 'Array<ActionReasonModelNotAllowedPaymentAccountActionReason>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionReasonModelNotAllowedReservationActionReason } from './actionReasonModelNotAllowedReservationActionReason';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ActionModelReservationActionNotAllowedReservationActionReason { \n    action: ActionModelReservationActionNotAllowedReservationActionReason.ActionEnum;\n    isAllowed: boolean;\n    reasons?: Array<ActionReasonModelNotAllowedReservationActionReason>;\n}\nexport namespace ActionModelReservationActionNotAllowedReservationActionReason {\n    export type ActionEnum = 'CheckIn' | 'CheckOut' | 'Cancel' | 'AmendTimeSlices' | 'AmendArrival' | 'AmendDeparture' | 'NoShow' | 'AssignUnit' | 'UnassignUnit' | 'RemoveCityTax' | 'AddCityTax' | 'RemoveService' | 'CheckInRevert' | 'LockUnit' | 'UnlockUnit';\n    export const ActionEnumValues = Object.freeze(\n        ['CheckIn', 'CheckOut', 'Cancel', 'AmendTimeSlices', 'AmendArrival', 'AmendDeparture', 'NoShow', 'AssignUnit', 'UnassignUnit', 'RemoveCityTax', 'AddCityTax', 'RemoveService', 'CheckInRevert', 'LockUnit', 'UnlockUnit'] as ActionEnum[]);\n}\n\nexport namespace ActionModelReservationActionNotAllowedReservationActionReason {\n    export const $metaData: ClassMetaData<ActionModelReservationActionNotAllowedReservationActionReason> = { \n        action: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ActionEnumValues,\n            isPrimitiveType: true,\n        }),\n        isAllowed: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        reasons: Object.freeze({ \n            type: 'Array<ActionReasonModelNotAllowedReservationActionReason>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionReasonModelNotAllowedReservationTimeSliceActionReason } from './actionReasonModelNotAllowedReservationTimeSliceActionReason';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ActionModelReservationTimeSliceActionNotAllowedReservationTimeSliceActionReason { \n    action: ActionModelReservationTimeSliceActionNotAllowedReservationTimeSliceActionReason.ActionEnum;\n    isAllowed: boolean;\n    reasons?: Array<ActionReasonModelNotAllowedReservationTimeSliceActionReason>;\n}\nexport namespace ActionModelReservationTimeSliceActionNotAllowedReservationTimeSliceActionReason {\n    export type ActionEnum = 'Amend';\n    export const ActionEnumValues = Object.freeze(\n        ['Amend'] as ActionEnum[]);\n}\n\nexport namespace ActionModelReservationTimeSliceActionNotAllowedReservationTimeSliceActionReason {\n    export const $metaData: ClassMetaData<ActionModelReservationTimeSliceActionNotAllowedReservationTimeSliceActionReason> = { \n        action: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ActionEnumValues,\n            isPrimitiveType: true,\n        }),\n        isAllowed: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        reasons: Object.freeze({ \n            type: 'Array<ActionReasonModelNotAllowedReservationTimeSliceActionReason>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ActionReasonModelNotAllowedAuthorizationActionReason { \n    code: ActionReasonModelNotAllowedAuthorizationActionReason.CodeEnum;\n    message: string;\n}\nexport namespace ActionReasonModelNotAllowedAuthorizationActionReason {\n    export type CodeEnum = 'OnlySuccessfulAuthorizationCanBeCanceled' | 'OnlySuccessfulAuthorizationCanBeRefreshed' | 'NonActiveAuthorizationCanNotBeRefreshed';\n    export const CodeEnumValues = Object.freeze(\n        ['OnlySuccessfulAuthorizationCanBeCanceled', 'OnlySuccessfulAuthorizationCanBeRefreshed', 'NonActiveAuthorizationCanNotBeRefreshed'] as CodeEnum[]);\n}\n\nexport namespace ActionReasonModelNotAllowedAuthorizationActionReason {\n    export const $metaData: ClassMetaData<ActionReasonModelNotAllowedAuthorizationActionReason> = { \n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: CodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        message: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ActionReasonModelNotAllowedBlockActionReason { \n    code: ActionReasonModelNotAllowedBlockActionReason.CodeEnum;\n    message: string;\n}\nexport namespace ActionReasonModelNotAllowedBlockActionReason {\n    export type CodeEnum = 'DeleteNotAllowedForBlockWithReservations' | 'ReleaseNotAllowedForBlockWithReservations' | 'ReleaseNotAllowedForBlockInThePast' | 'ReleaseNotAllowedForBlockNotInStatusDefinite' | 'ConfirmNotAllowedForBlockNotInStatusTentative' | 'ConfirmNotAllowedForBlockInThePast' | 'CancelNotAllowedForBlockWithNotCancelledReservations' | 'CancelNotAllowedForBlockNotInStatusDefiniteOrTentative' | 'PickupNotAllowedForBlockNotInStatusDefinite' | 'PickupNotAllowedForBlockInThePast' | 'PickupNotAllowedForFullyPickedBlock' | 'ModifyNotAllowedForBlockInThePast' | 'ModifyNotAllowedForBlockInStatusCanceled' | 'WashNotAllowedForBlockNotInStatusDefinite' | 'WashNotAllowedForBlockWithoutReservations';\n    export const CodeEnumValues = Object.freeze(\n        ['DeleteNotAllowedForBlockWithReservations', 'ReleaseNotAllowedForBlockWithReservations', 'ReleaseNotAllowedForBlockInThePast', 'ReleaseNotAllowedForBlockNotInStatusDefinite', 'ConfirmNotAllowedForBlockNotInStatusTentative', 'ConfirmNotAllowedForBlockInThePast', 'CancelNotAllowedForBlockWithNotCancelledReservations', 'CancelNotAllowedForBlockNotInStatusDefiniteOrTentative', 'PickupNotAllowedForBlockNotInStatusDefinite', 'PickupNotAllowedForBlockInThePast', 'PickupNotAllowedForFullyPickedBlock', 'ModifyNotAllowedForBlockInThePast', 'ModifyNotAllowedForBlockInStatusCanceled', 'WashNotAllowedForBlockNotInStatusDefinite', 'WashNotAllowedForBlockWithoutReservations'] as CodeEnum[]);\n}\n\nexport namespace ActionReasonModelNotAllowedBlockActionReason {\n    export const $metaData: ClassMetaData<ActionReasonModelNotAllowedBlockActionReason> = { \n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: CodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        message: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ActionReasonModelNotAllowedGroupActionReason { \n    code: ActionReasonModelNotAllowedGroupActionReason.CodeEnum;\n    message: string;\n}\nexport namespace ActionReasonModelNotAllowedGroupActionReason {\n    export type CodeEnum = 'DeleteNotAllowedForGroupWithBlocks';\n    export const CodeEnumValues = Object.freeze(\n        ['DeleteNotAllowedForGroupWithBlocks'] as CodeEnum[]);\n}\n\nexport namespace ActionReasonModelNotAllowedGroupActionReason {\n    export const $metaData: ClassMetaData<ActionReasonModelNotAllowedGroupActionReason> = { \n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: CodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        message: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ActionReasonModelNotAllowedPaymentAccountActionReason { \n    code: ActionReasonModelNotAllowedPaymentAccountActionReason.CodeEnum;\n    message: string;\n}\nexport namespace ActionReasonModelNotAllowedPaymentAccountActionReason {\n    export type CodeEnum = 'OnlySuccessfulPaymentAccountCanBeCanceled' | 'OnlyPendingPaymentLinkPaymentAccountCanBeExpired';\n    export const CodeEnumValues = Object.freeze(\n        ['OnlySuccessfulPaymentAccountCanBeCanceled', 'OnlyPendingPaymentLinkPaymentAccountCanBeExpired'] as CodeEnum[]);\n}\n\nexport namespace ActionReasonModelNotAllowedPaymentAccountActionReason {\n    export const $metaData: ClassMetaData<ActionReasonModelNotAllowedPaymentAccountActionReason> = { \n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: CodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        message: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ActionReasonModelNotAllowedReservationActionReason { \n    code: ActionReasonModelNotAllowedReservationActionReason.CodeEnum;\n    message: string;\n}\nexport namespace ActionReasonModelNotAllowedReservationActionReason {\n    export type CodeEnum = 'CheckInNotAllowedForReservationNotInStatusConfirmed' | 'CheckInNotAllowedBeforeArrivalDate' | 'CheckInNotAllowedAfterDepartureDateTime' | 'CheckInNotAllowedWithoutUnitAssignedForWholeStay' | 'CheckInRevertDisabled' | 'CheckInRevertNotAllowedForReservationNotInInHouseStatus' | 'CheckInRevertNotAllowedForReservationWithPostedCharges' | 'CheckOutNotAllowedForReservationNotInStatusInHouse' | 'CheckOutNotAllowedForPastReservationNotInStatusConfirmedOrInHouse' | 'CheckOutNotAllowedWithDepartureDateMoreThanOneDayInTheFuture' | 'CancelNotAllowedForReservationNotInStatusConfirmed' | 'AmendNotAllowedForNotAmendableTimeSlices' | 'AmendArrivalNotAllowedForNotAmendableTimeSlices' | 'AmendArrivalNotAllowedForReservationNotInStatusConfirmed' | 'AmendDepartureNotAllowedForReservationNotInStatusConfirmedOrInHouse' | 'AmendDepartureNotAllowedForReservationDepartureDateTooFarInThePast' | 'NoShowNotAllowedForReservationNotInStatusConfirmed' | 'NoShowNotAllowedBeforeArrivalDate' | 'AssignUnitNotAllowedForReservationInThePast' | 'AssignUnitNotAllowedForReservationNotInStatusConfirmedOrInHouse' | 'UnassignUnitNotAllowedForReservationInThePast' | 'UnassignUnitNotAllowedForReservationNotInStatusConfirmed' | 'UnassignUnitNotAllowedForReservationWithoutUnit' | 'RemoveCityTaxNotAllowedForReservationNotInStatusConfirmedOrInHouse' | 'RemoveCityTaxNotAllowedForReservationWithPostedCharges' | 'RemoveCityTaxNotAllowedForReservationWithoutCityTax' | 'AddCityTaxNotAllowedForReservationNotInStatusConfirmedOrInHouse' | 'AddCityTaxNotAllowedForReservationWithCityTax' | 'AddCityTaxNotAllowedForReservationForRatePlanNotSubjectToCityTax' | 'AddCityTaxNotAllowedForReservationWithPostedCharges' | 'RemoveServiceNotAllowedForReservationNotInStatusConfirmedOrInHouse' | 'RemoveServiceNotAllowedForReservationInThePast' | 'LockUnitNotAllowedForReservationNotInStatusConfirmedOrInHouse' | 'LockUnitNotAllowedForReservationWhenUnitsNotAssigned' | 'UnlockUnitNotAllowedForReservationNotLocked' | 'AssignUnitNotAllowedForLockedReservation' | 'UnassignUnitNotAllowedForLockedReservation';\n    export const CodeEnumValues = Object.freeze(\n        ['CheckInNotAllowedForReservationNotInStatusConfirmed', 'CheckInNotAllowedBeforeArrivalDate', 'CheckInNotAllowedAfterDepartureDateTime', 'CheckInNotAllowedWithoutUnitAssignedForWholeStay', 'CheckInRevertDisabled', 'CheckInRevertNotAllowedForReservationNotInInHouseStatus', 'CheckInRevertNotAllowedForReservationWithPostedCharges', 'CheckOutNotAllowedForReservationNotInStatusInHouse', 'CheckOutNotAllowedForPastReservationNotInStatusConfirmedOrInHouse', 'CheckOutNotAllowedWithDepartureDateMoreThanOneDayInTheFuture', 'CancelNotAllowedForReservationNotInStatusConfirmed', 'AmendNotAllowedForNotAmendableTimeSlices', 'AmendArrivalNotAllowedForNotAmendableTimeSlices', 'AmendArrivalNotAllowedForReservationNotInStatusConfirmed', 'AmendDepartureNotAllowedForReservationNotInStatusConfirmedOrInHouse', 'AmendDepartureNotAllowedForReservationDepartureDateTooFarInThePast', 'NoShowNotAllowedForReservationNotInStatusConfirmed', 'NoShowNotAllowedBeforeArrivalDate', 'AssignUnitNotAllowedForReservationInThePast', 'AssignUnitNotAllowedForReservationNotInStatusConfirmedOrInHouse', 'UnassignUnitNotAllowedForReservationInThePast', 'UnassignUnitNotAllowedForReservationNotInStatusConfirmed', 'UnassignUnitNotAllowedForReservationWithoutUnit', 'RemoveCityTaxNotAllowedForReservationNotInStatusConfirmedOrInHouse', 'RemoveCityTaxNotAllowedForReservationWithPostedCharges', 'RemoveCityTaxNotAllowedForReservationWithoutCityTax', 'AddCityTaxNotAllowedForReservationNotInStatusConfirmedOrInHouse', 'AddCityTaxNotAllowedForReservationWithCityTax', 'AddCityTaxNotAllowedForReservationForRatePlanNotSubjectToCityTax', 'AddCityTaxNotAllowedForReservationWithPostedCharges', 'RemoveServiceNotAllowedForReservationNotInStatusConfirmedOrInHouse', 'RemoveServiceNotAllowedForReservationInThePast', 'LockUnitNotAllowedForReservationNotInStatusConfirmedOrInHouse', 'LockUnitNotAllowedForReservationWhenUnitsNotAssigned', 'UnlockUnitNotAllowedForReservationNotLocked', 'AssignUnitNotAllowedForLockedReservation', 'UnassignUnitNotAllowedForLockedReservation'] as CodeEnum[]);\n}\n\nexport namespace ActionReasonModelNotAllowedReservationActionReason {\n    export const $metaData: ClassMetaData<ActionReasonModelNotAllowedReservationActionReason> = { \n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: CodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        message: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ActionReasonModelNotAllowedReservationTimeSliceActionReason { \n    code: ActionReasonModelNotAllowedReservationTimeSliceActionReason.CodeEnum;\n    message: string;\n}\nexport namespace ActionReasonModelNotAllowedReservationTimeSliceActionReason {\n    export type CodeEnum = 'AmendNotAllowedWhenTimeSliceIsInThePast' | 'AmendNotAllowedWhenTimeSliceIsAlreadyPosted' | 'AmendNotAllowedForReservationInFinalStatus';\n    export const CodeEnumValues = Object.freeze(\n        ['AmendNotAllowedWhenTimeSliceIsInThePast', 'AmendNotAllowedWhenTimeSliceIsAlreadyPosted', 'AmendNotAllowedForReservationInFinalStatus'] as CodeEnum[]);\n}\n\nexport namespace ActionReasonModelNotAllowedReservationTimeSliceActionReason {\n    export const $metaData: ClassMetaData<ActionReasonModelNotAllowedReservationTimeSliceActionReason> = { \n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: CodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        message: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { CreateChannelReservationModel } from './createChannelReservationModel';\n\n\n/**\n * With this request you can add channel reservations to an existing booking\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AddChannelReservationsModel { \n    /**\n     * List of reservations to add to the existing booking\n     */\n    reservations: Array<CreateChannelReservationModel>;\n    /**\n     * The reference of a payment transaction. This should be set when a payment transaction has been initiated and should be used to complete the transaction upon reservation creation.  When set, the payment transaction completion is always triggered regardless of the reservation guarantee type and payment automation settings.\n     */\n    transactionReference?: string;\n}\n\nexport namespace AddChannelReservationsModel {\n    export const $metaData: ClassMetaData<AddChannelReservationsModel> = { \n        reservations: Object.freeze({ \n            isRequired: true,\n            type: 'Array<CreateChannelReservationModel>',\n            isListContainer: true,\n        }),\n        transactionReference: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { CreateReservationValidationMessageModel } from './createReservationValidationMessageModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AddReservationValidationMessagesRequest { \n    validationMessages: Array<CreateReservationValidationMessageModel>;\n}\n\nexport namespace AddReservationValidationMessagesRequest {\n    export const $metaData: ClassMetaData<AddReservationValidationMessagesRequest> = { \n        validationMessages: Object.freeze({ \n            isRequired: true,\n            type: 'Array<CreateReservationValidationMessageModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { CreateReservationModel } from './createReservationModel';\n\n\n/**\n * With this request you can add reservations to an existing booking\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AddReservationsModel { \n    /**\n     * List of reservations to add to the existing booking\n     */\n    reservations: Array<CreateReservationModel>;\n    /**\n     * The reference of a payment transaction. This should be set when a payment transaction has been initiated and should be used to complete the transaction upon reservation creation.  When set, the payment transaction completion is always triggered regardless of the reservation guarantee type and payment automation settings.\n     */\n    transactionReference?: string;\n}\n\nexport namespace AddReservationsModel {\n    export const $metaData: ClassMetaData<AddReservationsModel> = { \n        reservations: Object.freeze({ \n            isRequired: true,\n            type: 'Array<CreateReservationModel>',\n            isListContainer: true,\n        }),\n        transactionReference: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 AllowedValueListModel { \n    /**\n     * List of allowed values\n     */\n    allowedValues: Array<string>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace AllowedValueListModel {\n    export const $metaData: ClassMetaData<AllowedValueListModel> = { \n        allowedValues: Object.freeze({ \n            isRequired: true,\n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 AmountModel { \n    grossAmount: number;\n    netAmount: number;\n    vatType: AmountModel.VatTypeEnum;\n    vatPercent: number;\n    currency: string;\n}\nexport namespace AmountModel {\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 AmountModel {\n    export const $metaData: ClassMetaData<AmountModel> = { \n        grossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        netAmount: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        vatType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: VatTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        vatPercent: 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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 EmbeddedUnitModel { \n    /**\n     * The unit id\n     */\n    id: string;\n    /**\n     * The name for the unit\n     */\n    name?: string;\n    /**\n     * The description for the unit\n     */\n    description?: string;\n    /**\n     * The unit group id\n     */\n    unitGroupId?: string;\n}\n\nexport namespace EmbeddedUnitModel {\n    export const $metaData: ClassMetaData<EmbeddedUnitModel> = { \n        id: Object.freeze({ \n            isRequired: true,\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        unitGroupId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { EmbeddedUnitModel } from './embeddedUnitModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AssignedUnitModel { \n    unit: EmbeddedUnitModel;\n}\n\nexport namespace AssignedUnitModel {\n    export const $metaData: ClassMetaData<AssignedUnitModel> = { \n        unit: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitModel',\n            metaData: EmbeddedUnitModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 AuthorizationCreatedModel { \n    /**\n     * Created authorization id\n     */\n    id: string;\n}\n\nexport namespace AuthorizationCreatedModel {\n    export const $metaData: ClassMetaData<AuthorizationCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AuthorizationModel } from './authorizationModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AuthorizationListModel { \n    /**\n     * List of authorizations\n     */\n    authorizations: Array<AuthorizationModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace AuthorizationListModel {\n    export const $metaData: ClassMetaData<AuthorizationListModel> = { \n        authorizations: Object.freeze({ \n            isRequired: true,\n            type: 'Array<AuthorizationModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 AuthorizationTargetModel { \n    /**\n     * Authorization target type\n     */\n    type: AuthorizationTargetModel.TypeEnum;\n    /**\n     * Booking or reservation id\n     */\n    id: string;\n    /**\n     * The id of the property the authorization is to be created for. When target is Reservation, the property must be the same the reservation.\n     */\n    propertyId: string;\n}\nexport namespace AuthorizationTargetModel {\n    export type TypeEnum = 'Booking' | 'Reservation';\n    export const TypeEnumValues = Object.freeze(\n        ['Booking', 'Reservation'] as TypeEnum[]);\n}\n\nexport namespace AuthorizationTargetModel {\n    export const $metaData: ClassMetaData<AuthorizationTargetModel> = { \n        type: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        id: 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    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ExternalAuthorizationReferenceModel { \n    /**\n     * Identifies the payment authorization in the Payment Transaction API\n     */\n    paymentTransactionId: string;\n}\n\nexport namespace ExternalAuthorizationReferenceModel {\n    export const $metaData: ClassMetaData<ExternalAuthorizationReferenceModel> = { \n        paymentTransactionId: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionModelAuthorizationActionNotAllowedAuthorizationActionReason } from './actionModelAuthorizationActionNotAllowedAuthorizationActionReason';\nimport { AuthorizationTargetModel } from './authorizationTargetModel';\nimport { ExternalAuthorizationReferenceModel } from './externalAuthorizationReferenceModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AuthorizationModel { \n    /**\n     * Authorization id\n     */\n    id: string;\n    target: AuthorizationTargetModel;\n    /**\n     * Date of creation<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    created: Date;\n    /**\n     * Date of last modification<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    updated: Date;\n    externalReference?: ExternalAuthorizationReferenceModel;\n    amount: MonetaryValueModel;\n    /**\n     * Status of the authorization\n     */\n    status: AuthorizationModel.StatusEnum;\n    /**\n     * Human readable failure reason\n     */\n    failureReason?: string;\n    /**\n     * Payer interaction of the authorization\n     */\n    payerInteraction: AuthorizationModel.PayerInteractionEnum;\n    /**\n     * The date and time the authorization expires<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    expiresAt?: Date;\n    /**\n     * The URL to the payment link when authorization is created by payment link\n     */\n    paymentLinkUrl?: string;\n    /**\n     * The list of actions for authorization\n     */\n    actions?: Array<ActionModelAuthorizationActionNotAllowedAuthorizationActionReason>;\n}\nexport namespace AuthorizationModel {\n    export type StatusEnum = 'Pending' | 'Success' | 'Failure' | 'Canceled' | 'Expired';\n    export const StatusEnumValues = Object.freeze(\n        ['Pending', 'Success', 'Failure', 'Canceled', 'Expired'] as StatusEnum[]);\n    export type PayerInteractionEnum = 'Terminal' | 'PaymentAccount' | 'Authorization' | 'PaymentLink';\n    export const PayerInteractionEnumValues = Object.freeze(\n        ['Terminal', 'PaymentAccount', 'Authorization', 'PaymentLink'] as PayerInteractionEnum[]);\n}\n\nexport namespace AuthorizationModel {\n    export const $metaData: ClassMetaData<AuthorizationModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        target: Object.freeze({ \n            isRequired: true,\n            type: 'AuthorizationTargetModel',\n            metaData: AuthorizationTargetModel.$metaData\n        }),\n        created: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        updated: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        externalReference: Object.freeze({ \n            type: 'ExternalAuthorizationReferenceModel',\n            metaData: ExternalAuthorizationReferenceModel.$metaData\n        }),\n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        status: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: StatusEnumValues,\n            isPrimitiveType: true,\n        }),\n        failureReason: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        payerInteraction: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PayerInteractionEnumValues,\n            isPrimitiveType: true,\n        }),\n        expiresAt: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        paymentLinkUrl: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        actions: Object.freeze({ \n            type: 'Array<ActionModelAuthorizationActionNotAllowedAuthorizationActionReason>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 AuthorizationRefreshRequest { \n    amount: MonetaryValueModel;\n}\n\nexport namespace AuthorizationRefreshRequest {\n    export const $metaData: ClassMetaData<AuthorizationRefreshRequest> = { \n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { EmbeddedUnitModel } from './embeddedUnitModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AutoAssignedUnitItemModel { \n    unit: EmbeddedUnitModel;\n    /**\n     * The start date and time for this time slice<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     * The end date and time for this time slice<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 AutoAssignedUnitItemModel {\n    export const $metaData: ClassMetaData<AutoAssignedUnitItemModel> = { \n        unit: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitModel',\n            metaData: EmbeddedUnitModel.$metaData\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    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AutoAssignedUnitItemModel } from './autoAssignedUnitItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface AutoAssignedUnitListModel { \n    /**\n     * The list of time slices with the respective assigned unit\n     */\n    timeSlices: Array<AutoAssignedUnitItemModel>;\n}\n\nexport namespace AutoAssignedUnitListModel {\n    export const $metaData: ClassMetaData<AutoAssignedUnitListModel> = { \n        timeSlices: Object.freeze({ \n            isRequired: true,\n            type: 'Array<AutoAssignedUnitItemModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 BlockCreatedModel { \n    /**\n     * Block id\n     */\n    id: string;\n}\n\nexport namespace BlockCreatedModel {\n    export const $metaData: ClassMetaData<BlockCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 EmbeddedGroupModel { \n    /**\n     * Group booking id\n     */\n    id: string;\n    /**\n     * Name of the group\n     */\n    name?: string;\n}\n\nexport namespace EmbeddedGroupModel {\n    export const $metaData: ClassMetaData<EmbeddedGroupModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionModelBlockActionNotAllowedBlockActionReason } from './actionModelBlockActionNotAllowedBlockActionReason';\nimport { BlockTimeSliceModel } from './blockTimeSliceModel';\nimport { EmbeddedGroupModel } from './embeddedGroupModel';\nimport { EmbeddedMarketSegmentModel } from './embeddedMarketSegmentModel';\nimport { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { EmbeddedRatePlanModel } from './embeddedRatePlanModel';\nimport { EmbeddedUnitGroupModel } from './embeddedUnitGroupModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BlockItemModel { \n    /**\n     * Block id\n     */\n    id: string;\n    group: EmbeddedGroupModel;\n    /**\n     * Status of the block\n     */\n    status: BlockItemModel.StatusEnum;\n    property: EmbeddedPropertyModel;\n    ratePlan: EmbeddedRatePlanModel;\n    unitGroup: EmbeddedUnitGroupModel;\n    marketSegment?: EmbeddedMarketSegmentModel;\n    grossDailyRate: MonetaryValueModel;\n    /**\n     * Start date and time from which the inventory will be blocked<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 date and time until which the inventory will be blocked<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     * Number of reservations already picked from this block\n     */\n    pickedReservations: number;\n    /**\n     * The promo code associated with a certain special offer used to create the block\n     */\n    promoCode?: string;\n    /**\n     * The corporate code associated with a certain special offer used to create the block\n     */\n    corporateCode?: string;\n    /**\n     * Date of creation<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    created: Date;\n    /**\n     * Date of last modification<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    modified: Date;\n    /**\n     * The list of blocked units for each time slice\n     */\n    timeSlices?: Array<BlockTimeSliceModel>;\n    /**\n     * The list of actions for this block\n     */\n    actions?: Array<ActionModelBlockActionNotAllowedBlockActionReason>;\n}\nexport namespace BlockItemModel {\n    export type StatusEnum = 'Tentative' | 'Definite' | 'Canceled';\n    export const StatusEnumValues = Object.freeze(\n        ['Tentative', 'Definite', 'Canceled'] as StatusEnum[]);\n}\n\nexport namespace BlockItemModel {\n    export const $metaData: ClassMetaData<BlockItemModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        group: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedGroupModel',\n            metaData: EmbeddedGroupModel.$metaData\n        }),\n        status: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: StatusEnumValues,\n            isPrimitiveType: true,\n        }),\n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        ratePlan: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedRatePlanModel',\n            metaData: EmbeddedRatePlanModel.$metaData\n        }),\n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitGroupModel',\n            metaData: EmbeddedUnitGroupModel.$metaData\n        }),\n        marketSegment: Object.freeze({ \n            type: 'EmbeddedMarketSegmentModel',\n            metaData: EmbeddedMarketSegmentModel.$metaData\n        }),\n        grossDailyRate: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\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        pickedReservations: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        promoCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        created: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        modified: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        timeSlices: Object.freeze({ \n            type: 'Array<BlockTimeSliceModel>',\n            isListContainer: true,\n        }),\n        actions: Object.freeze({ \n            type: 'Array<ActionModelBlockActionNotAllowedBlockActionReason>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BlockItemModel } from './blockItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BlockListModel { \n    /**\n     * List of blocks\n     */\n    blocks: Array<BlockItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace BlockListModel {\n    export const $metaData: ClassMetaData<BlockListModel> = { \n        blocks: Object.freeze({ \n            isRequired: true,\n            type: 'Array<BlockItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionModelBlockActionNotAllowedBlockActionReason } from './actionModelBlockActionNotAllowedBlockActionReason';\nimport { BlockTimeSliceModel } from './blockTimeSliceModel';\nimport { EmbeddedGroupModel } from './embeddedGroupModel';\nimport { EmbeddedMarketSegmentModel } from './embeddedMarketSegmentModel';\nimport { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { EmbeddedRatePlanModel } from './embeddedRatePlanModel';\nimport { EmbeddedUnitGroupModel } from './embeddedUnitGroupModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BlockModel { \n    /**\n     * Block id\n     */\n    id: string;\n    group: EmbeddedGroupModel;\n    /**\n     * Status of the block. Tentative will just mark inventory as requested, but still allows to sell it  through other channels. Definite will block the inventory for selling through other channels\n     */\n    status: BlockModel.StatusEnum;\n    property: EmbeddedPropertyModel;\n    ratePlan: EmbeddedRatePlanModel;\n    unitGroup: EmbeddedUnitGroupModel;\n    grossDailyRate: MonetaryValueModel;\n    /**\n     * Start date and time from which the inventory will be blocked<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 date and time until which the inventory will be blocked<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     * Number of reservations already picked from this block\n     */\n    pickedReservations: number;\n    marketSegment?: EmbeddedMarketSegmentModel;\n    /**\n     * The promo code associated with a certain special offer used to create the block\n     */\n    promoCode?: string;\n    /**\n     * The corporate code associated with a certain special offer used to create the block\n     */\n    corporateCode?: string;\n    /**\n     * Date of creation<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    created: Date;\n    /**\n     * Date of last modification<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    modified: Date;\n    /**\n     * The list of time slices for this block\n     */\n    timeSlices?: Array<BlockTimeSliceModel>;\n    /**\n     * The list of actions for this block\n     */\n    actions?: Array<ActionModelBlockActionNotAllowedBlockActionReason>;\n}\nexport namespace BlockModel {\n    export type StatusEnum = 'Tentative' | 'Definite' | 'Canceled';\n    export const StatusEnumValues = Object.freeze(\n        ['Tentative', 'Definite', 'Canceled'] as StatusEnum[]);\n}\n\nexport namespace BlockModel {\n    export const $metaData: ClassMetaData<BlockModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        group: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedGroupModel',\n            metaData: EmbeddedGroupModel.$metaData\n        }),\n        status: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: StatusEnumValues,\n            isPrimitiveType: true,\n        }),\n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        ratePlan: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedRatePlanModel',\n            metaData: EmbeddedRatePlanModel.$metaData\n        }),\n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitGroupModel',\n            metaData: EmbeddedUnitGroupModel.$metaData\n        }),\n        grossDailyRate: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\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        pickedReservations: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        marketSegment: Object.freeze({ \n            type: 'EmbeddedMarketSegmentModel',\n            metaData: EmbeddedMarketSegmentModel.$metaData\n        }),\n        promoCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        created: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        modified: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        timeSlices: Object.freeze({ \n            type: 'Array<BlockTimeSliceModel>',\n            isListContainer: true,\n        }),\n        actions: Object.freeze({ \n            type: 'Array<ActionModelBlockActionNotAllowedBlockActionReason>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BlockOfferTimeSliceModel } from './blockOfferTimeSliceModel';\nimport { OfferValidationMessageModel } from './offerValidationMessageModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BlockOfferModel { \n    /**\n     * The earliest arrival date and time for this offer<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    arrival: Date;\n    /**\n     * The latest departure date and time for this offer<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    departure: Date;\n    /**\n     * The breakdown for each time slice for this offer\n     */\n    timeSlices: Array<BlockOfferTimeSliceModel>;\n    /**\n     * Validation rules that were applied to the offer and show the reason why the offer is not bookable\n     */\n    validationMessages?: Array<OfferValidationMessageModel>;\n}\n\nexport namespace BlockOfferModel {\n    export const $metaData: ClassMetaData<BlockOfferModel> = { \n        arrival: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        departure: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        timeSlices: Object.freeze({ \n            isRequired: true,\n            type: 'Array<BlockOfferTimeSliceModel>',\n            isListContainer: true,\n        }),\n        validationMessages: Object.freeze({ \n            type: 'Array<OfferValidationMessageModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 BlockOfferTimeSliceModel { \n    /**\n     * The start date and time for this time slice<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     * The end date and time for this time slice<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     * The number of available units for that time slice\n     */\n    availableUnits: number;\n    /**\n     * The number of blocked units for that time slice\n     */\n    blockedUnits: number;\n    totalGrossAmount: MonetaryValueModel;\n}\n\nexport namespace BlockOfferTimeSliceModel {\n    export const $metaData: ClassMetaData<BlockOfferTimeSliceModel> = { \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        availableUnits: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        blockedUnits: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BlockOfferModel } from './blockOfferModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BlockOffersModel { \n    /**\n     * List of block offers\n     */\n    offers: Array<BlockOfferModel>;\n}\n\nexport namespace BlockOffersModel {\n    export const $metaData: ClassMetaData<BlockOffersModel> = { \n        offers: Object.freeze({ \n            isRequired: true,\n            type: 'Array<BlockOfferModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BlockTimeSliceModel { \n    /**\n     * Start date and time from which units will be blocked<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 date and time until which units will be blocked<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     * Number of units blocked for this time slice\n     */\n    blockedUnits: number;\n    /**\n     * Number of units which have picked reservations for this time slice\n     */\n    pickedUnits: number;\n    baseAmount: AmountModel;\n    totalGrossAmount: MonetaryValueModel;\n}\n\nexport namespace BlockTimeSliceModel {\n    export const $metaData: ClassMetaData<BlockTimeSliceModel> = { \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        blockedUnits: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        pickedUnits: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        baseAmount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ModelDate } from './modelDate';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BookReservationServiceModel { \n    /**\n     * The id of the service you want to book\n     */\n    serviceId: string;\n    /**\n     * The number of services to book for each service date. It defaults to the service offer count when not specified.\n     */\n    count?: number;\n    amount?: MonetaryValueModel;\n    /**\n     * The optional dates you want to book the service for; if not specified the default service pattern will be used (e.g. whole stay).\n     */\n    dates?: Array<ModelDate>;\n}\n\nexport namespace BookReservationServiceModel {\n    export const $metaData: ClassMetaData<BookReservationServiceModel> = { \n        serviceId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        count: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        amount: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        dates: Object.freeze({ \n            type: 'Array<ModelDate>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 PersonAddressModel { \n    addressLine1?: string;\n    addressLine2?: string;\n    postalCode?: string;\n    city?: string;\n    regionCode?: string;\n    countryCode?: string;\n}\n\nexport namespace PersonAddressModel {\n    export const $metaData: ClassMetaData<PersonAddressModel> = { \n        addressLine1: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        addressLine2: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        postalCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        city: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        regionCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        countryCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 PersonCompanyModel { \n    /**\n     * Name of the company\n     */\n    name?: string;\n    /**\n     * Tax or Vat ID of the company\n     */\n    taxId?: string;\n}\n\nexport namespace PersonCompanyModel {\n    export const $metaData: ClassMetaData<PersonCompanyModel> = { \n        name: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        taxId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { PersonAddressModel } from './personAddressModel';\nimport { PersonCompanyModel } from './personCompanyModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BookerModel { \n    /**\n     * Title of the booker\n     */\n    title?: BookerModel.TitleEnum;\n    /**\n     * Gender of the booker\n     */\n    gender?: BookerModel.GenderEnum;\n    /**\n     * First name of the booker\n     */\n    firstName?: string;\n    /**\n     * Middle initial of the booker\n     */\n    middleInitial?: string;\n    /**\n     * Last name of the booker\n     */\n    lastName: string;\n    /**\n     * Email address of the booker\n     */\n    email?: string;\n    /**\n     * Phone number of the booker\n     */\n    phone?: string;\n    address?: PersonAddressModel;\n    /**\n     * The booker's nationality, in ISO 3166-1 alpha-2 code\n     */\n    nationalityCountryCode?: string;\n    /**\n     * The booker's identification number for the given identificationType.\n     */\n    identificationNumber?: string;\n    /**\n     * The issue date of the booker's identification document.\n     */\n    identificationIssueDate?: string;\n    /**\n     * The expiry date of the booker's identification document.\n     */\n    identificationExpiryDate?: string;\n    /**\n     * The type of the identificationNumber\n     */\n    identificationType?: BookerModel.IdentificationTypeEnum;\n    company?: PersonCompanyModel;\n    /**\n     * Preferred contact two-letter language code (ISO Alpha-2)\n     */\n    preferredLanguage?: string;\n    /**\n     * Birth date\n     */\n    birthDate?: string;\n    /**\n     * The place of birth\n     */\n    birthPlace?: string;\n}\nexport namespace BookerModel {\n    export type TitleEnum = 'Mr' | 'Ms' | 'Dr' | 'Prof' | 'Mrs' | 'Other';\n    export const TitleEnumValues = Object.freeze(\n        ['Mr', 'Ms', 'Dr', 'Prof', 'Mrs', 'Other'] as TitleEnum[]);\n    export type GenderEnum = 'Female' | 'Male' | 'Other' | 'Unknown';\n    export const GenderEnumValues = Object.freeze(\n        ['Female', 'Male', 'Other', 'Unknown'] as GenderEnum[]);\n    export type IdentificationTypeEnum = 'SocialInsuranceNumber' | 'PassportNumber' | 'IdNumber' | 'DriverLicenseNumber' | 'VisaNumber' | 'ForeignerIdentityNumber' | 'TaxIdentificationNumber' | 'Other';\n    export const IdentificationTypeEnumValues = Object.freeze(\n        ['SocialInsuranceNumber', 'PassportNumber', 'IdNumber', 'DriverLicenseNumber', 'VisaNumber', 'ForeignerIdentityNumber', 'TaxIdentificationNumber', 'Other'] as IdentificationTypeEnum[]);\n}\n\nexport namespace BookerModel {\n    export const $metaData: ClassMetaData<BookerModel> = { \n        title: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TitleEnumValues,\n            isPrimitiveType: true,\n        }),\n        gender: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: GenderEnumValues,\n            isPrimitiveType: true,\n        }),\n        firstName: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        middleInitial: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        lastName: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        email: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        phone: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        address: Object.freeze({ \n            type: 'PersonAddressModel',\n            metaData: PersonAddressModel.$metaData\n        }),\n        nationalityCountryCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        identificationNumber: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        identificationIssueDate: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        identificationExpiryDate: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        identificationType: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: IdentificationTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        company: Object.freeze({ \n            type: 'PersonCompanyModel',\n            metaData: PersonCompanyModel.$metaData\n        }),\n        preferredLanguage: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        birthDate: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        birthPlace: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ReservationCreatedModel } from './reservationCreatedModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BookingCreatedModel { \n    /**\n     * Booking id\n     */\n    id: string;\n    /**\n     * List of ids for newly created reservations\n     */\n    reservationIds: Array<ReservationCreatedModel>;\n}\n\nexport namespace BookingCreatedModel {\n    export const $metaData: ClassMetaData<BookingCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        reservationIds: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ReservationCreatedModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 PaymentAccountModel { \n    /**\n     * The account number (e.g. masked credit card number or last 4 digits)\n     */\n    accountNumber?: string;\n    /**\n     * The account holder (e.g. card holder)\n     */\n    accountHolder?: string;\n    /**\n     * The credit card's expiration month\n     */\n    expiryMonth?: string;\n    /**\n     * The credit card's expiration year\n     */\n    expiryYear?: string;\n    /**\n     * The payment method (e.g. Visa)\n     */\n    paymentMethod?: string;\n    /**\n     * The email address of the shopper / customer\n     */\n    payerEmail?: string;\n    /**\n     * The payer reference. It is used to make recurring captures and its usage is allowed only in the scope of the booking.  For the reason above this is a write-only field.\n     */\n    payerReference?: string;\n    /**\n     * Indicates if the payment account is a virtual credit card. If not specified it defaults to 'false'\n     */\n    isVirtual?: boolean;\n    /**\n     * Indicates if the payment account can be used for capturing payments. A payment account is active, when it has a valid payer reference set\n     */\n    isActive: boolean;\n    /**\n     * A reason why account is inactive\n     */\n    inactiveReason?: string;\n}\n\nexport namespace PaymentAccountModel {\n    export const $metaData: ClassMetaData<PaymentAccountModel> = { \n        accountNumber: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        accountHolder: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        expiryMonth: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        expiryYear: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        paymentMethod: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        payerEmail: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        payerReference: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        isVirtual: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        isActive: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        inactiveReason: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 RegisteredCardModel { \n    /**\n     * The account number (e.g. masked credit card number or last 4 digits)\n     */\n    cardNumber?: string;\n    /**\n     * The account holder (e.g. cardholder)\n     */\n    cardHolder?: string;\n    /**\n     * The credit card's expiration month\n     */\n    expiryMonth?: string;\n    /**\n     * The credit card's expiration year\n     */\n    expiryYear?: string;\n    /**\n     * The payment method (e.g. Visa)\n     */\n    paymentMethod?: string;\n    /**\n     * The email address of the shopper / customer\n     */\n    payerEmail?: string;\n    /**\n     * Optional information, e.g. about card activation or failure to do so\n     */\n    note?: string;\n    /**\n     * Indicates if the payment account is a virtual credit card.\n     */\n    isVirtual?: boolean;\n}\n\nexport namespace RegisteredCardModel {\n    export const $metaData: ClassMetaData<RegisteredCardModel> = { \n        cardNumber: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        cardHolder: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        expiryMonth: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        expiryYear: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        paymentMethod: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        payerEmail: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        note: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        isVirtual: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BookerModel } from './bookerModel';\nimport { BookingReservationModel } from './bookingReservationModel';\nimport { PaymentAccountModel } from './paymentAccountModel';\nimport { RegisteredCardModel } from './registeredCardModel';\n\n\n/**\n * A booking holds all shared metadata for a set of reservations\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BookingItemModel { \n    /**\n     * Booking id\n     */\n    id: string;\n    /**\n     * Group id\n     */\n    groupId?: string;\n    booker?: BookerModel;\n    paymentAccount?: PaymentAccountModel;\n    registeredCard?: RegisteredCardModel;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comment by the booker\n     */\n    bookerComment?: string;\n    /**\n     * Date of creation<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    created: Date;\n    /**\n     * Date of last modification<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    modified: Date;\n    /**\n     * Reservations within this booking\n     */\n    reservations?: Array<BookingReservationModel>;\n}\n\nexport namespace BookingItemModel {\n    export const $metaData: ClassMetaData<BookingItemModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        groupId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        booker: Object.freeze({ \n            type: 'BookerModel',\n            metaData: BookerModel.$metaData\n        }),\n        paymentAccount: Object.freeze({ \n            type: 'PaymentAccountModel',\n            metaData: PaymentAccountModel.$metaData\n        }),\n        registeredCard: Object.freeze({ \n            type: 'RegisteredCardModel',\n            metaData: RegisteredCardModel.$metaData\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        bookerComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        created: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        modified: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        reservations: Object.freeze({ \n            type: 'Array<BookingReservationModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BookingItemModel } from './bookingItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BookingListModel { \n    bookings: Array<BookingItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace BookingListModel {\n    export const $metaData: ClassMetaData<BookingListModel> = { \n        bookings: Object.freeze({ \n            isRequired: true,\n            type: 'Array<BookingItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BookerModel } from './bookerModel';\nimport { BookingReservationModel } from './bookingReservationModel';\nimport { PaymentAccountModel } from './paymentAccountModel';\nimport { PropertyValueModel } from './propertyValueModel';\nimport { RegisteredCardModel } from './registeredCardModel';\n\n\n/**\n * A booking holds all shared metadata for a set of reservations\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BookingModel { \n    /**\n     * Booking id\n     */\n    id: string;\n    /**\n     * Group id\n     */\n    groupId?: string;\n    booker?: BookerModel;\n    paymentAccount?: PaymentAccountModel;\n    registeredCard?: RegisteredCardModel;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comment by the booker\n     */\n    bookerComment?: string;\n    /**\n     * Date of creation<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    created: Date;\n    /**\n     * Date of last modification<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    modified: Date;\n    /**\n     * Property specific values like total amount and balance\n     */\n    propertyValues?: Array<PropertyValueModel>;\n    /**\n     * Reservations within this booking\n     */\n    reservations?: Array<BookingReservationModel>;\n}\n\nexport namespace BookingModel {\n    export const $metaData: ClassMetaData<BookingModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        groupId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        booker: Object.freeze({ \n            type: 'BookerModel',\n            metaData: BookerModel.$metaData\n        }),\n        paymentAccount: Object.freeze({ \n            type: 'PaymentAccountModel',\n            metaData: PaymentAccountModel.$metaData\n        }),\n        registeredCard: Object.freeze({ \n            type: 'RegisteredCardModel',\n            metaData: RegisteredCardModel.$metaData\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        bookerComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        created: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        modified: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        propertyValues: Object.freeze({ \n            type: 'Array<PropertyValueModel>',\n            isListContainer: true,\n        }),\n        reservations: Object.freeze({ \n            type: 'Array<BookingReservationModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 EmbeddedCompanyModel { \n    /**\n     * The company ID\n     */\n    id: string;\n    /**\n     * The code of the company\n     */\n    code?: string;\n    /**\n     * The name of the company\n     */\n    name?: string;\n    /**\n     * Whether or not the company can check out on AR\n     */\n    canCheckOutOnAr?: boolean;\n}\n\nexport namespace EmbeddedCompanyModel {\n    export const $metaData: ClassMetaData<EmbeddedCompanyModel> = { \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        canCheckOutOnAr: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ExternalReferencesModel { \n    /**\n     * The ID of the global distribution system.\n     */\n    globalDistributionSystemId?: string;\n    /**\n     * The ID of the online travel agency.\n     */\n    onlineTravelAgencyId?: string;\n    /**\n     * The ID of the online booking tool.\n     */\n    onlineBookingToolId?: string;\n    /**\n     * The ID of the channel manager.\n     */\n    channelManagerId?: string;\n    /**\n     * The Central Reservation System Identifier\n     */\n    centralReservationSystemId?: string;\n    /**\n     * The ID of the legacy PMS system.\n     */\n    legacyId?: string;\n}\n\nexport namespace ExternalReferencesModel {\n    export const $metaData: ClassMetaData<ExternalReferencesModel> = { \n        globalDistributionSystemId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        onlineTravelAgencyId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        onlineBookingToolId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        channelManagerId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        centralReservationSystemId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        legacyId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ReservationCancellationFeeModel { \n    /**\n     * The id of the cancellation policy applied\n     */\n    id: string;\n    /**\n     * The code of the cancellation policy applied\n     */\n    code: string;\n    /**\n     * The name of the cancellation policy applied\n     */\n    name: string;\n    /**\n     * The description of the cancellation policy applied\n     */\n    description: string;\n    /**\n     * The date and time the cancellation fee will be due. After that time this fee will  be charged in case of cancellation<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    dueDateTime: Date;\n    fee: MonetaryValueModel;\n}\n\nexport namespace ReservationCancellationFeeModel {\n    export const $metaData: ClassMetaData<ReservationCancellationFeeModel> = { \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        dueDateTime: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        fee: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ReservationNoShowFeeModel { \n    /**\n     * The id of the no-show policy applied\n     */\n    id: string;\n    /**\n     * The code of the no-show policy applied\n     */\n    code: string;\n    /**\n     * The name of the no-show policy applied\n     */\n    name: string;\n    /**\n     * The description of the no-show policy applied\n     */\n    description: string;\n    fee: MonetaryValueModel;\n}\n\nexport namespace ReservationNoShowFeeModel {\n    export const $metaData: ClassMetaData<ReservationNoShowFeeModel> = { \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        fee: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { EmbeddedCompanyModel } from './embeddedCompanyModel';\nimport { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { EmbeddedRatePlanModel } from './embeddedRatePlanModel';\nimport { EmbeddedUnitGroupModel } from './embeddedUnitGroupModel';\nimport { ExternalReferencesModel } from './externalReferencesModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { PaymentAccountModel } from './paymentAccountModel';\nimport { RegisteredCardModel } from './registeredCardModel';\nimport { ReservationCancellationFeeModel } from './reservationCancellationFeeModel';\nimport { ReservationNoShowFeeModel } from './reservationNoShowFeeModel';\nimport { ReservationServiceItemModel } from './reservationServiceItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BookingReservationModel { \n    /**\n     * Reservation id\n     */\n    id: string;\n    /**\n     * Block id\n     */\n    blockId?: string;\n    /**\n     * Status of the reservation\n     */\n    status: BookingReservationModel.StatusEnum;\n    /**\n     * Code in external system\n     */\n    externalCode?: string;\n    /**\n     * Channel code\n     */\n    channelCode: BookingReservationModel.ChannelCodeEnum;\n    /**\n     * Source of the reservation (e.g Hotels.com, Orbitz, etc.)\n     */\n    source?: string;\n    paymentAccount?: PaymentAccountModel;\n    registeredCard?: RegisteredCardModel;\n    /**\n     * Date of arrival<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    arrival: Date;\n    /**\n     * Date of departure<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    departure: Date;\n    /**\n     * Number of adults\n     */\n    adults: number;\n    /**\n     * The ages of the children\n     */\n    childrenAges?: Array<number>;\n    totalGrossAmount: MonetaryValueModel;\n    property: EmbeddedPropertyModel;\n    ratePlan: EmbeddedRatePlanModel;\n    unitGroup: EmbeddedUnitGroupModel;\n    /**\n     * The list of additional services (extras, add-ons) reserved for the stay\n     */\n    services?: Array<ReservationServiceItemModel>;\n    /**\n     * Additional information and comment by the guest\n     */\n    guestComment?: string;\n    cancellationFee: ReservationCancellationFeeModel;\n    noShowFee: ReservationNoShowFeeModel;\n    company?: EmbeddedCompanyModel;\n    /**\n     * Whether the reservation can accept charges on its folios. This is purely informational and no validation is performed on this field. Defaults to true.\n     */\n    isOpenForCharges: boolean;\n    /**\n     * Indicates whether the reservation is marked as pre-checked-in or not.\n     */\n    isPreCheckedIn?: boolean;\n    /**\n     * Indicates whether the unit assignments for this reservation are locked\n     */\n    isUnitAssignmentLocked?: boolean;\n    externalReferences?: ExternalReferencesModel;\n}\nexport namespace BookingReservationModel {\n    export type StatusEnum = 'Confirmed' | 'InHouse' | 'CheckedOut' | 'Canceled' | 'NoShow';\n    export const StatusEnumValues = Object.freeze(\n        ['Confirmed', 'InHouse', 'CheckedOut', 'Canceled', 'NoShow'] as StatusEnum[]);\n    export type ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n}\n\nexport namespace BookingReservationModel {\n    export const $metaData: ClassMetaData<BookingReservationModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        blockId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        status: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: StatusEnumValues,\n            isPrimitiveType: true,\n        }),\n        externalCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        channelCode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ChannelCodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        source: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        paymentAccount: Object.freeze({ \n            type: 'PaymentAccountModel',\n            metaData: PaymentAccountModel.$metaData\n        }),\n        registeredCard: Object.freeze({ \n            type: 'RegisteredCardModel',\n            metaData: RegisteredCardModel.$metaData\n        }),\n        arrival: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        departure: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        childrenAges: Object.freeze({ \n            type: 'Array<number>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        ratePlan: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedRatePlanModel',\n            metaData: EmbeddedRatePlanModel.$metaData\n        }),\n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitGroupModel',\n            metaData: EmbeddedUnitGroupModel.$metaData\n        }),\n        services: Object.freeze({ \n            type: 'Array<ReservationServiceItemModel>',\n            isListContainer: true,\n        }),\n        guestComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        cancellationFee: Object.freeze({ \n            isRequired: true,\n            type: 'ReservationCancellationFeeModel',\n            metaData: ReservationCancellationFeeModel.$metaData\n        }),\n        noShowFee: Object.freeze({ \n            isRequired: true,\n            type: 'ReservationNoShowFeeModel',\n            metaData: ReservationNoShowFeeModel.$metaData\n        }),\n        company: Object.freeze({ \n            type: 'EmbeddedCompanyModel',\n            metaData: EmbeddedCompanyModel.$metaData\n        }),\n        isOpenForCharges: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        isPreCheckedIn: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        isUnitAssignmentLocked: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        externalReferences: Object.freeze({ \n            type: 'ExternalReferencesModel',\n            metaData: ExternalReferencesModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { RatePlanTimeSliceListModel } from './ratePlanTimeSliceListModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface BulkTimeSliceListModel { \n    /**\n     * List of time slices per rate plan\n     */\n    ratePlans: Array<RatePlanTimeSliceListModel>;\n}\n\nexport namespace BulkTimeSliceListModel {\n    export const $metaData: ClassMetaData<BulkTimeSliceListModel> = { \n        ratePlans: Object.freeze({ \n            isRequired: true,\n            type: 'Array<RatePlanTimeSliceListModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 CommissionModel { \n    commissionAmount: MonetaryValueModel;\n    beforeCommissionAmount?: MonetaryValueModel;\n}\n\nexport namespace CommissionModel {\n    export const $metaData: ClassMetaData<CommissionModel> = { \n        commissionAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        beforeCommissionAmount: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 CommitAuthorizationModel { \n    /**\n     * Transaction Id of Authorization in the payment service payment transaction log\n     */\n    paymentTransactionId: string;\n    amount?: MonetaryValueModel;\n    /**\n     * The date that the authorization expires<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    expiresAt: Date;\n}\n\nexport namespace CommitAuthorizationModel {\n    export const $metaData: ClassMetaData<CommitAuthorizationModel> = { \n        paymentTransactionId: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        amount: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        expiresAt: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 PaymentAccountDetailsModel { \n    /**\n     * The card or account number\n     */\n    accountNumber?: string;\n    /**\n     * The account or card holder\n     */\n    accountHolder?: string;\n    /**\n     * The credit card's expiration month\n     */\n    expiryMonth?: string;\n    /**\n     * The credit card's expiration year\n     */\n    expiryYear?: string;\n    /**\n     * The payment method (e.g. visa)\n     */\n    paymentMethod?: string;\n    /**\n     * The email address of the shopper / customer\n     */\n    payerEmail?: string;\n}\n\nexport namespace PaymentAccountDetailsModel {\n    export const $metaData: ClassMetaData<PaymentAccountDetailsModel> = { \n        accountNumber: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        accountHolder: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        expiryMonth: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        expiryYear: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        paymentMethod: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        payerEmail: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { PaymentAccountDetailsModel } from './paymentAccountDetailsModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CommitPaymentAccountRequest { \n    /**\n     * Transaction Id of payment account in the payment service payment transaction log\n     */\n    paymentTransactionId: string;\n    accountDetails?: PaymentAccountDetailsModel;\n    /**\n     * The reference used to uniquely identify the shopper (e.g. user ID or account ID).\n     */\n    payerReference: string;\n}\n\nexport namespace CommitPaymentAccountRequest {\n    export const $metaData: ClassMetaData<CommitPaymentAccountRequest> = { \n        paymentTransactionId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        accountDetails: Object.freeze({ \n            type: 'PaymentAccountDetailsModel',\n            metaData: PaymentAccountDetailsModel.$metaData\n        }),\n        payerReference: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 PaymentAccountTargetModel { \n    /**\n     * Payment account target type\n     */\n    type: PaymentAccountTargetModel.TypeEnum;\n    /**\n     * Booking or reservation id\n     */\n    id: string;\n}\nexport namespace PaymentAccountTargetModel {\n    export type TypeEnum = 'Booking' | 'Reservation';\n    export const TypeEnumValues = Object.freeze(\n        ['Booking', 'Reservation'] as TypeEnum[]);\n}\n\nexport namespace PaymentAccountTargetModel {\n    export const $metaData: ClassMetaData<PaymentAccountTargetModel> = { \n        type: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { PaymentAccountTargetModel } from './paymentAccountTargetModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateAuthorizationPaymentAccountRequest { \n    target: PaymentAccountTargetModel;\n    /**\n     * Reference to the original authorization transaction\n     */\n    transactionReference: string;\n}\n\nexport namespace CreateAuthorizationPaymentAccountRequest {\n    export const $metaData: ClassMetaData<CreateAuthorizationPaymentAccountRequest> = { \n        target: Object.freeze({ \n            isRequired: true,\n            type: 'PaymentAccountTargetModel',\n            metaData: PaymentAccountTargetModel.$metaData\n        }),\n        transactionReference: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AuthorizationTargetModel } from './authorizationTargetModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateAuthorizationRequest { \n    target: AuthorizationTargetModel;\n    amount: MonetaryValueModel;\n    /**\n     * Reference to the original authorization transaction\n     */\n    transactionReference: string;\n}\n\nexport namespace CreateAuthorizationRequest {\n    export const $metaData: ClassMetaData<CreateAuthorizationRequest> = { \n        target: Object.freeze({ \n            isRequired: true,\n            type: 'AuthorizationTargetModel',\n            metaData: AuthorizationTargetModel.$metaData\n        }),\n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        transactionReference: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { CreateBlockTimeSliceModel } from './createBlockTimeSliceModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateBlockModel { \n    /**\n     * ID of the group that reserved the block\n     */\n    groupId: string;\n    /**\n     * The rate plan\n     */\n    ratePlanId: string;\n    /**\n     * Start date and time from which the inventory will be blocked<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     * End date and time until which the inventory will be blocked. Cannot be more than 5 years after the start date.<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    grossDailyRate: MonetaryValueModel;\n    /**\n     * The list of blocked units for each time slice\n     */\n    timeSlices?: Array<CreateBlockTimeSliceModel>;\n    /**\n     * Number of units to block for the defined time period\n     */\n    blockedUnits?: number;\n    /**\n     * The promo code associated with a certain special offer\n     */\n    promoCode?: string;\n    /**\n     * The corporate code associated with a certain special offer\n     */\n    corporateCode?: string;\n    /**\n     * The market segment Id for this block.  Must be a valid market segment ID defined at the property level.  Picked-up reservations will inherit this value by default\n     */\n    marketSegmentId?: string;\n}\n\nexport namespace CreateBlockModel {\n    export const $metaData: ClassMetaData<CreateBlockModel> = { \n        groupId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        ratePlanId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\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        grossDailyRate: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        timeSlices: Object.freeze({ \n            type: 'Array<CreateBlockTimeSliceModel>',\n            isListContainer: true,\n        }),\n        blockedUnits: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        promoCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        marketSegmentId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 CreateBlockTimeSliceModel { \n    /**\n     * Number of units blocked for the time slice\n     */\n    blockedUnits: number;\n}\n\nexport namespace CreateBlockTimeSliceModel {\n    export const $metaData: ClassMetaData<CreateBlockTimeSliceModel> = { \n        blockedUnits: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 CreatePaymentAccountModel { \n    /**\n     * The account number (e.g. masked credit card number or last 4 digits)\n     */\n    accountNumber?: string;\n    /**\n     * The account holder (e.g. card holder)\n     */\n    accountHolder?: string;\n    /**\n     * The credit card's expiration month\n     */\n    expiryMonth?: string;\n    /**\n     * The credit card's expiration year\n     */\n    expiryYear?: string;\n    /**\n     * The payment method (e.g. visa)\n     */\n    paymentMethod?: string;\n    /**\n     * The email address of the shopper / customer\n     */\n    payerEmail?: string;\n    /**\n     * The reference used to uniquely identify the shopper (e.g. user ID or account ID). Used for recurring payments\n     */\n    payerReference?: string;\n    /**\n     * Indicates if the payment account is a virtual credit card. If not specified it defaults to 'false'\n     */\n    isVirtual?: boolean;\n    /**\n     * A reason why account is inactive when PayerReference was not provided\n     */\n    inactiveReason?: string;\n}\n\nexport namespace CreatePaymentAccountModel {\n    export const $metaData: ClassMetaData<CreatePaymentAccountModel> = { \n        accountNumber: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        accountHolder: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        expiryMonth: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        expiryYear: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        paymentMethod: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        payerEmail: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        payerReference: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        isVirtual: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        inactiveReason: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BookerModel } from './bookerModel';\nimport { CreatePaymentAccountModel } from './createPaymentAccountModel';\nimport { CreateReservationModel } from './createReservationModel';\n\n\n/**\n * With this request you can create a booking\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateBookingModel { \n    paymentAccount?: CreatePaymentAccountModel;\n    booker: BookerModel;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comments by the booker\n     */\n    bookerComment?: string;\n    /**\n     * List of reservations to create\n     */\n    reservations: Array<CreateReservationModel>;\n    /**\n     * The reference of a payment transaction. This should be set when a payment transaction has been initiated and should be used to complete the transaction upon reservation creation.  When set, the payment transaction completion is always triggered regardless of the reservation guarantee type and payment automation settings.\n     */\n    transactionReference?: string;\n}\n\nexport namespace CreateBookingModel {\n    export const $metaData: ClassMetaData<CreateBookingModel> = { \n        paymentAccount: Object.freeze({ \n            type: 'CreatePaymentAccountModel',\n            metaData: CreatePaymentAccountModel.$metaData\n        }),\n        booker: Object.freeze({ \n            isRequired: true,\n            type: 'BookerModel',\n            metaData: BookerModel.$metaData\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        bookerComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        reservations: Object.freeze({ \n            isRequired: true,\n            type: 'Array<CreateReservationModel>',\n            isListContainer: true,\n        }),\n        transactionReference: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BookerModel } from './bookerModel';\nimport { CreateChannelReservationModel } from './createChannelReservationModel';\nimport { CreatePaymentAccountModel } from './createPaymentAccountModel';\n\n\n/**\n * With this request you can create a channel booking\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateChannelBookingModel { \n    paymentAccount?: CreatePaymentAccountModel;\n    booker: BookerModel;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comment by the booker\n     */\n    bookerComment?: string;\n    /**\n     * List of reservations to create\n     */\n    reservations: Array<CreateChannelReservationModel>;\n    /**\n     * The reference of a payment transaction. This should be set when a payment transaction has been initiated and should be used to complete the transaction upon reservation creation.  When set, the payment transaction completion is always triggered regardless of the reservation guarantee type and payment automation settings.\n     */\n    transactionReference?: string;\n}\n\nexport namespace CreateChannelBookingModel {\n    export const $metaData: ClassMetaData<CreateChannelBookingModel> = { \n        paymentAccount: Object.freeze({ \n            type: 'CreatePaymentAccountModel',\n            metaData: CreatePaymentAccountModel.$metaData\n        }),\n        booker: Object.freeze({ \n            isRequired: true,\n            type: 'BookerModel',\n            metaData: BookerModel.$metaData\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        bookerComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        reservations: Object.freeze({ \n            isRequired: true,\n            type: 'Array<CreateChannelReservationModel>',\n            isListContainer: true,\n        }),\n        transactionReference: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 CreateExternalReferencesModel { \n    /**\n     * The ID of the global distribution system.\n     */\n    globalDistributionSystemId?: string;\n    /**\n     * The ID of the online travel agency.\n     */\n    onlineTravelAgencyId?: string;\n    /**\n     * The ID of the online booking tool.\n     */\n    onlineBookingToolId?: string;\n    /**\n     * The ID of the channel manager.\n     */\n    channelManagerId?: string;\n    /**\n     * The ID of the central reservation system.\n     */\n    centralReservationSystemId?: string;\n}\n\nexport namespace CreateExternalReferencesModel {\n    export const $metaData: ClassMetaData<CreateExternalReferencesModel> = { \n        globalDistributionSystemId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        onlineTravelAgencyId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        onlineBookingToolId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        channelManagerId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        centralReservationSystemId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 VehicleRegistrationModel { \n    /**\n     * The number of a vehicle registration plate\n     */\n    number?: string;\n    /**\n     * Code of the country of vehicle registration\n     */\n    countryCode?: string;\n}\n\nexport namespace VehicleRegistrationModel {\n    export const $metaData: ClassMetaData<VehicleRegistrationModel> = { \n        number: Object.freeze({ \n            maxLength: 30,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        countryCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { PersonAddressModel } from './personAddressModel';\nimport { PersonCompanyModel } from './personCompanyModel';\nimport { VehicleRegistrationModel } from './vehicleRegistrationModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface GuestModel { \n    /**\n     * Title of the guest\n     */\n    title?: GuestModel.TitleEnum;\n    /**\n     * Gender of the guest Allowed values for this field depend on the country in which the property is located. Use /booking/v0-nsfw/types/Gender/allowed-values to check what values are allowed.\n     */\n    gender?: GuestModel.GenderEnum;\n    /**\n     * First name of the guest\n     */\n    firstName?: string;\n    /**\n     * Middle initial of the guest\n     */\n    middleInitial?: string;\n    /**\n     * Last name of the guest\n     */\n    lastName: string;\n    /**\n     * Second last name of the guest\n     */\n    secondLastName?: string;\n    /**\n     * Email address of the guest\n     */\n    email?: string;\n    /**\n     * Phone number of the guest\n     */\n    phone?: string;\n    address?: PersonAddressModel;\n    /**\n     * The guest's nationality, in ISO 3166-1 alpha-2 code\n     */\n    nationalityCountryCode?: string;\n    /**\n     * The guest's identification number for the given identificationType.\n     */\n    identificationNumber?: string;\n    /**\n     * The guest's additional identification number for the given identificationType.\n     */\n    identificationAdditionalNumber?: string;\n    /**\n     * The issue date of the guest's identification document.\n     */\n    identificationIssueDate?: string;\n    /**\n     * The expiry date of the guest's identification document.\n     */\n    identificationExpiryDate?: string;\n    /**\n     * The issue place of the guest's identification document.\n     */\n    identificationIssuePlace?: string;\n    /**\n     * The type of the identificationNumber Allowed values for this field depend on the country in which the property is located. Use /booking/v0-nsfw/types/IdentificationType/allowed-values to check what values are allowed.\n     */\n    identificationType?: GuestModel.IdentificationTypeEnum;\n    /**\n     * The personal tax id of the guest\n     */\n    personalTaxId?: string;\n    company?: PersonCompanyModel;\n    /**\n     * Two-letter code (ISO Alpha-2) of a language preferred for contact\n     */\n    preferredLanguage?: string;\n    /**\n     * Guest's birthdate\n     */\n    birthDate?: string;\n    /**\n     * Guest's place of birth\n     */\n    birthPlace?: string;\n    /**\n     * Guest's first name right after birth\n     */\n    birthFirstName?: string;\n    /**\n     * Guest's last name right after birth\n     */\n    birthLastName?: string;\n    /**\n     * Guest's mother's first name\n     */\n    motherFirstName?: string;\n    /**\n     * Guest's mother's last name\n     */\n    motherLastName?: string;\n    /**\n     * The place through which the guest crossed the border\n     */\n    borderCrossingPlace?: string;\n    /**\n     * Date on which the guest crossed the border\n     */\n    borderCrossingDate?: string;\n    /**\n     * The relationship of the guest to the primary guest.\n     */\n    relationshipToPrimaryGuest?: GuestModel.RelationshipToPrimaryGuestEnum;\n    vehicleRegistration?: VehicleRegistrationModel;\n}\nexport namespace GuestModel {\n    export type TitleEnum = 'Mr' | 'Ms' | 'Dr' | 'Prof' | 'Mrs' | 'Other';\n    export const TitleEnumValues = Object.freeze(\n        ['Mr', 'Ms', 'Dr', 'Prof', 'Mrs', 'Other'] as TitleEnum[]);\n    export type GenderEnum = 'Female' | 'Male' | 'Other' | 'Unknown';\n    export const GenderEnumValues = Object.freeze(\n        ['Female', 'Male', 'Other', 'Unknown'] as GenderEnum[]);\n    export type IdentificationTypeEnum = 'SocialInsuranceNumber' | 'PassportNumber' | 'IdNumber' | 'DriverLicenseNumber' | 'VisaNumber' | 'ForeignerIdentityNumber' | 'TaxIdentificationNumber' | 'Other';\n    export const IdentificationTypeEnumValues = Object.freeze(\n        ['SocialInsuranceNumber', 'PassportNumber', 'IdNumber', 'DriverLicenseNumber', 'VisaNumber', 'ForeignerIdentityNumber', 'TaxIdentificationNumber', 'Other'] as IdentificationTypeEnum[]);\n    export type RelationshipToPrimaryGuestEnum = 'Grandparent' | 'Grandchild' | 'GreatGrandparent' | 'GreatGrandchild' | 'Parent' | 'Child' | 'Sibling' | 'ParentInLaw' | 'ChildInLaw' | 'SiblingInLaw' | 'Spouse' | 'UncleOrAunt' | 'NephewOrNiece' | 'Guardian' | 'Other';\n    export const RelationshipToPrimaryGuestEnumValues = Object.freeze(\n        ['Grandparent', 'Grandchild', 'GreatGrandparent', 'GreatGrandchild', 'Parent', 'Child', 'Sibling', 'ParentInLaw', 'ChildInLaw', 'SiblingInLaw', 'Spouse', 'UncleOrAunt', 'NephewOrNiece', 'Guardian', 'Other'] as RelationshipToPrimaryGuestEnum[]);\n}\n\nexport namespace GuestModel {\n    export const $metaData: ClassMetaData<GuestModel> = { \n        title: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TitleEnumValues,\n            isPrimitiveType: true,\n        }),\n        gender: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: GenderEnumValues,\n            isPrimitiveType: true,\n        }),\n        firstName: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        middleInitial: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        lastName: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        secondLastName: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        email: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        phone: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        address: Object.freeze({ \n            type: 'PersonAddressModel',\n            metaData: PersonAddressModel.$metaData\n        }),\n        nationalityCountryCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        identificationNumber: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        identificationAdditionalNumber: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        identificationIssueDate: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        identificationExpiryDate: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        identificationIssuePlace: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        identificationType: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: IdentificationTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        personalTaxId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        company: Object.freeze({ \n            type: 'PersonCompanyModel',\n            metaData: PersonCompanyModel.$metaData\n        }),\n        preferredLanguage: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        birthDate: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        birthPlace: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        birthFirstName: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        birthLastName: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        motherFirstName: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        motherLastName: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        borderCrossingPlace: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        borderCrossingDate: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        relationshipToPrimaryGuest: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: RelationshipToPrimaryGuestEnumValues,\n            isPrimitiveType: true,\n        }),\n        vehicleRegistration: Object.freeze({ \n            type: 'VehicleRegistrationModel',\n            metaData: VehicleRegistrationModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BookReservationServiceModel } from './bookReservationServiceModel';\nimport { CommissionModel } from './commissionModel';\nimport { CreateExternalReferencesModel } from './createExternalReferencesModel';\nimport { CreateReservationTimeSliceModel } from './createReservationTimeSliceModel';\nimport { GuestModel } from './guestModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\n/**\n * With this request you can create a reservation\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateChannelReservationModel { \n    /**\n     * Date and optional time of arrival<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    arrival: string;\n    /**\n     * Date and optional time of departure. Cannot be more than 5 years after arrival.<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    departure: string;\n    /**\n     * Number of adults\n     */\n    adults: number;\n    /**\n     * The ages of the children\n     */\n    childrenAges?: Array<number>;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comment by the guest\n     */\n    guestComment?: string;\n    /**\n     * Code in some system\n     */\n    externalCode?: string;\n    /**\n     * Channel code\n     */\n    channelCode: CreateChannelReservationModel.ChannelCodeEnum;\n    /**\n     * Specifies who is responsible for remitting taxes to local authorities for a reservation:  - Hotel: The property (hotel) is responsible for remitting all applicable taxes.  - OTA: The OTA (Online Travel Agency) remits at least one of the applicable taxes.  If the value is not provided, the OTA does not provide any information about tax remittance and the default behavior is assumed.\n     */\n    taxRemittanceResponsibility?: CreateChannelReservationModel.TaxRemittanceResponsibilityEnum;\n    /**\n     * Source of the reservation\n     */\n    source?: string;\n    primaryGuest?: GuestModel;\n    /**\n     * Additional guests of the reservation.\n     */\n    additionalGuests?: Array<GuestModel>;\n    /**\n     * The guarantee that has to be applied for this reservation. It has to be the same or stronger than  the minimum guarantee required by the selected rate plan\n     */\n    guaranteeType?: CreateChannelReservationModel.GuaranteeTypeEnum;\n    /**\n     * The purpose of the trip, leisure or business\n     */\n    travelPurpose?: CreateChannelReservationModel.TravelPurposeEnum;\n    /**\n     * Gross prices including services and taxes for each time slice. They will be applied to the reservation timeslices  in the order specified from arrival to departure\n     */\n    timeSlices: Array<CreateReservationTimeSliceModel>;\n    /**\n     * The type of prices, before taxes, before taxes with VAT or after taxes\n     */\n    pricingType?: CreateChannelReservationModel.PricingTypeEnum;\n    /**\n     * Additional services (extras, add-ons) that should be added to the reservation\n     */\n    services?: Array<BookReservationServiceModel>;\n    /**\n     * Set this if this reservation belongs to a company\n     */\n    companyId?: string;\n    /**\n     * Corporate code provided during creation. Used to find offers during amend.\n     */\n    corporateCode?: string;\n    prePaymentAmount?: MonetaryValueModel;\n    commission?: CommissionModel;\n    /**\n     * The promo code associated with a certain special offer\n     */\n    promoCode?: string;\n    externalReferences?: CreateExternalReferencesModel;\n}\nexport namespace CreateChannelReservationModel {\n    export type ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    export type TaxRemittanceResponsibilityEnum = 'Hotel' | 'Ota';\n    export const TaxRemittanceResponsibilityEnumValues = Object.freeze(\n        ['Hotel', 'Ota'] as TaxRemittanceResponsibilityEnum[]);\n    export type GuaranteeTypeEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company';\n    export const GuaranteeTypeEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company'] as GuaranteeTypeEnum[]);\n    export type TravelPurposeEnum = 'Business' | 'Leisure';\n    export const TravelPurposeEnumValues = Object.freeze(\n        ['Business', 'Leisure'] as TravelPurposeEnum[]);\n    export type PricingTypeEnum = 'BeforeTaxesWithVat' | 'BeforeTaxes' | 'AfterTaxes';\n    export const PricingTypeEnumValues = Object.freeze(\n        ['BeforeTaxesWithVat', 'BeforeTaxes', 'AfterTaxes'] as PricingTypeEnum[]);\n}\n\nexport namespace CreateChannelReservationModel {\n    export const $metaData: ClassMetaData<CreateChannelReservationModel> = { \n        arrival: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        departure: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        childrenAges: Object.freeze({ \n            type: 'Array<number>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        guestComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        externalCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        channelCode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ChannelCodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        taxRemittanceResponsibility: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TaxRemittanceResponsibilityEnumValues,\n            isPrimitiveType: true,\n        }),\n        source: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        primaryGuest: Object.freeze({ \n            type: 'GuestModel',\n            metaData: GuestModel.$metaData\n        }),\n        additionalGuests: Object.freeze({ \n            type: 'Array<GuestModel>',\n            isListContainer: true,\n        }),\n        guaranteeType: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: GuaranteeTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        travelPurpose: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TravelPurposeEnumValues,\n            isPrimitiveType: true,\n        }),\n        timeSlices: Object.freeze({ \n            isRequired: true,\n            type: 'Array<CreateReservationTimeSliceModel>',\n            isListContainer: true,\n        }),\n        pricingType: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PricingTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        services: Object.freeze({ \n            type: 'Array<BookReservationServiceModel>',\n            isListContainer: true,\n        }),\n        companyId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        prePaymentAmount: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        commission: Object.freeze({ \n            type: 'CommissionModel',\n            metaData: CommissionModel.$metaData\n        }),\n        promoCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        externalReferences: Object.freeze({ \n            type: 'CreateExternalReferencesModel',\n            metaData: CreateExternalReferencesModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BookerModel } from './bookerModel';\nimport { CreatePaymentAccountModel } from './createPaymentAccountModel';\n\n\n/**\n * With this request you can create a group booking request\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateGroupModel { \n    /**\n     * Name of the group\n     */\n    name: string;\n    booker: BookerModel;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comment by the booker\n     */\n    bookerComment?: string;\n    paymentAccount?: CreatePaymentAccountModel;\n    /**\n     * List of property ids the group booking belongs to\n     */\n    propertyIds: Array<string>;\n}\n\nexport namespace CreateGroupModel {\n    export const $metaData: ClassMetaData<CreateGroupModel> = { \n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        booker: Object.freeze({ \n            isRequired: true,\n            type: 'BookerModel',\n            metaData: BookerModel.$metaData\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        bookerComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        paymentAccount: Object.freeze({ \n            type: 'CreatePaymentAccountModel',\n            metaData: CreatePaymentAccountModel.$metaData\n        }),\n        propertyIds: Object.freeze({ \n            isRequired: true,\n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AuthorizationTargetModel } from './authorizationTargetModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreatePaymentAccountAuthorizationRequest { \n    target: AuthorizationTargetModel;\n    amount: MonetaryValueModel;\n    /**\n     * Account owner of the payment account, default is `Guest`\n     */\n    accountOwner?: CreatePaymentAccountAuthorizationRequest.AccountOwnerEnum;\n}\nexport namespace CreatePaymentAccountAuthorizationRequest {\n    export type AccountOwnerEnum = 'Guest' | 'Booker';\n    export const AccountOwnerEnumValues = Object.freeze(\n        ['Guest', 'Booker'] as AccountOwnerEnum[]);\n}\n\nexport namespace CreatePaymentAccountAuthorizationRequest {\n    export const $metaData: ClassMetaData<CreatePaymentAccountAuthorizationRequest> = { \n        target: Object.freeze({ \n            isRequired: true,\n            type: 'AuthorizationTargetModel',\n            metaData: AuthorizationTargetModel.$metaData\n        }),\n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        accountOwner: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: AccountOwnerEnumValues,\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AuthorizationTargetModel } from './authorizationTargetModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreatePaymentLinkAuthorizationRequest { \n    target: AuthorizationTargetModel;\n    /**\n     * The date that the link expires<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    expiresAt: Date;\n    /**\n     * The payer's country code\n     */\n    countryCode: string;\n    /**\n     * Authorization description. It will be shown on the payment form of the link\n     */\n    description?: string;\n    /**\n     * The email address of the payer or cardholder. It can be used to verify the identity of the payer and  allow to catch a fraudulent usage of the payment account if the email address does not match the one  on file at the bank\n     */\n    payerEmail?: string;\n    amount: MonetaryValueModel;\n}\n\nexport namespace CreatePaymentLinkAuthorizationRequest {\n    export const $metaData: ClassMetaData<CreatePaymentLinkAuthorizationRequest> = { \n        target: Object.freeze({ \n            isRequired: true,\n            type: 'AuthorizationTargetModel',\n            metaData: AuthorizationTargetModel.$metaData\n        }),\n        expiresAt: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        countryCode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            maxLength: 280,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        payerEmail: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { PaymentAccountTargetModel } from './paymentAccountTargetModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreatePaymentLinkPaymentAccountRequest { \n    target: PaymentAccountTargetModel;\n    /**\n     * The id of the property which configuration (e.g. currency) is used to create payment account.  For reservation payment accounts should match the reservation property.\n     */\n    propertyId: string;\n    /**\n     * The date that the link expires<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    expiresAt: Date;\n    /**\n     * The payer's country code\n     */\n    countryCode: string;\n    /**\n     * Payment account description. It will be shown on the payment form of the link\n     */\n    description?: string;\n    /**\n     * The email address of the payer or cardholder. It can be used to verify the identity of the payer and  allow to catch a fraudulent usage of the payment account if the email address does not match the one  on file at the bank\n     */\n    payerEmail?: string;\n}\n\nexport namespace CreatePaymentLinkPaymentAccountRequest {\n    export const $metaData: ClassMetaData<CreatePaymentLinkPaymentAccountRequest> = { \n        target: Object.freeze({ \n            isRequired: true,\n            type: 'PaymentAccountTargetModel',\n            metaData: PaymentAccountTargetModel.$metaData\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        expiresAt: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        countryCode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        description: Object.freeze({ \n            maxLength: 280,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        payerEmail: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BookReservationServiceModel } from './bookReservationServiceModel';\nimport { CommissionModel } from './commissionModel';\nimport { CreateExternalReferencesModel } from './createExternalReferencesModel';\nimport { CreateReservationTimeSliceModel } from './createReservationTimeSliceModel';\nimport { GuestModel } from './guestModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\n/**\n * With this request you can create a reservation\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateReservationModel { \n    /**\n     * Date and optional time of arrival<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    arrival: string;\n    /**\n     * Date and optional time of departure. Cannot be more than 5 years after arrival.<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    departure: string;\n    /**\n     * Number of adults\n     */\n    adults: number;\n    /**\n     * Ages of the children\n     */\n    childrenAges?: Array<number>;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comments by the guest\n     */\n    guestComment?: string;\n    /**\n     * Code in some system\n     */\n    externalCode?: string;\n    /**\n     * Channel code\n     */\n    channelCode: CreateReservationModel.ChannelCodeEnum;\n    /**\n     * Source of the reservation\n     */\n    source?: string;\n    primaryGuest?: GuestModel;\n    /**\n     * Additional guests of the reservation.\n     */\n    additionalGuests?: Array<GuestModel>;\n    /**\n     * The guarantee that has to be applied for this reservation. It has to be the same or stronger than  the minimum guarantee required by the selected rate plan\n     */\n    guaranteeType?: CreateReservationModel.GuaranteeTypeEnum;\n    /**\n     * Purpose of the trip, leisure or business\n     */\n    travelPurpose?: CreateReservationModel.TravelPurposeEnum;\n    /**\n     * Gross prices including services and taxes for each time slice. They will be applied to the reservation timeslices  in the order specified from arrival to departure\n     */\n    timeSlices: Array<CreateReservationTimeSliceModel>;\n    /**\n     * Additional services (extras, add-ons) that should be added to the reservation\n     */\n    services?: Array<BookReservationServiceModel>;\n    /**\n     * Set this if this reservation belongs to a company\n     */\n    companyId?: string;\n    /**\n     * Corporate code provided during creation. Used to find offers during amend.\n     */\n    corporateCode?: string;\n    prePaymentAmount?: MonetaryValueModel;\n    commission?: CommissionModel;\n    /**\n     * The promo code associated with a certain special offer\n     */\n    promoCode?: string;\n    externalReferences?: CreateExternalReferencesModel;\n}\nexport namespace CreateReservationModel {\n    export type ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    export type GuaranteeTypeEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company';\n    export const GuaranteeTypeEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company'] as GuaranteeTypeEnum[]);\n    export type TravelPurposeEnum = 'Business' | 'Leisure';\n    export const TravelPurposeEnumValues = Object.freeze(\n        ['Business', 'Leisure'] as TravelPurposeEnum[]);\n}\n\nexport namespace CreateReservationModel {\n    export const $metaData: ClassMetaData<CreateReservationModel> = { \n        arrival: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        departure: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        childrenAges: Object.freeze({ \n            type: 'Array<number>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        guestComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        externalCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        channelCode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ChannelCodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        source: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        primaryGuest: Object.freeze({ \n            type: 'GuestModel',\n            metaData: GuestModel.$metaData\n        }),\n        additionalGuests: Object.freeze({ \n            type: 'Array<GuestModel>',\n            isListContainer: true,\n        }),\n        guaranteeType: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: GuaranteeTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        travelPurpose: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TravelPurposeEnumValues,\n            isPrimitiveType: true,\n        }),\n        timeSlices: Object.freeze({ \n            isRequired: true,\n            type: 'Array<CreateReservationTimeSliceModel>',\n            isListContainer: true,\n        }),\n        services: Object.freeze({ \n            type: 'Array<BookReservationServiceModel>',\n            isListContainer: true,\n        }),\n        companyId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        prePaymentAmount: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        commission: Object.freeze({ \n            type: 'CommissionModel',\n            metaData: CommissionModel.$metaData\n        }),\n        promoCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        externalReferences: Object.freeze({ \n            type: 'CreateExternalReferencesModel',\n            metaData: CreateExternalReferencesModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 CreateReservationTimeSliceModel { \n    /**\n     * The rate plan id for this time slice\n     */\n    ratePlanId: string;\n    totalAmount?: MonetaryValueModel;\n}\n\nexport namespace CreateReservationTimeSliceModel {\n    export const $metaData: ClassMetaData<CreateReservationTimeSliceModel> = { \n        ratePlanId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        totalAmount: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 CreateReservationValidationMessageModel { \n    category: CreateReservationValidationMessageModel.CategoryEnum;\n    code: CreateReservationValidationMessageModel.CodeEnum;\n}\nexport namespace CreateReservationValidationMessageModel {\n    export type CategoryEnum = 'OfferNotAvailable' | 'AutoUnitAssignment';\n    export const CategoryEnumValues = Object.freeze(\n        ['OfferNotAvailable', 'AutoUnitAssignment'] as CategoryEnum[]);\n    export type CodeEnum = 'UnitGroupFullyBooked' | 'UnitGroupCapacityExceeded' | 'RatePlanRestrictionsViolated' | 'RatePlanSurchargesNotSet' | 'RateRestrictionsViolated' | 'RatePlanChannelNotSet' | 'RatesNotSet' | 'BlockFullyBooked' | 'UnitMoved' | 'IncludedServicesAmountExceededRateAmount' | 'RatePlanCompanyRestrictionsViolated' | 'ServiceFullyBooked';\n    export const CodeEnumValues = Object.freeze(\n        ['UnitGroupFullyBooked', 'UnitGroupCapacityExceeded', 'RatePlanRestrictionsViolated', 'RatePlanSurchargesNotSet', 'RateRestrictionsViolated', 'RatePlanChannelNotSet', 'RatesNotSet', 'BlockFullyBooked', 'UnitMoved', 'IncludedServicesAmountExceededRateAmount', 'RatePlanCompanyRestrictionsViolated', 'ServiceFullyBooked'] as CodeEnum[]);\n}\n\nexport namespace CreateReservationValidationMessageModel {\n    export const $metaData: ClassMetaData<CreateReservationValidationMessageModel> = { \n        category: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: CategoryEnumValues,\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: CodeEnumValues,\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AuthorizationTargetModel } from './authorizationTargetModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateTerminalAuthorizationRequest { \n    target: AuthorizationTargetModel;\n    amount: MonetaryValueModel;\n    /**\n     * Terminal to be used for the authorization\n     */\n    terminalId: string;\n}\n\nexport namespace CreateTerminalAuthorizationRequest {\n    export const $metaData: ClassMetaData<CreateTerminalAuthorizationRequest> = { \n        target: Object.freeze({ \n            isRequired: true,\n            type: 'AuthorizationTargetModel',\n            metaData: AuthorizationTargetModel.$metaData\n        }),\n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        terminalId: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { PaymentAccountTargetModel } from './paymentAccountTargetModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface CreateTerminalPaymentAccountRequest { \n    target: PaymentAccountTargetModel;\n    /**\n     * The id of the property which configuration (e.g. currency) is used to create payment account.  For reservation payment accounts should match the reservation property.\n     */\n    propertyId: string;\n    /**\n     * Terminal to be used for the payment account\n     */\n    terminalId: string;\n}\n\nexport namespace CreateTerminalPaymentAccountRequest {\n    export const $metaData: ClassMetaData<CreateTerminalPaymentAccountRequest> = { \n        target: Object.freeze({ \n            isRequired: true,\n            type: 'PaymentAccountTargetModel',\n            metaData: PaymentAccountTargetModel.$metaData\n        }),\n        propertyId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        terminalId: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 DeleteReservationValidationMessagesRequest { \n    codes: Array<DeleteReservationValidationMessagesRequest.CodesEnum>;\n}\nexport namespace DeleteReservationValidationMessagesRequest {\n    export type CodesEnum = 'UnitGroupFullyBooked' | 'UnitGroupCapacityExceeded' | 'RatePlanRestrictionsViolated' | 'RatePlanSurchargesNotSet' | 'RateRestrictionsViolated' | 'RatePlanChannelNotSet' | 'RatesNotSet' | 'BlockFullyBooked' | 'UnitMoved' | 'IncludedServicesAmountExceededRateAmount' | 'RatePlanCompanyRestrictionsViolated' | 'ServiceFullyBooked';\n    export const CodesEnumValues = Object.freeze(\n        ['UnitGroupFullyBooked', 'UnitGroupCapacityExceeded', 'RatePlanRestrictionsViolated', 'RatePlanSurchargesNotSet', 'RateRestrictionsViolated', 'RatePlanChannelNotSet', 'RatesNotSet', 'BlockFullyBooked', 'UnitMoved', 'IncludedServicesAmountExceededRateAmount', 'RatePlanCompanyRestrictionsViolated', 'ServiceFullyBooked'] as CodesEnum[]);\n}\n\nexport namespace DeleteReservationValidationMessagesRequest {\n    export const $metaData: ClassMetaData<DeleteReservationValidationMessagesRequest> = { \n        codes: Object.freeze({ \n            isRequired: true,\n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { DesiredTimeSliceModel } from './desiredTimeSliceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface DesiredStayDetailsChannelModel { \n    /**\n     * Date and optional time of arrival<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    arrival: string;\n    /**\n     * Date and optional time of departure. Cannot be more than 5 years after arrival.<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    departure: string;\n    /**\n     * Number of adults\n     */\n    adults: number;\n    /**\n     * Ages of the children\n     */\n    childrenAges?: Array<number>;\n    /**\n     * Whether the prices for time slices with no change to the rate plan should be re-quoted based on current prices, or if  only additions like change of number of adults should be calculated. Defaults to 'false'.\n     */\n    requote?: boolean;\n    /**\n     * The list of time slices\n     */\n    timeSlices: Array<DesiredTimeSliceModel>;\n    /**\n     * The type of prices, before taxes, before taxes with VAT or after taxes\n     */\n    pricingType?: DesiredStayDetailsChannelModel.PricingTypeEnum;\n    /**\n     * Specifies who is responsible for remitting taxes to local authorities for a reservation:  - Hotel: The property (hotel) is responsible for remitting all applicable taxes.  - OTA: The OTA (Online Travel Agency) remits at least one of the applicable taxes.  If the value is not provided, the OTA does not provide any information about tax remittance and the default behavior is assumed.\n     */\n    taxRemittanceResponsibility?: DesiredStayDetailsChannelModel.TaxRemittanceResponsibilityEnum;\n}\nexport namespace DesiredStayDetailsChannelModel {\n    export type PricingTypeEnum = 'BeforeTaxesWithVat' | 'BeforeTaxes' | 'AfterTaxes';\n    export const PricingTypeEnumValues = Object.freeze(\n        ['BeforeTaxesWithVat', 'BeforeTaxes', 'AfterTaxes'] as PricingTypeEnum[]);\n    export type TaxRemittanceResponsibilityEnum = 'Hotel' | 'Ota';\n    export const TaxRemittanceResponsibilityEnumValues = Object.freeze(\n        ['Hotel', 'Ota'] as TaxRemittanceResponsibilityEnum[]);\n}\n\nexport namespace DesiredStayDetailsChannelModel {\n    export const $metaData: ClassMetaData<DesiredStayDetailsChannelModel> = { \n        arrival: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        departure: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        childrenAges: Object.freeze({ \n            type: 'Array<number>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        requote: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        timeSlices: Object.freeze({ \n            isRequired: true,\n            type: 'Array<DesiredTimeSliceModel>',\n            isListContainer: true,\n        }),\n        pricingType: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PricingTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        taxRemittanceResponsibility: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TaxRemittanceResponsibilityEnumValues,\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { DesiredTimeSliceModel } from './desiredTimeSliceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface DesiredStayDetailsModel { \n    /**\n     * Date and optional time of arrival<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    arrival: string;\n    /**\n     * Date and optional time of departure. Cannot be more than 5 years after arrival.<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    departure: string;\n    /**\n     * Number of adults\n     */\n    adults: number;\n    /**\n     * Ages of the children\n     */\n    childrenAges?: Array<number>;\n    /**\n     * Whether the prices for time slices with no change to the rate plan should be re-quoted based on current prices, or if  only additions like change of number of adults should be calculated. Defaults to 'false'.\n     */\n    requote?: boolean;\n    /**\n     * The list of time slices\n     */\n    timeSlices: Array<DesiredTimeSliceModel>;\n}\n\nexport namespace DesiredStayDetailsModel {\n    export const $metaData: ClassMetaData<DesiredStayDetailsModel> = { \n        arrival: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        departure: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        childrenAges: Object.freeze({ \n            type: 'Array<number>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        requote: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        timeSlices: Object.freeze({ \n            isRequired: true,\n            type: 'Array<DesiredTimeSliceModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 DesiredTimeSliceModel { \n    /**\n     * The rate plan id for this time slice\n     */\n    ratePlanId: string;\n    totalGrossAmount?: MonetaryValueModel;\n}\n\nexport namespace DesiredTimeSliceModel {\n    export const $metaData: ClassMetaData<DesiredTimeSliceModel> = { \n        ratePlanId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        totalGrossAmount: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ExternalPaymentAccountReferenceModel { \n    /**\n     * Identifies the payment authorization in the Payment Transaction API\n     */\n    paymentTransactionId: string;\n}\n\nexport namespace ExternalPaymentAccountReferenceModel {\n    export const $metaData: ClassMetaData<ExternalPaymentAccountReferenceModel> = { \n        paymentTransactionId: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 FailAuthorizationRequest { \n    /**\n     * Reason code for the authorization failure.\n     */\n    reasonCode: FailAuthorizationRequest.ReasonCodeEnum;\n    /**\n     * Textual description of the failure reason.\n     */\n    failureReason?: string;\n    /**\n     * Transaction Id of Authorization in the payment service payment transaction log.  Required if transaction id already set for authorization.\n     */\n    transactionId?: string;\n    /**\n     * The actual date and time of EXPIRE event.  Required if Apaleo.Api.Modules.Booking.Models.Authorization.FailAuthorizationRequest.ReasonCode is Apaleo.Api.Modules.Booking.Models.Authorization.AuthorizationFailureReasonCode.Expired.<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    expiredAt?: Date;\n}\nexport namespace FailAuthorizationRequest {\n    export type ReasonCodeEnum = 'Failed' | 'Expired';\n    export const ReasonCodeEnumValues = Object.freeze(\n        ['Failed', 'Expired'] as ReasonCodeEnum[]);\n}\n\nexport namespace FailAuthorizationRequest {\n    export const $metaData: ClassMetaData<FailAuthorizationRequest> = { \n        reasonCode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ReasonCodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        failureReason: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        transactionId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        expiredAt: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { PaymentAccountDetailsModel } from './paymentAccountDetailsModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface FailPaymentAccountRequest { \n    /**\n     * Transaction Id of payment account in the payment service payment transaction log\n     */\n    paymentTransactionId?: string;\n    accountDetails?: PaymentAccountDetailsModel;\n    /**\n     * Textual description of the failure reason.\n     */\n    failureReason?: string;\n}\n\nexport namespace FailPaymentAccountRequest {\n    export const $metaData: ClassMetaData<FailPaymentAccountRequest> = { \n        paymentTransactionId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        accountDetails: Object.freeze({ \n            type: 'PaymentAccountDetailsModel',\n            metaData: PaymentAccountDetailsModel.$metaData\n        }),\n        failureReason: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { EmbeddedMarketSegmentModel } from './embeddedMarketSegmentModel';\nimport { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { EmbeddedRatePlanModel } from './embeddedRatePlanModel';\nimport { EmbeddedUnitGroupModel } from './embeddedUnitGroupModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface GroupBlockModel { \n    /**\n     * Block id\n     */\n    id: string;\n    /**\n     * Status of the block\n     */\n    status: GroupBlockModel.StatusEnum;\n    property: EmbeddedPropertyModel;\n    ratePlan: EmbeddedRatePlanModel;\n    unitGroup: EmbeddedUnitGroupModel;\n    marketSegment?: EmbeddedMarketSegmentModel;\n    grossDailyRate: MonetaryValueModel;\n    /**\n     * Start date and time from which the inventory will be blocked<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 date and time until which the inventory will be blocked<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     * Number of units blocked\n     */\n    blockedUnits: number;\n    /**\n     * Number of reservations already picked from this block\n     */\n    pickedReservations: number;\n    /**\n     * Date of creation<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    created: Date;\n    /**\n     * Date of last modification<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    modified: Date;\n}\nexport namespace GroupBlockModel {\n    export type StatusEnum = 'Tentative' | 'Definite' | 'Canceled';\n    export const StatusEnumValues = Object.freeze(\n        ['Tentative', 'Definite', 'Canceled'] as StatusEnum[]);\n}\n\nexport namespace GroupBlockModel {\n    export const $metaData: ClassMetaData<GroupBlockModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        status: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: StatusEnumValues,\n            isPrimitiveType: true,\n        }),\n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        ratePlan: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedRatePlanModel',\n            metaData: EmbeddedRatePlanModel.$metaData\n        }),\n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitGroupModel',\n            metaData: EmbeddedUnitGroupModel.$metaData\n        }),\n        marketSegment: Object.freeze({ \n            type: 'EmbeddedMarketSegmentModel',\n            metaData: EmbeddedMarketSegmentModel.$metaData\n        }),\n        grossDailyRate: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\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        blockedUnits: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        pickedReservations: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        created: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        modified: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 GroupCreatedModel { \n    /**\n     * Id of newly created group booking\n     */\n    id: string;\n}\n\nexport namespace GroupCreatedModel {\n    export const $metaData: ClassMetaData<GroupCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionModelGroupActionNotAllowedGroupActionReason } from './actionModelGroupActionNotAllowedGroupActionReason';\nimport { BookerModel } from './bookerModel';\nimport { GroupBlockModel } from './groupBlockModel';\nimport { PaymentAccountModel } from './paymentAccountModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface GroupItemModel { \n    /**\n     * Group id\n     */\n    id: string;\n    /**\n     * Start date and time of the earliest block for this group<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 date and time of the latest block for this group<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     * Name of the group\n     */\n    name: string;\n    booker?: BookerModel;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comment by the booker\n     */\n    bookerComment?: string;\n    paymentAccount?: PaymentAccountModel;\n    /**\n     * Date of creation<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    created: Date;\n    /**\n     * Date of last modification<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    modified: Date;\n    /**\n     * Blocks within this group\n     */\n    blocks?: Array<GroupBlockModel>;\n    /**\n     * The list of actions for this group\n     */\n    actions?: Array<ActionModelGroupActionNotAllowedGroupActionReason>;\n    /**\n     * The list of property ids this group belongs to\n     */\n    propertyIds: Array<string>;\n}\n\nexport namespace GroupItemModel {\n    export const $metaData: ClassMetaData<GroupItemModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        from: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        to: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        name: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        booker: Object.freeze({ \n            type: 'BookerModel',\n            metaData: BookerModel.$metaData\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        bookerComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        paymentAccount: Object.freeze({ \n            type: 'PaymentAccountModel',\n            metaData: PaymentAccountModel.$metaData\n        }),\n        created: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        modified: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        blocks: Object.freeze({ \n            type: 'Array<GroupBlockModel>',\n            isListContainer: true,\n        }),\n        actions: Object.freeze({ \n            type: 'Array<ActionModelGroupActionNotAllowedGroupActionReason>',\n            isListContainer: true,\n        }),\n        propertyIds: Object.freeze({ \n            isRequired: true,\n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { GroupItemModel } from './groupItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface GroupListModel { \n    groups: Array<GroupItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace GroupListModel {\n    export const $metaData: ClassMetaData<GroupListModel> = { \n        groups: Object.freeze({ \n            isRequired: true,\n            type: 'Array<GroupItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionModelGroupActionNotAllowedGroupActionReason } from './actionModelGroupActionNotAllowedGroupActionReason';\nimport { BookerModel } from './bookerModel';\nimport { GroupBlockModel } from './groupBlockModel';\nimport { PaymentAccountModel } from './paymentAccountModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface GroupModel { \n    /**\n     * Group id\n     */\n    id: string;\n    /**\n     * Name of the group\n     */\n    name: string;\n    /**\n     * Start date and time of the earliest block for this group<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 date and time of the latest block for this group<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    booker?: BookerModel;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comment by the booker\n     */\n    bookerComment?: string;\n    paymentAccount?: PaymentAccountModel;\n    /**\n     * Date of creation<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    created: Date;\n    /**\n     * Date of last modification<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    modified: Date;\n    /**\n     * Blocks within this group\n     */\n    blocks?: Array<GroupBlockModel>;\n    /**\n     * The list of actions for this group\n     */\n    actions?: Array<ActionModelGroupActionNotAllowedGroupActionReason>;\n    /**\n     * The list of property ids this group belongs to\n     */\n    propertyIds: Array<string>;\n}\n\nexport namespace GroupModel {\n    export const $metaData: ClassMetaData<GroupModel> = { \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        from: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        to: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        booker: Object.freeze({ \n            type: 'BookerModel',\n            metaData: BookerModel.$metaData\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        bookerComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        paymentAccount: Object.freeze({ \n            type: 'PaymentAccountModel',\n            metaData: PaymentAccountModel.$metaData\n        }),\n        created: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        modified: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        blocks: Object.freeze({ \n            type: 'Array<GroupBlockModel>',\n            isListContainer: true,\n        }),\n        actions: Object.freeze({ \n            type: 'Array<ActionModelGroupActionNotAllowedGroupActionReason>',\n            isListContainer: true,\n        }),\n        propertyIds: Object.freeze({ \n            isRequired: true,\n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ModelDate { \n    /**\n     * The date the service is delivered\n     */\n    serviceDate: string;\n    /**\n     * The number of services to book for this date. It defaults to the service offer count when not specified.\n     */\n    count?: number;\n    amount?: MonetaryValueModel;\n}\n\nexport namespace ModelDate {\n    export const $metaData: ClassMetaData<ModelDate> = { \n        serviceDate: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        count: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        amount: Object.freeze({ \n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 OfferCancellationFeeModel { \n    /**\n     * The code of the cancellation policy applied\n     */\n    code: string;\n    /**\n     * The name of the cancellation policy applied\n     */\n    name: string;\n    /**\n     * The description of the cancellation policy applied\n     */\n    description: string;\n    /**\n     * The date and time the cancellation fee will be due. After that time this fee will  be charged in case of cancellation<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    dueDateTime: Date;\n    fee: MonetaryValueModel;\n}\n\nexport namespace OfferCancellationFeeModel {\n    export const $metaData: ClassMetaData<OfferCancellationFeeModel> = { \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        dueDateTime: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        fee: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface OfferCityTaxItemModel { \n    /**\n     * The date for this city tax\n     */\n    serviceDate: string;\n    amount: AmountModel;\n}\n\nexport namespace OfferCityTaxItemModel {\n    export const $metaData: ClassMetaData<OfferCityTaxItemModel> = { \n        serviceDate: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { OfferCityTaxItemModel } from './offerCityTaxItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface OfferCityTaxModel { \n    /**\n     * The id of the city tax\n     */\n    id: string;\n    /**\n     * The code of the city tax\n     */\n    code: string;\n    /**\n     * The name for the city tax\n     */\n    name: string;\n    totalGrossAmount: MonetaryValueModel;\n    /**\n     * Split per day for the city tax\n     */\n    dates: Array<OfferCityTaxItemModel>;\n}\n\nexport namespace OfferCityTaxModel {\n    export const $metaData: ClassMetaData<OfferCityTaxModel> = { \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        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        dates: Object.freeze({ \n            isRequired: true,\n            type: 'Array<OfferCityTaxItemModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface OfferFeeModel { \n    /**\n     * The fee id\n     */\n    id: string;\n    /**\n     * The code for the fee\n     */\n    code: string;\n    /**\n     * The name for the fee\n     */\n    name: string;\n    totalAmount: AmountModel;\n}\n\nexport namespace OfferFeeModel {\n    export const $metaData: ClassMetaData<OfferFeeModel> = { \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        totalAmount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 OfferNoShowFeeModel { \n    /**\n     * The code of the no-show policy applied\n     */\n    code: string;\n    /**\n     * The name of the no-show policy applied\n     */\n    name: string;\n    /**\n     * The description of the no-show policy applied\n     */\n    description: string;\n    fee: MonetaryValueModel;\n}\n\nexport namespace OfferNoShowFeeModel {\n    export const $metaData: ClassMetaData<OfferNoShowFeeModel> = { \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        fee: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 OfferUnitGroupModel { \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     * Maximum number of persons for the unit group\n     */\n    maxPersons: number;\n    /**\n     * The unit group rank\n     */\n    rank?: number;\n    /**\n     * The unit group type\n     */\n    type: OfferUnitGroupModel.TypeEnum;\n}\nexport namespace OfferUnitGroupModel {\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 OfferUnitGroupModel {\n    export const $metaData: ClassMetaData<OfferUnitGroupModel> = { \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        maxPersons: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        rank: Object.freeze({ \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    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { OfferCancellationFeeModel } from './offerCancellationFeeModel';\nimport { OfferCityTaxModel } from './offerCityTaxModel';\nimport { OfferFeeModel } from './offerFeeModel';\nimport { OfferNoShowFeeModel } from './offerNoShowFeeModel';\nimport { OfferTimeSliceModel } from './offerTimeSliceModel';\nimport { OfferUnitGroupModel } from './offerUnitGroupModel';\nimport { OfferValidationMessageModel } from './offerValidationMessageModel';\nimport { ServiceOfferModel } from './serviceOfferModel';\nimport { TaxDetailModel } from './taxDetailModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface OfferModel { \n    /**\n     * The earliest arrival date and time for this offer<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    arrival: Date;\n    /**\n     * The latest departure date and time for this offer<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    departure: Date;\n    unitGroup: OfferUnitGroupModel;\n    /**\n     * The minimum guarantee type for this offer\n     */\n    minGuaranteeType: OfferModel.MinGuaranteeTypeEnum;\n    /**\n     * The number of available units for that offer\n     */\n    availableUnits: number;\n    ratePlan: EmbeddedRatePlanModel;\n    totalGrossAmount: MonetaryValueModel;\n    cancellationFee: OfferCancellationFeeModel;\n    noShowFee: OfferNoShowFeeModel;\n    /**\n     * The breakdown for each time slice for this offer\n     */\n    timeSlices: Array<OfferTimeSliceModel>;\n    /**\n     * The list of the mandatory services for this offer. Such services will be automatically booked when booking this offer\n     */\n    services?: Array<ServiceOfferModel>;\n    /**\n     * The details of the fees that will be added on top of the Apaleo.Api.Modules.Booking.Models.Offer.StayOffer.OfferModel.TotalGrossAmount when creating the booking\n     */\n    fees?: Array<OfferFeeModel>;\n    /**\n     * Tax breakdown, displaying net and tax amount for each VAT type\n     */\n    taxDetails: Array<TaxDetailModel>;\n    /**\n     * Validation rules that were applied to the offer and show the reason why the offer is not bookable\n     */\n    validationMessages?: Array<OfferValidationMessageModel>;\n    /**\n     * ID of the company the offer is created for\n     */\n    companyId?: string;\n    /**\n     * The corporate rate code the offer is created for\n     */\n    corporateCode?: string;\n    /**\n     * Whether the offer is for a corporate rate plan\n     */\n    isCorporate: boolean;\n    prePaymentAmount: MonetaryValueModel;\n    /**\n     * Details of city taxes for this offer, if any\n     */\n    cityTaxes?: Array<OfferCityTaxModel>;\n}\nexport namespace OfferModel {\n    export type MinGuaranteeTypeEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company';\n    export const MinGuaranteeTypeEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company'] as MinGuaranteeTypeEnum[]);\n}\n\nexport namespace OfferModel {\n    export const $metaData: ClassMetaData<OfferModel> = { \n        arrival: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        departure: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'OfferUnitGroupModel',\n            metaData: OfferUnitGroupModel.$metaData\n        }),\n        minGuaranteeType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: MinGuaranteeTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        availableUnits: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        ratePlan: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedRatePlanModel',\n            metaData: EmbeddedRatePlanModel.$metaData\n        }),\n        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        cancellationFee: Object.freeze({ \n            isRequired: true,\n            type: 'OfferCancellationFeeModel',\n            metaData: OfferCancellationFeeModel.$metaData\n        }),\n        noShowFee: Object.freeze({ \n            isRequired: true,\n            type: 'OfferNoShowFeeModel',\n            metaData: OfferNoShowFeeModel.$metaData\n        }),\n        timeSlices: Object.freeze({ \n            isRequired: true,\n            type: 'Array<OfferTimeSliceModel>',\n            isListContainer: true,\n        }),\n        services: Object.freeze({ \n            type: 'Array<ServiceOfferModel>',\n            isListContainer: true,\n        }),\n        fees: Object.freeze({ \n            type: 'Array<OfferFeeModel>',\n            isListContainer: true,\n        }),\n        taxDetails: Object.freeze({ \n            isRequired: true,\n            type: 'Array<TaxDetailModel>',\n            isListContainer: true,\n        }),\n        validationMessages: Object.freeze({ \n            type: 'Array<OfferValidationMessageModel>',\n            isListContainer: true,\n        }),\n        companyId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        isCorporate: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        prePaymentAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        cityTaxes: Object.freeze({ \n            type: 'Array<OfferCityTaxModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\nimport { EmbeddedServiceModel } from './embeddedServiceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface OfferServiceModel { \n    service: EmbeddedServiceModel;\n    /**\n     * The date this service is delivered\n     */\n    serviceDate: string;\n    /**\n     * The default count of offered services. For services whose pricing unit is 'Person' it will be based on the adults and children specified, otherwise 1.\n     */\n    count: number;\n    /**\n     * If set - the number of services available (only for the limited service).  If not set - the service is unlimited.\n     */\n    availableCount?: number;\n    amount: AmountModel;\n    /**\n     * Whether the service price is included in or added to the base rate\n     */\n    pricingMode: OfferServiceModel.PricingModeEnum;\n}\nexport namespace OfferServiceModel {\n    export type PricingModeEnum = 'Included' | 'Additional';\n    export const PricingModeEnumValues = Object.freeze(\n        ['Included', 'Additional'] as PricingModeEnum[]);\n}\n\nexport namespace OfferServiceModel {\n    export const $metaData: ClassMetaData<OfferServiceModel> = { \n        service: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedServiceModel',\n            metaData: EmbeddedServiceModel.$metaData\n        }),\n        serviceDate: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        availableCount: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { OfferServiceModel } from './offerServiceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface OfferTimeSliceModel { \n    /**\n     * The start date and time for this time slice<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     * The end date and time for this time slice<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     * The number of available units for that time slice\n     */\n    availableUnits: number;\n    baseAmount: AmountModel;\n    totalGrossAmount: MonetaryValueModel;\n    /**\n     * The breakdown for services included in the offer\n     */\n    includedServices?: Array<OfferServiceModel>;\n}\n\nexport namespace OfferTimeSliceModel {\n    export const $metaData: ClassMetaData<OfferTimeSliceModel> = { \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        availableUnits: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        baseAmount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        includedServices: Object.freeze({ \n            type: 'Array<OfferServiceModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 OfferValidationMessageModel { \n    /**\n     * The message Code\n     */\n    code: OfferValidationMessageModel.CodeEnum;\n    /**\n     * The message description\n     */\n    message: string;\n}\nexport namespace OfferValidationMessageModel {\n    export type CodeEnum = 'UnitGroupFullyBooked' | 'UnitGroupCapacityExceeded' | 'RatePlanRestrictionsViolated' | 'RatePlanSurchargesNotSet' | 'RateRestrictionsViolated' | 'RatePlanChannelNotSet' | 'RatesNotSet' | 'BlockFullyBooked' | 'IncludedServicesAmountExceededRateAmount' | 'ServiceFullyBooked';\n    export const CodeEnumValues = Object.freeze(\n        ['UnitGroupFullyBooked', 'UnitGroupCapacityExceeded', 'RatePlanRestrictionsViolated', 'RatePlanSurchargesNotSet', 'RateRestrictionsViolated', 'RatePlanChannelNotSet', 'RatesNotSet', 'BlockFullyBooked', 'IncludedServicesAmountExceededRateAmount', 'ServiceFullyBooked'] as CodeEnum[]);\n}\n\nexport namespace OfferValidationMessageModel {\n    export const $metaData: ClassMetaData<OfferValidationMessageModel> = { \n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: CodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        message: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 PayableAmountModel { \n    guest: MonetaryValueModel;\n}\n\nexport namespace PayableAmountModel {\n    export const $metaData: ClassMetaData<PayableAmountModel> = { \n        guest: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 PaymentAccountCreatedModel { \n    /**\n     * Created payment account id\n     */\n    id: string;\n}\n\nexport namespace PaymentAccountCreatedModel {\n    export const $metaData: ClassMetaData<PaymentAccountCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 PaymentAccountPaymentLinkModel { \n    /**\n     * The date and time the payment link expires<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    expiresAt?: Date;\n    /**\n     * The URL to the payment link\n     */\n    url?: string;\n}\n\nexport namespace PaymentAccountPaymentLinkModel {\n    export const $metaData: ClassMetaData<PaymentAccountPaymentLinkModel> = { \n        expiresAt: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        url: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { PaymentAccountV2Model } from './paymentAccountV2Model';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PaymentAccountV2ListModel { \n    /**\n     * List of payment accounts\n     */\n    paymentAccounts: Array<PaymentAccountV2Model>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace PaymentAccountV2ListModel {\n    export const $metaData: ClassMetaData<PaymentAccountV2ListModel> = { \n        paymentAccounts: Object.freeze({ \n            isRequired: true,\n            type: 'Array<PaymentAccountV2Model>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionModelPaymentAccountActionNotAllowedPaymentAccountActionReason } from './actionModelPaymentAccountActionNotAllowedPaymentAccountActionReason';\nimport { ExternalPaymentAccountReferenceModel } from './externalPaymentAccountReferenceModel';\nimport { PaymentAccountDetailsModel } from './paymentAccountDetailsModel';\nimport { PaymentAccountPaymentLinkModel } from './paymentAccountPaymentLinkModel';\nimport { PaymentAccountTargetModel } from './paymentAccountTargetModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PaymentAccountV2Model { \n    /**\n     * Payment account id\n     */\n    id: string;\n    target: PaymentAccountTargetModel;\n    /**\n     * Date of creation<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    created: Date;\n    /**\n     * Date of last modification<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    updated: Date;\n    externalReference?: ExternalPaymentAccountReferenceModel;\n    /**\n     * Status of the payment account\n     */\n    status: PaymentAccountV2Model.StatusEnum;\n    /**\n     * Human-readable failure reason\n     */\n    failureReason?: string;\n    /**\n     * Payer interaction of the payment account\n     */\n    payerInteraction: PaymentAccountV2Model.PayerInteractionEnum;\n    paymentLink?: PaymentAccountPaymentLinkModel;\n    accountDetails?: PaymentAccountDetailsModel;\n    /**\n     * Indicates if the payment account is a virtual credit card. If not specified it defaults to 'false'\n     */\n    isVirtual?: boolean;\n    /**\n     * The list of actions for payment account\n     */\n    actions?: Array<ActionModelPaymentAccountActionNotAllowedPaymentAccountActionReason>;\n}\nexport namespace PaymentAccountV2Model {\n    export type StatusEnum = 'Pending' | 'Success' | 'Failure' | 'Canceled' | 'Expired';\n    export const StatusEnumValues = Object.freeze(\n        ['Pending', 'Success', 'Failure', 'Canceled', 'Expired'] as StatusEnum[]);\n    export type PayerInteractionEnum = 'PciToken' | 'Terminal' | 'Authorization' | 'PaymentLink';\n    export const PayerInteractionEnumValues = Object.freeze(\n        ['PciToken', 'Terminal', 'Authorization', 'PaymentLink'] as PayerInteractionEnum[]);\n}\n\nexport namespace PaymentAccountV2Model {\n    export const $metaData: ClassMetaData<PaymentAccountV2Model> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        target: Object.freeze({ \n            isRequired: true,\n            type: 'PaymentAccountTargetModel',\n            metaData: PaymentAccountTargetModel.$metaData\n        }),\n        created: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        updated: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        externalReference: Object.freeze({ \n            type: 'ExternalPaymentAccountReferenceModel',\n            metaData: ExternalPaymentAccountReferenceModel.$metaData\n        }),\n        status: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: StatusEnumValues,\n            isPrimitiveType: true,\n        }),\n        failureReason: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        payerInteraction: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PayerInteractionEnumValues,\n            isPrimitiveType: true,\n        }),\n        paymentLink: Object.freeze({ \n            type: 'PaymentAccountPaymentLinkModel',\n            metaData: PaymentAccountPaymentLinkModel.$metaData\n        }),\n        accountDetails: Object.freeze({ \n            type: 'PaymentAccountDetailsModel',\n            metaData: PaymentAccountDetailsModel.$metaData\n        }),\n        isVirtual: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        actions: Object.freeze({ \n            type: 'Array<ActionModelPaymentAccountActionNotAllowedPaymentAccountActionReason>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 TaxesModel { \n    /**\n     * The amount of taxes, which are VAT or Sales Taxes depending on the country of the property\n     */\n    tax: number;\n    /**\n     * The amount of City Tax including VAT\n     */\n    cityTax: number;\n}\n\nexport namespace TaxesModel {\n    export const $metaData: ClassMetaData<TaxesModel> = { \n        tax: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        cityTax: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { TaxesModel } from './taxesModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PriceModel { \n    /**\n     * Price including all included services and VAT - <b>DEPRECATED: This field will be removed soon, use BeforeTax + Taxes.Tax instead</b>\n     */\n    grossAmount: number;\n    /**\n     * Price including all included services without VAT or any other taxes like city tax\n     */\n    beforeTax: number;\n    /**\n     * Price including all included services, VAT and any other taxes like city tax\n     */\n    afterTax: number;\n    taxes: TaxesModel;\n    /**\n     * The currency for all prices and tax details\n     */\n    currency: string;\n}\n\nexport namespace PriceModel {\n    export const $metaData: ClassMetaData<PriceModel> = { \n        grossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        beforeTax: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        afterTax: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        taxes: Object.freeze({ \n            isRequired: true,\n            type: 'TaxesModel',\n            metaData: TaxesModel.$metaData\n        }),\n        currency: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { PriceModel } from './priceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PerOccupancyPriceItemModel { \n    /**\n     * Number of adults\n     */\n    adults: number;\n    price: PriceModel;\n}\n\nexport namespace PerOccupancyPriceItemModel {\n    export const $metaData: ClassMetaData<PerOccupancyPriceItemModel> = { \n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        price: Object.freeze({ \n            isRequired: true,\n            type: 'PriceModel',\n            metaData: PriceModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { BookReservationServiceModel } from './bookReservationServiceModel';\nimport { GuestModel } from './guestModel';\n\n\n/**\n * With this request you can pick up a reservation\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PickUpReservationModel { \n    /**\n     * ID of the block\n     */\n    blockId: string;\n    /**\n     * Additional services (extras, add-ons) that should be added to the reservation\n     */\n    services?: Array<BookReservationServiceModel>;\n    /**\n     * Date of arrival and the optional time with UTC offset<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    arrival: string;\n    /**\n     * Date of departure and the optional time with UTC offset<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    departure: string;\n    /**\n     * Number of adults\n     */\n    adults: number;\n    /**\n     * The ages of the children\n     */\n    childrenAges?: Array<number>;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comment by the guest\n     */\n    guestComment?: string;\n    primaryGuest?: GuestModel;\n    /**\n     * Additional guests of the reservation.\n     */\n    additionalGuests?: Array<GuestModel>;\n    /**\n     * The purpose of the trip, leisure or business\n     */\n    travelPurpose?: PickUpReservationModel.TravelPurposeEnum;\n}\nexport namespace PickUpReservationModel {\n    export type TravelPurposeEnum = 'Business' | 'Leisure';\n    export const TravelPurposeEnumValues = Object.freeze(\n        ['Business', 'Leisure'] as TravelPurposeEnum[]);\n}\n\nexport namespace PickUpReservationModel {\n    export const $metaData: ClassMetaData<PickUpReservationModel> = { \n        blockId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        services: Object.freeze({ \n            type: 'Array<BookReservationServiceModel>',\n            isListContainer: true,\n        }),\n        arrival: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        departure: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        childrenAges: Object.freeze({ \n            type: 'Array<number>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        guestComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        primaryGuest: Object.freeze({ \n            type: 'GuestModel',\n            metaData: GuestModel.$metaData\n        }),\n        additionalGuests: Object.freeze({ \n            type: 'Array<GuestModel>',\n            isListContainer: true,\n        }),\n        travelPurpose: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TravelPurposeEnumValues,\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { PickUpReservationModel } from './pickUpReservationModel';\n\n\n/**\n * With this request you can pick up reservations to an existing group booking\n */\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PickUpReservationsModel { \n    /**\n     * List of reservations to pick up to the existing group booking\n     */\n    reservations: Array<PickUpReservationModel>;\n}\n\nexport namespace PickUpReservationsModel {\n    export const $metaData: ClassMetaData<PickUpReservationsModel> = { \n        reservations: Object.freeze({ \n            isRequired: true,\n            type: 'Array<PickUpReservationModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface PropertyValueModel { \n    property: EmbeddedPropertyModel;\n    totalGrossAmount: MonetaryValueModel;\n    balance: MonetaryValueModel;\n}\n\nexport namespace PropertyValueModel {\n    export const $metaData: ClassMetaData<PropertyValueModel> = { \n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        balance: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { TimeSliceItemModel } from './timeSliceItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface RatePlanTimeSliceListModel { \n    /**\n     * The id of the rate plan\n     */\n    ratePlanId: string;\n    /**\n     * List of time slices\n     */\n    timeSlices: Array<TimeSliceItemModel>;\n}\n\nexport namespace RatePlanTimeSliceListModel {\n    export const $metaData: ClassMetaData<RatePlanTimeSliceListModel> = { \n        ratePlanId: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        timeSlices: Object.freeze({ \n            isRequired: true,\n            type: 'Array<TimeSliceItemModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { CreateBlockTimeSliceModel } from './createBlockTimeSliceModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReplaceBlockModel { \n    /**\n     * Start date and time from which the inventory will be blocked<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     * End date and time until which the inventory will be blocked. Cannot be more than 5 years after the start date.<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    grossDailyRate: MonetaryValueModel;\n    /**\n     * The list of time slices\n     */\n    timeSlices: Array<CreateBlockTimeSliceModel>;\n}\n\nexport namespace ReplaceBlockModel {\n    export const $metaData: ClassMetaData<ReplaceBlockModel> = { \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        grossDailyRate: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        timeSlices: Object.freeze({ \n            isRequired: true,\n            type: 'Array<CreateBlockTimeSliceModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { EmbeddedUnitModel } from './embeddedUnitModel';\nimport { ReservationAssignedUnitTimeRangeModel } from './reservationAssignedUnitTimeRangeModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationAssignedUnitModel { \n    unit: EmbeddedUnitModel;\n    /**\n     * The time ranges for which the unit is assigned to the reservation\n     */\n    timeRanges: Array<ReservationAssignedUnitTimeRangeModel>;\n}\n\nexport namespace ReservationAssignedUnitModel {\n    export const $metaData: ClassMetaData<ReservationAssignedUnitModel> = { \n        unit: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitModel',\n            metaData: EmbeddedUnitModel.$metaData\n        }),\n        timeRanges: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ReservationAssignedUnitTimeRangeModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ReservationAssignedUnitTimeRangeModel { \n    /**\n     * The start date and time of the period for which the unit is assigned to the reservation<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     * The end date and time of the period for which the unit is assigned to the reservation<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 ReservationAssignedUnitTimeRangeModel {\n    export const $metaData: ClassMetaData<ReservationAssignedUnitTimeRangeModel> = { \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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ReservationCreatedModel { \n    /**\n     * Id of the reservation\n     */\n    id: string;\n}\n\nexport namespace ReservationCreatedModel {\n    export const $metaData: ClassMetaData<ReservationCreatedModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionModelReservationActionNotAllowedReservationActionReason } from './actionModelReservationActionNotAllowedReservationActionReason';\nimport { BookerModel } from './bookerModel';\nimport { CommissionModel } from './commissionModel';\nimport { EmbeddedCompanyModel } from './embeddedCompanyModel';\nimport { EmbeddedMarketSegmentModel } from './embeddedMarketSegmentModel';\nimport { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { EmbeddedRatePlanModel } from './embeddedRatePlanModel';\nimport { EmbeddedUnitGroupModel } from './embeddedUnitGroupModel';\nimport { EmbeddedUnitModel } from './embeddedUnitModel';\nimport { ExternalReferencesModel } from './externalReferencesModel';\nimport { GuestModel } from './guestModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { PaymentAccountModel } from './paymentAccountModel';\nimport { RegisteredCardModel } from './registeredCardModel';\nimport { ReservationAssignedUnitModel } from './reservationAssignedUnitModel';\nimport { ReservationCancellationFeeModel } from './reservationCancellationFeeModel';\nimport { ReservationNoShowFeeModel } from './reservationNoShowFeeModel';\nimport { ReservationServiceItemModel } from './reservationServiceItemModel';\nimport { ReservationValidationMessageModel } from './reservationValidationMessageModel';\nimport { TimeSliceModel } from './timeSliceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationItemModel { \n    /**\n     * Reservation id\n     */\n    id: string;\n    /**\n     * Booking id\n     */\n    bookingId: string;\n    /**\n     * Block id\n     */\n    blockId?: string;\n    /**\n     * Name of the group\n     */\n    groupName?: string;\n    /**\n     * Status of the reservation\n     */\n    status: ReservationItemModel.StatusEnum;\n    /**\n     * Time of check-in<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    checkInTime?: Date;\n    /**\n     * Time of check-out<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    checkOutTime?: Date;\n    /**\n     * Time of cancellation, if the reservation was canceled<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    cancellationTime?: Date;\n    /**\n     * Time of setting no-show reservation status<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    noShowTime?: Date;\n    property: EmbeddedPropertyModel;\n    ratePlan: EmbeddedRatePlanModel;\n    unitGroup: EmbeddedUnitGroupModel;\n    unit?: EmbeddedUnitModel;\n    marketSegment?: EmbeddedMarketSegmentModel;\n    totalGrossAmount: MonetaryValueModel;\n    /**\n     * Date of arrival<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    arrival: Date;\n    /**\n     * Date of departure<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    departure: Date;\n    /**\n     * Date of creation<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    created: Date;\n    /**\n     * Date of last modification<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    modified: Date;\n    /**\n     * Number of adults\n     */\n    adults: number;\n    /**\n     * The ages of the children\n     */\n    childrenAges?: Array<number>;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comment by the guest\n     */\n    guestComment?: string;\n    /**\n     * Code in external system\n     */\n    externalCode?: string;\n    /**\n     * Channel code\n     */\n    channelCode: ReservationItemModel.ChannelCodeEnum;\n    /**\n     * Source of the reservation (e.g Hotels.com, Orbitz, etc.)\n     */\n    source?: string;\n    primaryGuest?: GuestModel;\n    /**\n     * Additional guests of the reservation\n     */\n    additionalGuests?: Array<GuestModel>;\n    booker?: BookerModel;\n    paymentAccount?: PaymentAccountModel;\n    registeredCard?: RegisteredCardModel;\n    /**\n     * The strongest guarantee for the rate plans booked in this reservation\n     */\n    guaranteeType: ReservationItemModel.GuaranteeTypeEnum;\n    cancellationFee: ReservationCancellationFeeModel;\n    noShowFee: ReservationNoShowFeeModel;\n    /**\n     * The purpose of the trip, leisure or business\n     */\n    travelPurpose?: ReservationItemModel.TravelPurposeEnum;\n    balance: MonetaryValueModel;\n    /**\n     * The list of units assigned to this reservation\n     */\n    assignedUnits?: Array<ReservationAssignedUnitModel>;\n    /**\n     * The list of time slices with the reserved units / unit groups for the stay\n     */\n    timeSlices?: Array<TimeSliceModel>;\n    /**\n     * The list of additional services (extras, add-ons) reserved for the stay\n     */\n    services?: Array<ReservationServiceItemModel>;\n    /**\n     * Validation rules are applied to reservations during their lifetime.  For example a reservation that was created while the house or unit group is already fully booked.  Whenever a rule was or is currently violated, a validation message will be added to this list.  They can be deleted whenever the hotel staff worked them off\n     */\n    validationMessages?: Array<ReservationValidationMessageModel>;\n    /**\n     * The list of actions for this reservation\n     */\n    actions?: Array<ActionModelReservationActionNotAllowedReservationActionReason>;\n    company?: EmbeddedCompanyModel;\n    /**\n     * Corporate code provided during creation. Used to find offers during amend\n     */\n    corporateCode?: string;\n    /**\n     * Whether all folios of a reservation have an invoice\n     */\n    allFoliosHaveInvoice?: boolean;\n    /**\n     * Whether the city tax has already been added to the reservation. Set to false, if the property does not have city tax configured\n     */\n    hasCityTax: boolean;\n    commission?: CommissionModel;\n    /**\n     * The promo code associated with a certain special offer used to create the reservation\n     */\n    promoCode?: string;\n    /**\n     * Whether the reservation can accept charges on its folios. This is purely informational and no validation is performed on this field. Defaults to true.\n     */\n    isOpenForCharges: boolean;\n    /**\n     * Indicates whether the reservation is marked as pre-checked-in or not.\n     */\n    isPreCheckedIn?: boolean;\n    /**\n     * Indicates whether the unit assignments for this reservation are locked\n     */\n    isUnitAssignmentLocked?: boolean;\n    externalReferences?: ExternalReferencesModel;\n}\nexport namespace ReservationItemModel {\n    export type StatusEnum = 'Confirmed' | 'InHouse' | 'CheckedOut' | 'Canceled' | 'NoShow';\n    export const StatusEnumValues = Object.freeze(\n        ['Confirmed', 'InHouse', 'CheckedOut', 'Canceled', 'NoShow'] as StatusEnum[]);\n    export type ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    export type GuaranteeTypeEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company' | 'Ota';\n    export const GuaranteeTypeEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company', 'Ota'] as GuaranteeTypeEnum[]);\n    export type TravelPurposeEnum = 'Business' | 'Leisure';\n    export const TravelPurposeEnumValues = Object.freeze(\n        ['Business', 'Leisure'] as TravelPurposeEnum[]);\n}\n\nexport namespace ReservationItemModel {\n    export const $metaData: ClassMetaData<ReservationItemModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        bookingId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        blockId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        groupName: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        status: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: StatusEnumValues,\n            isPrimitiveType: true,\n        }),\n        checkInTime: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        checkOutTime: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        cancellationTime: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        noShowTime: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        ratePlan: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedRatePlanModel',\n            metaData: EmbeddedRatePlanModel.$metaData\n        }),\n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitGroupModel',\n            metaData: EmbeddedUnitGroupModel.$metaData\n        }),\n        unit: Object.freeze({ \n            type: 'EmbeddedUnitModel',\n            metaData: EmbeddedUnitModel.$metaData\n        }),\n        marketSegment: Object.freeze({ \n            type: 'EmbeddedMarketSegmentModel',\n            metaData: EmbeddedMarketSegmentModel.$metaData\n        }),\n        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        arrival: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        departure: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        created: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        modified: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        childrenAges: Object.freeze({ \n            type: 'Array<number>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        guestComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        externalCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        channelCode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ChannelCodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        source: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        primaryGuest: Object.freeze({ \n            type: 'GuestModel',\n            metaData: GuestModel.$metaData\n        }),\n        additionalGuests: Object.freeze({ \n            type: 'Array<GuestModel>',\n            isListContainer: true,\n        }),\n        booker: Object.freeze({ \n            type: 'BookerModel',\n            metaData: BookerModel.$metaData\n        }),\n        paymentAccount: Object.freeze({ \n            type: 'PaymentAccountModel',\n            metaData: PaymentAccountModel.$metaData\n        }),\n        registeredCard: Object.freeze({ \n            type: 'RegisteredCardModel',\n            metaData: RegisteredCardModel.$metaData\n        }),\n        guaranteeType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: GuaranteeTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        cancellationFee: Object.freeze({ \n            isRequired: true,\n            type: 'ReservationCancellationFeeModel',\n            metaData: ReservationCancellationFeeModel.$metaData\n        }),\n        noShowFee: Object.freeze({ \n            isRequired: true,\n            type: 'ReservationNoShowFeeModel',\n            metaData: ReservationNoShowFeeModel.$metaData\n        }),\n        travelPurpose: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TravelPurposeEnumValues,\n            isPrimitiveType: true,\n        }),\n        balance: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        assignedUnits: Object.freeze({ \n            type: 'Array<ReservationAssignedUnitModel>',\n            isListContainer: true,\n        }),\n        timeSlices: Object.freeze({ \n            type: 'Array<TimeSliceModel>',\n            isListContainer: true,\n        }),\n        services: Object.freeze({ \n            type: 'Array<ReservationServiceItemModel>',\n            isListContainer: true,\n        }),\n        validationMessages: Object.freeze({ \n            type: 'Array<ReservationValidationMessageModel>',\n            isListContainer: true,\n        }),\n        actions: Object.freeze({ \n            type: 'Array<ActionModelReservationActionNotAllowedReservationActionReason>',\n            isListContainer: true,\n        }),\n        company: Object.freeze({ \n            type: 'EmbeddedCompanyModel',\n            metaData: EmbeddedCompanyModel.$metaData\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        allFoliosHaveInvoice: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        hasCityTax: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        commission: Object.freeze({ \n            type: 'CommissionModel',\n            metaData: CommissionModel.$metaData\n        }),\n        promoCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        isOpenForCharges: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        isPreCheckedIn: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        isUnitAssignmentLocked: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        externalReferences: Object.freeze({ \n            type: 'ExternalReferencesModel',\n            metaData: ExternalReferencesModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ReservationItemModel } from './reservationItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationListModel { \n    /**\n     * List of reservations\n     */\n    reservations: Array<ReservationItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace ReservationListModel {\n    export const $metaData: ClassMetaData<ReservationListModel> = { \n        reservations: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ReservationItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionModelReservationActionNotAllowedReservationActionReason } from './actionModelReservationActionNotAllowedReservationActionReason';\nimport { BookerModel } from './bookerModel';\nimport { CommissionModel } from './commissionModel';\nimport { EmbeddedCompanyModel } from './embeddedCompanyModel';\nimport { EmbeddedMarketSegmentModel } from './embeddedMarketSegmentModel';\nimport { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { EmbeddedRatePlanModel } from './embeddedRatePlanModel';\nimport { EmbeddedUnitGroupModel } from './embeddedUnitGroupModel';\nimport { EmbeddedUnitModel } from './embeddedUnitModel';\nimport { ExternalReferencesModel } from './externalReferencesModel';\nimport { GuestModel } from './guestModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { PayableAmountModel } from './payableAmountModel';\nimport { PaymentAccountModel } from './paymentAccountModel';\nimport { RegisteredCardModel } from './registeredCardModel';\nimport { ReservationAssignedUnitModel } from './reservationAssignedUnitModel';\nimport { ReservationCancellationFeeModel } from './reservationCancellationFeeModel';\nimport { ReservationNoShowFeeModel } from './reservationNoShowFeeModel';\nimport { ReservationServiceItemModel } from './reservationServiceItemModel';\nimport { ReservationValidationMessageModel } from './reservationValidationMessageModel';\nimport { TaxDetailModel } from './taxDetailModel';\nimport { TimeSliceModel } from './timeSliceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationModel { \n    /**\n     * Reservation id\n     */\n    id: string;\n    /**\n     * Booking id\n     */\n    bookingId: string;\n    /**\n     * Block id\n     */\n    blockId?: string;\n    /**\n     * Name of the group\n     */\n    groupName?: string;\n    /**\n     * Status of the reservation\n     */\n    status: ReservationModel.StatusEnum;\n    /**\n     * Time of check-in<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    checkInTime?: Date;\n    /**\n     * Time of check-out<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    checkOutTime?: Date;\n    /**\n     * Time of cancellation, if the reservation was canceled<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    cancellationTime?: Date;\n    /**\n     * Time of setting no-show reservation status<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    noShowTime?: Date;\n    unit?: EmbeddedUnitModel;\n    property: EmbeddedPropertyModel;\n    ratePlan: EmbeddedRatePlanModel;\n    unitGroup: EmbeddedUnitGroupModel;\n    totalGrossAmount: MonetaryValueModel;\n    /**\n     * Date of arrival<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    arrival: Date;\n    /**\n     * Date of departure<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    departure: Date;\n    /**\n     * Date of creation<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    created: Date;\n    /**\n     * Date of last modification<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    modified: Date;\n    /**\n     * Number of adults\n     */\n    adults: number;\n    /**\n     * The ages of the children\n     */\n    childrenAges?: Array<number>;\n    /**\n     * Additional information and comments\n     */\n    comment?: string;\n    /**\n     * Additional information and comment by the guest\n     */\n    guestComment?: string;\n    /**\n     * Code in external system\n     */\n    externalCode?: string;\n    /**\n     * Channel code\n     */\n    channelCode: ReservationModel.ChannelCodeEnum;\n    /**\n     * Source of the reservation (e.g Hotels.com, Orbitz, etc.)\n     */\n    source?: string;\n    primaryGuest?: GuestModel;\n    /**\n     * Additional guests of the reservation.\n     */\n    additionalGuests?: Array<GuestModel>;\n    booker?: BookerModel;\n    paymentAccount?: PaymentAccountModel;\n    registeredCard?: RegisteredCardModel;\n    /**\n     * The list of time slices with the reserved units / unit groups for the stay\n     */\n    timeSlices?: Array<TimeSliceModel>;\n    /**\n     * The list of additional services (extras, add-ons) reserved for the stay\n     */\n    services?: Array<ReservationServiceItemModel>;\n    /**\n     * The strongest guarantee for the rate plans booked in this reservation\n     */\n    guaranteeType: ReservationModel.GuaranteeTypeEnum;\n    cancellationFee: ReservationCancellationFeeModel;\n    noShowFee: ReservationNoShowFeeModel;\n    /**\n     * The purpose of the trip, leisure or business\n     */\n    travelPurpose?: ReservationModel.TravelPurposeEnum;\n    balance: MonetaryValueModel;\n    /**\n     * The list of units assigned to this reservation\n     */\n    assignedUnits?: Array<ReservationAssignedUnitModel>;\n    /**\n     * Validation rules are applied to reservations during their lifetime.  For example a reservation that was created while the house or unit group is already fully booked.  Whenever a rule was or is currently violated, a validation message will be added to this list.  They can be deleted whenever the hotel staff worked them off.\n     */\n    validationMessages?: Array<ReservationValidationMessageModel>;\n    /**\n     * The list of actions for this reservation\n     */\n    actions?: Array<ActionModelReservationActionNotAllowedReservationActionReason>;\n    company?: EmbeddedCompanyModel;\n    /**\n     * The corporate code\n     */\n    corporateCode?: string;\n    /**\n     * Whether all folios of a reservation have an invoice\n     */\n    allFoliosHaveInvoice?: boolean;\n    /**\n     * Tax breakdown, displaying net and tax amount for each VAT type\n     */\n    taxDetails: Array<TaxDetailModel>;\n    /**\n     * Whether the city tax has already been added to the reservation. Set to false, if the property does not have city tax configured\n     */\n    hasCityTax: boolean;\n    commission?: CommissionModel;\n    /**\n     * The promo code associated with a certain special offer used to create the reservation\n     */\n    promoCode?: string;\n    payableAmount: PayableAmountModel;\n    marketSegment?: EmbeddedMarketSegmentModel;\n    /**\n     * Whether the reservation can accept charges on its folios. This is purely informational and no validation is performed on this field. Defaults to true.\n     */\n    isOpenForCharges: boolean;\n    /**\n     * Indicates whether the reservation is marked as pre-checked-in or not.\n     */\n    isPreCheckedIn?: boolean;\n    /**\n     * Indicates whether this reservation is locked which when true prevents unit assignment and unassignment\n     */\n    isUnitAssignmentLocked?: boolean;\n    externalReferences?: ExternalReferencesModel;\n}\nexport namespace ReservationModel {\n    export type StatusEnum = 'Confirmed' | 'InHouse' | 'CheckedOut' | 'Canceled' | 'NoShow';\n    export const StatusEnumValues = Object.freeze(\n        ['Confirmed', 'InHouse', 'CheckedOut', 'Canceled', 'NoShow'] as StatusEnum[]);\n    export type ChannelCodeEnum = 'Direct' | 'BookingCom' | 'Ibe' | 'ChannelManager' | 'Expedia' | 'Homelike' | 'Hrs' | 'AltoVita' | 'DesVu';\n    export const ChannelCodeEnumValues = Object.freeze(\n        ['Direct', 'BookingCom', 'Ibe', 'ChannelManager', 'Expedia', 'Homelike', 'Hrs', 'AltoVita', 'DesVu'] as ChannelCodeEnum[]);\n    export type GuaranteeTypeEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company' | 'Ota';\n    export const GuaranteeTypeEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company', 'Ota'] as GuaranteeTypeEnum[]);\n    export type TravelPurposeEnum = 'Business' | 'Leisure';\n    export const TravelPurposeEnumValues = Object.freeze(\n        ['Business', 'Leisure'] as TravelPurposeEnum[]);\n}\n\nexport namespace ReservationModel {\n    export const $metaData: ClassMetaData<ReservationModel> = { \n        id: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        bookingId: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        blockId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        groupName: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        status: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: StatusEnumValues,\n            isPrimitiveType: true,\n        }),\n        checkInTime: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        checkOutTime: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        cancellationTime: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        noShowTime: Object.freeze({ \n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        unit: Object.freeze({ \n            type: 'EmbeddedUnitModel',\n            metaData: EmbeddedUnitModel.$metaData\n        }),\n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        ratePlan: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedRatePlanModel',\n            metaData: EmbeddedRatePlanModel.$metaData\n        }),\n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitGroupModel',\n            metaData: EmbeddedUnitGroupModel.$metaData\n        }),\n        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        arrival: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        departure: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        created: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        modified: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        adults: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        childrenAges: Object.freeze({ \n            type: 'Array<number>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n        comment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        guestComment: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        externalCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        channelCode: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: ChannelCodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        source: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        primaryGuest: Object.freeze({ \n            type: 'GuestModel',\n            metaData: GuestModel.$metaData\n        }),\n        additionalGuests: Object.freeze({ \n            type: 'Array<GuestModel>',\n            isListContainer: true,\n        }),\n        booker: Object.freeze({ \n            type: 'BookerModel',\n            metaData: BookerModel.$metaData\n        }),\n        paymentAccount: Object.freeze({ \n            type: 'PaymentAccountModel',\n            metaData: PaymentAccountModel.$metaData\n        }),\n        registeredCard: Object.freeze({ \n            type: 'RegisteredCardModel',\n            metaData: RegisteredCardModel.$metaData\n        }),\n        timeSlices: Object.freeze({ \n            type: 'Array<TimeSliceModel>',\n            isListContainer: true,\n        }),\n        services: Object.freeze({ \n            type: 'Array<ReservationServiceItemModel>',\n            isListContainer: true,\n        }),\n        guaranteeType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: GuaranteeTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        cancellationFee: Object.freeze({ \n            isRequired: true,\n            type: 'ReservationCancellationFeeModel',\n            metaData: ReservationCancellationFeeModel.$metaData\n        }),\n        noShowFee: Object.freeze({ \n            isRequired: true,\n            type: 'ReservationNoShowFeeModel',\n            metaData: ReservationNoShowFeeModel.$metaData\n        }),\n        travelPurpose: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: TravelPurposeEnumValues,\n            isPrimitiveType: true,\n        }),\n        balance: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        assignedUnits: Object.freeze({ \n            type: 'Array<ReservationAssignedUnitModel>',\n            isListContainer: true,\n        }),\n        validationMessages: Object.freeze({ \n            type: 'Array<ReservationValidationMessageModel>',\n            isListContainer: true,\n        }),\n        actions: Object.freeze({ \n            type: 'Array<ActionModelReservationActionNotAllowedReservationActionReason>',\n            isListContainer: true,\n        }),\n        company: Object.freeze({ \n            type: 'EmbeddedCompanyModel',\n            metaData: EmbeddedCompanyModel.$metaData\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        allFoliosHaveInvoice: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        taxDetails: Object.freeze({ \n            isRequired: true,\n            type: 'Array<TaxDetailModel>',\n            isListContainer: true,\n        }),\n        hasCityTax: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        commission: Object.freeze({ \n            type: 'CommissionModel',\n            metaData: CommissionModel.$metaData\n        }),\n        promoCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        payableAmount: Object.freeze({ \n            isRequired: true,\n            type: 'PayableAmountModel',\n            metaData: PayableAmountModel.$metaData\n        }),\n        marketSegment: Object.freeze({ \n            type: 'EmbeddedMarketSegmentModel',\n            metaData: EmbeddedMarketSegmentModel.$metaData\n        }),\n        isOpenForCharges: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        isPreCheckedIn: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        isUnitAssignmentLocked: Object.freeze({ \n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        externalReferences: Object.freeze({ \n            type: 'ExternalReferencesModel',\n            metaData: ExternalReferencesModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 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: string;\n    /**\n     * The description for the service\n     */\n    description: string;\n    /**\n     * Defines the granularity (room, person) for which this item is offered and priced\n     */\n    pricingUnit: ServiceModel.PricingUnitEnum;\n    defaultGrossPrice: MonetaryValueModel;\n}\nexport namespace ServiceModel {\n    export type PricingUnitEnum = 'Room' | 'Person';\n    export const PricingUnitEnumValues = Object.freeze(\n        ['Room', 'Person'] as PricingUnitEnum[]);\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            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        pricingUnit: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: PricingUnitEnumValues,\n            isPrimitiveType: true,\n        }),\n        defaultGrossPrice: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\nimport { ServiceDateItemModel } from './serviceDateItemModel';\nimport { ServiceModel } from './serviceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationServiceItemModel { \n    service: ServiceModel;\n    totalAmount: AmountModel;\n    /**\n     * The dates the service will be delivered with its price\n     */\n    dates: Array<ServiceDateItemModel>;\n}\n\nexport namespace ReservationServiceItemModel {\n    export const $metaData: ClassMetaData<ReservationServiceItemModel> = { \n        service: Object.freeze({ \n            isRequired: true,\n            type: 'ServiceModel',\n            metaData: ServiceModel.$metaData\n        }),\n        totalAmount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n        dates: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ServiceDateItemModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ReservationServiceItemModel } from './reservationServiceItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationServiceListModel { \n    /**\n     * The list of services booked for the reservation\n     */\n    services: Array<ReservationServiceItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace ReservationServiceListModel {\n    export const $metaData: ClassMetaData<ReservationServiceListModel> = { \n        services: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ReservationServiceItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\nimport { EmbeddedServiceModel } from './embeddedServiceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationServiceModel { \n    service: EmbeddedServiceModel;\n    /**\n     * The date this service is delivered\n     */\n    serviceDate: string;\n    /**\n     * The count of booked services\n     */\n    count: number;\n    amount: AmountModel;\n    /**\n     * Whether this service is already booked as extra\n     */\n    bookedAsExtra: boolean;\n}\n\nexport namespace ReservationServiceModel {\n    export const $metaData: ClassMetaData<ReservationServiceModel> = { \n        service: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedServiceModel',\n            metaData: EmbeddedServiceModel.$metaData\n        }),\n        serviceDate: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n        bookedAsExtra: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { OfferCancellationFeeModel } from './offerCancellationFeeModel';\nimport { OfferCityTaxModel } from './offerCityTaxModel';\nimport { OfferFeeModel } from './offerFeeModel';\nimport { OfferNoShowFeeModel } from './offerNoShowFeeModel';\nimport { OfferValidationMessageModel } from './offerValidationMessageModel';\nimport { ReservationStayOfferTimeSliceModel } from './reservationStayOfferTimeSliceModel';\nimport { ServiceOfferModel } from './serviceOfferModel';\nimport { TaxDetailModel } from './taxDetailModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationStayOfferModel { \n    /**\n     * The earliest arrival date and time for this offer<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    arrival: Date;\n    /**\n     * The latest departure date and time for this offer<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    departure: Date;\n    /**\n     * The minimum guarantee type for this offer\n     */\n    minGuaranteeType: ReservationStayOfferModel.MinGuaranteeTypeEnum;\n    /**\n     * The number of available units for that offer\n     */\n    availableUnits: number;\n    totalGrossAmount: MonetaryValueModel;\n    cancellationFee: OfferCancellationFeeModel;\n    noShowFee: OfferNoShowFeeModel;\n    /**\n     * The breakdown for each time slice for this offer\n     */\n    timeSlices: Array<ReservationStayOfferTimeSliceModel>;\n    /**\n     * The breakdown for extra services reserved for this offer\n     */\n    services?: Array<ServiceOfferModel>;\n    /**\n     * The details of the fees that will be added on top of the Apaleo.Api.Modules.Booking.Models.Offer.StayOffer.ReservationStayOfferModel.TotalGrossAmount when creating the reservation\n     */\n    fees?: Array<OfferFeeModel>;\n    /**\n     * Tax breakdown, displaying net and tax amount for each VAT type\n     */\n    taxDetails: Array<TaxDetailModel>;\n    /**\n     * Validation rules that were applied to the offer and show the reason why the offer is not bookable\n     */\n    validationMessages?: Array<OfferValidationMessageModel>;\n    /**\n     * ID of the company the offer is created for\n     */\n    companyId?: string;\n    /**\n     * The corporate rate code the offer is created for\n     */\n    corporateCode?: string;\n    /**\n     * Whether the offer is for a corporate rate plan\n     */\n    isCorporate: boolean;\n    /**\n     * Details of city taxes for this offer, if any\n     */\n    cityTaxes?: Array<OfferCityTaxModel>;\n}\nexport namespace ReservationStayOfferModel {\n    export type MinGuaranteeTypeEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company';\n    export const MinGuaranteeTypeEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company'] as MinGuaranteeTypeEnum[]);\n}\n\nexport namespace ReservationStayOfferModel {\n    export const $metaData: ClassMetaData<ReservationStayOfferModel> = { \n        arrival: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\n            isPrimitiveType: true,\n        }),\n        departure: Object.freeze({ \n            isRequired: true,\n            type: 'Date',\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        availableUnits: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        cancellationFee: Object.freeze({ \n            isRequired: true,\n            type: 'OfferCancellationFeeModel',\n            metaData: OfferCancellationFeeModel.$metaData\n        }),\n        noShowFee: Object.freeze({ \n            isRequired: true,\n            type: 'OfferNoShowFeeModel',\n            metaData: OfferNoShowFeeModel.$metaData\n        }),\n        timeSlices: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ReservationStayOfferTimeSliceModel>',\n            isListContainer: true,\n        }),\n        services: Object.freeze({ \n            type: 'Array<ServiceOfferModel>',\n            isListContainer: true,\n        }),\n        fees: Object.freeze({ \n            type: 'Array<OfferFeeModel>',\n            isListContainer: true,\n        }),\n        taxDetails: Object.freeze({ \n            isRequired: true,\n            type: 'Array<TaxDetailModel>',\n            isListContainer: true,\n        }),\n        validationMessages: Object.freeze({ \n            type: 'Array<OfferValidationMessageModel>',\n            isListContainer: true,\n        }),\n        companyId: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        corporateCode: Object.freeze({ \n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        isCorporate: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        cityTaxes: Object.freeze({ \n            type: 'Array<OfferCityTaxModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\nimport { EmbeddedServiceModel } from './embeddedServiceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationStayOfferServiceModel { \n    service: EmbeddedServiceModel;\n    /**\n     * The date this service is delivered\n     */\n    serviceDate: string;\n    /**\n     * The default count of offered services. For services whose pricing unit is 'Person' it will be based on the adults and children specified, otherwise 1.\n     */\n    count: number;\n    /**\n     * If set - the number of services available (only for the limited service).  If not set - the service is unlimited.\n     */\n    availableCount?: number;\n    amount: AmountModel;\n    /**\n     * Whether this service is already booked as extra\n     */\n    bookedAsExtra: boolean;\n    /**\n     * Whether the service price is included in or added to the base rate\n     */\n    pricingMode: ReservationStayOfferServiceModel.PricingModeEnum;\n}\nexport namespace ReservationStayOfferServiceModel {\n    export type PricingModeEnum = 'Included' | 'Additional';\n    export const PricingModeEnumValues = Object.freeze(\n        ['Included', 'Additional'] as PricingModeEnum[]);\n}\n\nexport namespace ReservationStayOfferServiceModel {\n    export const $metaData: ClassMetaData<ReservationStayOfferServiceModel> = { \n        service: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedServiceModel',\n            metaData: EmbeddedServiceModel.$metaData\n        }),\n        serviceDate: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        availableCount: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n        bookedAsExtra: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\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 Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\nimport { EmbeddedRatePlanModel } from './embeddedRatePlanModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { OfferUnitGroupModel } from './offerUnitGroupModel';\nimport { ReservationStayOfferServiceModel } from './reservationStayOfferServiceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationStayOfferTimeSliceModel { \n    /**\n     * The start date and time for this time slice<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     * The end date and time for this time slice<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    ratePlan: EmbeddedRatePlanModel;\n    unitGroup: OfferUnitGroupModel;\n    baseAmount: AmountModel;\n    totalGrossAmount: MonetaryValueModel;\n    /**\n     * The breakdown for services included in the offer\n     */\n    includedServices?: Array<ReservationStayOfferServiceModel>;\n}\n\nexport namespace ReservationStayOfferTimeSliceModel {\n    export const $metaData: ClassMetaData<ReservationStayOfferTimeSliceModel> = { \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        ratePlan: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedRatePlanModel',\n            metaData: EmbeddedRatePlanModel.$metaData\n        }),\n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'OfferUnitGroupModel',\n            metaData: OfferUnitGroupModel.$metaData\n        }),\n        baseAmount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        includedServices: Object.freeze({ \n            type: 'Array<ReservationStayOfferServiceModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { ReservationStayOfferModel } from './reservationStayOfferModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationStayOffersModel { \n    property: EmbeddedPropertyModel;\n    /**\n     * List of offered unit groups with rates\n     */\n    offers: Array<ReservationStayOfferModel>;\n}\n\nexport namespace ReservationStayOffersModel {\n    export const $metaData: ClassMetaData<ReservationStayOffersModel> = { \n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        offers: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ReservationStayOfferModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 ReservationValidationMessageModel { \n    /**\n     * The message category\n     */\n    category: ReservationValidationMessageModel.CategoryEnum;\n    /**\n     * The message Code\n     */\n    code: ReservationValidationMessageModel.CodeEnum;\n    /**\n     * The message description\n     */\n    message: string;\n}\nexport namespace ReservationValidationMessageModel {\n    export type CategoryEnum = 'OfferNotAvailable' | 'AutoUnitAssignment';\n    export const CategoryEnumValues = Object.freeze(\n        ['OfferNotAvailable', 'AutoUnitAssignment'] as CategoryEnum[]);\n    export type CodeEnum = 'UnitGroupFullyBooked' | 'UnitGroupCapacityExceeded' | 'RatePlanRestrictionsViolated' | 'RatePlanSurchargesNotSet' | 'RateRestrictionsViolated' | 'RatePlanChannelNotSet' | 'RatesNotSet' | 'BlockFullyBooked' | 'UnitMoved' | 'IncludedServicesAmountExceededRateAmount' | 'RatePlanCompanyRestrictionsViolated' | 'ServiceFullyBooked';\n    export const CodeEnumValues = Object.freeze(\n        ['UnitGroupFullyBooked', 'UnitGroupCapacityExceeded', 'RatePlanRestrictionsViolated', 'RatePlanSurchargesNotSet', 'RateRestrictionsViolated', 'RatePlanChannelNotSet', 'RatesNotSet', 'BlockFullyBooked', 'UnitMoved', 'IncludedServicesAmountExceededRateAmount', 'RatePlanCompanyRestrictionsViolated', 'ServiceFullyBooked'] as CodeEnum[]);\n}\n\nexport namespace ReservationValidationMessageModel {\n    export const $metaData: ClassMetaData<ReservationValidationMessageModel> = { \n        category: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: CategoryEnumValues,\n            isPrimitiveType: true,\n        }),\n        code: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: CodeEnumValues,\n            isPrimitiveType: true,\n        }),\n        message: Object.freeze({ \n            isRequired: true,\n            minLength: 1,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ReservationCreatedModel } from './reservationCreatedModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ReservationsCreatedModel { \n    /**\n     * List of ids for newly created reservations\n     */\n    reservationIds: Array<ReservationCreatedModel>;\n}\n\nexport namespace ReservationsCreatedModel {\n    export const $metaData: ClassMetaData<ReservationsCreatedModel> = { \n        reservationIds: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ReservationCreatedModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ServiceDateItemModel { \n    /**\n     * The date this service is delivered\n     */\n    serviceDate: string;\n    /**\n     * The count of booked services\n     */\n    count: number;\n    amount: AmountModel;\n    /**\n     * Rate plans can have additional services. When booking an offer for such rate plans, those services are automatically booked.  They are marked as mandatory and they cannot be removed.\n     */\n    isMandatory: boolean;\n}\n\nexport namespace ServiceDateItemModel {\n    export const $metaData: ClassMetaData<ServiceDateItemModel> = { \n        serviceDate: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n        isMandatory: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ServiceOfferItemModel { \n    /**\n     * The date this service is delivered\n     */\n    serviceDate: string;\n    amount: AmountModel;\n    /**\n     * Depending on the postNextDay setting of the service it will by default be posted before or after midnight.  Breakfast is usually delivered on the next morning, so all the dates from the day after arrival to the departure day  are default dates and will have this flag set to true. Those are also the dates the service will be booked for if  you do not specify dates in the book-service call. Still, you can override this and also book the dates set to IsDefaultDate = false.\n     */\n    isDefaultDate: boolean;\n    /**\n     * Rate plans can have additional services. When booking an offer for such rate plans, those services are automatically booked.  They are marked as mandatory and they cannot be removed.\n     */\n    isMandatory: boolean;\n    /**\n     * The number of services available.\n     */\n    availableCount?: number;\n}\n\nexport namespace ServiceOfferItemModel {\n    export const $metaData: ClassMetaData<ServiceOfferItemModel> = { \n        serviceDate: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        amount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n        isDefaultDate: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        isMandatory: Object.freeze({ \n            isRequired: true,\n            type: 'boolean',\n            isPrimitiveType: true,\n        }),\n        availableCount: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { AmountModel } from './amountModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { OfferFeeModel } from './offerFeeModel';\nimport { OfferValidationMessageModel } from './offerValidationMessageModel';\nimport { ServiceModel } from './serviceModel';\nimport { ServiceOfferItemModel } from './serviceOfferItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ServiceOfferModel { \n    service: ServiceModel;\n    /**\n     * The default count of offered services. For services whose pricing unit is 'Person' it will be based on the adults and children specified, otherwise 1.\n     */\n    count: number;\n    /**\n     * The number of services available.\n     */\n    availableCount?: number;\n    totalAmount: AmountModel;\n    prePaymentAmount: MonetaryValueModel;\n    /**\n     * The details of the fees that will be added on top of the Apaleo.Api.Modules.Booking.Models.Offer.ServiceOffer.ServiceOfferModel.TotalAmount when booking the service\n     */\n    fees?: Array<OfferFeeModel>;\n    /**\n     * The dates the service will be delivered with its price\n     */\n    dates: Array<ServiceOfferItemModel>;\n    /**\n     * Validation rules that were applied to the offer and show the reason why the offer is not bookable\n     */\n    validationMessages?: Array<OfferValidationMessageModel>;\n}\n\nexport namespace ServiceOfferModel {\n    export const $metaData: ClassMetaData<ServiceOfferModel> = { \n        service: Object.freeze({ \n            isRequired: true,\n            type: 'ServiceModel',\n            metaData: ServiceModel.$metaData\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        availableCount: Object.freeze({ \n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        totalAmount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n        prePaymentAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        fees: Object.freeze({ \n            type: 'Array<OfferFeeModel>',\n            isListContainer: true,\n        }),\n        dates: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ServiceOfferItemModel>',\n            isListContainer: true,\n        }),\n        validationMessages: Object.freeze({ \n            type: 'Array<OfferValidationMessageModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ServiceOfferModel } from './serviceOfferModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface ServiceOffersModel { \n    services: Array<ServiceOfferModel>;\n}\n\nexport namespace ServiceOffersModel {\n    export const $metaData: ClassMetaData<ServiceOffersModel> = { \n        services: Object.freeze({ \n            isRequired: true,\n            type: 'Array<ServiceOfferModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 SourceListModel { \n    /**\n     * List of sources.\n     */\n    sources: Array<string>;\n}\n\nexport namespace SourceListModel {\n    export const $metaData: ClassMetaData<SourceListModel> = { \n        sources: Object.freeze({ \n            isRequired: true,\n            type: 'Array<string>',\n            isPrimitiveType: true,\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { EmbeddedPropertyModel } from './embeddedPropertyModel';\nimport { OfferModel } from './offerModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface StayOffersModel { \n    property: EmbeddedPropertyModel;\n    /**\n     * List of offered unit groups with rates\n     */\n    offers: Array<OfferModel>;\n}\n\nexport namespace StayOffersModel {\n    export const $metaData: ClassMetaData<StayOffersModel> = { \n        property: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedPropertyModel',\n            metaData: EmbeddedPropertyModel.$metaData\n        }),\n        offers: Object.freeze({ \n            isRequired: true,\n            type: 'Array<OfferModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 TaxDetailModel { \n    vatType: TaxDetailModel.VatTypeEnum;\n    vatPercent: number;\n    net: MonetaryValueModel;\n    tax: MonetaryValueModel;\n}\nexport namespace TaxDetailModel {\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 TaxDetailModel {\n    export const $metaData: ClassMetaData<TaxDetailModel> = { \n        vatType: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: VatTypeEnumValues,\n            isPrimitiveType: true,\n        }),\n        vatPercent: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        net: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        tax: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { TimeSliceOfferItemModel } from './timeSliceOfferItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface TimeSliceItemModel { \n    /**\n     * Date and time the time slice 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 time slice 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    /**\n     * List of offers for this time slice\n     */\n    offers?: Array<TimeSliceOfferItemModel>;\n}\n\nexport namespace TimeSliceItemModel {\n    export const $metaData: ClassMetaData<TimeSliceItemModel> = { \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        offers: Object.freeze({ \n            type: 'Array<TimeSliceOfferItemModel>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { TimeSliceItemModel } from './timeSliceItemModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface TimeSliceListModel { \n    /**\n     * List of time slices\n     */\n    timeSlices?: Array<TimeSliceItemModel>;\n    /**\n     * Total count of items\n     */\n    count: number;\n}\n\nexport namespace TimeSliceListModel {\n    export const $metaData: ClassMetaData<TimeSliceListModel> = { \n        timeSlices: Object.freeze({ \n            type: 'Array<TimeSliceItemModel>',\n            isListContainer: true,\n        }),\n        count: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { ActionModelReservationTimeSliceActionNotAllowedReservationTimeSliceActionReason } from './actionModelReservationTimeSliceActionNotAllowedReservationTimeSliceActionReason';\nimport { AmountModel } from './amountModel';\nimport { EmbeddedRatePlanModel } from './embeddedRatePlanModel';\nimport { EmbeddedUnitGroupModel } from './embeddedUnitGroupModel';\nimport { EmbeddedUnitModel } from './embeddedUnitModel';\nimport { MonetaryValueModel } from './monetaryValueModel';\nimport { ReservationServiceModel } from './reservationServiceModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface TimeSliceModel { \n    /**\n     * The start date and time for this time slice<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     * The end date and time for this time slice<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     * The service date for this time slice\n     */\n    serviceDate: string;\n    ratePlan: EmbeddedRatePlanModel;\n    unitGroup: EmbeddedUnitGroupModel;\n    unit?: EmbeddedUnitModel;\n    baseAmount: AmountModel;\n    totalGrossAmount: MonetaryValueModel;\n    /**\n     * The list of services included in the rate plan (package elements)\n     */\n    includedServices?: Array<ReservationServiceModel>;\n    /**\n     * The list of actions allowed for this time slice\n     */\n    actions?: Array<ActionModelReservationTimeSliceActionNotAllowedReservationTimeSliceActionReason>;\n}\n\nexport namespace TimeSliceModel {\n    export const $metaData: ClassMetaData<TimeSliceModel> = { \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        serviceDate: Object.freeze({ \n            isRequired: true,\n            type: 'string',\n            isPrimitiveType: true,\n        }),\n        ratePlan: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedRatePlanModel',\n            metaData: EmbeddedRatePlanModel.$metaData\n        }),\n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitGroupModel',\n            metaData: EmbeddedUnitGroupModel.$metaData\n        }),\n        unit: Object.freeze({ \n            type: 'EmbeddedUnitModel',\n            metaData: EmbeddedUnitModel.$metaData\n        }),\n        baseAmount: Object.freeze({ \n            isRequired: true,\n            type: 'AmountModel',\n            metaData: AmountModel.$metaData\n        }),\n        totalGrossAmount: Object.freeze({ \n            isRequired: true,\n            type: 'MonetaryValueModel',\n            metaData: MonetaryValueModel.$metaData\n        }),\n        includedServices: Object.freeze({ \n            type: 'Array<ReservationServiceModel>',\n            isListContainer: true,\n        }),\n        actions: Object.freeze({ \n            type: 'Array<ActionModelReservationTimeSliceActionNotAllowedReservationTimeSliceActionReason>',\n            isListContainer: true,\n        }),\n    };\n}\n\n","/**\n * apaleo Booking API - not safe for work\n * Continuously evolving version - use at your own risk! Resources and methods to manage guest journeys.\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 { EmbeddedUnitGroupModel } from './embeddedUnitGroupModel';\nimport { PerOccupancyPriceItemModel } from './perOccupancyPriceItemModel';\nimport { PeriodModel } from './periodModel';\nimport { RateRestrictionsModel } from './rateRestrictionsModel';\n\n\nimport { ClassMetaData } from '@apaleo/angular-api-proxy-common';\n\nexport interface TimeSliceOfferItemModel { \n    unitGroup: EmbeddedUnitGroupModel;\n    /**\n     * The minimum guarantee type for the offer\n     */\n    minGuaranteeType?: TimeSliceOfferItemModel.MinGuaranteeTypeEnum;\n    minAdvance?: PeriodModel;\n    maxAdvance?: PeriodModel;\n    /**\n     * The number of available units for the offer\n     */\n    available: number;\n    /**\n     * The number of available units for the offer considering overbookings\n     */\n    availableUnits: number;\n    restrictions?: RateRestrictionsModel;\n    /**\n     * The prices for this offer\n     */\n    prices?: Array<PerOccupancyPriceItemModel>;\n}\nexport namespace TimeSliceOfferItemModel {\n    export type MinGuaranteeTypeEnum = 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company' | 'Ota';\n    export const MinGuaranteeTypeEnumValues = Object.freeze(\n        ['PM6Hold', 'CreditCard', 'Prepayment', 'Company', 'Ota'] as MinGuaranteeTypeEnum[]);\n}\n\nexport namespace TimeSliceOfferItemModel {\n    export const $metaData: ClassMetaData<TimeSliceOfferItemModel> = { \n        unitGroup: Object.freeze({ \n            isRequired: true,\n            type: 'EmbeddedUnitGroupModel',\n            metaData: EmbeddedUnitGroupModel.$metaData\n        }),\n        minGuaranteeType: Object.freeze({ \n            type: 'string',\n            isEnum: true,\n            allowedEnumValues: MinGuaranteeTypeEnumValues,\n            isPrimitiveType: true,\n        }),\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        available: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        availableUnits: Object.freeze({ \n            isRequired: true,\n            type: 'number',\n            isPrimitiveType: true,\n        }),\n        restrictions: Object.freeze({ \n            type: 'RateRestrictionsModel',\n            metaData: RateRestrictionsModel.$metaData\n        }),\n        prices: Object.freeze({ \n            type: 'Array<PerOccupancyPriceItemModel>',\n            isListContainer: 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 { AuthorizationService } from './api/authorization.service';\nimport { AuthorizationActionsService } from './api/authorizationActions.service';\nimport { BlockService } from './api/block.service';\nimport { BlockActionsService } from './api/blockActions.service';\nimport { BookingService } from './api/booking.service';\nimport { GroupService } from './api/group.service';\nimport { OfferService } from './api/offer.service';\nimport { PaymentAccountService } from './api/paymentAccount.service';\nimport { PaymentAccountActionsService } from './api/paymentAccountActions.service';\nimport { ReservationService } from './api/reservation.service';\nimport { ReservationActionsService } from './api/reservationActions.service';\nimport { TypesService } from './api/types.service';\n\n@NgModule({\n  imports:      [],\n  declarations: [],\n  exports:      [],\n  providers: [\n    AuthorizationService,\n    AuthorizationActionsService,\n    BlockService,\n    BlockActionsService,\n    BookingService,\n    GroupService,\n    OfferService,\n    PaymentAccountService,\n    PaymentAccountActionsService,\n    ReservationService,\n    ReservationActionsService,\n    TypesService \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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"}