Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

vipera-npm-registry / @wa-motif-open-api/configuration-service   js

Repository URL to install this package:

Version: 0.6.0 

/ fesm5 / wa-motif-open-api-configuration-service.js.map

{"version":3,"file":"wa-motif-open-api-configuration-service.js.map","sources":["ng://@wa-motif-open-api/configuration-service/lib/encoder.ts","ng://@wa-motif-open-api/configuration-service/lib/configuration.ts","ng://@wa-motif-open-api/configuration-service/lib/api/configurations.service.ts","ng://@wa-motif-open-api/configuration-service/lib/api/settings.service.ts","ng://@wa-motif-open-api/configuration-service/lib/api/api.ts","ng://@wa-motif-open-api/configuration-service/lib/variables.ts","ng://@wa-motif-open-api/configuration-service/lib/api.module.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","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 * Motif Configuration Service API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 2.0.0\n * Contact: info@vipera.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent }                           from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec }                        from '../encoder';\n\nimport { Observable }                                        from 'rxjs';\n\nimport { ErrorVipera } from '../model/errorVipera';\nimport { Tag } from '../model/tag';\n\nimport { WC_API_BASE_PATH } from 'web-console-core';\nimport { Configuration }                                     from '../configuration';\nimport { ConfigurationsServiceInterface }                            from './configurations.serviceInterface';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ConfigurationsService implements ConfigurationsServiceInterface {\n\n    protected basePath = 'http://localhost:8080/rest/v2';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(WC_API_BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n\n        if (configuration) {\n            this.configuration = configuration;\n            this.configuration.basePath = configuration.basePath || basePath || this.basePath;\n\n        } else {\n            this.configuration.basePath = 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    /**\n     * Deletes Configuration with specified tag\n     * Deletes Configuration with specified tag\n     * @param tag Filter param. Not mandatory\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public deleteTag(tag: string, observe?: 'body', reportProgress?: boolean): Observable<object>;\n    public deleteTag(tag: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<object>>;\n    public deleteTag(tag: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<object>>;\n    public deleteTag(tag: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling deleteTag.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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<object>(`${this.configuration.basePath}/cfg/configurations/tags/${encodeURIComponent(String(tag))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Downloads XML configuration file\n     * Downloads XML configuration file\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 downloadXml(observe?: 'body', reportProgress?: boolean): Observable<Blob>;\n    public downloadXml(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Blob>>;\n    public downloadXml(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Blob>>;\n    public downloadXml(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const httpHeaderAccepts: string[] = [\n            'application/zip',\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(`${this.configuration.basePath}/cfg/configurations/xml`,\n            {\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Downloads XML configuration file with tagged properties\n     * Downloads XML configuration file with tagged properties\n     * @param tag Filter param. Not mandatory\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 downloadXmlTaggedSettings(tag: string, observe?: 'body', reportProgress?: boolean): Observable<Blob>;\n    public downloadXmlTaggedSettings(tag: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Blob>>;\n    public downloadXmlTaggedSettings(tag: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Blob>>;\n    public downloadXmlTaggedSettings(tag: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling downloadXmlTaggedSettings.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const httpHeaderAccepts: string[] = [\n            'application/zip',\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(`${this.configuration.basePath}/cfg/configurations/tags/${encodeURIComponent(String(tag))}/xml`,\n            {\n                responseType: \"blob\",\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Retrieves Available Tags\n     * Retrieves Available Tags\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getTags(observe?: 'body', reportProgress?: boolean): Observable<Array<Tag>>;\n    public getTags(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<Tag>>>;\n    public getTags(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<Tag>>>;\n    public getTags(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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<Array<Tag>>(`${this.configuration.basePath}/cfg/configurations/tags`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Restores a version tag\n     * Restores a version tag. All properties bearing the specified tag will become the active ones.\n     * @param tag Filter param. Not mandatory\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 tagRestore(tag: string, observe?: 'body', reportProgress?: boolean): Observable<object>;\n    public tagRestore(tag: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<object>>;\n    public tagRestore(tag: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<object>>;\n    public tagRestore(tag: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling tagRestore.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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.post<object>(`${this.configuration.basePath}/cfg/configurations/tags/${encodeURIComponent(String(tag))}/restore`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Applies a version tag to all properties identified by service\n     * Applies a version tag to all properties identified by service\n     * @param service \n     * @param tag Filter param. Not mandatory\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 tagService(service: string, tag: string, observe?: 'body', reportProgress?: boolean): Observable<object>;\n    public tagService(service: string, tag: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<object>>;\n    public tagService(service: string, tag: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<object>>;\n    public tagService(service: string, tag: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (service === null || service === undefined) {\n            throw new Error('Required parameter service was null or undefined when calling tagService.');\n        }\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling tagService.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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.post<object>(`${this.configuration.basePath}/cfg/configurations/tags/${encodeURIComponent(String(tag))}/service/${encodeURIComponent(String(service))}`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Applies a version tag to single property\n     * Applies a version tag to single property\n     * @param service \n     * @param property \n     * @param tag Filter param. Not mandatory\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 tagSetting(service: string, property: string, tag: string, observe?: 'body', reportProgress?: boolean): Observable<object>;\n    public tagSetting(service: string, property: string, tag: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<object>>;\n    public tagSetting(service: string, property: string, tag: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<object>>;\n    public tagSetting(service: string, property: string, tag: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (service === null || service === undefined) {\n            throw new Error('Required parameter service was null or undefined when calling tagSetting.');\n        }\n        if (property === null || property === undefined) {\n            throw new Error('Required parameter property was null or undefined when calling tagSetting.');\n        }\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling tagSetting.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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.post<object>(`${this.configuration.basePath}/cfg/configurations/tags/${encodeURIComponent(String(tag))}/service/${encodeURIComponent(String(service))}/property/${encodeURIComponent(String(property))}`,\n            null,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Applies a version tag to all properties\n     * Applies a version tag to all properties\n     * @param tag \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 tagSettings(tag?: Tag, observe?: 'body', reportProgress?: boolean): Observable<object>;\n    public tagSettings(tag?: Tag, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<object>>;\n    public tagSettings(tag?: Tag, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<object>>;\n    public tagSettings(tag?: Tag, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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<object>(`${this.configuration.basePath}/cfg/configurations/tags`,\n            tag,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Uploads XML configuration file\n     * Uploads XML configuration file\n     * @param file \n     * @param force \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 uploadXml(file: Blob, force?: boolean, observe?: 'body', reportProgress?: boolean): Observable<object>;\n    public uploadXml(file: Blob, force?: boolean, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<object>>;\n    public uploadXml(file: Blob, force?: boolean, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<object>>;\n    public uploadXml(file: Blob, force?: boolean, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (file === null || file === undefined) {\n            throw new Error('Required parameter file was null or undefined when calling uploadXml.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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            'multipart/form-data'\n        ];\n\n        const canConsumeForm = this.canConsumeForm(consumes);\n\n        let formParams: { append(param: string, value: any): any; };\n        let useForm = false;\n        let convertFormParamsToString = false;\n        // use FormData to transmit files using content-type \"multipart/form-data\"\n        // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n        useForm = canConsumeForm;\n        if (useForm) {\n            formParams = new FormData();\n        } else {\n            formParams = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});\n        }\n\n        if (file !== undefined) {\n            formParams = formParams.append('file', <any>file) as any || formParams;\n        }\n        if (force !== undefined) {\n            formParams = formParams.append('force', <any>force) as any || formParams;\n        }\n\n        return this.httpClient.put<object>(`${this.configuration.basePath}/cfg/configurations/xml`,\n            convertFormParamsToString ? formParams.toString() : formParams,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Motif Configuration Service API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 2.0.0\n * Contact: info@vipera.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent }                           from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec }                        from '../encoder';\n\nimport { Observable }                                        from 'rxjs';\n\nimport { ErrorVipera } from '../model/errorVipera';\nimport { Service } from '../model/service';\nimport { SettingCreate } from '../model/settingCreate';\nimport { SettingEntity } from '../model/settingEntity';\nimport { SettingUpdate } from '../model/settingUpdate';\n\nimport { WC_API_BASE_PATH } from 'web-console-core';\nimport { Configuration }                                     from '../configuration';\nimport { SettingsServiceInterface }                            from './settings.serviceInterface';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SettingsService implements SettingsServiceInterface {\n\n    protected basePath = 'http://localhost:8080/rest/v2';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(WC_API_BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n\n        if (configuration) {\n            this.configuration = configuration;\n            this.configuration.basePath = configuration.basePath || basePath || this.basePath;\n\n        } else {\n            this.configuration.basePath = 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    /**\n     * Creates Configuration Setting\n     * Creates Configuration Setting\n     * @param service \n     * @param settingCreate \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 createSetting(service: string, settingCreate?: SettingCreate, observe?: 'body', reportProgress?: boolean): Observable<SettingEntity>;\n    public createSetting(service: string, settingCreate?: SettingCreate, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<SettingEntity>>;\n    public createSetting(service: string, settingCreate?: SettingCreate, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<SettingEntity>>;\n    public createSetting(service: string, settingCreate?: SettingCreate, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (service === null || service === undefined) {\n            throw new Error('Required parameter service was null or undefined when calling createSetting.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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<SettingEntity>(`${this.configuration.basePath}/cfg/settings/services/${encodeURIComponent(String(service))}/settings`,\n            settingCreate,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Deletes a current property for a service\n     * Deletes a current property for a service\n     * @param service \n     * @param setting \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 deleteSetting(service: string, setting: string, observe?: 'body', reportProgress?: boolean): Observable<object>;\n    public deleteSetting(service: string, setting: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<object>>;\n    public deleteSetting(service: string, setting: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<object>>;\n    public deleteSetting(service: string, setting: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (service === null || service === undefined) {\n            throw new Error('Required parameter service was null or undefined when calling deleteSetting.');\n        }\n        if (setting === null || setting === undefined) {\n            throw new Error('Required parameter setting was null or undefined when calling deleteSetting.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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<object>(`${this.configuration.basePath}/cfg/settings/services/${encodeURIComponent(String(service))}/settings/${encodeURIComponent(String(setting))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Deletes all current properties for a service.\n     * Deletes all current properties for a service.\n     * @param service \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 deleteSettings(service: string, observe?: 'body', reportProgress?: boolean): Observable<object>;\n    public deleteSettings(service: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<object>>;\n    public deleteSettings(service: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<object>>;\n    public deleteSettings(service: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (service === null || service === undefined) {\n            throw new Error('Required parameter service was null or undefined when calling deleteSettings.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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<object>(`${this.configuration.basePath}/cfg/settings/services/${encodeURIComponent(String(service))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Retrieves Configurable Services\n     * Retrieves Configurable Services\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 getServices(observe?: 'body', reportProgress?: boolean): Observable<Array<Service>>;\n    public getServices(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<Service>>>;\n    public getServices(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<Service>>>;\n    public getServices(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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<Array<Service>>(`${this.configuration.basePath}/cfg/settings/services`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Retrieves Configuration Setting\n     * Retrieves Configuration Setting\n     * @param service \n     * @param setting \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 getSetting(service: string, setting: string, observe?: 'body', reportProgress?: boolean): Observable<SettingEntity>;\n    public getSetting(service: string, setting: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<SettingEntity>>;\n    public getSetting(service: string, setting: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<SettingEntity>>;\n    public getSetting(service: string, setting: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (service === null || service === undefined) {\n            throw new Error('Required parameter service was null or undefined when calling getSetting.');\n        }\n        if (setting === null || setting === undefined) {\n            throw new Error('Required parameter setting was null or undefined when calling getSetting.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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<SettingEntity>(`${this.configuration.basePath}/cfg/settings/services/${encodeURIComponent(String(service))}/settings/${encodeURIComponent(String(setting))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Retrieves Configuration Settings\n     * Retrieves Configuration Settings\n     * @param service \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 getSettings(service: string, observe?: 'body', reportProgress?: boolean): Observable<Array<SettingEntity>>;\n    public getSettings(service: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<SettingEntity>>>;\n    public getSettings(service: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<SettingEntity>>>;\n    public getSettings(service: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (service === null || service === undefined) {\n            throw new Error('Required parameter service was null or undefined when calling getSettings.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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<Array<SettingEntity>>(`${this.configuration.basePath}/cfg/settings/services/${encodeURIComponent(String(service))}`,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Updates Configuration Setting\n     * Updates Configuration Setting\n     * @param service \n     * @param setting \n     * @param settingUpdate \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 updateSetting(service: string, setting: string, settingUpdate?: SettingUpdate, observe?: 'body', reportProgress?: boolean): Observable<object>;\n    public updateSetting(service: string, setting: string, settingUpdate?: SettingUpdate, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<object>>;\n    public updateSetting(service: string, setting: string, settingUpdate?: SettingUpdate, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<object>>;\n    public updateSetting(service: string, setting: string, settingUpdate?: SettingUpdate, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {\n        if (service === null || service === undefined) {\n            throw new Error('Required parameter service was null or undefined when calling updateSetting.');\n        }\n        if (setting === null || setting === undefined) {\n            throw new Error('Required parameter setting was null or undefined when calling updateSetting.');\n        }\n\n        let headers = this.defaultHeaders;\n\n        // authentication (vipera_basic) required\n        if (this.configuration.username || this.configuration.password) {\n            headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));\n        }\n        // authentication (vipera_cookie) required\n        // authentication (vipera_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        const 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<object>(`${this.configuration.basePath}/cfg/settings/services/${encodeURIComponent(String(service))}/settings/${encodeURIComponent(String(setting))}`,\n            settingUpdate,\n            {\n                withCredentials: this.configuration.withCredentials,\n                headers: headers,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","export * from './configurations.service';\nimport { ConfigurationsService } from './configurations.service';\nexport * from './configurations.serviceInterface'\nexport * from './settings.service';\nimport { SettingsService } from './settings.service';\nexport * from './settings.serviceInterface'\nexport const APIS = [ConfigurationsService, SettingsService];\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n    'csv': ',',\n    'tsv': '   ',\n    'ssv': ' ',\n    'pipes': '|'\n}\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { ConfigurationsService } from './api/configurations.service';\nimport { SettingsService } from './api/settings.service';\n\n@NgModule({\n  imports:      [],\n  declarations: [],\n  exports:      [],\n  providers: [\n    ConfigurationsService,\n    SettingsService ]\n})\nexport class ConfigurationServiceModule {\n    public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n        return {\n            ngModule: ConfigurationServiceModule,\n            providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n        };\n    }\n\n    constructor( @Optional() @SkipSelf() parentModule: ConfigurationServiceModule,\n                 @Optional() http: HttpClient) {\n        if (parentModule) {\n            throw new Error('ConfigurationServiceModule 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"],"names":["tslib_1.__extends","tslib_1.__values"],"mappings":"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"}