Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion src/interfaces/analytics.2.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
import { StringList, Capabilities, SupportedRules, Config, SupportedAnalyticsModules } from './onvif';
import { StringList, SupportedRules, Config, SupportedAnalyticsModules } from './onvif';
import { Frame } from './metadatastream';
import { ReferenceToken } from './common';

export interface Capabilities {
/** Indication that the device supports the rules interface and the rules syntax. */
ruleSupport?: boolean;
/** Indication that the device supports the scene analytics module interface. */
analyticsModuleSupport?: boolean;
/** Indication that the device produces the cell based scene description */
cellBasedSceneDescriptionSupported?: boolean;
/** Indication that the device supports the GetRuleOptions operation on the rules interface */
ruleOptionsSupported?: boolean;
/** Indication that the device supports the GetAnalyticsModuleOptions operation on the analytics interface */
analyticsModuleOptionsSupported?: boolean;
/** Indication that the device supports the GetSupportedMetadata operation. */
supportedMetadata?: boolean;
/** Indication what kinds of method that the device support for sending image, acceptable values are defined in tt:ImageSendingType. */
imageSendingType?: StringList;
[key: string]: unknown;
}
export interface ConfigOptions {
/** The RuleType the ConfigOptions applies to if the Name attribute is ambiguous. */
ruleType?: unknown;
Expand Down
6 changes: 4 additions & 2 deletions src/interfaces/analyticsdevice.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
import { ReferenceToken } from './common';
import {
Capabilities,
AnalyticsEngineInput,
AnalyticsEngineControl,
AnalyticsEngine,
VideoAnalyticsConfiguration,
StreamSetup,
AnalyticsStateInformation,
} from './onvif';
import { ReferenceToken } from './common';
import { AnyURI } from './basics';

export interface Capabilities {
[key: string]: unknown;
}
export interface GetServiceCapabilities {}
export interface GetServiceCapabilitiesResponse {
/** The capabilities for the analytics device service is returned in the Capabilities element. */
Expand Down
16 changes: 15 additions & 1 deletion src/interfaces/appmgmt.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Date, StringAttrList, Capabilities } from './onvif';
import { Date, StringAttrList } from './onvif';
import { AnyURI } from './basics';

export type AppState = 'Active' | 'Inactive' | 'Installing' | 'Uninstalling' | 'Removed' | 'InstallationFailed';
Expand Down Expand Up @@ -40,6 +40,20 @@ export interface LicenseInfo {
/** End time of validity */
validUntil?: Date;
}
export interface Capabilities {
/** List of supported app container formats that can be uploaded via this service. */
formatsSupported?: StringAttrList;
/** Signals support for licensing of applications. */
licensing?: boolean;
/**
* Path part of the URI to which applications can be uploaded via http POST.
* Clients shall use protocol, hostname and port of the service address since the device may e.g. reside behind NAT translation firewall.
*/
uploadPath?: AnyURI;
/** Optional Event Topic prefix used when delivering app events in eventservice. */
eventTopicPrefix?: string;
[key: string]: unknown;
}
export interface Uninstall {
/** App to be uninstalled. Possible failures during deinstallation will be delivered via an event. */
appID: string;
Expand Down
20 changes: 19 additions & 1 deletion src/interfaces/deviceio.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import {
DeviceEntity,
IntItems,
FloatItems,
Capabilities,
VideoOutput,
AudioSourceConfiguration,
AudioOutputConfiguration,
Expand All @@ -31,6 +30,25 @@ export type SerialPortType =
| 'Generic';
/** The parity for the data error detection. */
export type ParityBit = 'None' | 'Even' | 'Odd' | 'Mark' | 'Space' | 'Extended';
export interface Capabilities {
/** Number of video sources (defaults to none). */
videoSources?: number;
/** Number of video outputs (defaults to none). */
videoOutputs?: number;
/** Number of audio sources (defaults to none). */
audioSources?: number;
/** Number of audio outputs (defaults to none). */
audioOutputs?: number;
/** Number of relay outputs (defaults to none). */
relayOutputs?: number;
/** Number of serial ports (defaults to none). */
serialPorts?: number;
/** Number of digital inputs (defaults to none). */
digitalInputs?: number;
/** Indicates support for DigitalInput configuration of the idle state (defaults to false). */
digitalInputOptions?: boolean;
[key: string]: unknown;
}
export interface RelayOutputOptions {
/** Token of the relay output. */
token: ReferenceToken;
Expand Down
5 changes: 4 additions & 1 deletion src/interfaces/devicemgmt.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { AnyURI, Duration } from './basics';
import {
Capabilities,
OnvifVersion,
IntList,
StringList,
Expand Down Expand Up @@ -70,6 +69,10 @@ export type HardwareTypes =
| 'Display'
| 'IO-Device';
export type StorageType = 'NFS' | 'CIFS' | 'CDMI' | 'FTP' | 'ObjectStorageS3' | 'ObjectStorageAzure';
export interface Capabilities {
/** The placeholder for the service capabilities. The service capability element shall be returned here. For example for the device service that would be the tds:DeviceServiceCapabilities element (not complextype). */
[key: string]: unknown;
}
export interface Service {
/** Namespace of the service being described. This parameter allows to match the service capabilities to the service. Note that only one set of capabilities is supported per namespace. */
namespace: AnyURI;
Expand Down
7 changes: 6 additions & 1 deletion src/interfaces/display.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import { Capabilities, Layout, LayoutOptions, CodingCapabilities, PaneConfiguration } from './onvif';
import { ReferenceToken } from './common';
import { Layout, LayoutOptions, CodingCapabilities, PaneConfiguration } from './onvif';

export interface Capabilities {
/** Indication that the SetLayout command supports only predefined layouts. */
fixedLayout?: boolean;
[key: string]: unknown;
}
export interface GetServiceCapabilities {}
export interface GetServiceCapabilitiesResponse {
/** The capabilities for the display service is returned in the Capabilities element. */
Expand Down
21 changes: 20 additions & 1 deletion src/interfaces/event-vs.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,27 @@
import { AnyURI, FilterType, Duration } from './basics';
import { Capabilities, Date } from './onvif';
import { Date } from './onvif';

export type EventBrokerProtocol = 'mqtt' | 'mqtts' | 'ws' | 'wss';
export type ConnectionStatus = 'Offline' | 'Connecting' | 'Connected';
export interface Capabilities {
/** Indicates that the WS Subscription policy is supported. */
WSSubscriptionPolicySupport?: boolean;
/** Indicates that the WS Pausable Subscription Manager Interface is supported. */
WSPausableSubscriptionManagerInterfaceSupport?: boolean;
/** Maximum number of supported notification producers as defined by WS-BaseNotification. */
maxNotificationProducers?: number;
/** Maximum supported number of notification pull points. */
maxPullPoints?: number;
/** Indication if the device supports persistent notification storage. */
persistentNotificationStorage?: boolean;
/** A space separated list of supported event broker protocols as defined by the tev:EventBrokerProtocol datatype. */
eventBrokerProtocols?: string;
/** Maxiumum number of event broker configurations that can be added to the device. */
maxEventBrokers?: number;
/** Indicates that metadata streaming over MQTT is supported */
metadataOverMQTT?: boolean;
[key: string]: unknown;
}
export interface EventBrokerConfig {
/** Event broker address in the format "scheme://host:port[/resource]". The supported schemes shall be returned by the EventBrokerProtocols capability. The resource part of the URL is only valid when using websocket. The Address must be unique. */
address: AnyURI;
Expand Down
21 changes: 20 additions & 1 deletion src/interfaces/event.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,27 @@
import { AnyURI, FilterType, Duration } from './basics';
import { Capabilities, Date } from './onvif';
import { Date } from './onvif';

export type EventBrokerProtocol = 'mqtt' | 'mqtts' | 'ws' | 'wss';
export type ConnectionStatus = 'Offline' | 'Connecting' | 'Connected';
export interface Capabilities {
/** Indicates that the WS Subscription policy is supported. */
WSSubscriptionPolicySupport?: boolean;
/** Indicates that the WS Pausable Subscription Manager Interface is supported. */
WSPausableSubscriptionManagerInterfaceSupport?: boolean;
/** Maximum number of supported notification producers as defined by WS-BaseNotification. */
maxNotificationProducers?: number;
/** Maximum supported number of notification pull points. */
maxPullPoints?: number;
/** Indication if the device supports persistent notification storage. */
persistentNotificationStorage?: boolean;
/** A space separated list of supported event broker protocols as defined by the tev:EventBrokerProtocol datatype. */
eventBrokerProtocols?: string;
/** Maxiumum number of event broker configurations that can be added to the device. */
maxEventBrokers?: number;
/** Indicates that metadata streaming over MQTT is supported */
metadataOverMQTT?: boolean;
[key: string]: unknown;
}
export interface EventBrokerConfig {
/** Event broker address in the format "scheme://host:port[/resource]". The supported schemes shall be returned by the EventBrokerProtocols capability. The resource part of the URL is only valid when using websocket. The Address must be unique. */
address: AnyURI;
Expand Down
4 changes: 3 additions & 1 deletion src/interfaces/federatedsearch.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { AnyURI } from './basics';
import { Capabilities } from './onvif';

/** Corresponds to SimpleTermType definition in ISO/IEC 15938-12 */
export type SimpleTermType = AnyURI;
/** Corresponds to mimeType definition in ISO/IEC 15938-12 */
export type mimeType = string;
export interface Capabilities {
[key: string]: unknown;
}
/**
* Contains features provided by a database, formatted according to
* presets defined in ISO/IEC 15938-12
Expand Down
22 changes: 13 additions & 9 deletions src/interfaces/imaging.2.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
import { ReferenceToken } from './common';
import {
Name,
Capabilities,
ImagingSettings20,
ImagingOptions20,
FocusMove,
MoveOptions20,
ImagingStatus20,
} from './onvif';
import { Name, ImagingSettings20, ImagingOptions20, FocusMove, MoveOptions20, ImagingStatus20 } from './onvif';

/**
* Describes standard Imaging Preset types, used to facilitate Multi-language support and client display.
Expand Down Expand Up @@ -37,6 +29,18 @@ export type ImagingPresetType =
| 'Motion'
| 'FlickerFree50'
| 'FlickerFree60';
export interface Capabilities {
/**
* Indicates whether or not Image Stabilization feature is supported.
* The use of this capability is deprecated, a client should use GetOption to find out if image stabilization is supported.
*/
imageStabilization?: boolean;
/** Indicates whether or not Imaging Presets feature is supported. */
presets?: boolean;
/** Indicates whether or not imaging preset settings can be updated. */
adaptablePreset?: boolean;
[key: string]: unknown;
}
/** Type describing the Imaging Preset settings. */
export interface ImagingPreset {
/** Unique identifier of this Imaging Preset. */
Expand Down
16 changes: 15 additions & 1 deletion src/interfaces/ptz.2.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import {
StringList,
Capabilities,
PTZNode,
PTZConfiguration,
PTZConfigurationOptions,
Expand All @@ -14,6 +13,21 @@ import {
import { ReferenceToken, PTZStatus, PTZVector, GeoLocation } from './common';
import { Duration } from './basics';

export interface Capabilities {
/** Indicates whether or not EFlip is supported. */
EFlip?: boolean;
/** Indicates whether or not reversing of PT control direction is supported. */
reverse?: boolean;
/** Indicates support for the GetCompatibleConfigurations command. */
getCompatibleConfigurations?: boolean;
/** Indicates that the PTZStatus includes MoveStatus information. */
moveStatus?: boolean;
/** Indicates that the PTZStatus includes Position information. */
statusPosition?: boolean;
/** Indication of the methods of MoveAndTrack that are supported, acceptable values are defined in tt:MoveAndTrackMethod. */
moveAndTrack?: StringList;
[key: string]: unknown;
}
export interface GetServiceCapabilities {}
export interface GetServiceCapabilitiesResponse {
/** The capabilities for the PTZ service is returned in the Capabilities element. */
Expand Down
15 changes: 14 additions & 1 deletion src/interfaces/receiver.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
import { Capabilities, Receiver, ReceiverConfiguration, ReceiverMode, ReceiverStateInformation } from './onvif';
import { Receiver, ReceiverConfiguration, ReceiverMode, ReceiverStateInformation } from './onvif';
import { ReferenceToken } from './common';

export interface Capabilities {
/** Indicates that the device can receive RTP multicast streams. */
RTP_Multicast?: boolean;
/** Indicates that the device can receive RTP/TCP streams */
RTP_TCP?: boolean;
/** Indicates that the device can receive RTP/RTSP/TCP streams. */
RTP_RTSP_TCP?: boolean;
/** The maximum number of receivers supported by the device. */
supportedReceivers: number;
/** The maximum allowed length for RTSP URIs (Minimum and default value is 128 octet). */
maximumRTSPURILength?: number;
[key: string]: unknown;
}
export interface GetServiceCapabilities {}
export interface GetServiceCapabilitiesResponse {
/** The capabilities for the receiver service is returned in the Capabilities element. */
Expand Down
53 changes: 52 additions & 1 deletion src/interfaces/recording.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import {
StringList,
StringAttrList,
Capabilities,
RecordingConfiguration,
RecordingReference,
GetRecordingsResponseItem,
Expand All @@ -20,6 +19,58 @@ import {
import { Duration } from './basics';
import { ReferenceToken } from './common';

export interface Capabilities {
/** Indication if the device supports dynamic creation and deletion of recordings */
dynamicRecordings?: boolean;
/** Indication if the device supports dynamic creation and deletion of tracks */
dynamicTracks?: boolean;
/** Indication which encodings are supported for recording. The list may contain one or more enumeration values of tt:VideoEncoding and tt:AudioEncoding. For encodings that are neither defined in tt:VideoEncoding nor tt:AudioEncoding the device shall use the IANA defintions. Note, that a device without audio support shall not return audio encodings. */
encoding?: StringList;
/** Maximum supported bit rate for all tracks of a recording in kBit/s. */
maxRate?: number;
/** Maximum supported bit rate for all recordings in kBit/s. */
maxTotalRate?: number;
/** Maximum number of recordings supported. (Integer values only.) */
maxRecordings?: number;
/** Maximum total number of supported recording jobs by the device. */
maxRecordingJobs?: number;
/** Indication if the device supports the GetRecordingOptions command. */
options?: boolean;
/** Indication if the device supports recording metadata. */
metadataRecording?: boolean;
/**
* Indication that the device supports ExportRecordedData command for the listed export file formats.
* The list shall return at least one export file format value. The value of 'ONVIF' refers to
* ONVIF Export File Format specification.
*/
supportedExportFileFormats?: StringAttrList;
/** Indication that the device supports event triggered recording. */
eventRecording?: boolean;
/** If present a device shall support configuring before event durations up to the given value. */
beforeEventLimit?: Duration;
/** If present a device shall support configuring after event durations up to the given value. */
afterEventLimit?: Duration;
/**
* List of formats supported by the device for recording to an external target.
* See tt:TargetFormat for a list of definitions.
*/
supportedTargetFormats?: StringAttrList;
/**
* Number of encryption entries supported per recording.
* By specifying multiple encryption entries per recording, different tracks can be encrypted with different configurations.
*/
encryptionEntryLimit?: number;
/**
* Indicates supported encryption modes.
* See tt:EncryptionMode for a list of definitions.
*/
supportedEncryptionModes?: StringAttrList;
/** Indicates if the device supports the OverrideSegmentDuration command. */
overrideSegmentDuration?: boolean;
/** Indicates if the device supports asymmetric encryption. */
asymmetricEncryptionSupported?: boolean;
[key: string]: unknown;
}
export interface RecordingOptions {
job: JobOptions;
track: TrackOptions;
Expand Down
13 changes: 12 additions & 1 deletion src/interfaces/replay.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
import { FloatList, Capabilities, StreamSetup, ReplayConfiguration } from './onvif';
import { FloatList, StreamSetup, ReplayConfiguration } from './onvif';
import { AnyURI } from './basics';
import { ReferenceToken } from './common';

export interface Capabilities {
/** Indicator that the Device supports reverse playback as defined in the ONVIF Streaming Specification. */
reversePlayback?: boolean;
/** The list contains two elements defining the minimum and maximum valid values supported as session timeout in seconds. */
sessionTimeoutRange?: FloatList;
/** Indicates support for RTP/RTSP/TCP. */
RTP_RTSP_TCP?: boolean;
/** If playback streaming over WebSocket is supported, this shall return the RTSP WebSocket URI as described in Streaming Specification Section 5.1.1.5. */
RTSPWebSocketUri?: AnyURI;
[key: string]: unknown;
}
export interface GetServiceCapabilities {}
export interface GetServiceCapabilitiesResponse {
/** The capabilities for the replay service is returned in the Capabilities element. */
Expand Down
7 changes: 6 additions & 1 deletion src/interfaces/search.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import {
Capabilities,
RecordingSummary,
RecordingReference,
RecordingInformation,
Expand All @@ -18,6 +17,12 @@ import {
} from './onvif';
import { Duration } from './basics';

export interface Capabilities {
metadataSearch?: boolean;
/** Indicates support for general virtual property events in the FindEvents method. */
generalStartEvents?: boolean;
[key: string]: unknown;
}
export interface GetServiceCapabilities {}
export interface GetServiceCapabilitiesResponse {
/** The capabilities for the search service is returned in the Capabilities element. */
Expand Down
Loading
Loading