kuzzle-device-manager-types 2.11.0-dev.1 → 3.0.0-3-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/index.d.ts +1 -0
- package/dist/lib/modules/asset/AssetModule.d.ts +1 -4
- package/dist/lib/modules/asset/AssetService.d.ts +7 -4
- package/dist/lib/modules/asset/AssetsController.d.ts +25 -7
- package/dist/lib/modules/asset/exports.d.ts +0 -4
- package/dist/lib/modules/asset/index.d.ts +1 -3
- package/dist/lib/modules/asset/types/AssetApi.d.ts +124 -9
- package/dist/lib/modules/asset/types/AssetContent.d.ts +9 -16
- package/dist/lib/modules/asset/types/AssetHistoryContent.d.ts +4 -11
- package/dist/lib/modules/decoder/DecodedPayload.d.ts +2 -0
- package/dist/lib/modules/decoder/Decoder.d.ts +1 -1
- package/dist/lib/modules/decoder/DecodersController.d.ts +4 -1
- package/dist/lib/modules/decoder/PayloadService.d.ts +1 -0
- package/dist/lib/modules/device/DeviceService.d.ts +6 -47
- package/dist/lib/modules/device/DevicesController.d.ts +5 -5
- package/dist/lib/modules/device/collections/deviceMappings.d.ts +6 -0
- package/dist/lib/modules/device/roles/RoleDevicesAdmin.d.ts +2 -2
- package/dist/lib/modules/device/types/DeviceApi.d.ts +69 -41
- package/dist/lib/modules/device/types/DeviceContent.d.ts +56 -5
- package/dist/lib/modules/device/types/DeviceEvents.d.ts +9 -24
- package/dist/lib/modules/group/GroupsController.d.ts +37 -0
- package/dist/lib/modules/group/GroupsModule.d.ts +10 -0
- package/dist/lib/modules/group/GroupsService.d.ts +118 -0
- package/dist/lib/modules/group/collections/groupsMappings.d.ts +2 -0
- package/dist/lib/modules/group/exports.d.ts +5 -0
- package/dist/lib/modules/group/index.d.ts +4 -0
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsAdmin.d.ts → group/roles/RoleGroupsAdmin.d.ts} +3 -3
- package/dist/lib/modules/{asset/roles/RoleAssetsGroupsReader.d.ts → group/roles/RoleGroupsReader.d.ts} +3 -3
- package/dist/lib/modules/group/types/GroupContent.d.ts +10 -0
- package/dist/lib/modules/group/types/GroupsApi.d.ts +141 -0
- package/dist/lib/modules/measure/MeasureService.d.ts +11 -43
- package/dist/lib/modules/measure/MeasureSourcesBuilder.d.ts +1 -2
- package/dist/lib/modules/measure/MeasureTargetBuilder.d.ts +1 -1
- package/dist/lib/modules/measure/collections/measuresMappings.d.ts +2 -91
- package/dist/lib/modules/measure/exports.d.ts +0 -1
- package/dist/lib/modules/measure/index.d.ts +0 -1
- package/dist/lib/modules/measure/types/MeasureContent.d.ts +9 -2
- package/dist/lib/modules/measure/types/MeasureEvents.d.ts +6 -149
- package/dist/lib/modules/measure/types/MeasureSources.d.ts +5 -0
- package/dist/lib/modules/measure/types/MeasureTarget.d.ts +1 -1
- package/dist/lib/modules/model/ModelService.d.ts +20 -14
- package/dist/lib/modules/model/ModelsController.d.ts +1 -1
- package/dist/lib/modules/model/ModelsRegister.d.ts +6 -5
- package/dist/lib/modules/model/types/ModelApi.d.ts +14 -9
- package/dist/lib/modules/model/types/ModelContent.d.ts +34 -3
- package/dist/lib/modules/model/types/ModelDefinition.d.ts +6 -2
- package/dist/lib/modules/model/types/ModelEvents.d.ts +3 -1
- package/dist/lib/modules/plugin/DeviceManagerEngine.d.ts +15 -6
- package/dist/lib/modules/plugin/DeviceManagerPlugin.d.ts +10 -8
- package/dist/lib/modules/plugin/types/DeviceManagerConfiguration.d.ts +9 -14
- package/dist/lib/modules/plugin/types/InternalCollection.d.ts +1 -1
- package/dist/lib/modules/plugin/types/exports.d.ts +1 -0
- package/dist/lib/modules/shared/services/AbstractExporter.d.ts +3 -1
- package/dist/lib/modules/shared/services/DigitalTwinExporter.d.ts +6 -1
- package/dist/lib/modules/shared/services/DigitalTwinService.d.ts +70 -2
- package/dist/lib/modules/shared/types/DigitalTwinContent.d.ts +4 -5
- package/dist/lib/modules/shared/types/DigitalTwinEvents.d.ts +30 -0
- package/dist/tests/application/assets/Container.d.ts +3 -2
- package/dist/tests/application/decoders/DummyTempDecoder.d.ts +10 -0
- package/dist/tests/application/decoders/DummyTempPositionDecoder.d.ts +10 -0
- package/dist/tests/application/decoders/EmptyTempDecoder.d.ts +8 -0
- package/dist/tests/application/devices/EmptyTemp.d.ts +2 -0
- package/dist/tests/application/devices/index.d.ts +1 -0
- package/dist/tests/application/groups/AssetRestricted.d.ts +8 -0
- package/dist/tests/application/groups/DeviceRestricted.d.ts +8 -0
- package/dist/tests/application/groups/Parking.d.ts +2 -2
- package/dist/tests/application/groups/index.d.ts +2 -0
- package/dist/tests/application/measures/BatteryMeasure.d.ts +5 -0
- package/dist/tests/application/measures/HumidityMeasure.d.ts +5 -0
- package/dist/tests/application/measures/MovementMeasure.d.ts +5 -0
- package/dist/{lib/modules/measure → tests/application}/measures/PositionMeasure.d.ts +2 -2
- package/dist/tests/application/measures/TemperatureMeasure.d.ts +5 -0
- package/dist/tests/application/measures/index.d.ts +5 -0
- package/dist/tests/application/tests/controller.d.ts +0 -1
- package/package.json +1 -1
- package/dist/lib/modules/asset/AssetsGroupsController.d.ts +0 -24
- package/dist/lib/modules/asset/AssetsGroupsService.d.ts +0 -49
- package/dist/lib/modules/asset/collections/assetsGroupsMapping.d.ts +0 -2
- package/dist/lib/modules/asset/types/AssetGroupContent.d.ts +0 -11
- package/dist/lib/modules/asset/types/AssetGroupsApi.d.ts +0 -59
- package/dist/lib/modules/measure/measures/BatteryMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/HumidityMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/MovementMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/TemperatureMeasure.d.ts +0 -5
- package/dist/lib/modules/measure/measures/index.d.ts +0 -5
|
@@ -59,14 +59,40 @@ export interface ApiDeviceSearchRequest extends DevicesControllerRequest {
|
|
|
59
59
|
body: JSONObject;
|
|
60
60
|
}
|
|
61
61
|
export type ApiDeviceSearchResult = SearchResult<KHit<DeviceContent>>;
|
|
62
|
-
export interface
|
|
63
|
-
action: "
|
|
62
|
+
export interface ApiDeviceUnlinkAssetsRequest extends DevicesControllerRequest {
|
|
63
|
+
action: "unlinkAssets";
|
|
64
64
|
_id: string;
|
|
65
65
|
strict?: boolean;
|
|
66
66
|
refresh?: string;
|
|
67
|
+
body: {
|
|
68
|
+
/**
|
|
69
|
+
* This options allows to unlink all the measures of the device
|
|
70
|
+
*/
|
|
71
|
+
allMeasures?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Names of the measure slots of the device to unlink.
|
|
74
|
+
*
|
|
75
|
+
* string[]
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
*
|
|
79
|
+
* ['externalTemperature','position']
|
|
80
|
+
*/
|
|
81
|
+
measureSlots?: string[];
|
|
82
|
+
/**
|
|
83
|
+
* Ids of the assets to unlink.
|
|
84
|
+
*
|
|
85
|
+
* string[]
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
*
|
|
89
|
+
* ['First-asset','Second-asset']
|
|
90
|
+
*/
|
|
91
|
+
assets?: string[];
|
|
92
|
+
};
|
|
67
93
|
}
|
|
68
|
-
export type
|
|
69
|
-
|
|
94
|
+
export type ApiDeviceUnlinkAssetsResult = {
|
|
95
|
+
assets: KDocument<AssetContent>[];
|
|
70
96
|
device: KDocument<DeviceContent>;
|
|
71
97
|
};
|
|
72
98
|
export interface ApiDeviceAttachEngineRequest extends DevicesControllerRequest {
|
|
@@ -81,48 +107,50 @@ export interface ApiDeviceDetachEngineRequest extends DevicesControllerRequest {
|
|
|
81
107
|
refresh?: string;
|
|
82
108
|
}
|
|
83
109
|
export type ApiDeviceDetachEngineResult = void;
|
|
84
|
-
export interface
|
|
85
|
-
action: "
|
|
110
|
+
export interface ApiDeviceLinkAssetsRequest extends DevicesControllerRequest {
|
|
111
|
+
action: "linkAssets";
|
|
86
112
|
_id: string;
|
|
87
113
|
refresh?: string;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
114
|
+
body: {
|
|
115
|
+
linkedMeasures: Array<{
|
|
116
|
+
assetId: string;
|
|
117
|
+
/**
|
|
118
|
+
* This option allows to not specify the names of all the measures that should
|
|
119
|
+
* be linked to the asset.
|
|
120
|
+
*
|
|
121
|
+
* The algorithm will go through all the measures names provided by the device
|
|
122
|
+
* and add the one who are present with the same name in the asset.
|
|
123
|
+
*
|
|
124
|
+
* It will not add the measure if:
|
|
125
|
+
* - it has been specified in the link request
|
|
126
|
+
* - it was already present in the asset
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* if the device provide a measure of type "temperature" with the name "temp"
|
|
130
|
+
* if the asset has declared a measure of type "temperature" with the name "temp"
|
|
131
|
+
* then the measure will be automatically added in the link and will later be propagated to the asset
|
|
132
|
+
*/
|
|
133
|
+
implicitMeasuresLinking?: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* Names of the linked measures.
|
|
136
|
+
*
|
|
137
|
+
* Array<{ asset: string, device: string }>
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
*
|
|
141
|
+
* [
|
|
142
|
+
* { asset: "externalTemperature", device: "temperature" }
|
|
143
|
+
* ]
|
|
144
|
+
*/
|
|
145
|
+
measureSlots?: Array<{
|
|
146
|
+
asset: string;
|
|
147
|
+
device: string;
|
|
148
|
+
}>;
|
|
121
149
|
}>;
|
|
122
150
|
};
|
|
123
151
|
}
|
|
124
|
-
export type
|
|
125
|
-
|
|
152
|
+
export type ApiDeviceLinkAssetsResult = {
|
|
153
|
+
assets: KDocument<AssetContent>[];
|
|
126
154
|
device: KDocument<DeviceContent>;
|
|
127
155
|
};
|
|
128
156
|
export interface ApiDeviceGetMeasuresRequest extends DevicesControllerRequest {
|
|
@@ -1,14 +1,65 @@
|
|
|
1
|
-
import { JSONObject } from "kuzzle-sdk";
|
|
1
|
+
import { JSONObject, KDocumentContent } from "kuzzle-sdk";
|
|
2
2
|
import { DigitalTwinContent, Metadata } from "../../shared";
|
|
3
3
|
/**
|
|
4
4
|
* Device document content
|
|
5
5
|
*/
|
|
6
|
-
export interface DeviceContent<
|
|
6
|
+
export interface DeviceContent<TMetadata extends Metadata = any> extends DigitalTwinContent<TMetadata> {
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Link with attached assets
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
linkedMeasures: Array<{
|
|
11
|
+
/**
|
|
12
|
+
* Asset ID
|
|
13
|
+
*/
|
|
14
|
+
assetId: string;
|
|
15
|
+
/**
|
|
16
|
+
* Slots of the linked measures
|
|
17
|
+
*
|
|
18
|
+
* Array<{ asset: string, device: string, type: string }>
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
*
|
|
22
|
+
* [
|
|
23
|
+
* { asset: "externalTemperature", device: "temperature", }
|
|
24
|
+
* ]
|
|
25
|
+
*/
|
|
26
|
+
measureSlots: Array<{
|
|
27
|
+
asset: string;
|
|
28
|
+
device: string;
|
|
29
|
+
}>;
|
|
30
|
+
}>;
|
|
11
31
|
/**
|
|
12
32
|
*/
|
|
13
|
-
engineId: string;
|
|
33
|
+
engineId: string | null;
|
|
34
|
+
/**
|
|
35
|
+
* Path's of device's groups
|
|
36
|
+
*/
|
|
37
|
+
groups: Array<{
|
|
38
|
+
path: string;
|
|
39
|
+
date: number;
|
|
40
|
+
}>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Platform index Device document content
|
|
44
|
+
*/
|
|
45
|
+
interface DeviceProvisioningContentFields extends Pick<DeviceContent, "model" | "reference" | "engineId" | "measureSlots"> {
|
|
46
|
+
/**
|
|
47
|
+
* Date of provisioning of the device on the platform
|
|
48
|
+
*/
|
|
49
|
+
provisionedAt: number;
|
|
50
|
+
/**
|
|
51
|
+
* Date of last measure from the device
|
|
52
|
+
*/
|
|
53
|
+
lastMeasuredAt: number | null;
|
|
54
|
+
/**
|
|
55
|
+
* An array containing the 5 last measures from the device
|
|
56
|
+
*/
|
|
57
|
+
lastMeasures: Array<{
|
|
58
|
+
measureName: string;
|
|
59
|
+
values: JSONObject;
|
|
60
|
+
measuredAt: number;
|
|
61
|
+
type: string;
|
|
62
|
+
}>;
|
|
14
63
|
}
|
|
64
|
+
export type DeviceProvisioningContent = DeviceProvisioningContentFields & KDocumentContent;
|
|
65
|
+
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { User } from "kuzzle";
|
|
2
2
|
import { KDocument } from "kuzzle-sdk";
|
|
3
|
-
import {
|
|
3
|
+
import { DeviceModelContent } from "../../model";
|
|
4
|
+
import { Metadata } from "../../shared";
|
|
4
5
|
import { DeviceContent } from "./DeviceContent";
|
|
5
|
-
import { ApiDeviceLinkAssetRequest } from "./DeviceApi";
|
|
6
6
|
export type EventDeviceUpdateBefore = {
|
|
7
7
|
name: "device-manager:device:update:before";
|
|
8
8
|
args: [{
|
|
@@ -17,28 +17,6 @@ export type EventDeviceUpdateAfter = {
|
|
|
17
17
|
metadata: Metadata;
|
|
18
18
|
}];
|
|
19
19
|
};
|
|
20
|
-
/**
|
|
21
|
-
* @internal
|
|
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
|
-
};
|
|
34
|
-
export type AskDeviceUnlinkAsset = {
|
|
35
|
-
name: "ask:device-manager:device:unlink-asset";
|
|
36
|
-
payload: {
|
|
37
|
-
deviceId: string;
|
|
38
|
-
user: User;
|
|
39
|
-
};
|
|
40
|
-
result: void;
|
|
41
|
-
};
|
|
42
20
|
export type AskDeviceDetachEngine = {
|
|
43
21
|
name: "ask:device-manager:device:detach-engine";
|
|
44
22
|
payload: {
|
|
@@ -56,3 +34,10 @@ export type AskDeviceAttachEngine = {
|
|
|
56
34
|
};
|
|
57
35
|
result: void;
|
|
58
36
|
};
|
|
37
|
+
export type AskDeviceRefreshModel = {
|
|
38
|
+
name: "ask:device-manager:device:refresh-model";
|
|
39
|
+
payload: {
|
|
40
|
+
deviceModel: DeviceModelContent;
|
|
41
|
+
};
|
|
42
|
+
result: void;
|
|
43
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ControllerDefinition, KuzzleRequest } from "kuzzle";
|
|
2
|
+
import { DeviceManagerPlugin } from "../plugin";
|
|
3
|
+
import { ApiGroupAddAssetsResult, ApiGroupAddDevicesResult, ApiGroupCreateResult, ApiGroupDeleteResult, ApiGroupGetResult, ApiGroupListItemsResult, ApiGroupMCreateResult, ApiGroupMUpdateResult, ApiGroupMUpsertResult, ApiGroupRemoveAssetsResult, ApiGroupRemoveDevicesResult, ApiGroupSearchResult, ApiGroupUpdateResult, ApiGroupUpsertResult, GroupsBodyRequest } from "./types/GroupsApi";
|
|
4
|
+
import { GroupsService } from "./GroupsService";
|
|
5
|
+
import { KuzzleLogger } from "kuzzle-logger";
|
|
6
|
+
export declare class GroupsController {
|
|
7
|
+
private plugin;
|
|
8
|
+
private groupsService;
|
|
9
|
+
definition: ControllerDefinition;
|
|
10
|
+
readonly logger: KuzzleLogger;
|
|
11
|
+
constructor(plugin: DeviceManagerPlugin, groupsService: GroupsService, logger: KuzzleLogger);
|
|
12
|
+
private get sdk();
|
|
13
|
+
private get as();
|
|
14
|
+
/**
|
|
15
|
+
* Check that the path property is valid, and closest parent exists.
|
|
16
|
+
* @param {string} engineId Engine ID
|
|
17
|
+
* @param {string} path The path of a group
|
|
18
|
+
* @throws {BadRequestError} If the path is not a string or if the path is not valid.
|
|
19
|
+
* @returns {void}
|
|
20
|
+
*/
|
|
21
|
+
checkPath(engineId: string, path: GroupsBodyRequest["path"], groupId?: string): Promise<void>;
|
|
22
|
+
checkGroupName(engineId: string, name: GroupsBodyRequest["name"], assetId?: string): Promise<void>;
|
|
23
|
+
create(request: KuzzleRequest): Promise<ApiGroupCreateResult>;
|
|
24
|
+
get(request: KuzzleRequest): Promise<ApiGroupGetResult>;
|
|
25
|
+
upsert(request: KuzzleRequest): Promise<ApiGroupUpsertResult>;
|
|
26
|
+
update(request: KuzzleRequest): Promise<ApiGroupUpdateResult>;
|
|
27
|
+
delete(request: KuzzleRequest): Promise<ApiGroupDeleteResult>;
|
|
28
|
+
search(request: KuzzleRequest): Promise<ApiGroupSearchResult>;
|
|
29
|
+
listItems(request: KuzzleRequest): Promise<ApiGroupListItemsResult>;
|
|
30
|
+
addAssets(request: KuzzleRequest): Promise<ApiGroupAddAssetsResult>;
|
|
31
|
+
removeAssets(request: KuzzleRequest): Promise<ApiGroupRemoveAssetsResult>;
|
|
32
|
+
addDevices(request: KuzzleRequest): Promise<ApiGroupAddDevicesResult>;
|
|
33
|
+
removeDevices(request: KuzzleRequest): Promise<ApiGroupRemoveDevicesResult>;
|
|
34
|
+
mCreate(request: KuzzleRequest): Promise<ApiGroupMCreateResult>;
|
|
35
|
+
mUpdate(request: KuzzleRequest): Promise<ApiGroupMUpdateResult>;
|
|
36
|
+
mUpsert(request: KuzzleRequest): Promise<ApiGroupMUpsertResult>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DeviceManagerPlugin } from "../plugin";
|
|
2
|
+
import { Module } from "../shared/Module";
|
|
3
|
+
import { KuzzleLogger } from "kuzzle-logger";
|
|
4
|
+
export declare class GroupsModule extends Module {
|
|
5
|
+
private groupsController;
|
|
6
|
+
private groupsService;
|
|
7
|
+
readonly logger: KuzzleLogger;
|
|
8
|
+
constructor(plugin: DeviceManagerPlugin);
|
|
9
|
+
init(): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { JSONObject, KDocument } from "kuzzle-sdk";
|
|
2
|
+
import { DeviceManagerPlugin } from "../plugin";
|
|
3
|
+
import { BaseService, Metadata, SearchParams } from "../shared";
|
|
4
|
+
import { KuzzleRequest } from "kuzzle";
|
|
5
|
+
import { AssetContent } from "../asset/types/AssetContent";
|
|
6
|
+
import { ApiGroupMCreateResult, ApiGroupMUpdateResult, ApiGroupMUpsertResult, GroupContent } from "./exports";
|
|
7
|
+
import { DeviceContent } from "../device";
|
|
8
|
+
import { KuzzleLogger } from "kuzzle-logger";
|
|
9
|
+
export declare class GroupsService extends BaseService {
|
|
10
|
+
readonly logger: KuzzleLogger;
|
|
11
|
+
constructor(plugin: DeviceManagerPlugin, logger: KuzzleLogger);
|
|
12
|
+
create(_id: string, engineId: string, metadata: JSONObject, model: string, name: string, path: string, request: KuzzleRequest): Promise<KDocument<GroupContent>>;
|
|
13
|
+
get(engineId: string, _id: string, request: KuzzleRequest): Promise<import("kuzzle").KDocument<GroupContent>>;
|
|
14
|
+
update(request: KuzzleRequest, _id: string, engineId: string, name?: string, path?: string, metadata?: Metadata): Promise<import("kuzzle").KDocument<GroupContent>>;
|
|
15
|
+
delete(_id: string, engineId: string, request: KuzzleRequest): Promise<{
|
|
16
|
+
_id: string;
|
|
17
|
+
}>;
|
|
18
|
+
search(engineId: string, searchParams: SearchParams, request: KuzzleRequest): Promise<import("kuzzle").SearchResult<import("kuzzle").KHit<GroupContent>>>;
|
|
19
|
+
listItems(engineId: string, _id: string, includeChildren: boolean, options: {
|
|
20
|
+
from?: number;
|
|
21
|
+
size?: number;
|
|
22
|
+
}, request: KuzzleRequest): Promise<{
|
|
23
|
+
assets: {
|
|
24
|
+
hits: import("kuzzle").KHit<AssetContent<any>>[];
|
|
25
|
+
total: number;
|
|
26
|
+
};
|
|
27
|
+
devices: {
|
|
28
|
+
hits: import("kuzzle").KHit<DeviceContent<any>>[];
|
|
29
|
+
total: number;
|
|
30
|
+
};
|
|
31
|
+
}>;
|
|
32
|
+
addAssets(engineId: string, path: string, assetIds: string[], request: KuzzleRequest): Promise<{
|
|
33
|
+
group: import("kuzzle").KDocument<GroupContent>;
|
|
34
|
+
successes: {
|
|
35
|
+
_id: string;
|
|
36
|
+
_source: import("kuzzle").JSONObject;
|
|
37
|
+
_version: number;
|
|
38
|
+
}[];
|
|
39
|
+
errors: {
|
|
40
|
+
document: {
|
|
41
|
+
_id: string;
|
|
42
|
+
body: import("kuzzle").JSONObject;
|
|
43
|
+
};
|
|
44
|
+
status: number;
|
|
45
|
+
reason: string;
|
|
46
|
+
}[];
|
|
47
|
+
}>;
|
|
48
|
+
removeAssets(engineId: string, path: string, assetIds: string[], request: KuzzleRequest): Promise<{
|
|
49
|
+
group: import("kuzzle").KDocument<GroupContent>;
|
|
50
|
+
successes: {
|
|
51
|
+
_id: string;
|
|
52
|
+
_source: import("kuzzle").JSONObject;
|
|
53
|
+
_version: number;
|
|
54
|
+
}[];
|
|
55
|
+
errors: {
|
|
56
|
+
document: {
|
|
57
|
+
_id: string;
|
|
58
|
+
body: import("kuzzle").JSONObject;
|
|
59
|
+
};
|
|
60
|
+
status: number;
|
|
61
|
+
reason: string;
|
|
62
|
+
}[];
|
|
63
|
+
}>;
|
|
64
|
+
addDevices(engineId: string, path: string, deviceIds: string[], request: KuzzleRequest): Promise<{
|
|
65
|
+
group: import("kuzzle").KDocument<GroupContent>;
|
|
66
|
+
successes: {
|
|
67
|
+
_id: string;
|
|
68
|
+
_source: import("kuzzle").JSONObject;
|
|
69
|
+
_version: number;
|
|
70
|
+
}[];
|
|
71
|
+
errors: {
|
|
72
|
+
document: {
|
|
73
|
+
_id: string;
|
|
74
|
+
body: import("kuzzle").JSONObject;
|
|
75
|
+
};
|
|
76
|
+
status: number;
|
|
77
|
+
reason: string;
|
|
78
|
+
}[];
|
|
79
|
+
}>;
|
|
80
|
+
removeDevices(engineId: string, path: string, deviceIds: string[], request: KuzzleRequest): Promise<{
|
|
81
|
+
group: import("kuzzle").KDocument<GroupContent>;
|
|
82
|
+
successes: {
|
|
83
|
+
_id: string;
|
|
84
|
+
_source: import("kuzzle").JSONObject;
|
|
85
|
+
_version: number;
|
|
86
|
+
}[];
|
|
87
|
+
errors: {
|
|
88
|
+
document: {
|
|
89
|
+
_id: string;
|
|
90
|
+
body: import("kuzzle").JSONObject;
|
|
91
|
+
};
|
|
92
|
+
status: number;
|
|
93
|
+
reason: string;
|
|
94
|
+
}[];
|
|
95
|
+
}>;
|
|
96
|
+
mCreate(engineId: string, groups: Array<{
|
|
97
|
+
_id: string;
|
|
98
|
+
metadata: Metadata;
|
|
99
|
+
model: string;
|
|
100
|
+
name: string;
|
|
101
|
+
path: string;
|
|
102
|
+
}>): Promise<ApiGroupMCreateResult>;
|
|
103
|
+
mUpdate(engineId: string, groups: Array<{
|
|
104
|
+
_id: string;
|
|
105
|
+
metadata: Metadata;
|
|
106
|
+
model: string;
|
|
107
|
+
name: string;
|
|
108
|
+
path: string;
|
|
109
|
+
}>, request: KuzzleRequest): Promise<ApiGroupMUpdateResult>;
|
|
110
|
+
mUpsert(engineId: string, groups: Array<{
|
|
111
|
+
_id: string;
|
|
112
|
+
metadata: Metadata;
|
|
113
|
+
model: string;
|
|
114
|
+
name: string;
|
|
115
|
+
path: string;
|
|
116
|
+
}>, request: KuzzleRequest): Promise<ApiGroupMUpsertResult>;
|
|
117
|
+
private _update;
|
|
118
|
+
}
|
package/dist/lib/modules/{asset/roles/RoleAssetsGroupsAdmin.d.ts → group/roles/RoleGroupsAdmin.d.ts}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { KuzzleRole } from "../../shared/types/KuzzleRole";
|
|
2
2
|
/**
|
|
3
|
-
* This role allows to manage
|
|
3
|
+
* This role allows to manage groups and their models.
|
|
4
4
|
*
|
|
5
5
|
* It's a tenant role.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
*
|
|
9
|
-
"device-manager/
|
|
9
|
+
"device-manager/groups": {
|
|
10
10
|
actions: {
|
|
11
11
|
"*": true,
|
|
12
12
|
},
|
|
@@ -21,4 +21,4 @@ import { KuzzleRole } from "../../shared/types/KuzzleRole";
|
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
*/
|
|
24
|
-
export declare const
|
|
24
|
+
export declare const RoleGroupsAdmin: KuzzleRole;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { KuzzleRole } from "../../shared/types/KuzzleRole";
|
|
2
2
|
/**
|
|
3
|
-
* This role allows to manage
|
|
3
|
+
* This role allows to manage groups and their models.
|
|
4
4
|
*
|
|
5
5
|
* It's a tenant role.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
*
|
|
9
|
-
"device-manager/
|
|
9
|
+
"device-manager/groups": {
|
|
10
10
|
actions: {
|
|
11
11
|
"*": true,
|
|
12
12
|
},
|
|
@@ -21,4 +21,4 @@ import { KuzzleRole } from "../../shared/types/KuzzleRole";
|
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
*/
|
|
24
|
-
export declare const
|
|
24
|
+
export declare const RoleGroupsReader: KuzzleRole;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { KDocumentContent } from "kuzzle-sdk";
|
|
2
|
+
import { Metadata } from "lib/modules/shared";
|
|
3
|
+
export interface GroupsBody<TMetadata extends Metadata = Metadata> extends KDocumentContent {
|
|
4
|
+
name: string;
|
|
5
|
+
model?: string | null;
|
|
6
|
+
path: string;
|
|
7
|
+
lastUpdate: number;
|
|
8
|
+
metadata?: TMetadata;
|
|
9
|
+
}
|
|
10
|
+
export type GroupContent<TMetadata extends Metadata = any> = GroupsBody<TMetadata>;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { JSONObject, KDocument, KHit, SearchResult, mCreateResponse, mUpdateResponse } from "kuzzle-sdk";
|
|
2
|
+
import { GroupsBody, GroupContent } from "./GroupContent";
|
|
3
|
+
import { DeviceContent } from "lib/modules/device";
|
|
4
|
+
import { AssetContent } from "lib/modules/asset";
|
|
5
|
+
type GroupsRequest = Omit<GroupsBody, "lastUpdate">;
|
|
6
|
+
export type GroupsBodyRequest = Partial<GroupsRequest>;
|
|
7
|
+
export type UpdateLinkResponse = mUpdateResponse & {
|
|
8
|
+
group: KDocument<GroupContent>;
|
|
9
|
+
};
|
|
10
|
+
interface GroupControllerRequest {
|
|
11
|
+
controller: "device-manager/groups";
|
|
12
|
+
engineId: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ApiGroupCreateRequest extends GroupControllerRequest {
|
|
15
|
+
action: "create";
|
|
16
|
+
_id?: string;
|
|
17
|
+
body: GroupsBodyRequest;
|
|
18
|
+
}
|
|
19
|
+
export type ApiGroupCreateResult = KDocument<GroupContent>;
|
|
20
|
+
export interface ApiGroupGetRequest extends GroupControllerRequest {
|
|
21
|
+
action: "get";
|
|
22
|
+
_id: string;
|
|
23
|
+
}
|
|
24
|
+
export type ApiGroupGetResult = KDocument<GroupContent>;
|
|
25
|
+
export interface ApiGroupUpdateRequest extends GroupControllerRequest {
|
|
26
|
+
action: "update";
|
|
27
|
+
_id: string;
|
|
28
|
+
body: GroupsBodyRequest;
|
|
29
|
+
}
|
|
30
|
+
export type ApiGroupUpdateResult = KDocument<GroupContent>;
|
|
31
|
+
export interface ApiGroupUpsertRequest extends GroupControllerRequest {
|
|
32
|
+
action: "upsert";
|
|
33
|
+
_id?: string;
|
|
34
|
+
body: GroupsBodyRequest;
|
|
35
|
+
}
|
|
36
|
+
export type ApiGroupUpsertResult = KDocument<GroupContent>;
|
|
37
|
+
export interface ApiGroupDeleteRequest extends GroupControllerRequest {
|
|
38
|
+
action: "delete";
|
|
39
|
+
_id: string;
|
|
40
|
+
}
|
|
41
|
+
export type ApiGroupDeleteResult = void;
|
|
42
|
+
export interface ApiGroupSearchRequest extends GroupControllerRequest {
|
|
43
|
+
action: "search";
|
|
44
|
+
from?: number;
|
|
45
|
+
size?: number;
|
|
46
|
+
scrollTTL?: string;
|
|
47
|
+
lang?: "koncorde" | "elasticsearch";
|
|
48
|
+
body: JSONObject;
|
|
49
|
+
}
|
|
50
|
+
export type ApiGroupSearchResult = SearchResult<KHit<GroupContent>>;
|
|
51
|
+
export interface ApiGroupListItemsRequest extends GroupControllerRequest {
|
|
52
|
+
action: "listItems";
|
|
53
|
+
from?: number;
|
|
54
|
+
size?: number;
|
|
55
|
+
body: {
|
|
56
|
+
includeChildren?: boolean;
|
|
57
|
+
};
|
|
58
|
+
_id: string;
|
|
59
|
+
}
|
|
60
|
+
export type ApiGroupListItemsResult = {
|
|
61
|
+
assets: {
|
|
62
|
+
hits: Array<KHit<AssetContent>>;
|
|
63
|
+
total: number;
|
|
64
|
+
};
|
|
65
|
+
devices: {
|
|
66
|
+
hits: Array<KHit<DeviceContent>>;
|
|
67
|
+
total: number;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
export interface ApiGroupAddAssetsRequest extends GroupControllerRequest {
|
|
71
|
+
action: "addAssets";
|
|
72
|
+
body: {
|
|
73
|
+
path: string;
|
|
74
|
+
assetIds: string[];
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export type ApiGroupAddAssetsResult = UpdateLinkResponse;
|
|
78
|
+
export interface ApiGroupRemoveAssetsRequest extends GroupControllerRequest {
|
|
79
|
+
action: "removeAssets";
|
|
80
|
+
body: {
|
|
81
|
+
path: string;
|
|
82
|
+
assetIds: string[];
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
export type ApiGroupRemoveAssetsResult = UpdateLinkResponse;
|
|
86
|
+
export interface ApiGroupAddDevicesRequest extends GroupControllerRequest {
|
|
87
|
+
action: "addDevices";
|
|
88
|
+
body: {
|
|
89
|
+
path: string;
|
|
90
|
+
deviceIds: string[];
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export type ApiGroupAddDevicesResult = UpdateLinkResponse;
|
|
94
|
+
export interface ApiGroupRemoveDevicesRequest extends GroupControllerRequest {
|
|
95
|
+
action: "removeDevices";
|
|
96
|
+
body: {
|
|
97
|
+
path: string;
|
|
98
|
+
deviceIds: string[];
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export type ApiGroupRemoveDevicesResult = UpdateLinkResponse;
|
|
102
|
+
export interface ApiGroupMCreateRequest extends GroupControllerRequest {
|
|
103
|
+
action: "mCreate";
|
|
104
|
+
body: {
|
|
105
|
+
groups: Array<GroupsBodyRequest & {
|
|
106
|
+
_id?: string;
|
|
107
|
+
}>;
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
export type ApiGroupMCreateResult = mCreateResponse & {
|
|
111
|
+
successes: Array<{
|
|
112
|
+
_id: string;
|
|
113
|
+
_source: GroupContent;
|
|
114
|
+
created: boolean;
|
|
115
|
+
}>;
|
|
116
|
+
};
|
|
117
|
+
export interface ApiGroupMUpdateRequest extends GroupControllerRequest {
|
|
118
|
+
action: "mUpdate";
|
|
119
|
+
body: {
|
|
120
|
+
groups: Array<GroupsBody & {
|
|
121
|
+
_id: string;
|
|
122
|
+
}>;
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
export type ApiGroupMUpdateResult = {
|
|
126
|
+
errors: mUpdateResponse["errors"];
|
|
127
|
+
successes: KDocument<GroupContent>[];
|
|
128
|
+
};
|
|
129
|
+
export interface ApiGroupMUpsertRequest extends GroupControllerRequest {
|
|
130
|
+
action: "mUpsert";
|
|
131
|
+
body: {
|
|
132
|
+
groups: Array<GroupsBody & {
|
|
133
|
+
_id?: string;
|
|
134
|
+
}>;
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
export type ApiGroupMUpsertResult = {
|
|
138
|
+
errors: Array<ApiGroupMCreateResult["errors"][0] | ApiGroupMUpdateResult["errors"][0]>;
|
|
139
|
+
successes: Array<ApiGroupMCreateResult["successes"][0] | ApiGroupMUpdateResult["successes"][0]>;
|
|
140
|
+
};
|
|
141
|
+
export {};
|