kuzzle-device-manager-types 2.4.0-beta.20 → 2.4.0-beta.21
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 +2 -2
- package/dist/lib/modules/asset/AssetsController.d.ts +5 -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 +11 -2
- package/dist/lib/modules/device/DeviceService.d.ts +6 -2
- package/dist/lib/modules/device/DevicesController.d.ts +6 -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 +12 -2
- package/dist/lib/modules/model/ModelService.d.ts +5 -2
- package/dist/lib/modules/model/ModelsController.d.ts +4 -1
- package/dist/lib/modules/model/ModelsRegister.d.ts +2 -2
- package/dist/lib/modules/model/types/ModelApi.d.ts +26 -1
- package/dist/lib/modules/model/types/ModelContent.d.ts +66 -10
- package/dist/lib/modules/model/types/ModelDefinition.d.ts +16 -4
- package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +2 -2
- package/dist/lib/modules/shared/exports.d.ts +2 -0
- package/dist/lib/modules/shared/index.d.ts +3 -0
- 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/Room.d.ts +2 -0
- package/dist/tests/application/assets/StreetLamp.d.ts +2 -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 +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
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
6
|
import { ApiAssetMigrateTenantResult } from "./types/AssetApi";
|
|
7
7
|
import { AssetContent } from "./types/AssetContent";
|
|
8
|
-
export declare class AssetService extends
|
|
8
|
+
export declare class AssetService extends DigitalTwinService {
|
|
9
9
|
private assetHistoryService;
|
|
10
10
|
constructor(plugin: DeviceManagerPlugin, assetHistoryService: AssetHistoryService);
|
|
11
11
|
registerAskEvents(): void;
|
|
@@ -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, ApiAssetUpsertResult, ApiAssetDeleteResult, ApiAssetGetMeasuresResult, ApiAssetGetResult, ApiAssetSearchResult, ApiAssetUpdateResult, ApiAssetMigrateTenantResult, ApiAssetMetadataReplaceResult } 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;
|
|
@@ -17,7 +17,11 @@ export declare class AssetsController {
|
|
|
17
17
|
delete(request: KuzzleRequest): Promise<ApiAssetDeleteResult>;
|
|
18
18
|
search(request: KuzzleRequest): Promise<ApiAssetSearchResult>;
|
|
19
19
|
getMeasures(request: KuzzleRequest): Promise<ApiAssetGetMeasuresResult>;
|
|
20
|
+
getLastMeasures(request: KuzzleRequest): Promise<ApiAssetGetLastMeasuresResult>;
|
|
21
|
+
mGetLastMeasures(request: KuzzleRequest): Promise<ApiAssetMGetLastMeasuresResult>;
|
|
20
22
|
exportMeasures(request: KuzzleRequest): Promise<any>;
|
|
21
23
|
export(request: KuzzleRequest): Promise<any>;
|
|
22
24
|
migrateTenant(request: KuzzleRequest): Promise<ApiAssetMigrateTenantResult>;
|
|
25
|
+
getLastMeasuredAt(request: KuzzleRequest): Promise<ApiAssetGetLastMeasuredAtResult>;
|
|
26
|
+
mGetLastMeasuredAt(request: KuzzleRequest): Promise<ApiAssetMGetLastMeasuredAtResult>;
|
|
23
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 {
|
|
@@ -84,6 +85,10 @@ export type ApiAssetGetMeasuresResult = {
|
|
|
84
85
|
measures: Array<KDocument<MeasureContent<JSONObject>>>;
|
|
85
86
|
total: number;
|
|
86
87
|
};
|
|
88
|
+
export type ApiAssetGetLastMeasuresRequest = ApiDigitalTwinGetLastMeasuresRequest<AssetsControllerName>;
|
|
89
|
+
export type ApiAssetGetLastMeasuresResult = ApiDigitalTwinGetLastMeasuresResult;
|
|
90
|
+
export type ApiAssetMGetLastMeasuresRequest = ApiDigitalTwinMGetLastMeasuresRequest<AssetsControllerName>;
|
|
91
|
+
export type ApiAssetMGetLastMeasuresResult = ApiDigitalTwinMGetLastMeasuresResult;
|
|
87
92
|
/**
|
|
88
93
|
* This action can be used only with WebSocket or POST
|
|
89
94
|
*
|
|
@@ -128,4 +133,8 @@ export type ApiAssetMigrateTenantResult = {
|
|
|
128
133
|
errors: string[];
|
|
129
134
|
successes: string[];
|
|
130
135
|
};
|
|
136
|
+
export type ApiAssetGetLastMeasuredAtRequest = ApiDigitalTwinGetLastMeasuredAtRequest<AssetsControllerName>;
|
|
137
|
+
export type ApiAssetGetLastMeasuredAtResult = ApiDigitalTwinGetLastMeasuredAtResult;
|
|
138
|
+
export type ApiAssetMGetLastMeasuredAtRequest = ApiDigitalTwinMGetLastMeasuredAtRequest<AssetsControllerName>;
|
|
139
|
+
export type ApiAssetMGetLastMeasuredAtResult = ApiDigitalTwinMGetLastMeasuredAtResult;
|
|
131
140
|
export {};
|
|
@@ -2,11 +2,11 @@ import { KuzzleRequest } from "kuzzle";
|
|
|
2
2
|
import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
|
|
3
3
|
import { DecodedMeasurement } from "../measure";
|
|
4
4
|
import { DeviceManagerPlugin } from "../plugin";
|
|
5
|
-
import {
|
|
5
|
+
import { DigitalTwinService, Metadata, SearchParams } from "../shared";
|
|
6
6
|
import { AssetContent } from "./../asset";
|
|
7
7
|
import { ApiDeviceLinkAssetRequest } from "./types/DeviceApi";
|
|
8
8
|
import { DeviceContent } from "./types/DeviceContent";
|
|
9
|
-
export declare class DeviceService extends
|
|
9
|
+
export declare class DeviceService extends DigitalTwinService {
|
|
10
10
|
constructor(plugin: DeviceManagerPlugin);
|
|
11
11
|
registerAskEvents(): void;
|
|
12
12
|
/**
|
|
@@ -19,6 +19,10 @@ export declare class DeviceService extends BaseService {
|
|
|
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
21
|
private getInternalDevices;
|
|
22
|
+
/**
|
|
23
|
+
* Replace a device metadata
|
|
24
|
+
*/
|
|
25
|
+
replaceMetadata(engineId: string, deviceId: string, metadata: Metadata, request: KuzzleRequest): Promise<KDocument<DeviceContent>>;
|
|
22
26
|
/**
|
|
23
27
|
* Update or Create an device metadata
|
|
24
28
|
*/
|
|
@@ -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, ApiDeviceUpsertResult } 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,6 +11,7 @@ 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>;
|
|
16
17
|
upsert(request: KuzzleRequest): Promise<ApiDeviceUpsertResult>;
|
|
@@ -35,7 +36,11 @@ export declare class DevicesController {
|
|
|
35
36
|
*/
|
|
36
37
|
unlinkAsset(request: KuzzleRequest): Promise<ApiDeviceUnlinkAssetResult>;
|
|
37
38
|
getMeasures(request: KuzzleRequest): Promise<ApiDeviceGetMeasuresResult>;
|
|
39
|
+
getLastMeasures(request: KuzzleRequest): Promise<ApiDeviceGetLastMeasuresResult>;
|
|
40
|
+
mGetLastMeasures(request: KuzzleRequest): Promise<ApiDeviceMGetLastMeasuresResult>;
|
|
38
41
|
exportMeasures(request: KuzzleRequest): Promise<any>;
|
|
39
42
|
receiveMeasures(request: KuzzleRequest): Promise<void>;
|
|
40
43
|
export(request: KuzzleRequest): Promise<any>;
|
|
44
|
+
getLastMeasuredAt(request: KuzzleRequest): Promise<ApiDeviceGetLastMeasuredAtResult>;
|
|
45
|
+
mGetLastMeasuredAt(request: KuzzleRequest): Promise<ApiDeviceMGetLastMeasuredAtResult>;
|
|
41
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,7 @@ export interface ApiDeviceUpdateRequest extends DevicesControllerRequest {
|
|
|
21
22
|
};
|
|
22
23
|
}
|
|
23
24
|
export type ApiDeviceUpdateResult = KDocument<DeviceContent>;
|
|
25
|
+
export type ApiDeviceMetadataReplaceResult = KDocument<DeviceContent>;
|
|
24
26
|
export interface ApiDeviceUpsertRequest extends DevicesControllerRequest {
|
|
25
27
|
action: "upsert";
|
|
26
28
|
_id: string;
|
|
@@ -142,6 +144,10 @@ export type ApiDeviceGetMeasuresResult = {
|
|
|
142
144
|
measures: Array<KDocument<MeasureContent<JSONObject>>>;
|
|
143
145
|
total: number;
|
|
144
146
|
};
|
|
147
|
+
export type ApiDeviceGetLastMeasuresRequest = ApiDigitalTwinGetLastMeasuresRequest<DevicesControllerName>;
|
|
148
|
+
export type ApiDeviceGetLastMeasuresResult = ApiDigitalTwinGetLastMeasuresResult;
|
|
149
|
+
export type ApiDeviceMGetLastMeasuresRequest = ApiDigitalTwinMGetLastMeasuresRequest<DevicesControllerName>;
|
|
150
|
+
export type ApiDeviceMGetLastMeasuresResult = ApiDigitalTwinMGetLastMeasuresResult;
|
|
145
151
|
/**
|
|
146
152
|
* This action can be used only with WebSocket or POST
|
|
147
153
|
*
|
|
@@ -188,4 +194,8 @@ export interface ApiDeviceExportRequest extends DevicesControllerRequest {
|
|
|
188
194
|
export type ApiDeviceExportResult = {
|
|
189
195
|
link: string;
|
|
190
196
|
};
|
|
197
|
+
export type ApiDeviceGetLastMeasuredAtRequest = ApiDigitalTwinGetLastMeasuredAtRequest<DevicesControllerName>;
|
|
198
|
+
export type ApiDeviceGetLastMeasuredAtResult = ApiDigitalTwinGetLastMeasuredAtResult;
|
|
199
|
+
export type ApiDeviceMGetLastMeasuredAtRequest = ApiDigitalTwinMGetLastMeasuredAtRequest<DevicesControllerName>;
|
|
200
|
+
export type ApiDeviceMGetLastMeasuredAtResult = ApiDigitalTwinMGetLastMeasuredAtResult;
|
|
191
201
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { KuzzleRequest } from "kuzzle";
|
|
2
|
-
import { JSONObject, KDocument } from "kuzzle-sdk";
|
|
2
|
+
import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
|
|
3
3
|
import { DeviceManagerPlugin } from "../plugin";
|
|
4
|
-
import { BaseService } from "../shared";
|
|
4
|
+
import { BaseService, SearchParams } from "../shared";
|
|
5
5
|
import { AssetModelContent, DeviceModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent";
|
|
6
6
|
import { MeasureValuesDetails } from "../measure";
|
|
7
7
|
export declare class ModelService extends BaseService {
|
|
@@ -18,6 +18,9 @@ export declare class ModelService extends BaseService {
|
|
|
18
18
|
listAsset(engineGroup: string): Promise<KDocument<AssetModelContent>[]>;
|
|
19
19
|
listDevices(): Promise<KDocument<DeviceModelContent>[]>;
|
|
20
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>>>;
|
|
21
24
|
assetExists(model: string): Promise<boolean>;
|
|
22
25
|
deviceExists(model: string): Promise<boolean>;
|
|
23
26
|
getAsset(engineGroup: string, model: string): Promise<KDocument<AssetModelContent>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ControllerDefinition, KuzzleRequest } from "kuzzle";
|
|
2
2
|
import { ModelService } from "./ModelService";
|
|
3
|
-
import { ApiModelWriteAssetResult, ApiModelWriteDeviceResult, ApiModelWriteMeasureResult, ApiModelUpdateAssetResult, 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,5 +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>;
|
|
20
23
|
updateAsset(request: KuzzleRequest): Promise<ApiModelUpdateAssetResult>;
|
|
21
24
|
}
|
|
@@ -20,7 +20,7 @@ export declare class ModelsRegister {
|
|
|
20
20
|
* @param measures - The measures associated with this asset model.
|
|
21
21
|
* @param metadataMappings - The metadata mappings for the model, defaults to an empty object.
|
|
22
22
|
* @param defaultMetadata - The default metadata values for the model, defaults to an empty object.
|
|
23
|
-
* @param metadataDetails - Optional detailed metadata descriptions and
|
|
23
|
+
* @param metadataDetails - Optional detailed metadata descriptions, localizations and definition.
|
|
24
24
|
* @param metadataGroups - Optional groups for organizing metadata, with localizations.
|
|
25
25
|
* @param tooltipModels - Optional model list for tooltip, containing labels and tooltip content.
|
|
26
26
|
* @throws PluginImplementationError if the model name is not in PascalCase.
|
|
@@ -33,7 +33,7 @@ export declare class ModelsRegister {
|
|
|
33
33
|
* @param measures - The measures associated with this device model.
|
|
34
34
|
* @param metadataMappings - The metadata mappings for the model, defaults to an empty object.
|
|
35
35
|
* @param defaultMetadata - The default metadata values for the model, defaults to an empty object.
|
|
36
|
-
* @param metadataDetails - Optional detailed metadata descriptions and
|
|
36
|
+
* @param metadataDetails - Optional detailed metadata descriptions, localizations and definition.
|
|
37
37
|
* @param metadataGroups - Optional groups for organizing metadata, with localizations.
|
|
38
38
|
* @throws PluginImplementationError if the model name is not in PascalCase.
|
|
39
39
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { JSONObject, KDocument } from "kuzzle-sdk";
|
|
1
|
+
import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
|
|
2
2
|
import { AssetModelContent, DeviceModelContent, MeasureModelContent, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./ModelContent";
|
|
3
3
|
import { MeasureValuesDetails } from "../../measure/types/MeasureDefinition";
|
|
4
4
|
interface ModelsControllerRequest {
|
|
@@ -106,4 +106,29 @@ export type ApiModelListMeasuresResult = {
|
|
|
106
106
|
models: KDocument<MeasureModelContent>[];
|
|
107
107
|
total: number;
|
|
108
108
|
};
|
|
109
|
+
export interface ApiModelSearchAssetsRequest extends ModelsControllerRequest {
|
|
110
|
+
action: "searchAssets";
|
|
111
|
+
engineGroup: string;
|
|
112
|
+
from?: number;
|
|
113
|
+
size?: number;
|
|
114
|
+
scrollTTL?: string;
|
|
115
|
+
body?: JSONObject;
|
|
116
|
+
}
|
|
117
|
+
export type ApiModelSearchAssetsResult = SearchResult<KHit<AssetModelContent>>;
|
|
118
|
+
export interface ApiModelSearchDevicesRequest extends ModelsControllerRequest {
|
|
119
|
+
action: "searchDevices";
|
|
120
|
+
from?: number;
|
|
121
|
+
size?: number;
|
|
122
|
+
scrollTTL?: string;
|
|
123
|
+
body?: JSONObject;
|
|
124
|
+
}
|
|
125
|
+
export type ApiModelSearchDevicesResult = SearchResult<KHit<DeviceModelContent>>;
|
|
126
|
+
export interface ApiModelSearchMeasuresRequest extends ModelsControllerRequest {
|
|
127
|
+
action: "searchMeasures";
|
|
128
|
+
from?: number;
|
|
129
|
+
size?: number;
|
|
130
|
+
scrollTTL?: string;
|
|
131
|
+
body?: JSONObject;
|
|
132
|
+
}
|
|
133
|
+
export type ApiModelSearchMeasuresResult = SearchResult<KHit<MeasureModelContent>>;
|
|
109
134
|
export {};
|
|
@@ -7,12 +7,12 @@ export interface MeasureModelContent extends KDocumentContent {
|
|
|
7
7
|
type: string;
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
|
-
interface MetadataProperty {
|
|
10
|
+
export interface MetadataProperty {
|
|
11
11
|
type: string;
|
|
12
12
|
strategy?: string;
|
|
13
13
|
format?: string;
|
|
14
14
|
}
|
|
15
|
-
interface MetadataObject {
|
|
15
|
+
export interface MetadataObject {
|
|
16
16
|
properties: {
|
|
17
17
|
[key: string]: MetadataProperty | MetadataObject;
|
|
18
18
|
};
|
|
@@ -20,20 +20,62 @@ interface MetadataObject {
|
|
|
20
20
|
export interface MetadataMappings {
|
|
21
21
|
[key: string]: MetadataProperty | MetadataObject;
|
|
22
22
|
}
|
|
23
|
-
interface LocaleDetails {
|
|
23
|
+
export interface LocaleDetails {
|
|
24
24
|
friendlyName: string;
|
|
25
25
|
description: string;
|
|
26
26
|
}
|
|
27
|
+
export interface BaseEditorHint {
|
|
28
|
+
readOnly?: boolean;
|
|
29
|
+
type: EditorHintEnum;
|
|
30
|
+
}
|
|
31
|
+
export declare enum EditorHintEnum {
|
|
32
|
+
BASE = "base",
|
|
33
|
+
OPTION_SELECTOR = "optionSelector",
|
|
34
|
+
DATETIME = "datetime"
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Allows to display a list of values to choose in a dropdown, it has to be defined in the the editorHint property of the asset/device's metadataDetails.
|
|
38
|
+
*/
|
|
39
|
+
export interface OptionsSelectorEditorHint extends BaseEditorHint {
|
|
40
|
+
type: EditorHintEnum.OPTION_SELECTOR;
|
|
41
|
+
/**
|
|
42
|
+
* A list that contains all the values displayed in the dropdown.
|
|
43
|
+
*/
|
|
44
|
+
values: string[] | number[] | boolean[];
|
|
45
|
+
/**
|
|
46
|
+
* Allow the user to add custom values.
|
|
47
|
+
*/
|
|
48
|
+
customValueAllowed?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Allows to display either a date picker with or without a time picker, or a clock picker, it has to be defined in the editorHint property of the asset/device's metadataDetails.
|
|
52
|
+
*/
|
|
53
|
+
export interface DatetimeEditorHint extends BaseEditorHint {
|
|
54
|
+
type: EditorHintEnum.DATETIME;
|
|
55
|
+
/**
|
|
56
|
+
* If true, displays a date picker, otherwise displays a clock picker.
|
|
57
|
+
*/
|
|
58
|
+
date: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* If `date` is true, setting this to true will add time picking to the date picker.
|
|
61
|
+
*/
|
|
62
|
+
time?: boolean;
|
|
63
|
+
}
|
|
27
64
|
export interface MetadataDetails {
|
|
28
65
|
[key: string]: {
|
|
29
66
|
group?: string;
|
|
30
67
|
locales: {
|
|
31
68
|
[locale: string]: LocaleDetails;
|
|
32
69
|
};
|
|
33
|
-
|
|
70
|
+
/**
|
|
71
|
+
* To add new editor hint, create an interface with the properties that extends BaseEditorHint.
|
|
72
|
+
* Then add a new field in EditorHintEnum to define the type of your hint.
|
|
73
|
+
* Finally add the new editor hint interface with a pipe to take in account the new type.
|
|
74
|
+
*/
|
|
75
|
+
editorHint?: BaseEditorHint | OptionsSelectorEditorHint | DatetimeEditorHint;
|
|
34
76
|
};
|
|
35
77
|
}
|
|
36
|
-
interface MetadataGroupLocale {
|
|
78
|
+
export interface MetadataGroupLocale {
|
|
37
79
|
groupFriendlyName: string;
|
|
38
80
|
description: string;
|
|
39
81
|
}
|
|
@@ -133,8 +175,15 @@ export interface AssetModelContent extends KDocumentContent {
|
|
|
133
175
|
* "friendlyName": "Température extérieure",
|
|
134
176
|
* "description": "Température à l'exterieur du bâtiment"
|
|
135
177
|
* },
|
|
136
|
-
*
|
|
137
|
-
*
|
|
178
|
+
* },
|
|
179
|
+
* "editorHint": {
|
|
180
|
+
* "readOnly": true,
|
|
181
|
+
* "type": EditorHintEnum.OPTION_SELECTOR,
|
|
182
|
+
* "values": ["red", "blue"],
|
|
183
|
+
* "customValueAllowed": true,
|
|
184
|
+
* },
|
|
185
|
+
* },
|
|
186
|
+
* }
|
|
138
187
|
*/
|
|
139
188
|
metadataDetails?: MetadataDetails;
|
|
140
189
|
/**
|
|
@@ -261,8 +310,16 @@ export interface DeviceModelContent extends KDocumentContent {
|
|
|
261
310
|
* "friendlyName": "Version du capteur",
|
|
262
311
|
* "description": "Version du micrologiciel du capteur"
|
|
263
312
|
* },
|
|
264
|
-
*
|
|
265
|
-
*
|
|
313
|
+
* },
|
|
314
|
+
* "editorHint": {
|
|
315
|
+
* "readOnly": false,
|
|
316
|
+
* "type": EditorHintEnum.DATETIME,
|
|
317
|
+
* "date": true,
|
|
318
|
+
* "time": true,
|
|
319
|
+
* "customTimeZoneAllowed": true,
|
|
320
|
+
* },
|
|
321
|
+
* },
|
|
322
|
+
* }
|
|
266
323
|
*/
|
|
267
324
|
metadataDetails?: MetadataDetails;
|
|
268
325
|
/**
|
|
@@ -299,4 +356,3 @@ export interface DeviceModelContent extends KDocumentContent {
|
|
|
299
356
|
};
|
|
300
357
|
}
|
|
301
358
|
export type ModelContent = MeasureModelContent | AssetModelContent | DeviceModelContent;
|
|
302
|
-
export {};
|
|
@@ -31,8 +31,14 @@ import { MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from
|
|
|
31
31
|
* "description": "Température externe du conteneur"
|
|
32
32
|
* }
|
|
33
33
|
* },
|
|
34
|
-
* "
|
|
35
|
-
*
|
|
34
|
+
* "definition": {
|
|
35
|
+
* "readOnly": false,
|
|
36
|
+
* "type": MetadataDetailsEnum.DATETIME,
|
|
37
|
+
* "date": true,
|
|
38
|
+
* "time": true,
|
|
39
|
+
* "customTimeZoneAllowed": true,
|
|
40
|
+
* },
|
|
41
|
+
* },
|
|
36
42
|
* },
|
|
37
43
|
* metadataGroups: {
|
|
38
44
|
* buildingEnv: {
|
|
@@ -143,8 +149,14 @@ export type AssetModelDefinition = {
|
|
|
143
149
|
* description: "Type du traceur"
|
|
144
150
|
* }
|
|
145
151
|
* },
|
|
146
|
-
*
|
|
147
|
-
*
|
|
152
|
+
* definition: {
|
|
153
|
+
* readOnly: false,
|
|
154
|
+
* type: MetadataDetailsEnum.DATETIME,
|
|
155
|
+
* date: true,
|
|
156
|
+
* time: true,
|
|
157
|
+
* customTimeZoneAllowed: true,
|
|
158
|
+
* },
|
|
159
|
+
* },
|
|
148
160
|
* },
|
|
149
161
|
* metadataGroups: {
|
|
150
162
|
* sensorSpecs: {
|
|
@@ -27,7 +27,7 @@ export declare class DeviceManagerPlugin extends Plugin {
|
|
|
27
27
|
* - measures: Array describing measure names and their types.
|
|
28
28
|
* - metadataMappings: Definition of metadata mappings, specifying types for each metadata field.
|
|
29
29
|
* - defaultMetadata: Default values for metadata fields, applied when actual data is not provided.
|
|
30
|
-
* - metadataDetails: Optional detailed descriptions for each metadata, including group association and
|
|
30
|
+
* - metadataDetails: Optional detailed descriptions for each metadata, including localizations, group association and definition.
|
|
31
31
|
* - metadataGroups: Optional description of metadata groups, organizing metadata logically, with localizations for group names.
|
|
32
32
|
* - tooltipModels: Optional tooltip model list, containing each labels and tooltip content to display.
|
|
33
33
|
*
|
|
@@ -130,7 +130,7 @@ export declare class DeviceManagerPlugin extends Plugin {
|
|
|
130
130
|
* - decoder: Decoder used to decode payloads
|
|
131
131
|
* - metadataMappings: Metadata mappings definition
|
|
132
132
|
* - defaultMetadata: Default metadata values
|
|
133
|
-
* - metadataDetails:
|
|
133
|
+
* - metadataDetails: Localizations, detailed metadata descriptions and definition
|
|
134
134
|
* - metadataGroups: Groups for organizing metadata, with localizations
|
|
135
135
|
*
|
|
136
136
|
* @example
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export * from "./Module";
|
|
2
2
|
export * from "./services";
|
|
3
|
+
export * from "./types/DigitalTwinApi";
|
|
3
4
|
export * from "./types/DigitalTwinContent";
|
|
5
|
+
export * from "./types/DigitalTwinEvents";
|
|
6
|
+
export * from "./types/DigitalTwinMeasures";
|
|
4
7
|
export * from "./types/EmbeddedMeasure";
|
|
5
8
|
export * from "./types/KuzzleRole";
|
|
6
9
|
export * from "./types/Metadata";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { MeasureContent } from "../../measure";
|
|
2
|
+
import { DeviceManagerPlugin, InternalCollection } from "../../plugin";
|
|
3
|
+
import { ApiDigitalTwinMGetLastMeasuredAtResult } from "../types/DigitalTwinApi";
|
|
4
|
+
import { BaseService } from "./BaseService";
|
|
5
|
+
export declare class DigitalTwinService extends BaseService {
|
|
6
|
+
private targetCollection;
|
|
7
|
+
private readonly digitalTwinType;
|
|
8
|
+
constructor(plugin: DeviceManagerPlugin, targetCollection: InternalCollection);
|
|
9
|
+
protected registerAskEvents(): void;
|
|
10
|
+
/**
|
|
11
|
+
* Gets the last measures of a digital twin
|
|
12
|
+
*/
|
|
13
|
+
getLastMeasures(engineId: string, digitalTwinId: string, measureCount?: number): Promise<MeasureContent[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Gets the last measures of multiple digital twins
|
|
16
|
+
*/
|
|
17
|
+
mGetLastMeasures(engineId: string, digitalTwinIds: string[], measureCount?: number): Promise<Record<string, MeasureContent[]>>;
|
|
18
|
+
getLastMeasuredAt(engineId: string, digitalTwinId: string): Promise<number>;
|
|
19
|
+
mGetLastMeasuredAt(engineId: string, digitalTwinIds: string[]): Promise<ApiDigitalTwinMGetLastMeasuredAtResult>;
|
|
20
|
+
private getAggregationQueryParameters;
|
|
21
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DigitalTwinMeasures } from "./DigitalTwinMeasures";
|
|
2
|
+
interface DigitalTwinControllerRequest<ControllerName extends string> {
|
|
3
|
+
controller: ControllerName;
|
|
4
|
+
engineId: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ApiDigitalTwinGetLastMeasuresRequest<ControllerName extends string> extends DigitalTwinControllerRequest<ControllerName> {
|
|
7
|
+
action: "getLastMeasures";
|
|
8
|
+
_id: string;
|
|
9
|
+
measureCount?: number;
|
|
10
|
+
}
|
|
11
|
+
export type ApiDigitalTwinGetLastMeasuresResult = DigitalTwinMeasures;
|
|
12
|
+
export interface ApiDigitalTwinMGetLastMeasuresRequest<ControllerName extends string> extends DigitalTwinControllerRequest<ControllerName> {
|
|
13
|
+
action: "mGetLastMeasures";
|
|
14
|
+
measureCount?: number;
|
|
15
|
+
body: {
|
|
16
|
+
ids: string[];
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export type ApiDigitalTwinMGetLastMeasuresResult = Record<string, DigitalTwinMeasures>;
|
|
20
|
+
export interface ApiDigitalTwinGetLastMeasuredAtRequest<ControllerName extends string> extends DigitalTwinControllerRequest<ControllerName> {
|
|
21
|
+
action: "getLastMeasuredAt";
|
|
22
|
+
_id: string;
|
|
23
|
+
}
|
|
24
|
+
export type ApiDigitalTwinGetLastMeasuredAtResult = {
|
|
25
|
+
lastMeasuredAt: number;
|
|
26
|
+
};
|
|
27
|
+
export interface ApiDigitalTwinMGetLastMeasuredAtRequest<ControllerName extends string> extends DigitalTwinControllerRequest<ControllerName> {
|
|
28
|
+
action: "mGetLastMeasuredAt";
|
|
29
|
+
body: {
|
|
30
|
+
ids: string[];
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export type ApiDigitalTwinMGetLastMeasuredAtResult = Record<string, number>;
|
|
34
|
+
export {};
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { JSONObject, KDocumentContent } from "kuzzle-sdk";
|
|
2
|
-
import { EmbeddedMeasure } from "./EmbeddedMeasure";
|
|
3
2
|
import { Metadata } from "./Metadata";
|
|
3
|
+
import { DigitalTwinMeasures } from "./DigitalTwinMeasures";
|
|
4
4
|
export interface DigitalTwinContent<TMeasures extends JSONObject = JSONObject, TMetadata extends Metadata = Metadata> extends KDocumentContent {
|
|
5
5
|
model: string;
|
|
6
6
|
reference: string;
|
|
7
7
|
metadata: TMetadata;
|
|
8
|
-
measures:
|
|
9
|
-
[Property in keyof TMeasures]: EmbeddedMeasure<TMeasures[Property]> | null;
|
|
10
|
-
};
|
|
8
|
+
measures: DigitalTwinMeasures<TMeasures>;
|
|
11
9
|
lastMeasuredAt: number;
|
|
12
10
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MeasureContent } from "../../measure";
|
|
2
|
+
export type AskDigitalTwinLastMeasuresGet = {
|
|
3
|
+
name: "ask:device-manager:asset:get-last-measures" | "ask:device-manager:device:get-last-measures";
|
|
4
|
+
payload: {
|
|
5
|
+
engineId: string;
|
|
6
|
+
digitalTwinId: string;
|
|
7
|
+
};
|
|
8
|
+
result: MeasureContent[];
|
|
9
|
+
};
|