UNPKG

@c8y/client

Version:

Client application programming interface to access the Cumulocity IoT-Platform REST services.

586 lines • 19.9 kB
import { IIdentified, Service, IResult, IResultList, IFetchClient, QueriesUtil, QueryObjectFilterComparison, QueryObjectWithDedicatedFilter } from '../core/index.js'; import { IManagedObject } from './IManagedObject.js'; import { InventoryBinaryService } from './InventoryBinaryService.js'; import { Realtime } from '../realtime/index.js'; /** * Possible types of a child. */ export declare enum ChildType { ASSETS = "childAssets", DEVICES = "childDevices", ADDITIONS = "childAdditions" } /** * IdReference is only a combined type of string | number | IIdentified */ export type IdReference = string | number | IIdentified; /** * This class allows for managing managed objects and different child types, see [[ChildType]]. */ export declare class InventoryService extends Service<IManagedObject> { binary: InventoryBinaryService; queriesUtil: QueriesUtil; protected baseUrl: string; protected listUrl: string; protected propertyName: string; protected channel: string; protected inventoriesQueryParamName: string; protected devicesQueryParamName: string; constructor(client: IFetchClient, realtime?: Realtime); /** * Gets the details of managed object * * @param {IdReference} managedObjectOrId ManagedObject or Id of the ManagedObject. * @param {object} filter Filter object. * * @returns Response wrapped in [[IResult]] * * **Example** * ```typescript * * const managedObjId: number = 1; * const filter = { withChildren: false }; * * (async () => { * const {data, res} = await inventoryService.detail(managedObjId, filter); * })(); * ``` */ detail(managedObjectOrId: IdReference, filter?: object): Promise<IResult<IManagedObject>>; /** * Creates a new managed object. * * @param {Partial<IManagedObject>} managedObject * * @returns Response wrapped in [[IResult]] * * **Example** * ```typescript * * const partialManagedObj: Partial<IManagedObject> = { * customFragment: 'yourData' * }; * * (async () => { * const {data, res} = await inventoryService.create(partialManagedObj); * })(); * ``` */ create(managedObject: Partial<IManagedObject>): Promise<IResult<IManagedObject>>; /** * Updates managed object data. * * @param {Partial<IManagedObject>} managedObject Managed object is partially updatable. * * @returns Response wrapped in [[IResult]] * * **Example** * ```typescript * * const partialUpdateObject: Partial<IManagedObject> = { * customFragment: 'Changed data', * name: 'Name' * }; * * (async () => { * const {data, res} = await inventoryService.update(partialUpdateObject); * })(); * ``` */ update(managedObject: Partial<IManagedObject>): Promise<IResult<IManagedObject>>; /** * Gets the list of managed objects filtered by parameters. * * @returns Response wrapped in [[IResultList]] * * @param {object} filter Object containing filters for querying managed objects. * * **Example** * ```typescript * * const filter: object = { * pageSize: 100, * withTotalPages: true * }; * * (async () => { * const {data, res, paging} = await inventoryService.list(filter); * })(); * ``` */ list(filter?: object): Promise<IResultList<IManagedObject>>; /** * Gets total count of managed objects filtered by parameters. * * @returns Response wrapped in [[IResultList]] * * @param {object} filter Object containing filters for querying managed objects. * * **Example** * ```typescript * * const filter: object = { * type: 'c8y_MQTTDevice' * }; * * (async () => { * const {data, res} = await inventoryService.count(filter); * })(); * ``` */ count(filter?: object): Promise<IResult<number>>; /** * Gets the list of all managed objects filtered and sorted by given query. * * @returns Response wrapped in [[IResultList]] * * @param {object} filter Object containing filters for querying managed objects. * * **Example** * ```typescript * * const filter: object = { * pageSize: 100, * withTotalPages: true * }; * * const query = { * name: 'MY-NAM*' * } * * (async () => { * const {data, res, paging} = await inventoryService.listQuery(query, filter); * })(); * ``` */ listQuery(query: QueryObjectWithDedicatedFilter | QueryObjectFilterComparison | QueryObjectFilterComparison[], filter?: object): Promise<IResultList<IManagedObject>>; /** * Gets the list of all devices filtered and sorted by given query. * * @returns Response wrapped in [[IResultList]] * * @param {object} filter Object containing filters for querying devices. * * **Example** * ```typescript * * const filter: object = { * pageSize: 100, * withTotalPages: true * }; * * const query = { * name: 'MY-NAM*' * } * * (async () => { * const {data, res, paging} = await inventoryService.listQueryDevices(query, filter); * })(); * ``` */ listQueryDevices(query: QueryObjectWithDedicatedFilter | QueryObjectFilterComparison | QueryObjectFilterComparison[], filter?: object): Promise<IResultList<IManagedObject>>; /** * Removes managed object with given id. * * @returns Response wrapped in [[IResult]] * * @param {IdReference} managedObjectOrId ManagedObject or Id of the ManagedObject. * @param {object} params Additional query params. * * **Example** * ```typescript * * const managedObjectId: number = 1; * const params: any = { * cascade: true * } * * (async () => { * const {data, res} = await inventoryService.delete(managedObjectId, params); * })(); * ``` */ delete(managedObjectOrId: IdReference, params?: any): Promise<IResult<null>>; /** * Gets a list of child additions from a given managed object (parent) * * @returns Response wrapped in [[IResultList]] * * @param {IdReference} parentReference * @param {object} filter * * **Example** * ```typescript * const parentReferenceId: IdReference = 1; * * const filter: object = { * pageSize: 100, * withTotalPages: true * }; * * (async () => { * const {data, res, paging} = await inventoryService.childAdditionsList(parentReferenceId, filter); * })(); * ``` */ childAdditionsList(parentReference: IdReference, filter?: object): Promise<IResultList<IManagedObject>>; /** * Creates a new managed object as child addition to another managed object (parent) * * @returns Response wrapped in [[IResult]] * * @param {Partial<IManagedObject>} managedObject * @param {IdReference} parentReference * * **Example** * ```typescript * * const mOAsChildAddition: Partial<IManagedObject> = { * name: 'Child addition MO', * type: 'new type', * ... * }; * * // This is the identifier of the managed object which should be the parent of * // mOAsChildAddition, see above. * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childAdditionsCreate(mOAsChildAddition, parentReferenceId); * })(); * ``` */ childAdditionsCreate(managedObject: Partial<IManagedObject>, parentReference: IdReference): Promise<IResult<IIdentified>>; /** * Adds an existing managed object as child addition to another managed object (parent) * * @returns Response wrapped in [[IResult]] * * @param {IdReference} childReference * @param {IdReference} parentReference * * **Example** * ```typescript * * const childRef: number = 2; * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childAdditionsCreate(childRef, parentReferenceId); * })(); * ``` */ childAdditionsAdd(childReference: IdReference, parentReference: IdReference): Promise<IResult<IIdentified>>; /** * Adds bulk of existing managed objects as child addition to another managed object (parent). * * @returns Response wrapped in array of [[IResult]] * * @param {IdReference[]} childReference List of existing managed objects IDs that should be added to another managed object (parent). * @param {IdReference} parentReference * * **Example** * ```typescript * * const childAdditionsRefIds: string[] = ['2', '3']; * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childAdditionsBulkAdd(childAdditionsRefIds, parentReferenceId); * })(); * ``` */ childAdditionsBulkAdd(childReference: IdReference[], parentReference: IdReference): Promise<IResultList<IIdentified>>; /** * Removes an existing managed object as child addition from another managed object (parent) * * @returns Response wrapped in [[IResult]] * * @param {IdReference} childReference * @param {IdReference} parentReference * * **Example** * ```typescript * * const childRef: number = 2; * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childAdditionsRemove(childRef, parentReferenceId); * })(); * ``` */ childAdditionsRemove(childReference: IdReference, parentReference: IdReference): Promise<IResult<null>>; /** * Gets a list of child assets from a given managed object (parent) * * @returns Response wrapped in [[IResultList]] * * @param {IdReference} parentReference * @param {object} filter * * **Example** * ```typescript * * const parentReferenceId: IdReference = 1; * * const filter: object = { * pageSize: 100, * withTotalPages: true * }; * * (async () => { * const {data, res, paging} = await inventoryService.childAssetsList(parentReferenceId, filter); * })(); * ``` */ childAssetsList(parentReference: IdReference, filter?: object): Promise<IResultList<IManagedObject>>; /** * Creates a new managed object as child asset to another managed object (parent) * * @returns Response wrapped in [[IResult]] * * @param {Partial<IManagedObject>} managedObject * @param {IdReference} parentReference * * **Example** * ```typescript * * const mOAsChildAsset: Partial<IManagedObject> = { * name: 'Child asset MO', * type: 'new type', * ... * }; * * // This is the identifier of the managed object which should be the parent of * // mOAsChildAsset, see above. * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childAdditionsCreate(mOAsChildAddition, parentReferenceId); * })(); * ``` */ childAssetsCreate(managedObject: Partial<IManagedObject>, parentReference: IdReference): Promise<IResult<IIdentified>>; /** * Adds an existing managed object as child asset to another managed object (parent) * * @returns Response wrapped in [[IResult]] * * @param {IdReference} childReference * @param {IdReference} parentReference * * **Example** * ```typescript * * const childRef: number = 2; * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childAssetsAdd(childRef, parentReferenceId); * })(); * ``` */ childAssetsAdd(childReference: IdReference, parentReference: IdReference): Promise<IResult<IIdentified>>; /** * Adds bulk of existing managed objects as child assets to another managed object (parent). * * @returns Response wrapped in array of [[IResult]] * * @param {IdReference[]} childReference List of existing managed objects IDs that should be added to another managed object (parent). * @param {IdReference} parentReference * * **Example** * ```typescript * * const childAssetsRefIds: string[] = ['2', '3']; * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childAssetsBulkAdd(childAssetsRefIds, parentReferenceId); * })(); * ``` */ childAssetsBulkAdd(childReference: IdReference[], parentReference: IdReference): Promise<IResultList<IIdentified>>; /** * Removes an existing managed object as child asset from another managed object (parent) * * @returns Response wrapped in [[IResult]] * * @param {IdReference} childReference * @param {IdReference} parentReference * * **Example** * ```typescript * * const childRef: number = 2; * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childAssetsRemove(childRef, parentReferenceId); * })(); * ``` */ childAssetsRemove(childReference: IdReference, parentReference: IdReference): Promise<IResult<null>>; /** * Gets a list of child devices from a given managed object (parent) * * @returns Response wrapped in [[IResultList]] * * @param {IdReference} parentReference * @param {object} filter * * **Example** * ```typescript * * const parentReferenceId: IdReference = 1; * * const filter: object = { * pageSize: 100, * withTotalPages: true * }; * * (async () => { * const {data, res, paging} = await inventoryService.childDevicesList(parentReferenceId, filter); * })(); * ``` */ childDevicesList(parentReference: IdReference, filter?: object): Promise<IResultList<IManagedObject>>; /** * Creates a new managed object as child device to another managed object (parent) * * @returns Response wrapped in [[IResult]] * * @param {Partial<IManagedObject>} managedObject * @param {IdReference} parentReference * * **Example** * ```typescript * * const mOAsChildDevice: Partial<IManagedObject> = { * name: 'Child device MO', * type: 'new type', * ... * }; * * // This is the identifier of the managed object which should be the parent of * // mOAsChildDevice, see above. * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childDevicesCreate(mOAsChildDevice, parentReferenceId); * })(); * ``` */ childDevicesCreate(managedObject: Partial<IManagedObject>, parentReference: IdReference): Promise<IResult<IIdentified>>; /** * Adds an existing managed object as child device to another managed object (parent) * * @returns Response wrapped in [[IResult]] * * @param {IdReference} childReference * @param {IdReference} parentReference * * **Example** * ```typescript * * const childRef: number = 2; * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childDevicesAdd(childRef, parentReferenceId); * })(); * ``` */ childDevicesAdd(childReference: IdReference, parentReference: IdReference): Promise<IResult<IIdentified>>; /** * Adds bulk of existing managed objects as child devices to another managed object (parent). * * @returns Response wrapped in array of [[IResult]] * * @param {IdReference[]} childReference List of existing managed objects IDs that should be added to another managed object (parent). * @param {IdReference} parentReference * * **Example** * ```typescript * * const childDevicesRefIds: string[] = ['2', '3']; * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childDevicesBulkAdd(childDevicesRefIds, parentReferenceId); * })(); * ``` */ childDevicesBulkAdd(childReference: IdReference[], parentReference: IdReference): Promise<IResultList<IIdentified>>; /** * Removes an existing managed object as child device from another managed object (parent) * * @returns Response wrapped in [[IResult]] * * @param {IdReference} childReference * @param {IdReference} parentReference * * **Example** * ```typescript * * const childRef: number = 2; * const parentReferenceId: number = 1; * * (async () => { * const {data, res} = await inventoryService.childDevicesRemove(childRef, parentReferenceId); * })(); * ``` */ childDevicesRemove(childReference: IdReference, parentReference: IdReference): Promise<IResult<null>>; /** * Gets an array of measurement fragments supported by the specified managedObject. * e.g. ["c8y_Temperature", "c8y_Humidity"] * * @returns array of supported measurement fragments * * @param {IdReference} managedObjectOrId */ getSupportedMeasurements(managedObjectOrId: IdReference): Promise<string[]>; /** * Gets an array of measurement series supported by the specified managedObject. * e.g. ["c8y_Temperature.T", "c8y_Humidity.H"] * * @returns array of supported measurement series * * @param {IdReference} managedObjectOrId */ getSupportedSeries(managedObjectOrId: IdReference): Promise<string[]>; /** * Gets an array of measurement series and fragments supported by the specified managedObject. * * @returns array of supported measurement series and fragments * * @param {IdReference} managedObjectOrId */ getMeasurementsAndSeries(managedObjectOrId: IdReference): Promise<Array<{ fragment: string; series: string; }>>; /** * Gets a list of KPIs (data point library entries) matching a given managed object * * @returns Response wrapped in [[IResultList]] * * @param {IdReference} parentReference * @param {object} filter */ assetKPIsList(parentReference: IdReference, filter?: object): Promise<IResultList<IManagedObject>>; protected listKPIs(parentReference: IdReference, filter?: object): Promise<IResultList<IManagedObject>>; protected onBeforeUpdate(objWithId: Partial<IManagedObject>): Partial<IManagedObject>; protected onBeforeCreate(managedObject: Partial<IManagedObject>): Partial<IManagedObject>; private getChildrenUrl; private getChildUrl; private listChildren; private createChild; private addChild; private addChildBulk; private removeChild; private getSupportedMeasurementDetails; } //# sourceMappingURL=InventoryService.d.ts.map