@c8y/client
Version:
Client application programming interface to access the Cumulocity IoT-Platform REST services.
586 lines • 19.9 kB
TypeScript
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