kuzzle-device-manager-types 2.4.0-beta.8 → 2.4.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/modules/asset/AssetService.d.ts +18 -4
- package/dist/lib/modules/asset/AssetsController.d.ts +7 -1
- package/dist/lib/modules/asset/roles/RoleAssetsReader.d.ts +4 -0
- package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsConfiguration.d.ts +8 -0
- package/dist/lib/modules/asset/roles/specificRoles/RoleAssetsCreation.d.ts +8 -0
- package/dist/lib/modules/asset/roles/specificRoles/index.d.ts +2 -0
- package/dist/lib/modules/asset/types/AssetApi.d.ts +31 -2
- package/dist/lib/modules/decoder/Decoder.d.ts +11 -0
- package/dist/lib/modules/decoder/PayloadService.d.ts +1 -1
- package/dist/lib/modules/decoder/types/DecoderContent.d.ts +1 -0
- package/dist/lib/modules/device/DeviceService.d.ts +14 -5
- package/dist/lib/modules/device/DevicesController.d.ts +7 -1
- package/dist/lib/modules/device/roles/RoleDevicesReader.d.ts +4 -0
- package/dist/lib/modules/device/roles/specificRoles/RoleDevicesAssetAssociation.d.ts +8 -0
- package/dist/lib/modules/device/roles/specificRoles/RoleDevicesConfiguration.d.ts +8 -0
- package/dist/lib/modules/device/roles/specificRoles/RoleDevicesCreation.d.ts +8 -0
- package/dist/lib/modules/device/roles/specificRoles/index.d.ts +3 -0
- package/dist/lib/modules/device/types/DeviceApi.d.ts +23 -2
- package/dist/lib/modules/measure/MeasureExporter.d.ts +5 -4
- package/dist/lib/modules/measure/collections/measuresMappings.d.ts +3 -0
- package/dist/lib/modules/measure/types/MeasureContent.d.ts +4 -0
- package/dist/lib/modules/measure/types/MeasureDefinition.d.ts +28 -3
- package/dist/lib/modules/model/MappingsConflictsError.d.ts +7 -0
- package/dist/lib/modules/model/ModelService.d.ts +16 -6
- package/dist/lib/modules/model/ModelsConflicts.d.ts +30 -0
- package/dist/lib/modules/model/ModelsController.d.ts +5 -1
- package/dist/lib/modules/model/ModelsRegister.d.ts +28 -3
- package/dist/lib/modules/model/types/ModelApi.d.ts +50 -4
- package/dist/lib/modules/model/types/ModelContent.d.ts +263 -2
- package/dist/lib/modules/model/types/ModelDefinition.d.ts +141 -5
- package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +141 -5
- package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +113 -8
- package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +18 -4
- package/dist/lib/modules/shared/exports.d.ts +2 -0
- package/dist/lib/modules/shared/index.d.ts +6 -4
- package/dist/lib/modules/shared/services/AbstractExporter.d.ts +1 -2
- package/dist/lib/modules/shared/services/DigitalTwinExporter.d.ts +0 -2
- package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +21 -0
- package/dist/lib/modules/shared/services/index.d.ts +1 -0
- package/dist/lib/modules/shared/types/DigitalTwinApi.d.ts +34 -0
- package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +2 -4
- package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +9 -0
- package/dist/lib/modules/shared/types/DigitalTwinMeasures.d.ts +5 -0
- package/dist/tests/application/assets/Container.d.ts +3 -0
- package/dist/tests/application/assets/Room.d.ts +2 -0
- package/dist/tests/application/assets/StreetLamp.d.ts +2 -0
- package/dist/tests/application/decoders/DummyTempPositionDecoder.d.ts +1 -0
- package/dist/tests/application/measures/BrightnessMeasure.d.ts +2 -0
- package/dist/tests/application/measures/CO2Measure.d.ts +2 -0
- package/dist/tests/application/measures/IlluminanceMeasure.d.ts +2 -0
- package/dist/tests/application/measures/PowerConsumptionMeasure.d.ts +2 -0
- package/package.json +4 -3
- package/dist/lib/modules/shared/utils/ask.d.ts +0 -8
|
@@ -1,20 +1,34 @@
|
|
|
1
1
|
import { KuzzleRequest, User } from "kuzzle";
|
|
2
2
|
import { JSONObject, KDocument, KHit, SearchResult, mReplaceResponse } from "kuzzle-sdk";
|
|
3
3
|
import { DeviceManagerPlugin } from "../plugin";
|
|
4
|
-
import {
|
|
4
|
+
import { DigitalTwinService, Metadata, SearchParams } from "../shared";
|
|
5
5
|
import { AssetHistoryService } from "./AssetHistoryService";
|
|
6
|
-
import { AssetContent } from "./types/AssetContent";
|
|
7
6
|
import { ApiAssetMigrateTenantResult } from "./types/AssetApi";
|
|
8
|
-
|
|
7
|
+
import { AssetContent } from "./types/AssetContent";
|
|
8
|
+
export declare class AssetService extends DigitalTwinService {
|
|
9
9
|
private assetHistoryService;
|
|
10
10
|
constructor(plugin: DeviceManagerPlugin, assetHistoryService: AssetHistoryService);
|
|
11
11
|
registerAskEvents(): void;
|
|
12
12
|
get(engineId: string, assetId: string, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* Update an asset metadata
|
|
15
15
|
*/
|
|
16
16
|
update(engineId: string, assetId: string, metadata: Metadata, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
17
|
+
/**
|
|
18
|
+
* Replace an asset metadata
|
|
19
|
+
*/
|
|
20
|
+
replaceMetadata(engineId: string, assetId: string, metadata: Metadata, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
21
|
+
/**
|
|
22
|
+
* Update or Create an asset metadata
|
|
23
|
+
*/
|
|
24
|
+
upsert(engineId: string, model: string, reference: string, metadata: Metadata, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
25
|
+
/**
|
|
26
|
+
* Create an asset metadata
|
|
27
|
+
*/
|
|
17
28
|
create(engineId: string, model: string, reference: string, metadata: JSONObject, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
29
|
+
/**
|
|
30
|
+
* Delete an asset metadata
|
|
31
|
+
*/
|
|
18
32
|
delete(engineId: string, assetId: string, request: KuzzleRequest): Promise<void>;
|
|
19
33
|
search(engineId: string, searchParams: SearchParams, request: KuzzleRequest): Promise<SearchResult<KHit<AssetContent>>>;
|
|
20
34
|
migrateTenant(user: User, assetsList: string[], engineId: string, newEngineId: string): Promise<ApiAssetMigrateTenantResult>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ControllerDefinition, KuzzleRequest } from "kuzzle";
|
|
2
2
|
import { DeviceManagerPlugin } from "../plugin";
|
|
3
3
|
import { AssetService } from "./AssetService";
|
|
4
|
-
import { ApiAssetCreateResult, ApiAssetDeleteResult, ApiAssetGetMeasuresResult, ApiAssetGetResult, ApiAssetSearchResult, ApiAssetUpdateResult, ApiAssetMigrateTenantResult } from "./types/AssetApi";
|
|
4
|
+
import { ApiAssetCreateResult, ApiAssetUpsertResult, ApiAssetDeleteResult, ApiAssetGetMeasuresResult, ApiAssetGetResult, ApiAssetSearchResult, ApiAssetUpdateResult, ApiAssetMigrateTenantResult, ApiAssetMetadataReplaceResult, ApiAssetGetLastMeasuresResult, ApiAssetMGetLastMeasuredAtResult, ApiAssetMGetLastMeasuresResult, ApiAssetGetLastMeasuredAtResult } from "./types/AssetApi";
|
|
5
5
|
export declare class AssetsController {
|
|
6
6
|
private plugin;
|
|
7
7
|
private assetService;
|
|
@@ -10,12 +10,18 @@ export declare class AssetsController {
|
|
|
10
10
|
private measureExporter;
|
|
11
11
|
constructor(plugin: DeviceManagerPlugin, assetService: AssetService);
|
|
12
12
|
get(request: KuzzleRequest): Promise<ApiAssetGetResult>;
|
|
13
|
+
upsert(request: KuzzleRequest): Promise<ApiAssetUpsertResult>;
|
|
13
14
|
update(request: KuzzleRequest): Promise<ApiAssetUpdateResult>;
|
|
15
|
+
replaceMetadata(request: KuzzleRequest): Promise<ApiAssetMetadataReplaceResult>;
|
|
14
16
|
create(request: KuzzleRequest): Promise<ApiAssetCreateResult>;
|
|
15
17
|
delete(request: KuzzleRequest): Promise<ApiAssetDeleteResult>;
|
|
16
18
|
search(request: KuzzleRequest): Promise<ApiAssetSearchResult>;
|
|
17
19
|
getMeasures(request: KuzzleRequest): Promise<ApiAssetGetMeasuresResult>;
|
|
20
|
+
getLastMeasures(request: KuzzleRequest): Promise<ApiAssetGetLastMeasuresResult>;
|
|
21
|
+
mGetLastMeasures(request: KuzzleRequest): Promise<ApiAssetMGetLastMeasuresResult>;
|
|
18
22
|
exportMeasures(request: KuzzleRequest): Promise<any>;
|
|
19
23
|
export(request: KuzzleRequest): Promise<any>;
|
|
20
24
|
migrateTenant(request: KuzzleRequest): Promise<ApiAssetMigrateTenantResult>;
|
|
25
|
+
getLastMeasuredAt(request: KuzzleRequest): Promise<ApiAssetGetLastMeasuredAtResult>;
|
|
26
|
+
mGetLastMeasuredAt(request: KuzzleRequest): Promise<ApiAssetMGetLastMeasuredAtResult>;
|
|
21
27
|
}
|
|
@@ -9,8 +9,12 @@ import { KuzzleRole } from "../../shared/types/KuzzleRole";
|
|
|
9
9
|
actions: {
|
|
10
10
|
get: true,
|
|
11
11
|
getMeasures: true,
|
|
12
|
+
getLastMeasures: true,
|
|
13
|
+
mGetLastMeasures: true,
|
|
12
14
|
exportMeasures: true,
|
|
13
15
|
search: true,
|
|
16
|
+
getLastMeasuredAt: true,
|
|
17
|
+
mGetLastMeasuredAt: true,
|
|
14
18
|
},
|
|
15
19
|
},
|
|
16
20
|
"device-manager/models": {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
|
|
2
2
|
import { MeasureContent } from "../../../modules/measure";
|
|
3
|
-
import { Metadata } from "../../shared";
|
|
3
|
+
import { ApiDigitalTwinGetLastMeasuredAtRequest, ApiDigitalTwinGetLastMeasuredAtResult, ApiDigitalTwinGetLastMeasuresRequest, ApiDigitalTwinGetLastMeasuresResult, ApiDigitalTwinMGetLastMeasuredAtRequest, ApiDigitalTwinMGetLastMeasuredAtResult, ApiDigitalTwinMGetLastMeasuresRequest, ApiDigitalTwinMGetLastMeasuresResult, Metadata } from "../../shared";
|
|
4
4
|
import { AssetContent } from "./AssetContent";
|
|
5
|
+
type AssetsControllerName = "device-manager/assets";
|
|
5
6
|
interface AssetsControllerRequest {
|
|
6
|
-
controller:
|
|
7
|
+
controller: AssetsControllerName;
|
|
7
8
|
engineId: string;
|
|
8
9
|
}
|
|
9
10
|
export interface ApiAssetGetRequest extends AssetsControllerRequest {
|
|
@@ -20,6 +21,26 @@ export interface ApiAssetUpdateRequest extends AssetsControllerRequest {
|
|
|
20
21
|
};
|
|
21
22
|
}
|
|
22
23
|
export type ApiAssetUpdateResult = KDocument<AssetContent>;
|
|
24
|
+
export interface ApiAssetMetadataReplaceRequest extends AssetsControllerRequest {
|
|
25
|
+
action: "replaceMetadata";
|
|
26
|
+
_id: string;
|
|
27
|
+
refresh?: string;
|
|
28
|
+
body: {
|
|
29
|
+
metadata: Metadata;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export type ApiAssetMetadataReplaceResult = KDocument<AssetContent>;
|
|
33
|
+
export interface ApiAssetUpsertRequest extends AssetsControllerRequest {
|
|
34
|
+
action: "upsert";
|
|
35
|
+
_id: string;
|
|
36
|
+
refresh?: string;
|
|
37
|
+
body: {
|
|
38
|
+
model: string;
|
|
39
|
+
reference: string;
|
|
40
|
+
metadata: Metadata;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export type ApiAssetUpsertResult = KDocument<AssetContent>;
|
|
23
44
|
export interface ApiAssetCreateRequest extends AssetsControllerRequest {
|
|
24
45
|
action: "create";
|
|
25
46
|
refresh?: string;
|
|
@@ -64,6 +85,10 @@ export type ApiAssetGetMeasuresResult = {
|
|
|
64
85
|
measures: Array<KDocument<MeasureContent<JSONObject>>>;
|
|
65
86
|
total: number;
|
|
66
87
|
};
|
|
88
|
+
export type ApiAssetGetLastMeasuresRequest = ApiDigitalTwinGetLastMeasuresRequest<AssetsControllerName>;
|
|
89
|
+
export type ApiAssetGetLastMeasuresResult = ApiDigitalTwinGetLastMeasuresResult;
|
|
90
|
+
export type ApiAssetMGetLastMeasuresRequest = ApiDigitalTwinMGetLastMeasuresRequest<AssetsControllerName>;
|
|
91
|
+
export type ApiAssetMGetLastMeasuresResult = ApiDigitalTwinMGetLastMeasuresResult;
|
|
67
92
|
/**
|
|
68
93
|
* This action can be used only with WebSocket or POST
|
|
69
94
|
*
|
|
@@ -108,4 +133,8 @@ export type ApiAssetMigrateTenantResult = {
|
|
|
108
133
|
errors: string[];
|
|
109
134
|
successes: string[];
|
|
110
135
|
};
|
|
136
|
+
export type ApiAssetGetLastMeasuredAtRequest = ApiDigitalTwinGetLastMeasuredAtRequest<AssetsControllerName>;
|
|
137
|
+
export type ApiAssetGetLastMeasuredAtResult = ApiDigitalTwinGetLastMeasuredAtResult;
|
|
138
|
+
export type ApiAssetMGetLastMeasuredAtRequest = ApiDigitalTwinMGetLastMeasuredAtRequest<AssetsControllerName>;
|
|
139
|
+
export type ApiAssetMGetLastMeasuredAtResult = ApiDigitalTwinMGetLastMeasuredAtResult;
|
|
111
140
|
export {};
|
|
@@ -19,6 +19,17 @@ export type NamedMeasures = Array<{
|
|
|
19
19
|
*/
|
|
20
20
|
export declare abstract class Decoder {
|
|
21
21
|
private _http?;
|
|
22
|
+
/**
|
|
23
|
+
* Internal logger.
|
|
24
|
+
*/
|
|
25
|
+
log: {
|
|
26
|
+
debug: (message: any) => void;
|
|
27
|
+
error: (message: any) => void;
|
|
28
|
+
info: (message: any) => void;
|
|
29
|
+
silly: (message: any) => void;
|
|
30
|
+
verbose: (message: any) => void;
|
|
31
|
+
warn: (message: any) => void;
|
|
32
|
+
};
|
|
22
33
|
/**
|
|
23
34
|
* Device model name.
|
|
24
35
|
*
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { KuzzleRequest } from "kuzzle";
|
|
2
2
|
import { JSONObject, KDocument } from "kuzzle-sdk";
|
|
3
|
-
import { DeviceManagerPlugin } from "../plugin";
|
|
4
3
|
import { DeviceContent } from "../device";
|
|
5
4
|
import { DecodedMeasurement } from "../measure";
|
|
5
|
+
import { DeviceManagerPlugin } from "../plugin";
|
|
6
6
|
import { BaseService } from "../shared";
|
|
7
7
|
import { Decoder } from "./Decoder";
|
|
8
8
|
export declare class PayloadService extends BaseService {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { KuzzleRequest } from "kuzzle";
|
|
2
2
|
import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
|
|
3
|
-
import { AssetContent } from "./../asset";
|
|
4
|
-
import { DeviceManagerPlugin } from "../plugin";
|
|
5
|
-
import { Metadata, BaseService, SearchParams } from "../shared";
|
|
6
3
|
import { DecodedMeasurement } from "../measure";
|
|
7
|
-
import {
|
|
4
|
+
import { DeviceManagerPlugin } from "../plugin";
|
|
5
|
+
import { DigitalTwinService, Metadata, SearchParams } from "../shared";
|
|
6
|
+
import { AssetContent } from "./../asset";
|
|
8
7
|
import { ApiDeviceLinkAssetRequest } from "./types/DeviceApi";
|
|
9
|
-
|
|
8
|
+
import { DeviceContent } from "./types/DeviceContent";
|
|
9
|
+
export declare class DeviceService extends DigitalTwinService {
|
|
10
10
|
constructor(plugin: DeviceManagerPlugin);
|
|
11
11
|
registerAskEvents(): void;
|
|
12
12
|
/**
|
|
@@ -18,6 +18,15 @@ export declare class DeviceService extends BaseService {
|
|
|
18
18
|
*/
|
|
19
19
|
create(model: string, reference: string, metadata: JSONObject, request: KuzzleRequest): Promise<KDocument<DeviceContent>>;
|
|
20
20
|
get(engineId: string, deviceId: string, request: KuzzleRequest): Promise<KDocument<DeviceContent>>;
|
|
21
|
+
private getInternalDevices;
|
|
22
|
+
/**
|
|
23
|
+
* Replace a device metadata
|
|
24
|
+
*/
|
|
25
|
+
replaceMetadata(engineId: string, deviceId: string, metadata: Metadata, request: KuzzleRequest): Promise<KDocument<DeviceContent>>;
|
|
26
|
+
/**
|
|
27
|
+
* Update or Create an device metadata
|
|
28
|
+
*/
|
|
29
|
+
upsert(engineId: string, model: string, reference: string, metadata: Metadata, request: KuzzleRequest): Promise<KDocument<DeviceContent>>;
|
|
21
30
|
update(engineId: string, deviceId: string, metadata: Metadata, request: KuzzleRequest): Promise<KDocument<DeviceContent>>;
|
|
22
31
|
delete(engineId: string, deviceId: string, request: KuzzleRequest): Promise<void>;
|
|
23
32
|
search(engineId: string, searchParams: SearchParams, request: KuzzleRequest): Promise<SearchResult<KHit<DeviceContent>>>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ControllerDefinition, KuzzleRequest } from "kuzzle";
|
|
2
2
|
import { DeviceManagerPlugin } from "../plugin";
|
|
3
3
|
import { DeviceService } from "./DeviceService";
|
|
4
|
-
import { ApiDeviceAttachEngineResult, ApiDeviceCreateResult, ApiDeviceDeleteResult, ApiDeviceDetachEngineResult, ApiDeviceGetResult, ApiDeviceLinkAssetResult, ApiDeviceSearchResult, ApiDeviceUnlinkAssetResult, ApiDeviceUpdateResult, ApiDeviceGetMeasuresResult } from "./types/DeviceApi";
|
|
4
|
+
import { ApiDeviceAttachEngineResult, ApiDeviceCreateResult, ApiDeviceDeleteResult, ApiDeviceDetachEngineResult, ApiDeviceGetResult, ApiDeviceLinkAssetResult, ApiDeviceSearchResult, ApiDeviceUnlinkAssetResult, ApiDeviceUpdateResult, ApiDeviceGetMeasuresResult, ApiDeviceUpsertResult, ApiDeviceGetLastMeasuresResult, ApiDeviceMGetLastMeasuresResult, ApiDeviceGetLastMeasuredAtResult, ApiDeviceMGetLastMeasuredAtResult, ApiDeviceMetadataReplaceResult } from "./types/DeviceApi";
|
|
5
5
|
export declare class DevicesController {
|
|
6
6
|
private plugin;
|
|
7
7
|
private deviceService;
|
|
@@ -11,8 +11,10 @@ export declare class DevicesController {
|
|
|
11
11
|
constructor(plugin: DeviceManagerPlugin, deviceService: DeviceService);
|
|
12
12
|
get(request: KuzzleRequest): Promise<ApiDeviceGetResult>;
|
|
13
13
|
update(request: KuzzleRequest): Promise<ApiDeviceUpdateResult>;
|
|
14
|
+
replaceMetadata(request: KuzzleRequest): Promise<ApiDeviceMetadataReplaceResult>;
|
|
14
15
|
delete(request: KuzzleRequest): Promise<ApiDeviceDeleteResult>;
|
|
15
16
|
search(request: KuzzleRequest): Promise<ApiDeviceSearchResult>;
|
|
17
|
+
upsert(request: KuzzleRequest): Promise<ApiDeviceUpsertResult>;
|
|
16
18
|
/**
|
|
17
19
|
* Create and provision a new device
|
|
18
20
|
*/
|
|
@@ -34,7 +36,11 @@ export declare class DevicesController {
|
|
|
34
36
|
*/
|
|
35
37
|
unlinkAsset(request: KuzzleRequest): Promise<ApiDeviceUnlinkAssetResult>;
|
|
36
38
|
getMeasures(request: KuzzleRequest): Promise<ApiDeviceGetMeasuresResult>;
|
|
39
|
+
getLastMeasures(request: KuzzleRequest): Promise<ApiDeviceGetLastMeasuresResult>;
|
|
40
|
+
mGetLastMeasures(request: KuzzleRequest): Promise<ApiDeviceMGetLastMeasuresResult>;
|
|
37
41
|
exportMeasures(request: KuzzleRequest): Promise<any>;
|
|
38
42
|
receiveMeasures(request: KuzzleRequest): Promise<void>;
|
|
39
43
|
export(request: KuzzleRequest): Promise<any>;
|
|
44
|
+
getLastMeasuredAt(request: KuzzleRequest): Promise<ApiDeviceGetLastMeasuredAtResult>;
|
|
45
|
+
mGetLastMeasuredAt(request: KuzzleRequest): Promise<ApiDeviceMGetLastMeasuredAtResult>;
|
|
40
46
|
}
|
|
@@ -10,7 +10,11 @@ import { KuzzleRole } from "../../shared/types/KuzzleRole";
|
|
|
10
10
|
get: true,
|
|
11
11
|
search: true,
|
|
12
12
|
getMeasures: true,
|
|
13
|
+
getLastMeasures: true,
|
|
14
|
+
mGetLastMeasures: true,
|
|
13
15
|
exportMeasures: true,
|
|
16
|
+
getLastMeasuredAt: true,
|
|
17
|
+
mGetLastMeasuredAt: true,
|
|
14
18
|
},
|
|
15
19
|
},
|
|
16
20
|
"device-manager/models": {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
|
|
2
2
|
import { DecodedMeasurement, MeasureContent } from "../../measure";
|
|
3
3
|
import { AssetContent } from "../../asset";
|
|
4
|
-
import { Metadata } from "../../shared";
|
|
4
|
+
import { ApiDigitalTwinGetLastMeasuredAtRequest, ApiDigitalTwinGetLastMeasuredAtResult, ApiDigitalTwinGetLastMeasuresRequest, ApiDigitalTwinGetLastMeasuresResult, ApiDigitalTwinMGetLastMeasuredAtRequest, ApiDigitalTwinMGetLastMeasuredAtResult, ApiDigitalTwinMGetLastMeasuresRequest, ApiDigitalTwinMGetLastMeasuresResult, Metadata } from "../../shared";
|
|
5
5
|
import { DeviceContent } from "./DeviceContent";
|
|
6
|
+
type DevicesControllerName = "device-manager/devices";
|
|
6
7
|
interface DevicesControllerRequest {
|
|
7
|
-
controller:
|
|
8
|
+
controller: DevicesControllerName;
|
|
8
9
|
engineId: string;
|
|
9
10
|
}
|
|
10
11
|
export interface ApiDeviceGetRequest extends DevicesControllerRequest {
|
|
@@ -21,6 +22,18 @@ export interface ApiDeviceUpdateRequest extends DevicesControllerRequest {
|
|
|
21
22
|
};
|
|
22
23
|
}
|
|
23
24
|
export type ApiDeviceUpdateResult = KDocument<DeviceContent>;
|
|
25
|
+
export type ApiDeviceMetadataReplaceResult = KDocument<DeviceContent>;
|
|
26
|
+
export interface ApiDeviceUpsertRequest extends DevicesControllerRequest {
|
|
27
|
+
action: "upsert";
|
|
28
|
+
_id: string;
|
|
29
|
+
refresh?: string;
|
|
30
|
+
body: {
|
|
31
|
+
model: string;
|
|
32
|
+
reference: string;
|
|
33
|
+
metadata: Metadata;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export type ApiDeviceUpsertResult = KDocument<DeviceContent>;
|
|
24
37
|
export interface ApiDeviceCreateRequest extends DevicesControllerRequest {
|
|
25
38
|
action: "create";
|
|
26
39
|
refresh?: string;
|
|
@@ -131,6 +144,10 @@ export type ApiDeviceGetMeasuresResult = {
|
|
|
131
144
|
measures: Array<KDocument<MeasureContent<JSONObject>>>;
|
|
132
145
|
total: number;
|
|
133
146
|
};
|
|
147
|
+
export type ApiDeviceGetLastMeasuresRequest = ApiDigitalTwinGetLastMeasuresRequest<DevicesControllerName>;
|
|
148
|
+
export type ApiDeviceGetLastMeasuresResult = ApiDigitalTwinGetLastMeasuresResult;
|
|
149
|
+
export type ApiDeviceMGetLastMeasuresRequest = ApiDigitalTwinMGetLastMeasuresRequest<DevicesControllerName>;
|
|
150
|
+
export type ApiDeviceMGetLastMeasuresResult = ApiDigitalTwinMGetLastMeasuresResult;
|
|
134
151
|
/**
|
|
135
152
|
* This action can be used only with WebSocket or POST
|
|
136
153
|
*
|
|
@@ -177,4 +194,8 @@ export interface ApiDeviceExportRequest extends DevicesControllerRequest {
|
|
|
177
194
|
export type ApiDeviceExportResult = {
|
|
178
195
|
link: string;
|
|
179
196
|
};
|
|
197
|
+
export type ApiDeviceGetLastMeasuredAtRequest = ApiDigitalTwinGetLastMeasuredAtRequest<DevicesControllerName>;
|
|
198
|
+
export type ApiDeviceGetLastMeasuredAtResult = ApiDigitalTwinGetLastMeasuredAtResult;
|
|
199
|
+
export type ApiDeviceMGetLastMeasuredAtRequest = ApiDigitalTwinMGetLastMeasuredAtRequest<DevicesControllerName>;
|
|
200
|
+
export type ApiDeviceMGetLastMeasuredAtResult = ApiDigitalTwinMGetLastMeasuredAtResult;
|
|
180
201
|
export {};
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
import { UUID } from "node:crypto";
|
|
4
1
|
import { KHit, User } from "kuzzle";
|
|
2
|
+
import { UUID } from "node:crypto";
|
|
5
3
|
import { AbstractExporter, Column, ExportParams } from "../shared";
|
|
6
4
|
import { MeasureContent } from "./exports";
|
|
7
5
|
interface MeasureSearchParams extends ExportParams {
|
|
@@ -38,7 +36,10 @@ export declare class MeasureExporter extends AbstractExporter<MeasureExportParam
|
|
|
38
36
|
* Never return a rejected promise and write potential error on the stream
|
|
39
37
|
*/
|
|
40
38
|
prepareExport(engineId: string, user: User, params: MeasureSearchParams): Promise<string>;
|
|
41
|
-
protected formatHit(columns: Column
|
|
39
|
+
protected formatHit(columns: Array<Column & {
|
|
40
|
+
shouldCheckName: boolean;
|
|
41
|
+
name: string;
|
|
42
|
+
}>, hit: KHit<MeasureContent>): any[];
|
|
42
43
|
/**
|
|
43
44
|
* Retrieve a prepared export and write each document as a CSV in the stream
|
|
44
45
|
*
|
|
@@ -1,15 +1,40 @@
|
|
|
1
1
|
import { JSONObject } from "kuzzle-sdk";
|
|
2
|
+
interface MeasureLocales {
|
|
3
|
+
[localeString: string]: {
|
|
4
|
+
friendlyName: string;
|
|
5
|
+
unit?: string;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export interface MeasureValuesDetails {
|
|
9
|
+
[valueName: string]: MeasureLocales;
|
|
10
|
+
}
|
|
2
11
|
/**
|
|
3
12
|
* Represents a measure definition registered by the Device Manager
|
|
4
13
|
*
|
|
5
14
|
* @example
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
15
|
+
*{
|
|
16
|
+
* valuesMappings: { temperature: { type: "float" } },
|
|
17
|
+
* valuesDetails: {
|
|
18
|
+
* temperature: {
|
|
19
|
+
* en: {
|
|
20
|
+
* friendlyName: "Temperature",
|
|
21
|
+
* unit: "°C",
|
|
22
|
+
* },
|
|
23
|
+
* fr: {
|
|
24
|
+
* friendlyName: "Température",
|
|
25
|
+
* unit: "°C",
|
|
26
|
+
* },
|
|
27
|
+
* },
|
|
28
|
+
* },
|
|
29
|
+
*}
|
|
9
30
|
*/
|
|
10
31
|
export interface MeasureDefinition {
|
|
11
32
|
/**
|
|
12
33
|
* Mappings for the measurement values in order to index the fields
|
|
13
34
|
*/
|
|
14
35
|
valuesMappings: JSONObject;
|
|
36
|
+
valuesDetails?: {
|
|
37
|
+
[valueName: string]: MeasureLocales;
|
|
38
|
+
};
|
|
15
39
|
}
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { JSONObject, KuzzleError } from "kuzzle";
|
|
2
|
+
export declare class MappingsConflictsError extends KuzzleError {
|
|
3
|
+
private conflicts;
|
|
4
|
+
constructor(message: string, conflicts: JSONObject, id?: string, code?: number);
|
|
5
|
+
get name(): string;
|
|
6
|
+
toJSON(): JSONObject;
|
|
7
|
+
}
|
|
@@ -1,23 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { KuzzleRequest } from "kuzzle";
|
|
2
|
+
import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
|
|
2
3
|
import { DeviceManagerPlugin } from "../plugin";
|
|
3
|
-
import { BaseService } from "../shared";
|
|
4
|
-
import { AssetModelContent, DeviceModelContent, MeasureModelContent } from "./types/ModelContent";
|
|
4
|
+
import { BaseService, SearchParams } from "../shared";
|
|
5
|
+
import { AssetModelContent, DeviceModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
|
|
6
|
+
import { MeasureValuesDetails } from "../measure";
|
|
5
7
|
export declare class ModelService extends BaseService {
|
|
6
8
|
constructor(plugin: DeviceManagerPlugin);
|
|
7
9
|
registerAskEvents(): void;
|
|
8
|
-
|
|
10
|
+
private checkModelsConflicts;
|
|
11
|
+
writeAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels): Promise<KDocument<AssetModelContent>>;
|
|
9
12
|
private checkDefaultValues;
|
|
10
|
-
writeDevice(model: string, metadataMappings:
|
|
11
|
-
writeMeasure(type: string, valuesMappings: JSONObject): Promise<KDocument<MeasureModelContent>>;
|
|
13
|
+
writeDevice(model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: DeviceModelContent["device"]["measures"]): Promise<KDocument<DeviceModelContent>>;
|
|
14
|
+
writeMeasure(type: string, valuesMappings: JSONObject, valuesDetails?: MeasureValuesDetails): Promise<KDocument<MeasureModelContent>>;
|
|
12
15
|
deleteAsset(_id: string): Promise<void>;
|
|
13
16
|
deleteDevice(_id: string): Promise<void>;
|
|
14
17
|
deleteMeasure(_id: string): Promise<void>;
|
|
15
18
|
listAsset(engineGroup: string): Promise<KDocument<AssetModelContent>[]>;
|
|
16
19
|
listDevices(): Promise<KDocument<DeviceModelContent>[]>;
|
|
17
20
|
listMeasures(): Promise<KDocument<MeasureModelContent>[]>;
|
|
21
|
+
searchAssets(engineGroup: string, searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<AssetModelContent>>>;
|
|
22
|
+
searchDevices(searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<DeviceModelContent>>>;
|
|
23
|
+
searchMeasures(searchParams: Partial<SearchParams>): Promise<SearchResult<KHit<MeasureModelContent>>>;
|
|
18
24
|
assetExists(model: string): Promise<boolean>;
|
|
19
25
|
deviceExists(model: string): Promise<boolean>;
|
|
20
26
|
getAsset(engineGroup: string, model: string): Promise<KDocument<AssetModelContent>>;
|
|
21
27
|
getDevice(model: string): Promise<KDocument<DeviceModelContent>>;
|
|
22
28
|
getMeasure(type: string): Promise<KDocument<MeasureModelContent>>;
|
|
29
|
+
/**
|
|
30
|
+
* Update an asset model
|
|
31
|
+
*/
|
|
32
|
+
updateAsset(engineGroup: string, model: string, metadataMappings: MetadataMappings, defaultMetadata: JSONObject, metadataDetails: MetadataDetails, metadataGroups: MetadataGroups, measures: AssetModelContent["asset"]["measures"], tooltipModels: TooltipModels, request: KuzzleRequest): Promise<KDocument<AssetModelContent>>;
|
|
23
33
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TwinModelContent, TwinType } from "../plugin";
|
|
2
|
+
import { MeasureModelContent } from "./exports";
|
|
3
|
+
export type ConflictChunk = {
|
|
4
|
+
sourceModel: string;
|
|
5
|
+
newModel: string;
|
|
6
|
+
modelType: string;
|
|
7
|
+
conflicts: MappingsConflict[];
|
|
8
|
+
};
|
|
9
|
+
export type MappingsConflict = {
|
|
10
|
+
path: string;
|
|
11
|
+
currentType: string | undefined;
|
|
12
|
+
newType: string | undefined;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Return every conflicts between the mappings of twins and a new twin model
|
|
16
|
+
*
|
|
17
|
+
* @param twinType The target twin type
|
|
18
|
+
* @param models The already present twin models
|
|
19
|
+
* @param additional The new asset
|
|
20
|
+
* @returns An array of ConflictChunk between current twins and the new twin
|
|
21
|
+
*/
|
|
22
|
+
export declare function getTwinConflicts<TDigitalTwin extends TwinModelContent>(twinType: TwinType, models: TDigitalTwin[], additional: TDigitalTwin): ConflictChunk[];
|
|
23
|
+
/**
|
|
24
|
+
* Return every conflicts between the mappings of measure models and a new measure model
|
|
25
|
+
*
|
|
26
|
+
* @param measures The already present measure models
|
|
27
|
+
* @param additional The new measure
|
|
28
|
+
* @returns An array of ConflictChunk between current measures and the new measure
|
|
29
|
+
*/
|
|
30
|
+
export declare function getMeasureConflicts(measures: MeasureModelContent[], additional: MeasureModelContent): ConflictChunk[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ControllerDefinition, KuzzleRequest } from "kuzzle";
|
|
2
2
|
import { ModelService } from "./ModelService";
|
|
3
|
-
import { ApiModelWriteAssetResult, ApiModelWriteDeviceResult, ApiModelWriteMeasureResult, ApiModelDeleteAssetResult, ApiModelDeleteDeviceResult, ApiModelDeleteMeasureResult, ApiModelListAssetsResult, ApiModelListDevicesResult, ApiModelListMeasuresResult, ApiModelGetAssetResult, ApiModelGetDeviceResult, ApiModelGetMeasureResult } from "./types/ModelApi";
|
|
3
|
+
import { ApiModelWriteAssetResult, ApiModelWriteDeviceResult, ApiModelWriteMeasureResult, ApiModelUpdateAssetResult, ApiModelDeleteAssetResult, ApiModelDeleteDeviceResult, ApiModelDeleteMeasureResult, ApiModelListAssetsResult, ApiModelListDevicesResult, ApiModelListMeasuresResult, ApiModelGetAssetResult, ApiModelGetDeviceResult, ApiModelGetMeasureResult, ApiModelSearchAssetsResult, ApiModelSearchDevicesResult, ApiModelSearchMeasuresResult } from "./types/ModelApi";
|
|
4
4
|
export declare class ModelsController {
|
|
5
5
|
private modelService;
|
|
6
6
|
definition: ControllerDefinition;
|
|
@@ -17,4 +17,8 @@ export declare class ModelsController {
|
|
|
17
17
|
listAssets(request: KuzzleRequest): Promise<ApiModelListAssetsResult>;
|
|
18
18
|
listDevices(): Promise<ApiModelListDevicesResult>;
|
|
19
19
|
listMeasures(): Promise<ApiModelListMeasuresResult>;
|
|
20
|
+
searchAssets(request: KuzzleRequest): Promise<ApiModelSearchAssetsResult>;
|
|
21
|
+
searchDevices(request: KuzzleRequest): Promise<ApiModelSearchDevicesResult>;
|
|
22
|
+
searchMeasures(request: KuzzleRequest): Promise<ApiModelSearchMeasuresResult>;
|
|
23
|
+
updateAsset(request: KuzzleRequest): Promise<ApiModelUpdateAssetResult>;
|
|
20
24
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { JSONObject } from "kuzzle-sdk";
|
|
2
1
|
import { DeviceManagerPlugin } from "../plugin";
|
|
3
2
|
import { NamedMeasures } from "../decoder";
|
|
4
3
|
import { MeasureDefinition } from "../measure";
|
|
4
|
+
import { MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
|
|
5
|
+
import { JSONObject } from "kuzzle-sdk";
|
|
5
6
|
export declare class ModelsRegister {
|
|
6
7
|
private config;
|
|
7
8
|
private context;
|
|
@@ -11,8 +12,32 @@ export declare class ModelsRegister {
|
|
|
11
12
|
private get sdk();
|
|
12
13
|
init(plugin: DeviceManagerPlugin): void;
|
|
13
14
|
loadModels(): Promise<void>;
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Registers an asset model.
|
|
17
|
+
*
|
|
18
|
+
* @param engineGroup - The engine group name.
|
|
19
|
+
* @param model - The name of the asset model, which must be in PascalCase.
|
|
20
|
+
* @param measures - The measures associated with this asset model.
|
|
21
|
+
* @param metadataMappings - The metadata mappings for the model, defaults to an empty object.
|
|
22
|
+
* @param defaultMetadata - The default metadata values for the model, defaults to an empty object.
|
|
23
|
+
* @param metadataDetails - Optional detailed metadata descriptions, localizations and definition.
|
|
24
|
+
* @param metadataGroups - Optional groups for organizing metadata, with localizations.
|
|
25
|
+
* @param tooltipModels - Optional model list for tooltip, containing labels and tooltip content.
|
|
26
|
+
* @throws PluginImplementationError if the model name is not in PascalCase.
|
|
27
|
+
*/
|
|
28
|
+
registerAsset(engineGroup: string, model: string, measures: NamedMeasures, metadataMappings?: MetadataMappings, defaultMetadata?: JSONObject, metadataDetails?: MetadataDetails, metadataGroups?: MetadataGroups, tooltipModels?: TooltipModels): void;
|
|
29
|
+
/**
|
|
30
|
+
* Registers a device model.
|
|
31
|
+
*
|
|
32
|
+
* @param model - The name of the device model, which must be in PascalCase.
|
|
33
|
+
* @param measures - The measures associated with this device model.
|
|
34
|
+
* @param metadataMappings - The metadata mappings for the model, defaults to an empty object.
|
|
35
|
+
* @param defaultMetadata - The default metadata values for the model, defaults to an empty object.
|
|
36
|
+
* @param metadataDetails - Optional detailed metadata descriptions, localizations and definition.
|
|
37
|
+
* @param metadataGroups - Optional groups for organizing metadata, with localizations.
|
|
38
|
+
* @throws PluginImplementationError if the model name is not in PascalCase.
|
|
39
|
+
*/
|
|
40
|
+
registerDevice(model: string, measures: NamedMeasures, metadataMappings?: MetadataMappings, defaultMetadata?: JSONObject, metadataDetails?: MetadataDetails, metadataGroups?: MetadataGroups): void;
|
|
16
41
|
registerMeasure(type: string, measureDefinition: MeasureDefinition): void;
|
|
17
42
|
private load;
|
|
18
43
|
}
|