kuzzle-device-manager-types 2.4.0-beta.2 → 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/AssetHistoryService.d.ts +2 -4
- package/dist/lib/modules/asset/AssetService.d.ts +25 -26
- package/dist/lib/modules/asset/AssetsController.d.ts +8 -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 +43 -2
- package/dist/lib/modules/asset/types/AssetContent.d.ts +1 -1
- package/dist/lib/modules/decoder/Decoder.d.ts +11 -0
- package/dist/lib/modules/decoder/PayloadService.d.ts +3 -6
- package/dist/lib/modules/decoder/types/DecoderContent.d.ts +1 -0
- package/dist/lib/modules/device/DeviceService.d.ts +31 -46
- package/dist/lib/modules/device/DevicesController.d.ts +7 -1
- package/dist/lib/modules/device/collections/deviceMappings.d.ts +2 -46
- 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/device/types/DeviceEvents.d.ts +29 -0
- package/dist/lib/modules/measure/MeasureExporter.d.ts +5 -2
- package/dist/lib/modules/measure/MeasureService.d.ts +2 -6
- package/dist/lib/modules/measure/collections/measuresMappings.d.ts +18 -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 +17 -9
- 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/exports.d.ts +1 -1
- package/dist/lib/modules/plugin/index.d.ts +1 -2
- package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +27 -5
- package/dist/lib/modules/plugin/types/Pipes.d.ts +17 -0
- package/dist/lib/modules/plugin/types/exports.d.ts +1 -0
- package/dist/lib/modules/plugin/types/index.d.ts +3 -0
- 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 -0
- package/dist/lib/modules/shared/services/BaseService.d.ts +69 -0
- package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +21 -0
- package/dist/lib/modules/shared/services/index.d.ts +2 -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,9 +1,7 @@
|
|
|
1
1
|
import { DeviceManagerPlugin } from "../plugin";
|
|
2
|
+
import { BaseService } from "../shared";
|
|
2
3
|
import { AssetHistoryContent, AssetHistoryEvent } from "./types/AssetHistoryContent";
|
|
3
|
-
export declare class AssetHistoryService {
|
|
4
|
-
private context;
|
|
5
|
-
private config;
|
|
6
|
-
private get sdk();
|
|
4
|
+
export declare class AssetHistoryService extends BaseService {
|
|
7
5
|
constructor(plugin: DeviceManagerPlugin);
|
|
8
6
|
add<TAssetHistoryEvent extends AssetHistoryEvent>(engineId: string, histories: AssetHistoryContent[]): Promise<void>;
|
|
9
7
|
}
|
|
@@ -1,38 +1,37 @@
|
|
|
1
|
-
import { User } from "kuzzle";
|
|
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 { Metadata } from "../shared";
|
|
4
|
+
import { DigitalTwinService, Metadata, SearchParams } from "../shared";
|
|
5
5
|
import { AssetHistoryService } from "./AssetHistoryService";
|
|
6
|
+
import { ApiAssetMigrateTenantResult } from "./types/AssetApi";
|
|
6
7
|
import { AssetContent } from "./types/AssetContent";
|
|
7
|
-
export declare class AssetService {
|
|
8
|
-
private context;
|
|
9
|
-
private config;
|
|
8
|
+
export declare class AssetService extends DigitalTwinService {
|
|
10
9
|
private assetHistoryService;
|
|
11
|
-
private get sdk();
|
|
12
|
-
private get app();
|
|
13
|
-
private get impersonatedSdk();
|
|
14
10
|
constructor(plugin: DeviceManagerPlugin, assetHistoryService: AssetHistoryService);
|
|
15
11
|
registerAskEvents(): void;
|
|
16
|
-
get(engineId: string, assetId: string): Promise<KDocument<AssetContent>>;
|
|
12
|
+
get(engineId: string, assetId: string, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
17
13
|
/**
|
|
18
|
-
*
|
|
14
|
+
* Update an asset metadata
|
|
19
15
|
*/
|
|
20
|
-
update(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
+
*/
|
|
28
|
+
create(engineId: string, model: string, reference: string, metadata: JSONObject, request: KuzzleRequest): Promise<KDocument<AssetContent>>;
|
|
29
|
+
/**
|
|
30
|
+
* Delete an asset metadata
|
|
31
|
+
*/
|
|
32
|
+
delete(engineId: string, assetId: string, request: KuzzleRequest): Promise<void>;
|
|
33
|
+
search(engineId: string, searchParams: SearchParams, request: KuzzleRequest): Promise<SearchResult<KHit<AssetContent>>>;
|
|
34
|
+
migrateTenant(user: User, assetsList: string[], engineId: string, newEngineId: string): Promise<ApiAssetMigrateTenantResult>;
|
|
36
35
|
/**
|
|
37
36
|
* Replace an asset metadata
|
|
38
37
|
*/
|
|
@@ -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 } 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,11 +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>;
|
|
24
|
+
migrateTenant(request: KuzzleRequest): Promise<ApiAssetMigrateTenantResult>;
|
|
25
|
+
getLastMeasuredAt(request: KuzzleRequest): Promise<ApiAssetGetLastMeasuredAtResult>;
|
|
26
|
+
mGetLastMeasuredAt(request: KuzzleRequest): Promise<ApiAssetMGetLastMeasuredAtResult>;
|
|
20
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
|
*
|
|
@@ -96,4 +121,20 @@ export interface ApiAssetExportRequest extends AssetsControllerRequest {
|
|
|
96
121
|
export type ApiAssetExportResult = {
|
|
97
122
|
link: string;
|
|
98
123
|
};
|
|
124
|
+
export interface ApiAssetMigrateTenantRequest extends AssetsControllerRequest {
|
|
125
|
+
action: "migrateTenant";
|
|
126
|
+
engineId: string;
|
|
127
|
+
body: {
|
|
128
|
+
assetsList: string[];
|
|
129
|
+
newEngineId: string;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export type ApiAssetMigrateTenantResult = {
|
|
133
|
+
errors: string[];
|
|
134
|
+
successes: string[];
|
|
135
|
+
};
|
|
136
|
+
export type ApiAssetGetLastMeasuredAtRequest = ApiDigitalTwinGetLastMeasuredAtRequest<AssetsControllerName>;
|
|
137
|
+
export type ApiAssetGetLastMeasuredAtResult = ApiDigitalTwinGetLastMeasuredAtResult;
|
|
138
|
+
export type ApiAssetMGetLastMeasuredAtRequest = ApiDigitalTwinMGetLastMeasuredAtRequest<AssetsControllerName>;
|
|
139
|
+
export type ApiAssetMGetLastMeasuredAtResult = ApiDigitalTwinMGetLastMeasuredAtResult;
|
|
99
140
|
export {};
|
|
@@ -49,4 +49,4 @@ export type AssetMeasureContext<TMetadata extends Metadata = Metadata> = {
|
|
|
49
49
|
* Name of the measure for the Asset
|
|
50
50
|
*/
|
|
51
51
|
measureName: string;
|
|
52
|
-
} & Pick<AssetContent<JSONObject, TMetadata>, "model" | "reference" | "metadata">;
|
|
52
|
+
} & Pick<AssetContent<JSONObject, TMetadata>, "model" | "reference" | "metadata" | "groups">;
|
|
@@ -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,14 +1,11 @@
|
|
|
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
|
+
import { BaseService } from "../shared";
|
|
6
7
|
import { Decoder } from "./Decoder";
|
|
7
|
-
export declare class PayloadService {
|
|
8
|
-
private config;
|
|
9
|
-
private context;
|
|
10
|
-
private get sdk();
|
|
11
|
-
private get app();
|
|
8
|
+
export declare class PayloadService extends BaseService {
|
|
12
9
|
constructor(plugin: DeviceManagerPlugin);
|
|
13
10
|
/**
|
|
14
11
|
* Process a payload by validating and decode it with the `decoder` associated
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { KuzzleRequest } from "kuzzle";
|
|
2
2
|
import { JSONObject, KDocument, KHit, SearchResult } from "kuzzle-sdk";
|
|
3
|
-
import { AssetContent } from "./../asset";
|
|
4
|
-
import { Metadata } from "../shared";
|
|
5
3
|
import { DecodedMeasurement } from "../measure";
|
|
6
|
-
import {
|
|
4
|
+
import { DeviceManagerPlugin } from "../plugin";
|
|
5
|
+
import { DigitalTwinService, Metadata, SearchParams } from "../shared";
|
|
6
|
+
import { AssetContent } from "./../asset";
|
|
7
7
|
import { ApiDeviceLinkAssetRequest } from "./types/DeviceApi";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
private get app();
|
|
13
|
-
private get impersonatedSdk();
|
|
14
|
-
constructor(plugin: Plugin);
|
|
8
|
+
import { DeviceContent } from "./types/DeviceContent";
|
|
9
|
+
export declare class DeviceService extends DigitalTwinService {
|
|
10
|
+
constructor(plugin: DeviceManagerPlugin);
|
|
11
|
+
registerAskEvents(): void;
|
|
15
12
|
/**
|
|
16
13
|
* Create a new device.
|
|
17
14
|
*
|
|
@@ -19,23 +16,20 @@ export declare class DeviceService {
|
|
|
19
16
|
* method since in this case "engineId" is not really an engine ID but still
|
|
20
17
|
* required as an argument (in part to check the tenant rights)
|
|
21
18
|
*/
|
|
22
|
-
create(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
scroll?: string;
|
|
37
|
-
lang?: string;
|
|
38
|
-
}): Promise<SearchResult<KHit<DeviceContent>>>;
|
|
19
|
+
create(model: string, reference: string, metadata: JSONObject, request: KuzzleRequest): Promise<KDocument<DeviceContent>>;
|
|
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>>;
|
|
30
|
+
update(engineId: string, deviceId: string, metadata: Metadata, request: KuzzleRequest): Promise<KDocument<DeviceContent>>;
|
|
31
|
+
delete(engineId: string, deviceId: string, request: KuzzleRequest): Promise<void>;
|
|
32
|
+
search(engineId: string, searchParams: SearchParams, request: KuzzleRequest): Promise<SearchResult<KHit<DeviceContent>>>;
|
|
39
33
|
/**
|
|
40
34
|
* Attach the device to an engine
|
|
41
35
|
*
|
|
@@ -44,29 +38,22 @@ export declare class DeviceService {
|
|
|
44
38
|
* @param options.refresh Wait for ES indexation
|
|
45
39
|
* @param options.strict If true, throw if an operation isn't possible
|
|
46
40
|
*/
|
|
47
|
-
attachEngine(
|
|
48
|
-
refresh?: any;
|
|
49
|
-
}): Promise<KDocument<DeviceContent>>;
|
|
41
|
+
attachEngine(engineId: string, deviceId: string, request: KuzzleRequest): Promise<KDocument<DeviceContent>>;
|
|
50
42
|
/**
|
|
51
43
|
* Detach a device from its attached engine
|
|
52
44
|
*
|
|
53
|
-
* @param deviceId
|
|
54
|
-
* @param
|
|
45
|
+
* @param {string} deviceId Id of the device
|
|
46
|
+
* @param {KuzzleRequest} request kuzzle request
|
|
55
47
|
*/
|
|
56
|
-
detachEngine(
|
|
57
|
-
refresh?: any;
|
|
58
|
-
}): Promise<KDocument<DeviceContent>>;
|
|
48
|
+
detachEngine(deviceId: string, request: KuzzleRequest): Promise<KDocument<DeviceContent>>;
|
|
59
49
|
/**
|
|
60
50
|
* Link a device to an asset.
|
|
61
51
|
*/
|
|
62
|
-
linkAsset(
|
|
63
|
-
refresh?: any;
|
|
64
|
-
implicitMeasuresLinking?: boolean;
|
|
65
|
-
}): Promise<{
|
|
52
|
+
linkAsset(engineId: string, deviceId: string, assetId: string, measureNames: ApiDeviceLinkAssetRequest["body"]["measureNames"], implicitMeasuresLinking: boolean, request: KuzzleRequest): Promise<{
|
|
66
53
|
asset: KDocument<AssetContent>;
|
|
67
54
|
device: KDocument<DeviceContent>;
|
|
68
55
|
}>;
|
|
69
|
-
receiveMeasures(engineId: string, deviceId: string, measures: DecodedMeasurement[], payloadUuids: string[]): Promise<void>;
|
|
56
|
+
receiveMeasures(engineId: string, deviceId: string, measures: DecodedMeasurement[], payloadUuids: string[], request: KuzzleRequest): Promise<void>;
|
|
70
57
|
/**
|
|
71
58
|
* Checks if the asset does not already have a linked device using one of the
|
|
72
59
|
* requested measure names.
|
|
@@ -82,12 +69,10 @@ export declare class DeviceService {
|
|
|
82
69
|
/**
|
|
83
70
|
* Unlink a device of an asset
|
|
84
71
|
*
|
|
85
|
-
* @param deviceId Id of the device
|
|
86
|
-
* @param
|
|
72
|
+
* @param {string} deviceId Id of the device
|
|
73
|
+
* @param {KuzzleRequest} request kuzzle request
|
|
87
74
|
*/
|
|
88
|
-
unlinkAsset(
|
|
89
|
-
refresh?: any;
|
|
90
|
-
}): Promise<{
|
|
75
|
+
unlinkAsset(deviceId: string, request: KuzzleRequest): Promise<{
|
|
91
76
|
asset: KDocument<AssetContent>;
|
|
92
77
|
device: KDocument<DeviceContent>;
|
|
93
78
|
}>;
|
|
@@ -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
|
}
|
|
@@ -1,51 +1,7 @@
|
|
|
1
|
+
import { CollectionMappings } from "kuzzle";
|
|
1
2
|
/**
|
|
2
3
|
* Base mappings for the "devices" collection.
|
|
3
4
|
*
|
|
4
5
|
* Those mappings does not contains the `measures` and `metadata` mappings.
|
|
5
6
|
*/
|
|
6
|
-
export declare const devicesMappings:
|
|
7
|
-
dynamic: string;
|
|
8
|
-
properties: {
|
|
9
|
-
model: {
|
|
10
|
-
type: string;
|
|
11
|
-
fields: {
|
|
12
|
-
text: {
|
|
13
|
-
type: string;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
reference: {
|
|
18
|
-
type: string;
|
|
19
|
-
fields: {
|
|
20
|
-
text: {
|
|
21
|
-
type: string;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
assetId: {
|
|
26
|
-
type: string;
|
|
27
|
-
fields: {
|
|
28
|
-
text: {
|
|
29
|
-
type: string;
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
engineId: {
|
|
34
|
-
type: string;
|
|
35
|
-
fields: {
|
|
36
|
-
text: {
|
|
37
|
-
type: string;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
metadata: {
|
|
42
|
-
properties: {};
|
|
43
|
-
};
|
|
44
|
-
measures: {
|
|
45
|
-
properties: {};
|
|
46
|
-
};
|
|
47
|
-
lastMeasuredAt: {
|
|
48
|
-
type: string;
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
};
|
|
7
|
+
export declare const devicesMappings: CollectionMappings;
|
|
@@ -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 {};
|
|
@@ -2,6 +2,7 @@ import { User } from "kuzzle";
|
|
|
2
2
|
import { KDocument } from "kuzzle-sdk";
|
|
3
3
|
import { Metadata } from "../../../modules/shared";
|
|
4
4
|
import { DeviceContent } from "./DeviceContent";
|
|
5
|
+
import { ApiDeviceLinkAssetRequest } from "./DeviceApi";
|
|
5
6
|
export type EventDeviceUpdateBefore = {
|
|
6
7
|
name: "device-manager:device:update:before";
|
|
7
8
|
args: [{
|
|
@@ -19,6 +20,17 @@ export type EventDeviceUpdateAfter = {
|
|
|
19
20
|
/**
|
|
20
21
|
* @internal
|
|
21
22
|
*/
|
|
23
|
+
export type AskDeviceLinkAsset = {
|
|
24
|
+
name: "ask:device-manager:device:link-asset";
|
|
25
|
+
payload: {
|
|
26
|
+
engineId: string;
|
|
27
|
+
assetId: string;
|
|
28
|
+
deviceId: string;
|
|
29
|
+
user: User;
|
|
30
|
+
measureNames: ApiDeviceLinkAssetRequest["body"]["measureNames"];
|
|
31
|
+
};
|
|
32
|
+
result: void;
|
|
33
|
+
};
|
|
22
34
|
export type AskDeviceUnlinkAsset = {
|
|
23
35
|
name: "ask:device-manager:device:unlink-asset";
|
|
24
36
|
payload: {
|
|
@@ -27,3 +39,20 @@ export type AskDeviceUnlinkAsset = {
|
|
|
27
39
|
};
|
|
28
40
|
result: void;
|
|
29
41
|
};
|
|
42
|
+
export type AskDeviceDetachEngine = {
|
|
43
|
+
name: "ask:device-manager:device:detach-engine";
|
|
44
|
+
payload: {
|
|
45
|
+
deviceId: string;
|
|
46
|
+
user: User;
|
|
47
|
+
};
|
|
48
|
+
result: void;
|
|
49
|
+
};
|
|
50
|
+
export type AskDeviceAttachEngine = {
|
|
51
|
+
name: "ask:device-manager:device:attach-engine";
|
|
52
|
+
payload: {
|
|
53
|
+
engineId: string;
|
|
54
|
+
deviceId: string;
|
|
55
|
+
user: User;
|
|
56
|
+
};
|
|
57
|
+
result: void;
|
|
58
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
-
import { UUID } from "node:crypto";
|
|
4
3
|
import { KHit, User } from "kuzzle";
|
|
4
|
+
import { UUID } from "node:crypto";
|
|
5
5
|
import { AbstractExporter, Column, ExportParams } from "../shared";
|
|
6
6
|
import { MeasureContent } from "./exports";
|
|
7
7
|
interface MeasureSearchParams extends ExportParams {
|
|
@@ -38,7 +38,10 @@ export declare class MeasureExporter extends AbstractExporter<MeasureExportParam
|
|
|
38
38
|
* Never return a rejected promise and write potential error on the stream
|
|
39
39
|
*/
|
|
40
40
|
prepareExport(engineId: string, user: User, params: MeasureSearchParams): Promise<string>;
|
|
41
|
-
protected formatHit(columns: Column
|
|
41
|
+
protected formatHit(columns: Array<Column & {
|
|
42
|
+
shouldCheckName: boolean;
|
|
43
|
+
name: string;
|
|
44
|
+
}>, hit: KHit<MeasureContent>): any[];
|
|
42
45
|
/**
|
|
43
46
|
* Retrieve a prepared export and write each document as a CSV in the stream
|
|
44
47
|
*
|