Keyserv

FREE
By keyserv | Updated 2 months ago | Tools
Health Check

N/A

Back to All Tutorials (3)

TypeScript

/* tslint:disable */
/* eslint-disable */
//----------------------
//
// Generated using the NSwag toolchain v13.0.6.0 (NJsonSchema v10.0.23.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)
//

//----------------------
// ReSharper disable InconsistentNaming

export class KeysApiClient {
private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };
private baseUrl: string;
protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;

constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {
    this.http = http ? http : <any>window;
    this.baseUrl = baseUrl ? baseUrl : "https://keyserv.solutions";
}

find(serial: string): Promise<KeyView | null> {
    let url\_ = this.baseUrl + "/v1/KeysApi/Find/{serial}";
    if (serial === undefined || serial === null)
        throw new Error("The parameter 'serial' must be defined.");
    url\_ = url\_.replace("{serial}", encodeURIComponent("" + serial)); 
    url\_ = url\_.replace(/\[?&\]$/, "");

    let options\_ = <RequestInit>{
        method: "GET",
        headers: {
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processFind(\_response);
    });
}

protected processFind(response: Response): Promise<KeyView | null> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 200) {
        return response.text().then((\_responseText) => {
        let result200: any = null;
        let resultData200 = \_responseText === "" ? null : JSON.parse(\_responseText, this.jsonParseReviver);
        result200 = resultData200 ? KeyView.fromJS(resultData200) : <any>null;
        return result200;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<KeyView | null>(<any>null);
}

current(serial: string): Promise<CurrentKey | null> {
    let url\_ = this.baseUrl + "/v1/KeysApi/Current/{serial}";
    if (serial === undefined || serial === null)
        throw new Error("The parameter 'serial' must be defined.");
    url\_ = url\_.replace("{serial}", encodeURIComponent("" + serial)); 
    url\_ = url\_.replace(/\[?&\]$/, "");

    let options\_ = <RequestInit>{
        method: "GET",
        headers: {
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processCurrent(\_response);
    });
}

protected processCurrent(response: Response): Promise<CurrentKey | null> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 200) {
        return response.text().then((\_responseText) => {
        let result200: any = null;
        let resultData200 = \_responseText === "" ? null : JSON.parse(\_responseText, this.jsonParseReviver);
        result200 = resultData200 ? CurrentKey.fromJS(resultData200) : <any>null;
        return result200;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<CurrentKey | null>(<any>null);
}

custom(serial: string): Promise<FileResponse> {
    let url\_ = this.baseUrl + "/v1/KeysApi/Custom/{serial}";
    if (serial === undefined || serial === null)
        throw new Error("The parameter 'serial' must be defined.");
    url\_ = url\_.replace("{serial}", encodeURIComponent("" + serial)); 
    url\_ = url\_.replace(/\[?&\]$/, "");

    let options\_ = <RequestInit>{
        method: "GET",
        headers: {
            "Accept": "application/octet-stream"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processCustom(\_response);
    });
}

protected processCustom(response: Response): Promise<FileResponse> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 200 || status === 206) {
        const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
        const fileNameMatch = contentDisposition ? /filename="?(\[^"\]\*?)"?(;|$)/g.exec(contentDisposition) : undefined;
        const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch\[1\] : undefined;
        return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: \_headers }; });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<FileResponse>(<any>null);
}

expiry(serial: string): Promise<Expiry | null> {
    let url\_ = this.baseUrl + "/v1/KeysApi/Expiry/{serial}";
    if (serial === undefined || serial === null)
        throw new Error("The parameter 'serial' must be defined.");
    url\_ = url\_.replace("{serial}", encodeURIComponent("" + serial)); 
    url\_ = url\_.replace(/\[?&\]$/, "");

    let options\_ = <RequestInit>{
        method: "GET",
        headers: {
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processExpiry(\_response);
    });
}

protected processExpiry(response: Response): Promise<Expiry | null> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 200) {
        return response.text().then((\_responseText) => {
        let result200: any = null;
        let resultData200 = \_responseText === "" ? null : JSON.parse(\_responseText, this.jsonParseReviver);
        result200 = resultData200 ? Expiry.fromJS(resultData200) : <any>null;
        return result200;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<Expiry | null>(<any>null);
}

}

export class ProductsApiClient {
private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };
private baseUrl: string;
protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;

constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {
    this.http = http ? http : <any>window;
    this.baseUrl = baseUrl ? baseUrl : "https://keyserv.solutions";
}

count(apiCreds: ApiKey | null): Promise<CountOf | null> {
    let url\_ = this.baseUrl + "/v1/ProductsApi/Count";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(apiCreds);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processCount(\_response);
    });
}

protected processCount(response: Response): Promise<CountOf | null> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 200) {
        return response.text().then((\_responseText) => {
        let result200: any = null;
        let resultData200 = \_responseText === "" ? null : JSON.parse(\_responseText, this.jsonParseReviver);
        result200 = resultData200 ? CountOf.fromJS(resultData200) : <any>null;
        return result200;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<CountOf | null>(<any>null);
}

find(page: number | null, apiCreds: FindCredentials | null): Promise<ProductView | null> {
    let url\_ = this.baseUrl + "/v1/ProductsApi/Find?";
    if (page === undefined)
        throw new Error("The parameter 'page' must be defined.");
    else
        url\_ += "page=" + encodeURIComponent("" + page) + "&"; 
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(apiCreds);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processFind(\_response);
    });
}

protected processFind(response: Response): Promise<ProductView | null> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 200) {
        return response.text().then((\_responseText) => {
        let result200: any = null;
        let resultData200 = \_responseText === "" ? null : JSON.parse(\_responseText, this.jsonParseReviver);
        result200 = resultData200 ? ProductView.fromJS(resultData200) : <any>null;
        return result200;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<ProductView | null>(<any>null);
}

list(page: number | null, apiCreds: ApiKey | null): Promise<ProductView\[\] | null> {
    let url\_ = this.baseUrl + "/v1/ProductsApi/List?";
    if (page === undefined)
        throw new Error("The parameter 'page' must be defined.");
    else
        url\_ += "page=" + encodeURIComponent("" + page) + "&"; 
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(apiCreds);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processList(\_response);
    });
}

protected processList(response: Response): Promise<ProductView\[\] | null> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 200) {
        return response.text().then((\_responseText) => {
        let result200: any = null;
        let resultData200 = \_responseText === "" ? null : JSON.parse(\_responseText, this.jsonParseReviver);
        if (Array.isArray(resultData200)) {
            result200 = \[\] as any;
            for (let item of resultData200)
                result200!.push(ProductView.fromJS(item));
        }
        return result200;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<ProductView\[\] | null>(<any>null);
}

patchProduct(productJson: ProductCreateModify | null): Promise<void> {
    let url\_ = this.baseUrl + "/v1/ProductsApi";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(productJson);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "PATCH",
        headers: {
            "Content-Type": "application/json",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processPatchProduct(\_response);
    });
}

protected processPatchProduct(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

patchProduct2(productJson: ProductCreateModify | null): Promise<void> {
    let url\_ = this.baseUrl + "/v1/ProductsApi";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(productJson);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processPatchProduct2(\_response);
    });
}

protected processPatchProduct2(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

save(productJson: ProductCreateModify | null): Promise<ProductView | null> {
    let url\_ = this.baseUrl + "/v1/ProductsApi/Save";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(productJson);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processSave(\_response);
    });
}

protected processSave(response: Response): Promise<ProductView | null> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 201) {
        return response.text().then((\_responseText) => {
        let result201: any = null;
        let resultData201 = \_responseText === "" ? null : JSON.parse(\_responseText, this.jsonParseReviver);
        result201 = resultData201 ? ProductView.fromJS(resultData201) : <any>null;
        return result201;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<ProductView | null>(<any>null);
}

deleteProduct(x\_Api\_Key: string, serial: string): Promise<void> {
    let url\_ = this.baseUrl + "/v1/ProductsApi/{serial}";
    if (serial === undefined || serial === null)
        throw new Error("The parameter 'serial' must be defined.");
    url\_ = url\_.replace("{serial}", encodeURIComponent("" + serial)); 
    url\_ = url\_.replace(/\[?&\]$/, "");

    let options\_ = <RequestInit>{
        method: "DELETE",
        headers: {
            "X-Api-Key": x\_Api\_Key !== undefined && x\_Api\_Key !== null ? "" + x\_Api\_Key : "",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processDeleteProduct(\_response);
    });
}

protected processDeleteProduct(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

deleteProduct2(x\_Api\_Key: string, serial: string): Promise<void> {
    let url\_ = this.baseUrl + "/v1/ProductsApi/{serial}";
    if (serial === undefined || serial === null)
        throw new Error("The parameter 'serial' must be defined.");
    url\_ = url\_.replace("{serial}", encodeURIComponent("" + serial)); 
    url\_ = url\_.replace(/\[?&\]$/, "");

    let options\_ = <RequestInit>{
        method: "POST",
        headers: {
            "X-Api-Key": x\_Api\_Key !== undefined && x\_Api\_Key !== null ? "" + x\_Api\_Key : "",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processDeleteProduct2(\_response);
    });
}

protected processDeleteProduct2(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

}

export class SubscriptionsApiClient {
private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };
private baseUrl: string;
protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;

constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {
    this.http = http ? http : <any>window;
    this.baseUrl = baseUrl ? baseUrl : "https://keyserv.solutions";
}

count(apiCreds: ApiCredentials | null): Promise<CountOf | null> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi/Count";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(apiCreds);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processCount(\_response);
    });
}

protected processCount(response: Response): Promise<CountOf | null> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 200) {
        return response.text().then((\_responseText) => {
        let result200: any = null;
        let resultData200 = \_responseText === "" ? null : JSON.parse(\_responseText, this.jsonParseReviver);
        result200 = resultData200 ? CountOf.fromJS(resultData200) : <any>null;
        return result200;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<CountOf | null>(<any>null);
}

find(apiCreds: FindCredentials | null): Promise<SubscriptionView | null> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi/Find";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(apiCreds);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processFind(\_response);
    });
}

protected processFind(response: Response): Promise<SubscriptionView | null> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 200) {
        return response.text().then((\_responseText) => {
        let result200: any = null;
        let resultData200 = \_responseText === "" ? null : JSON.parse(\_responseText, this.jsonParseReviver);
        result200 = resultData200 ? SubscriptionView.fromJS(resultData200) : <any>null;
        return result200;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<SubscriptionView | null>(<any>null);
}

list(page: number | null, apiCreds: FindCredentials | null): Promise<SubscriptionView\[\] | null> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi/List?";
    if (page === undefined)
        throw new Error("The parameter 'page' must be defined.");
    else
        url\_ += "page=" + encodeURIComponent("" + page) + "&"; 
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(apiCreds);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processList(\_response);
    });
}

protected processList(response: Response): Promise<SubscriptionView\[\] | null> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 200) {
        return response.text().then((\_responseText) => {
        let result200: any = null;
        let resultData200 = \_responseText === "" ? null : JSON.parse(\_responseText, this.jsonParseReviver);
        if (Array.isArray(resultData200)) {
            result200 = \[\] as any;
            for (let item of resultData200)
                result200!.push(SubscriptionView.fromJS(item));
        }
        return result200;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<SubscriptionView\[\] | null>(<any>null);
}

putSubscription(subscriptionJson: SubscriptionCreateModify | null): Promise<void> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(subscriptionJson);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "PUT",
        headers: {
            "Content-Type": "application/json",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processPutSubscription(\_response);
    });
}

protected processPutSubscription(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

putSubscription2(subscriptionJson: SubscriptionCreateModify | null): Promise<void> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(subscriptionJson);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processPutSubscription2(\_response);
    });
}

protected processPutSubscription2(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

disable(apiCreds: FindCredentials | null): Promise<void> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi/Disable";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(apiCreds);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "PATCH",
        headers: {
            "Content-Type": "application/json",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processDisable(\_response);
    });
}

protected processDisable(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

disable2(apiCreds: FindCredentials | null): Promise<void> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi/Disable";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(apiCreds);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processDisable2(\_response);
    });
}

protected processDisable2(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

enable(apiCreds: FindCredentials | null): Promise<void> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi/Enable";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(apiCreds);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "PATCH",
        headers: {
            "Content-Type": "application/json",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processEnable(\_response);
    });
}

protected processEnable(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

enable2(apiCreds: FindCredentials | null): Promise<void> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi/Enable";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(apiCreds);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processEnable2(\_response);
    });
}

protected processEnable2(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

save(subscriptionJson: SubscriptionCreateModify | null): Promise<KeyView | null> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi/Save";
    url\_ = url\_.replace(/\[?&\]$/, "");

    const content\_ = JSON.stringify(subscriptionJson);

    let options\_ = <RequestInit>{
        body: content\_,
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processSave(\_response);
    });
}

protected processSave(response: Response): Promise<KeyView | null> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 201) {
        return response.text().then((\_responseText) => {
        let result201: any = null;
        let resultData201 = \_responseText === "" ? null : JSON.parse(\_responseText, this.jsonParseReviver);
        result201 = resultData201 ? KeyView.fromJS(resultData201) : <any>null;
        return result201;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<KeyView | null>(<any>null);
}

deleteSubscription(x\_Api\_Key: string, serial: string, keep: boolean | null): Promise<void> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi/{serial}?";
    if (serial === undefined || serial === null)
        throw new Error("The parameter 'serial' must be defined.");
    url\_ = url\_.replace("{serial}", encodeURIComponent("" + serial)); 
    if (keep === undefined)
        throw new Error("The parameter 'keep' must be defined.");
    else
        url\_ += "keep=" + encodeURIComponent("" + keep) + "&"; 
    url\_ = url\_.replace(/\[?&\]$/, "");

    let options\_ = <RequestInit>{
        method: "DELETE",
        headers: {
            "X-Api-Key": x\_Api\_Key !== undefined && x\_Api\_Key !== null ? "" + x\_Api\_Key : "",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processDeleteSubscription(\_response);
    });
}

protected processDeleteSubscription(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

deleteSubscription2(x\_Api\_Key: string, serial: string, keep: boolean | null): Promise<void> {
    let url\_ = this.baseUrl + "/v1/SubscriptionsApi/{serial}?";
    if (serial === undefined || serial === null)
        throw new Error("The parameter 'serial' must be defined.");
    url\_ = url\_.replace("{serial}", encodeURIComponent("" + serial)); 
    if (keep === undefined)
        throw new Error("The parameter 'keep' must be defined.");
    else
        url\_ += "keep=" + encodeURIComponent("" + keep) + "&"; 
    url\_ = url\_.replace(/\[?&\]$/, "");

    let options\_ = <RequestInit>{
        method: "POST",
        headers: {
            "X-Api-Key": x\_Api\_Key !== undefined && x\_Api\_Key !== null ? "" + x\_Api\_Key : "",
        }
    };

    return this.http.fetch(url\_, options\_).then((\_response: Response) => {
        return this.processDeleteSubscription2(\_response);
    });
}

protected processDeleteSubscription2(response: Response): Promise<void> {
    const status = response.status;
    let \_headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => \_headers\[k\] = v); };
    if (status === 204) {
        return response.text().then((\_responseText) => {
        return;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((\_responseText) => {
        return throwException("An unexpected server error occurred.", status, \_responseText, \_headers);
        });
    }
    return Promise.resolve<void>(<any>null);
}

}

export class KeyView implements IKeyView {
serial?: string;
current?: boolean;
commenced!: Date;
callbackOnModify!: boolean;
created?: Date;
updated?: Date | undefined;
frequency!: string;
action!: string;
name?: string | undefined;
callbackUrl?: string | undefined;
custom?: any | undefined;

constructor(data?: IKeyView) {
    if (data) {
        for (var property in data) {
            if (data.hasOwnProperty(property))
                (<any>this)\[property\] = (<any>data)\[property\];
        }
    }
}

init(data?: any) {
    if (data) {
        this.serial = data\["serial"\];
        this.current = data\["current"\];
        this.commenced = data\["commenced"\] ? new Date(data\["commenced"\].toString()) : <any>undefined;
        this.callbackOnModify = data\["callbackOnModify"\];
        this.created = data\["created"\] ? new Date(data\["created"\].toString()) : <any>undefined;
        this.updated = data\["updated"\] ? new Date(data\["updated"\].toString()) : <any>undefined;
        this.frequency = data\["frequency"\];
        this.action = data\["action"\];
        this.name = data\["name"\];
        this.callbackUrl = data\["callbackUrl"\];
        this.custom = data\["custom"\];
    }
}

static fromJS(data: any): KeyView {
    data = typeof data === 'object' ? data : {};
    let result = new KeyView();
    result.init(data);
    return result;
}

toJSON(data?: any) {
    data = typeof data === 'object' ? data : {};
    data\["serial"\] = this.serial;
    data\["current"\] = this.current;
    data\["commenced"\] = this.commenced ? this.commenced.toISOString() : <any>undefined;
    data\["callbackOnModify"\] = this.callbackOnModify;
    data\["created"\] = this.created ? this.created.toISOString() : <any>undefined;
    data\["updated"\] = this.updated ? this.updated.toISOString() : <any>undefined;
    data\["frequency"\] = this.frequency;
    data\["action"\] = this.action;
    data\["name"\] = this.name;
    data\["callbackUrl"\] = this.callbackUrl;
    data\["custom"\] = this.custom;
    return data; 
}

}

export interface IKeyView {
serial?: string;
current?: boolean;
commenced: Date;
callbackOnModify: boolean;
created?: Date;
updated?: Date | undefined;
frequency: string;
action: string;
name?: string | undefined;
callbackUrl?: string | undefined;
custom?: any | undefined;
}

export class CurrentKey implements ICurrentKey {
current?: boolean;

constructor(data?: ICurrentKey) {
    if (data) {
        for (var property in data) {
            if (data.hasOwnProperty(property))
                (<any>this)\[property\] = (<any>data)\[property\];
        }
    }
}

init(data?: any) {
    if (data) {
        this.current = data\["current"\];
    }
}

static fromJS(data: any): CurrentKey {
    data = typeof data === 'object' ? data : {};
    let result = new CurrentKey();
    result.init(data);
    return result;
}

toJSON(data?: any) {
    data = typeof data === 'object' ? data : {};
    data\["current"\] = this.current;
    return data; 
}

}

export interface ICurrentKey {
current?: boolean;
}

export class Expiry implements IExpiry {
expires?: Date;
time?: string;

constructor(data?: IExpiry) {
    if (data) {
        for (var property in data) {
            if (data.hasOwnProperty(property))
                (<any>this)\[property\] = (<any>data)\[property\];
        }
    }
}

init(data?: any) {
    if (data) {
        this.expires = data\["expires"\] ? new Date(data\["expires"\].toString()) : <any>undefined;
        this.time = data\["time"\];
    }
}

static fromJS(data: any): Expiry {
    data = typeof data === 'object' ? data : {};
    let result = new Expiry();
    result.init(data);
    return result;
}

toJSON(data?: any) {
    data = typeof data === 'object' ? data : {};
    data\["expires"\] = this.expires ? this.expires.toISOString() : <any>undefined;
    data\["time"\] = this.time;
    return data; 
}

}

export interface IExpiry {
expires?: Date;
time?: string;
}

export class CountOf implements ICountOf {
count?: number;

constructor(data?: ICountOf) {
    if (data) {
        for (var property in data) {
            if (data.hasOwnProperty(property))
                (<any>this)\[property\] = (<any>data)\[property\];
        }
    }
}

init(data?: any) {
    if (data) {
        this.count = data\["count"\];
    }
}

static fromJS(data: any): CountOf {
    data = typeof data === 'object' ? data : {};
    let result = new CountOf();
    result.init(data);
    return result;
}

toJSON(data?: any) {
    data = typeof data === 'object' ? data : {};
    data\["count"\] = this.count;
    return data; 
}

}

export interface ICountOf {
count?: number;
}

export class ApiKey implements IApiKey {
key?: string;

constructor(data?: IApiKey) {
    if (data) {
        for (var property in data) {
            if (data.hasOwnProperty(property))
                (<any>this)\[property\] = (<any>data)\[property\];
        }
    }
}

init(data?: any) {
    if (data) {
        this.key = data\["key"\];
    }
}

static fromJS(data: any): ApiKey {
    data = typeof data === 'object' ? data : {};
    let result = new ApiKey();
    result.init(data);
    return result;
}

toJSON(data?: any) {
    data = typeof data === 'object' ? data : {};
    data\["key"\] = this.key;
    return data; 
}

}

export interface IApiKey {
key?: string;
}

export class ProductView implements IProductView {
name?: string | undefined;
serial?: string;
created?: Date;
updated?: Date | undefined;
custom?: any | undefined;
subscriptions?: SubscriptionView[] | undefined;

constructor(data?: IProductView) {
    if (data) {
        for (var property in data) {
            if (data.hasOwnProperty(property))
                (<any>this)\[property\] = (<any>data)\[property\];
        }
    }
}

init(data?: any) {
    if (data) {
        this.name = data\["name"\];
        this.serial = data\["serial"\];
        this.created = data\["created"\] ? new Date(data\["created"\].toString()) : <any>undefined;
        this.updated = data\["updated"\] ? new Date(data\["updated"\].toString()) : <any>undefined;
        this.custom = data\["custom"\];
        if (Array.isArray(data\["subscriptions"\])) {
            this.subscriptions = \[\] as any;
            for (let item of data\["subscriptions"\])
                this.subscriptions!.push(SubscriptionView.fromJS(item));
        }
    }
}

static fromJS(data: any): ProductView {
    data = typeof data === 'object' ? data : {};
    let result = new ProductView();
    result.init(data);
    return result;
}

toJSON(data?: any) {
    data = typeof data === 'object' ? data : {};
    data\["name"\] = this.name;
    data\["serial"\] = this.serial;
    data\["created"\] = this.created ? this.created.toISOString() : <any>undefined;
    data\["updated"\] = this.updated ? this.updated.toISOString() : <any>undefined;
    data\["custom"\] = this.custom;
    if (Array.isArray(this.subscriptions)) {
        data\["subscriptions"\] = \[\];
        for (let item of this.subscriptions)
            data\["subscriptions"\].push(item.toJSON());
    }
    return data; 
}

}

export interface IProductView {
name?: string | undefined;
serial?: string;
created?: Date;
updated?: Date | undefined;
custom?: any | undefined;
subscriptions?: SubscriptionView[] | undefined;
}

export class SubscriptionView implements ISubscriptionView {
commenced!: Date;
callbackOnModify!: boolean;
created?: Date;
updated?: Date | undefined;
frequency!: string;
action!: string;
name?: string | undefined;
callbackUrl?: string | undefined;
custom?: any | undefined;
keys?: KeyView[] | undefined;

constructor(data?: ISubscriptionView) {
    if (data) {
        for (var property in data) {
            if (data.hasOwnProperty(property))
                (<any>this)\[property\] = (<any>data)\[property\];
        }
    }
}

init(data?: any) {
    if (data) {
        this.commenced = data\["commenced"\] ? new Date(data\["commenced"\].toString()) : <any>undefined;
        this.callbackOnModify = data\["callbackOnModify"\];
        this.created = data\["created"\] ? new Date(data\["created"\].toString()) : <any>undefined;
        this.updated = data\["updated"\] ? new Date(data\["updated"\].toString()) : <any>undefined;
        this.frequency = data\["frequency"\];
        this.action = data\["action"\];
        this.name = data\["name"\];
        this.callbackUrl = data\["callbackUrl"\];
        this.custom = data\["custom"\];
        if (Array.isArray(data\["keys"\])) {
            this.keys = \[\] as any;
            for (let item of data\["keys"\])
                this.keys!.push(KeyView.fromJS(item));
        }
    }
}

static fromJS(data: any): SubscriptionView {
    data = typeof data === 'object' ? data : {};
    let result = new SubscriptionView();
    result.init(data);
    return result;
}

toJSON(data?: any) {
    data = typeof data === 'object' ? data : {};
    data\["commenced"\] = this.commenced ? this.commenced.toISOString() : <any>undefined;
    data\["callbackOnModify"\] = this.callbackOnModify;
    data\["created"\] = this.created ? this.created.toISOString() : <any>undefined;
    data\["updated"\] = this.updated ? this.updated.toISOString() : <any>undefined;
    data\["frequency"\] = this.frequency;
    data\["action"\] = this.action;
    data\["name"\] = this.name;
    data\["callbackUrl"\] = this.callbackUrl;
    data\["custom"\] = this.custom;
    if (Array.isArray(this.keys)) {
        data\["keys"\] = \[\];
        for (let item of this.keys)
            data\["keys"\].push(item.toJSON());
    }
    return data; 
}

}

export interface ISubscriptionView {
commenced: Date;
callbackOnModify: boolean;
created?: Date;
updated?: Date | undefined;
frequency: string;
action: string;
name?: string | undefined;
callbackUrl?: string | undefined;
custom?: any | undefined;
keys?: KeyView[] | undefined;
}

export class FindCredentials implements IFindCredentials {
key?: string;
serial?: string;

constructor(data?: IFindCredentials) {
    if (data) {
        for (var property in data) {
            if (data.hasOwnProperty(property))
                (<any>this)\[property\] = (<any>data)\[property\];
        }
    }
}

init(data?: any) {
    if (data) {
        this.key = data\["key"\];
        this.serial = data\["serial"\];
    }
}

static fromJS(data: any): FindCredentials {
    data = typeof data === 'object' ? data : {};
    let result = new FindCredentials();
    result.init(data);
    return result;
}

toJSON(data?: any) {
    data = typeof data === 'object' ? data : {};
    data\["key"\] = this.key;
    data\["serial"\] = this.serial;
    return data; 
}

}

export interface IFindCredentials {
key?: string;
serial?: string;
}

export class ProductCreateModify implements IProductCreateModify {
key?: string;
serial?: string | undefined;
name?: string | undefined;
custom?: any | undefined;

constructor(data?: IProductCreateModify) {
    if (data) {
        for (var property in data) {
            if (data.hasOwnProperty(property))
                (<any>this)\[property\] = (<any>data)\[property\];
        }
    }
}

init(data?: any) {
    if (data) {
        this.key = data\["key"\];
        this.serial = data\["serial"\];
        this.name = data\["name"\];
        this.custom = data\["custom"\];
    }
}

static fromJS(data: any): ProductCreateModify {
    data = typeof data === 'object' ? data : {};
    let result = new ProductCreateModify();
    result.init(data);
    return result;
}

toJSON(data?: any) {
    data = typeof data === 'object' ? data : {};
    data\["key"\] = this.key;
    data\["serial"\] = this.serial;
    data\["name"\] = this.name;
    data\["custom"\] = this.custom;
    return data; 
}

}

export interface IProductCreateModify {
key?: string;
serial?: string | undefined;
name?: string | undefined;
custom?: any | undefined;
}

export class ApiCredentials implements IApiCredentials {
key?: string;
serial?: string | undefined;

constructor(data?: IApiCredentials) {
    if (data) {
        for (var property in data) {
            if (data.hasOwnProperty(property))
                (<any>this)\[property\] = (<any>data)\[property\];
        }
    }
}

init(data?: any) {
    if (data) {
        this.key = data\["key"\];
        this.serial = data\["serial"\];
    }
}

static fromJS(data: any): ApiCredentials {
    data = typeof data === 'object' ? data : {};
    let result = new ApiCredentials();
    result.init(data);
    return result;
}

toJSON(data?: any) {
    data = typeof data === 'object' ? data : {};
    data\["key"\] = this.key;
    data\["serial"\] = this.serial;
    return data; 
}

}

export interface IApiCredentials {
key?: string;
serial?: string | undefined;
}

export class SubscriptionCreateModify implements ISubscriptionCreateModify {
frequency!: string;
action!: string;
name?: string | undefined;
callbackUrl?: string | undefined;
key?: string;
serial?: string;
custom?: any | undefined;
startFrom?: string | undefined;
callbackOnModify?: boolean | undefined;

constructor(data?: ISubscriptionCreateModify) {
    if (data) {
        for (var property in data) {
            if (data.hasOwnProperty(property))
                (<any>this)\[property\] = (<any>data)\[property\];
        }
    }
}

init(data?: any) {
    if (data) {
        this.frequency = data\["frequency"\];
        this.action = data\["action"\];
        this.name = data\["name"\];
        this.callbackUrl = data\["callbackUrl"\];
        this.key = data\["key"\];
        this.serial = data\["serial"\];
        this.custom = data\["custom"\];
        this.startFrom = data\["startFrom"\];
        this.callbackOnModify = data\["callbackOnModify"\];
    }
}

static fromJS(data: any): SubscriptionCreateModify {
    data = typeof data === 'object' ? data : {};
    let result = new SubscriptionCreateModify();
    result.init(data);
    return result;
}

toJSON(data?: any) {
    data = typeof data === 'object' ? data : {};
    data\["frequency"\] = this.frequency;
    data\["action"\] = this.action;
    data\["name"\] = this.name;
    data\["callbackUrl"\] = this.callbackUrl;
    data\["key"\] = this.key;
    data\["serial"\] = this.serial;
    data\["custom"\] = this.custom;
    data\["startFrom"\] = this.startFrom;
    data\["callbackOnModify"\] = this.callbackOnModify;
    return data; 
}

}

export interface ISubscriptionCreateModify {
frequency: string;
action: string;
name?: string | undefined;
callbackUrl?: string | undefined;
key?: string;
serial?: string;
custom?: any | undefined;
startFrom?: string | undefined;
callbackOnModify?: boolean | undefined;
}

export interface FileResponse {
data: Blob;
status: number;
fileName?: string;
headers?: { [name: string]: any };
}

export class ApiException extends Error {
message: string;
status: number;
response: string;
headers: { [key: string]: any; };
result: any;

constructor(message: string, status: number, response: string, headers: { \[key: string\]: any; }, result: any) {
    super();

    this.message = message;
    this.status = status;
    this.response = response;
    this.headers = headers;
    this.result = result;
}

protected isApiException = true;

static isApiException(obj: any): obj is ApiException {
    return obj.isApiException === true;
}

}

function throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {
if (result !== null && result !== undefined)
throw result;
else
throw new ApiException(message, status, response, headers, null);
}