import { JSONObject, KDocument, KHit, SearchResult, mUpdateResponse } from "kuzzle-sdk"; import { AssetsGroupsBody, AssetsGroupContent } from "./AssetGroupContent"; type AssetsGroupsRequest = Omit; export type AssetsGroupsBodyRequest = Partial & Omit; export type UpdateAssetLinkResponse = mUpdateResponse & { assetsGroups: KDocument; }; interface GroupControllerRequest { controller: "device-manager/assetsGroup"; engineId: string; } export interface ApiGroupCreateRequest extends GroupControllerRequest { action: "create"; _id?: string; body: Omit; } export type ApiGroupCreateResult = KDocument; export interface ApiGroupGetRequest extends GroupControllerRequest { action: "get"; _id: string; } export type ApiGroupGetResult = KDocument; export interface ApiGroupUpdateRequest extends GroupControllerRequest { action: "update"; _id: string; body: AssetsGroupsBodyRequest; } export type ApiGroupUpdateResult = KDocument; export interface ApiGroupDeleteRequest extends GroupControllerRequest { action: "delete"; _id: string; } export type ApiGroupDeleteResult = void; export interface ApiGroupSearchRequest extends GroupControllerRequest { action: "search"; from?: number; size?: number; scrollTTL?: string; lang?: "koncorde" | "elasticsearch"; body: JSONObject; } export type ApiGroupSearchResult = SearchResult>; export interface ApiGroupAddAssetsRequest extends GroupControllerRequest { action: "addAsset"; _id: string; body: { assetIds: string[]; }; } export type ApiGroupAddAssetsResult = UpdateAssetLinkResponse; export interface ApiGroupRemoveAssetsRequest extends GroupControllerRequest { action: "removeAsset"; _id: string; body: { assetIds: string[]; }; } export type ApiGroupRemoveAssetsResult = UpdateAssetLinkResponse; export {};