@mindconnect/mindconnect-nodejs
Version:
NodeJS Library for Siemens Insights Hub Connectivity - TypeScript SDK for Insights Hub and Industrial IoT - Command Line Interface - Insights Hub Development Proxy (Siemens Insights Hub was formerly known as MindSphere)
483 lines • 24.9 kB
JavaScript
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModelManagementClient = void 0;
const utils_1 = require("../../utils");
const sdk_client_1 = require("../common/sdk-client");
const model_data_template_1 = require("./model-data-template");
const model_models_1 = require("./model-models");
/**
* Service for configuring, reading and managing assets, asset ~ and aspect types.
*
* @export
* @class AssetManagementClient
* @extends {SdkClient}
*/
class ModelManagementClient extends sdk_client_1.SdkClient {
constructor() {
super(...arguments);
this._baseUrl = "/api/modelmanagement/v3";
}
/**
* * Models
*
* List all all models and algorithms available for the authenticated user.
*
* @param {{
* pageNumber?: number;
* pageSize?: number;
* filter?: string;
* sort?: string;
* }} [params]
* @param [params.pageNumber] Specifies the requested page index
* @param [params.pageSize] Specifies the number of elements in a page
* @param [params.filter] Specifies the additional filtering criteria.
* Complex filter that can filter by model name, type, description, author or fields set as optional parameters. All fields are optional. Filters can be set as plain string or as a regular expression.
* The expected format follows:
* @example {"name":"model\*","type":"type","description":"modelDescription","optionalParameters":{"entityId":"64","entityName": "*"}}
*
* @param [params.sort] Specifies the ordering of returned elements e.g. 'asc' or 'desc'
*
* @returns {Promise<ModelManagementModels.ModelArray>}
*
* @example await modelManagement.GetModels();
* @example await modelManagement.GetModels({sort: "asc"});
*
* @memberOf ModelManagementClient
*/
GetModels(params) {
return __awaiter(this, void 0, void 0, function* () {
const parameters = params || {};
const { pageNumber, pageSize, filter, sort } = parameters;
const result = yield this.HttpAction({
verb: "GET",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models?${(0, utils_1.toQueryString)({ pageNumber, pageSize, filter, sort })}`,
additionalHeaders: { "Content-Type": "application/json" },
});
return result;
});
}
/**
* * Models
*
* Gets the model for the given model id.
*
* @param {string} id
* @returns {Promise<ModelManagementModels.Model>}
*
* @example await modelManagement.GetModel("mdsp.SimulationEngine")
* @memberOf ModelManagementClient
*/
GetModel(id) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'modelId' is not null or undefined
if (id === null || id === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling GetModel.");
}
const result = yield this.HttpAction({
verb: "GET",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models/${id}`,
additionalHeaders: { "Content-Type": "application/json" },
});
return result;
});
}
/**
* * Models
*
* Updates the model's metadata.
*
* @param {string} id ID of the model which is to be updated
* @param {ModelManagementModels.ModelDefinition} model
* @returns {Promise<ModelManagementModels.Model>}
* @throws {ModelManagementModels.RequiredError}
*
* @example await modelManagement.PatchModel("mdsp.SimulationEngine", myModelDefinition)
* @memberOf ModelManagementClient
*/
PatchModel(id, model) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'modelId' is not null or undefined
if (id === null || id === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling PatchModel.");
}
// verify required parameter 'model' is not null or undefined
if (model === null || model === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("model", "Required parameter model was null or undefined when calling PatchModel.");
}
const result = yield this.HttpAction({
verb: "PATCH",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models/${id}`,
body: model,
additionalHeaders: { "Content-Type": "application/json" },
});
return result;
});
}
/**
* * Models
*
* Deletes a model, all the versions and the corresponding metadata.
* Also, use this endpoint if needed to delete a model that has a single version available.
*
* @param {string} id ID of the model which is to be updated
*
* @example await modelManagement.DeleteModel(id)
*
* @memberOf ModelManagementClient
*/
DeleteModel(id) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'modelId' is not null or undefined
if (id === null || id === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling DeleteModel.");
}
yield this.HttpAction({
verb: "DELETE",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models/${id}`,
noResponse: true,
});
});
}
/**
* * Models
*
* Uploads a model payload and the corresponding metadata.
*
* @param {any} file The model/algorithm file
* @param {ModelManagementModels.ModelDefinition} metadata The details regarding what the model represents, as name, author, type, description, in JSON format (see definitions/Model and definitions/VersionDefinition)<br /> <pre> { name: \"NN - Quasi Newton\", description: \"Newton using variable matrix methods\", type: \"Zeppelin notebook\", author: \"user@siemens.com\", version: { number: 3.1, expirationDate: \"2017-10-01T12:00:00.001Z\", author: \"user@siemens.com\", creationDate: \"2017-10-01T12:00:00.001Z\", dependencies: [ { name: \"sklearn-theano\", type: \"Python\", version: \"1.7, 5.2.6\" } ], io: { consumes: \"CSV/XML/Parquet\", input: [ { name: \"t1\", type: \"integer\", description: \"temperature sensor value\", value: 5 } ], output: [ { name: \"t1\", type: \"integer\", description: \"temperature sensor value\", value: 5 } ], optionalParameters: { freeFormParams: \"for the author to use\" } }, producedBy: [ {\"951b3240-7857-11e8-adc0-fa7ae01bbebc\"} ], kpi: [ { name: \"error rate\", value: 0.9 } ] } }</pre>
* @returns {Promise<ModelManagementModels.Model>}
*
* @memberOf ModelManagementClient
*/
PostModel(metadata, payload) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'file' is not null or undefined
if (payload === null || payload === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("file", "Required parameter file was null or undefined when calling postModel.");
}
// verify required parameter 'metadata' is not null or undefined
if (metadata === null || metadata === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("metadata", "Required parameter metadata was null or undefined when calling postModel.");
}
const body = (0, model_data_template_1.modelDataTemplate)(metadata, payload);
const result = yield this.HttpAction({
verb: "POST",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models`,
body: body,
multiPartFormData: true,
additionalHeaders: { enctype: "multipart/form-data" },
});
return result;
});
}
/**
* * Versions
*
* Retrieves all the versions of a model or an algorithm based on the model identifier.
* Whenever a new model file or a metadata JSON are uploaded as an update of an existing entry a new version of the entry is created.
*
* @param {{
* modelId?: string;
* pageNumber?: number;
* pageSize?: number;
* }} [params]
* @param [params.modelId] Model ID to get the information for it
* @param [params.pageNumber] Specifies the requested page index
* @param [params.pageSize] Specifies the number of elements in a page
*
* @returns {Promise<ModelManagementModels.VersionArray>}
*
* @memberOf ModelManagementClient
*/
GetModelVersions(params) {
return __awaiter(this, void 0, void 0, function* () {
const parameters = params || {};
const { modelId, pageNumber, pageSize } = parameters;
// verify required parameter 'modelId' is not null or undefined
if (modelId === null || modelId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling GetModelVersions.");
}
const result = yield this.HttpAction({
verb: "GET",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models/${modelId}/versions?${(0, utils_1.toQueryString)({ pageNumber, pageSize })}`,
additionalHeaders: { "Content-Type": "application/json" },
});
return result;
});
}
/**
* * Model Version
*
* Retrieves the metadata of the model with specified version.
*
* @param {string} modelId Model ID to get the information for it
* @param {string} versionId Version ID to get the information for it
*
* @example await modelManagement.GetModelVersion("mdsp.SimulationEngine", "v0.0.1")
* @memberOf ModelManagementClient
*/
GetModelVersion(modelId, versionId) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'modelId' is not null or undefined
if (modelId === null || modelId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling GetModelVersion.");
}
// verify required parameter 'versionId' is not null or undefined
if (versionId === null || versionId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("versionId", "Required parameter versionId was null or undefined when calling GetModelVersion.");
}
const result = yield this.HttpAction({
verb: "GET",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models/${modelId}/versions/${versionId}`,
additionalHeaders: { "Content-Type": "application/json" },
});
return result;
});
}
/**
* * Model Version
*
* Retrieves the payload of the model with specified version.
*
* @param {string} modelId Model ID to get the information for it
* @param {string} versionId Version ID to get the information for it
*
* @memberOf ModelManagementClient
*/
DownloadModelVersion(modelId, versionId) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'modelId' is not null or undefined
if (modelId === null || modelId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling GetModelVersion.");
}
// verify required parameter 'versionId' is not null or undefined
if (versionId === null || versionId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("versionId", "Required parameter versionId was null or undefined when calling GetModelVersion.");
}
const result = yield this.HttpAction({
verb: "GET",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models/${modelId}/versions/${versionId}`,
additionalHeaders: { "Content-Type": "application/octet-stream" },
rawResponse: true,
});
return result;
});
}
/**
* * Model Version
*
* Downloads the last version payload or description of a model.
*
* @param {string} modelId Id of the model
* @returns {Promise<ModelManagementModels.Version>}
*
* @example await modelManagement.GetModelLastVersion("mdsp.SimulationEngine")
* @memberOf ModelManagementClient
*/
GetModelLastVersion(modelId) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'modelId' is not null or undefined
if (modelId === null || modelId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling modelsModelIdGet.");
}
const result = yield this.HttpAction({
verb: "GET",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models/${modelId}/versions/last`,
additionalHeaders: { "Content-Type": "application/json" },
});
return result;
});
}
/**
* * Model Version
*
* Retrieves the last version of model payload.
*
* @param {string} modelId Id of the model
* @returns {Promise<ModelManagementModels.Version>}
*
* @memberOf ModelManagementClient
*/
DownloadModelLastVersion(modelId) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'modelId' is not null or undefined
if (modelId === null || modelId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling modelsModelIdGet.");
}
const result = yield this.HttpAction({
verb: "GET",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models/${modelId}/versions/last`,
additionalHeaders: { "Content-Type": "application/octet-stream" },
rawResponse: true,
});
return result;
});
}
/**
* * Model Version
*
* Deletes a version of a model and the corresponding metadata,
* only if the version is not the single available version for the model.
*
* @summary Deletes the specified version of a model and the corresponding metadata
* @param {string} modelId Id of the model
* @param {string} versionId The version id
*
* @example await modelManagement.DeleteModelVersion(myModelId, myVersionId)
*
* @memberOf ModelManagementClient
*/
DeleteModelVersion(modelId, versionId) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'modelId' is not null or undefined
if (modelId === null || modelId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling modelsModelIdVersionsVersionIdDelete.");
}
// verify required parameter 'versionId' is not null or undefined
if (versionId === null || versionId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("versionId", "Required parameter versionId was null or undefined when calling modelsModelIdVersionsVersionIdDelete.");
}
const baseUrl = `${this._baseUrl}/models/{modelId}/versions/{versionId}`
.replace(`{${"modelId"}}`, encodeURIComponent(String(modelId)))
.replace(`{${"versionId"}}`, encodeURIComponent(String(versionId)));
yield this.HttpAction({
verb: "DELETE",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: baseUrl,
noResponse: true,
});
});
}
/**
* * Model Version
*
* Deletes the last version of a model and its associated payload.
* If the version is the only version of the model all the information regarding the model will be deleted.
*
* @param {string} modelId Id of the model
*
* @example await modelManagement.DeleteModelLastVersion(myModelId)
*
* @memberOf ModelManagementClient
*/
DeleteModelLastVersion(modelId) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'modelId' is not null or undefined
if (modelId === null || modelId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling DeleteModelLastVersion.");
}
yield this.HttpAction({
verb: "DELETE",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models/${modelId}/versions/last`,
noResponse: true,
});
});
}
/**
* * Model Version
*
* Updates the last version metadata information of a model, without allowing updates to the model payload itself
*
* @param {string} modelId The model id
* @param {ModelManagementModels.VersionDefinition} version
* @returns {Promise<ModelManagementModels.VersionDefinition>}
* @throws {ModelManagementModels.RequiredError}
*
* @example await modelManagement.PatchLastModelVersion("mdsp.SimulationEngine", myModelVersionDefinition)
* @memberOf ModelManagementClient
*/
PatchLastModelVersion(modelId, version) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'modelId' is not null or undefined
if (modelId === null || modelId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling PatchLastModelVersion.");
}
// verify required parameter 'version' is not null or undefined
if (version === null || version === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("version", "Required parameter version was null or undefined when calling PatchLastModelVersion.");
}
const result = yield this.HttpAction({
verb: "PATCH",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models/${modelId}/versions/last`,
body: version,
additionalHeaders: { "Content-Type": "application/json" },
});
return result;
});
}
/**
* * Model Versions
*
* Create a new model version.
*
* @param {string} modelId Model ID to create a new verion for
* @param {any} file The model/algorithm file
* @param {ModelManagementModels.VersionDefinition} metadata Version data in JSON format (See definitions/VersionDefinition) <pre> { number: 3.1, expirationDate: \"2017-10-01T12:00:00.001Z\", author: \"user@siemens.com\", creationDate: \"2017-10-01T12:00:00.001Z\", dependencies: [ { name: \"sklearn-theano\", type: \"Python\", version: \"1.7, 5.2.6\" } ], io: { consumes: \"CSV/XML/Parquet\", input: [ { name: \"t1\", type: \"integer\", description: \"temperature sensor value\", value: 5 } ], output: [ { name: \"t1\", type: \"integer\", description: \"temperature sensor value\", value: 5 } ], optionalParameters: { freeFormParams: \"for the author to use\" } }, producedBy: [ {\"951b3240-7857-11e8-adc0-fa7ae01bbebc\"} ], kpi: [ { name: \"error rate\", value: 0.9 } ] } </pre>
* @returns {Promise<ModelManagementModels.Version>}
*
* @memberOf ModelManagementClient
*/
PostModelVersion(modelId, metadata, payload) {
return __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'modelId' is not null or undefined
if (modelId === null || modelId === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("modelId", "Required parameter modelId was null or undefined when calling postModelVersion.");
}
// verify required parameter 'file' is not null or undefined
if (payload === null || payload === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("file", "Required parameter file was null or undefined when calling postModelVersion.");
}
// verify required parameter 'metadata' is not null or undefined
if (metadata === null || metadata === undefined) {
throw new model_models_1.ModelManagementModels.RequiredError("metadata", "Required parameter metadata was null or undefined when calling postModelVersion.");
}
const body = (0, model_data_template_1.modelDataTemplate)(metadata, payload);
const result = yield this.HttpAction({
verb: "POST",
gateway: this.GetGateway(),
authorization: yield this.GetToken(),
baseUrl: `${this._baseUrl}/models/${modelId}/versions`,
body: body,
multiPartFormData: true,
additionalHeaders: { enctype: "multipart/form-data" },
});
return result;
});
}
}
exports.ModelManagementClient = ModelManagementClient;
//# sourceMappingURL=model-management.js.map