ts-onvif
Version:
Client to ONVIF devices
146 lines (145 loc) • 5.6 kB
TypeScript
/**
* AccessControl ver10 module
* @author Andrew D.Laptev <a.d.laptev@gmail.com>
* @see https://www.onvif.org/ver10/accesscontrol/wsdl/accesscontrol.wsdl
*/
import { Onvif } from './onvif';
import Service from './service';
import { AccessPointState, Capabilities, CreateAccessPoint, CreateAccessPointResponse, CreateArea, CreateAreaResponse, DeleteAccessPoint, DeleteAccessPointAuthenticationProfile, DeleteArea, DisableAccessPoint, EnableAccessPoint, ExternalAuthorization, Feedback, GetAccessPointInfo, GetAccessPointInfoList, GetAccessPointInfoListResponse, GetAccessPointInfoResponse, GetAccessPointList, GetAccessPointListResponse, GetAccessPoints, GetAccessPointsResponse, GetAccessPointState, GetAreaInfo, GetAreaInfoList, GetAreaInfoListResponse, GetAreaInfoResponse, GetAreaList, GetAreaListResponse, GetAreas, GetAreasResponse, ModifyAccessPoint, ModifyArea, SetAccessPoint, SetAccessPointAuthenticationProfile, SetArea } from './interfaces/accesscontrol';
/**
* AccessControl service
* @example
* ```ts
* const list = await cam.accessControl.getAccessPointInfoList();
* const token = list.accessPointInfo![0].token;
* console.log((await cam.accessControl.getAccessPointState({ token })).enabled);
* await cam.accessControl.disableAccessPoint({ token });
* ```
*/
export default class AccessControl extends Service {
constructor(onvif: Onvif);
private static accessPointCapabilitiesToBuild;
private static accessPointInfoToBuild;
private static accessPointToBuild;
private static areaInfoToBuild;
private static areaToBuild;
/**
* Returns the capabilities of the access control service.
*/
getServiceCapabilities(): Promise<Capabilities>;
/**
* Returns a list of access point info items.
* @param options
*/
getAccessPointInfoList(options?: GetAccessPointInfoList): Promise<GetAccessPointInfoListResponse>;
/**
* Returns access point info items for the requested tokens.
* @param options
*/
getAccessPointInfo({ token }: GetAccessPointInfo): Promise<GetAccessPointInfoResponse>;
/**
* Returns a list of access point items.
* @param options
*/
getAccessPointList(options?: GetAccessPointList): Promise<GetAccessPointListResponse>;
/**
* Returns access point items for the requested tokens.
* @param options
*/
getAccessPoints({ token }: GetAccessPoints): Promise<GetAccessPointsResponse>;
/**
* Creates a new access point.
* @param options
*/
createAccessPoint({ accessPoint }: CreateAccessPoint): Promise<CreateAccessPointResponse['token']>;
/**
* Creates or replaces an access point (requires ClientSuppliedTokenSupported).
* @param options
*/
setAccessPoint({ accessPoint }: SetAccessPoint): Promise<void>;
/**
* Modifies an existing access point.
* @param options
*/
modifyAccessPoint({ accessPoint }: ModifyAccessPoint): Promise<void>;
/**
* Deletes an access point.
* @param options
*/
deleteAccessPoint({ token }: DeleteAccessPoint): Promise<void>;
/**
* Sets the authentication profile of an access point.
* @param options
*/
setAccessPointAuthenticationProfile({ token, authenticationProfileToken, }: SetAccessPointAuthenticationProfile): Promise<void>;
/**
* Deletes the authentication profile reference from an access point.
* @param options
*/
deleteAccessPointAuthenticationProfile({ token }: DeleteAccessPointAuthenticationProfile): Promise<void>;
/**
* Returns a list of area info items.
* @param options
*/
getAreaInfoList(options?: GetAreaInfoList): Promise<GetAreaInfoListResponse>;
/**
* Returns area info items for the requested tokens.
* @param options
*/
getAreaInfo({ token }: GetAreaInfo): Promise<GetAreaInfoResponse>;
/**
* Returns a list of area items.
* @param options
*/
getAreaList(options?: GetAreaList): Promise<GetAreaListResponse>;
/**
* Returns area items for the requested tokens.
* @param options
*/
getAreas({ token }: GetAreas): Promise<GetAreasResponse>;
/**
* Creates a new area.
* @param options
*/
createArea({ area }: CreateArea): Promise<CreateAreaResponse['token']>;
/**
* Creates or replaces an area (requires ClientSuppliedTokenSupported).
* @param options
*/
setArea({ area }: SetArea): Promise<void>;
/**
* Modifies an existing area.
* @param options
*/
modifyArea({ area }: ModifyArea): Promise<void>;
/**
* Deletes an area.
* @param options
*/
deleteArea({ token }: DeleteArea): Promise<void>;
/**
* Returns the current state of an access point.
* @param options
*/
getAccessPointState({ token }: GetAccessPointState): Promise<AccessPointState>;
/**
* Enables an access point.
* @param options
*/
enableAccessPoint({ token }: EnableAccessPoint): Promise<void>;
/**
* Disables an access point.
* @param options
*/
disableAccessPoint({ token }: DisableAccessPoint): Promise<void>;
/**
* Informs the device about an external authorization decision.
* @param options
*/
externalAuthorization({ accessPointToken, credentialToken, reason, decision, }: ExternalAuthorization): Promise<void>;
/**
* Provides feedback for an access point.
* @param options
*/
feedback({ accessPointToken, feedbackType, recognitionType, textMessage }: Feedback): Promise<void>;
}