3f343370ce
- Introduced comprehensive tests for device security features including GetRemoteUser, SetRemoteUser, GetIPAddressFilter, SetIPAddressFilter, and more. - Implemented mock server responses for various ONVIF device security SOAP actions. - Added new types and constants for device services, capabilities, and network protocols in types.go. - Enhanced existing tests for device services, discovery modes, and network configurations. - Ensured proper handling of service capabilities and network protocols in the client.
1062 lines
25 KiB
Go
1062 lines
25 KiB
Go
package onvif
|
|
|
|
import "time"
|
|
|
|
// DeviceInformation contains basic device information
|
|
type DeviceInformation struct {
|
|
Manufacturer string
|
|
Model string
|
|
FirmwareVersion string
|
|
SerialNumber string
|
|
HardwareID string
|
|
}
|
|
|
|
// Capabilities represents the device capabilities
|
|
type Capabilities struct {
|
|
Analytics *AnalyticsCapabilities
|
|
Device *DeviceCapabilities
|
|
Events *EventCapabilities
|
|
Imaging *ImagingCapabilities
|
|
Media *MediaCapabilities
|
|
PTZ *PTZCapabilities
|
|
Extension *CapabilitiesExtension
|
|
}
|
|
|
|
// AnalyticsCapabilities represents analytics service capabilities
|
|
type AnalyticsCapabilities struct {
|
|
XAddr string
|
|
RuleSupport bool
|
|
AnalyticsModuleSupport bool
|
|
}
|
|
|
|
// DeviceCapabilities represents device service capabilities
|
|
type DeviceCapabilities struct {
|
|
XAddr string
|
|
Network *NetworkCapabilities
|
|
System *SystemCapabilities
|
|
IO *IOCapabilities
|
|
Security *SecurityCapabilities
|
|
}
|
|
|
|
// EventCapabilities represents event service capabilities
|
|
type EventCapabilities struct {
|
|
XAddr string
|
|
WSSubscriptionPolicySupport bool
|
|
WSPullPointSupport bool
|
|
WSPausableSubscriptionSupport bool
|
|
}
|
|
|
|
// ImagingCapabilities represents imaging service capabilities
|
|
type ImagingCapabilities struct {
|
|
XAddr string
|
|
}
|
|
|
|
// MediaCapabilities represents media service capabilities
|
|
type MediaCapabilities struct {
|
|
XAddr string
|
|
StreamingCapabilities *StreamingCapabilities
|
|
}
|
|
|
|
// PTZCapabilities represents PTZ service capabilities
|
|
type PTZCapabilities struct {
|
|
XAddr string
|
|
}
|
|
|
|
// NetworkCapabilities represents network capabilities
|
|
type NetworkCapabilities struct {
|
|
IPFilter bool
|
|
ZeroConfiguration bool
|
|
IPVersion6 bool
|
|
DynDNS bool
|
|
Extension *NetworkCapabilitiesExtension
|
|
}
|
|
|
|
// SystemCapabilities represents system capabilities
|
|
type SystemCapabilities struct {
|
|
DiscoveryResolve bool
|
|
DiscoveryBye bool
|
|
RemoteDiscovery bool
|
|
SystemBackup bool
|
|
SystemLogging bool
|
|
FirmwareUpgrade bool
|
|
SupportedVersions []string
|
|
Extension *SystemCapabilitiesExtension
|
|
}
|
|
|
|
// IOCapabilities represents I/O capabilities
|
|
type IOCapabilities struct {
|
|
InputConnectors int
|
|
RelayOutputs int
|
|
Extension *IOCapabilitiesExtension
|
|
}
|
|
|
|
// SecurityCapabilities represents security capabilities
|
|
type SecurityCapabilities struct {
|
|
TLS11 bool
|
|
TLS12 bool
|
|
OnboardKeyGeneration bool
|
|
AccessPolicyConfig bool
|
|
X509Token bool
|
|
SAMLToken bool
|
|
KerberosToken bool
|
|
RELToken bool
|
|
Extension *SecurityCapabilitiesExtension
|
|
}
|
|
|
|
// StreamingCapabilities represents streaming capabilities
|
|
type StreamingCapabilities struct {
|
|
RTPMulticast bool
|
|
RTP_TCP bool
|
|
RTP_RTSP_TCP bool
|
|
Extension *StreamingCapabilitiesExtension
|
|
}
|
|
|
|
// Extension types
|
|
type CapabilitiesExtension struct{}
|
|
type NetworkCapabilitiesExtension struct{}
|
|
type SystemCapabilitiesExtension struct{}
|
|
type IOCapabilitiesExtension struct{}
|
|
type SecurityCapabilitiesExtension struct{}
|
|
type StreamingCapabilitiesExtension struct{}
|
|
|
|
// Profile represents a media profile
|
|
type Profile struct {
|
|
Token string
|
|
Name string
|
|
VideoSourceConfiguration *VideoSourceConfiguration
|
|
AudioSourceConfiguration *AudioSourceConfiguration
|
|
VideoEncoderConfiguration *VideoEncoderConfiguration
|
|
AudioEncoderConfiguration *AudioEncoderConfiguration
|
|
PTZConfiguration *PTZConfiguration
|
|
MetadataConfiguration *MetadataConfiguration
|
|
Extension *ProfileExtension
|
|
}
|
|
|
|
// VideoSourceConfiguration represents video source configuration
|
|
type VideoSourceConfiguration struct {
|
|
Token string
|
|
Name string
|
|
UseCount int
|
|
SourceToken string
|
|
Bounds *IntRectangle
|
|
}
|
|
|
|
// AudioSourceConfiguration represents audio source configuration
|
|
type AudioSourceConfiguration struct {
|
|
Token string
|
|
Name string
|
|
UseCount int
|
|
SourceToken string
|
|
}
|
|
|
|
// VideoEncoderConfiguration represents video encoder configuration
|
|
type VideoEncoderConfiguration struct {
|
|
Token string
|
|
Name string
|
|
UseCount int
|
|
Encoding string // JPEG, MPEG4, H264
|
|
Resolution *VideoResolution
|
|
Quality float64
|
|
RateControl *VideoRateControl
|
|
MPEG4 *MPEG4Configuration
|
|
H264 *H264Configuration
|
|
Multicast *MulticastConfiguration
|
|
SessionTimeout time.Duration
|
|
}
|
|
|
|
// AudioEncoderConfiguration represents audio encoder configuration
|
|
type AudioEncoderConfiguration struct {
|
|
Token string
|
|
Name string
|
|
UseCount int
|
|
Encoding string // G711, G726, AAC
|
|
Bitrate int
|
|
SampleRate int
|
|
Multicast *MulticastConfiguration
|
|
SessionTimeout time.Duration
|
|
}
|
|
|
|
// PTZConfiguration represents PTZ configuration
|
|
type PTZConfiguration struct {
|
|
Token string
|
|
Name string
|
|
UseCount int
|
|
NodeToken string
|
|
DefaultAbsolutePantTiltPositionSpace string
|
|
DefaultAbsoluteZoomPositionSpace string
|
|
DefaultRelativePanTiltTranslationSpace string
|
|
DefaultRelativeZoomTranslationSpace string
|
|
DefaultContinuousPanTiltVelocitySpace string
|
|
DefaultContinuousZoomVelocitySpace string
|
|
DefaultPTZSpeed *PTZSpeed
|
|
DefaultPTZTimeout time.Duration
|
|
PanTiltLimits *PanTiltLimits
|
|
ZoomLimits *ZoomLimits
|
|
}
|
|
|
|
// MetadataConfiguration represents metadata configuration
|
|
type MetadataConfiguration struct {
|
|
Token string
|
|
Name string
|
|
UseCount int
|
|
PTZStatus *PTZFilter
|
|
Events *EventSubscription
|
|
Analytics bool
|
|
Multicast *MulticastConfiguration
|
|
SessionTimeout time.Duration
|
|
}
|
|
|
|
// VideoResolution represents video resolution
|
|
type VideoResolution struct {
|
|
Width int
|
|
Height int
|
|
}
|
|
|
|
// VideoRateControl represents video rate control
|
|
type VideoRateControl struct {
|
|
FrameRateLimit int
|
|
EncodingInterval int
|
|
BitrateLimit int
|
|
}
|
|
|
|
// MPEG4Configuration represents MPEG4 configuration
|
|
type MPEG4Configuration struct {
|
|
GovLength int
|
|
MPEG4Profile string
|
|
}
|
|
|
|
// H264Configuration represents H264 configuration
|
|
type H264Configuration struct {
|
|
GovLength int
|
|
H264Profile string
|
|
}
|
|
|
|
// MulticastConfiguration represents multicast configuration
|
|
type MulticastConfiguration struct {
|
|
Address *IPAddress
|
|
Port int
|
|
TTL int
|
|
AutoStart bool
|
|
}
|
|
|
|
// IPAddress represents an IP address
|
|
type IPAddress struct {
|
|
Type string // IPv4 or IPv6
|
|
Address string
|
|
IPv4Address string
|
|
IPv6Address string
|
|
}
|
|
|
|
// IntRectangle represents a rectangle with integer coordinates
|
|
type IntRectangle struct {
|
|
X int
|
|
Y int
|
|
Width int
|
|
Height int
|
|
}
|
|
|
|
// PTZSpeed represents PTZ speed
|
|
type PTZSpeed struct {
|
|
PanTilt *Vector2D
|
|
Zoom *Vector1D
|
|
}
|
|
|
|
// Vector2D represents a 2D vector
|
|
type Vector2D struct {
|
|
X float64
|
|
Y float64
|
|
Space string
|
|
}
|
|
|
|
// Vector1D represents a 1D vector
|
|
type Vector1D struct {
|
|
X float64
|
|
Space string
|
|
}
|
|
|
|
// PanTiltLimits represents pan/tilt limits
|
|
type PanTiltLimits struct {
|
|
Range *Space2DDescription
|
|
}
|
|
|
|
// ZoomLimits represents zoom limits
|
|
type ZoomLimits struct {
|
|
Range *Space1DDescription
|
|
}
|
|
|
|
// Space2DDescription represents 2D space description
|
|
type Space2DDescription struct {
|
|
URI string
|
|
XRange *FloatRange
|
|
YRange *FloatRange
|
|
}
|
|
|
|
// Space1DDescription represents 1D space description
|
|
type Space1DDescription struct {
|
|
URI string
|
|
XRange *FloatRange
|
|
}
|
|
|
|
// FloatRange represents a float range
|
|
type FloatRange struct {
|
|
Min float64
|
|
Max float64
|
|
}
|
|
|
|
// PTZFilter represents PTZ filter
|
|
type PTZFilter struct {
|
|
Status bool
|
|
Position bool
|
|
}
|
|
|
|
// EventSubscription represents event subscription
|
|
type EventSubscription struct {
|
|
Filter *FilterType
|
|
}
|
|
|
|
// FilterType represents filter type
|
|
type FilterType struct {
|
|
// Simplified for now
|
|
}
|
|
|
|
// ProfileExtension represents profile extension
|
|
type ProfileExtension struct{}
|
|
|
|
// StreamSetup represents stream setup parameters
|
|
type StreamSetup struct {
|
|
Stream string // RTP-Unicast, RTP-Multicast
|
|
Transport *Transport
|
|
}
|
|
|
|
// Transport represents transport parameters
|
|
type Transport struct {
|
|
Protocol string // UDP, TCP, RTSP, HTTP
|
|
Tunnel *Tunnel
|
|
}
|
|
|
|
// Tunnel represents tunnel parameters
|
|
type Tunnel struct{}
|
|
|
|
// MediaURI represents a media URI
|
|
type MediaURI struct {
|
|
URI string
|
|
InvalidAfterConnect bool
|
|
InvalidAfterReboot bool
|
|
Timeout time.Duration
|
|
}
|
|
|
|
// PTZStatus represents PTZ status
|
|
type PTZStatus struct {
|
|
Position *PTZVector
|
|
MoveStatus *PTZMoveStatus
|
|
Error string
|
|
UTCTime time.Time
|
|
}
|
|
|
|
// PTZVector represents PTZ position
|
|
type PTZVector struct {
|
|
PanTilt *Vector2D
|
|
Zoom *Vector1D
|
|
}
|
|
|
|
// PTZMoveStatus represents PTZ movement status
|
|
type PTZMoveStatus struct {
|
|
PanTilt string // IDLE, MOVING, UNKNOWN
|
|
Zoom string // IDLE, MOVING, UNKNOWN
|
|
}
|
|
|
|
// PTZPreset represents a PTZ preset
|
|
type PTZPreset struct {
|
|
Token string
|
|
Name string
|
|
PTZPosition *PTZVector
|
|
}
|
|
|
|
// ImagingSettings represents imaging settings
|
|
type ImagingSettings struct {
|
|
BacklightCompensation *BacklightCompensation
|
|
Brightness *float64
|
|
ColorSaturation *float64
|
|
Contrast *float64
|
|
Exposure *Exposure
|
|
Focus *FocusConfiguration
|
|
IrCutFilter *string
|
|
Sharpness *float64
|
|
WideDynamicRange *WideDynamicRange
|
|
WhiteBalance *WhiteBalance
|
|
Extension *ImagingSettingsExtension
|
|
}
|
|
|
|
// BacklightCompensation represents backlight compensation
|
|
type BacklightCompensation struct {
|
|
Mode string // OFF, ON
|
|
Level float64
|
|
}
|
|
|
|
// Exposure represents exposure settings
|
|
type Exposure struct {
|
|
Mode string // AUTO, MANUAL
|
|
Priority string // LowNoise, FrameRate
|
|
MinExposureTime float64
|
|
MaxExposureTime float64
|
|
MinGain float64
|
|
MaxGain float64
|
|
MinIris float64
|
|
MaxIris float64
|
|
ExposureTime float64
|
|
Gain float64
|
|
Iris float64
|
|
}
|
|
|
|
// FocusConfiguration represents focus configuration
|
|
type FocusConfiguration struct {
|
|
AutoFocusMode string // AUTO, MANUAL
|
|
DefaultSpeed float64
|
|
NearLimit float64
|
|
FarLimit float64
|
|
}
|
|
|
|
// WideDynamicRange represents WDR settings
|
|
type WideDynamicRange struct {
|
|
Mode string // OFF, ON
|
|
Level float64
|
|
}
|
|
|
|
// WhiteBalance represents white balance settings
|
|
type WhiteBalance struct {
|
|
Mode string // AUTO, MANUAL
|
|
CrGain float64
|
|
CbGain float64
|
|
}
|
|
|
|
// ImagingSettingsExtension represents imaging settings extension
|
|
type ImagingSettingsExtension struct{}
|
|
|
|
// HostnameInformation represents hostname configuration
|
|
type HostnameInformation struct {
|
|
FromDHCP bool
|
|
Name string
|
|
}
|
|
|
|
// DNSInformation represents DNS configuration
|
|
type DNSInformation struct {
|
|
FromDHCP bool
|
|
SearchDomain []string
|
|
DNSFromDHCP []IPAddress
|
|
DNSManual []IPAddress
|
|
}
|
|
|
|
// NTPInformation represents NTP configuration
|
|
type NTPInformation struct {
|
|
FromDHCP bool
|
|
NTPFromDHCP []NetworkHost
|
|
NTPManual []NetworkHost
|
|
}
|
|
|
|
// NetworkHost represents a network host
|
|
type NetworkHost struct {
|
|
Type string // IPv4, IPv6, DNS
|
|
IPv4Address string
|
|
IPv6Address string
|
|
DNSname string
|
|
}
|
|
|
|
// NetworkInterface represents a network interface
|
|
type NetworkInterface struct {
|
|
Token string
|
|
Enabled bool
|
|
Info NetworkInterfaceInfo
|
|
IPv4 *IPv4NetworkInterface
|
|
IPv6 *IPv6NetworkInterface
|
|
}
|
|
|
|
// NetworkInterfaceInfo represents network interface info
|
|
type NetworkInterfaceInfo struct {
|
|
Name string
|
|
HwAddress string
|
|
MTU int
|
|
}
|
|
|
|
// IPv4NetworkInterface represents IPv4 configuration
|
|
type IPv4NetworkInterface struct {
|
|
Enabled bool
|
|
Config IPv4Configuration
|
|
}
|
|
|
|
// IPv6NetworkInterface represents IPv6 configuration
|
|
type IPv6NetworkInterface struct {
|
|
Enabled bool
|
|
Config IPv6Configuration
|
|
}
|
|
|
|
// IPv4Configuration represents IPv4 configuration
|
|
type IPv4Configuration struct {
|
|
Manual []PrefixedIPv4Address
|
|
DHCP bool
|
|
}
|
|
|
|
// IPv6Configuration represents IPv6 configuration
|
|
type IPv6Configuration struct {
|
|
Manual []PrefixedIPv6Address
|
|
DHCP bool
|
|
}
|
|
|
|
// PrefixedIPv4Address represents an IPv4 address with prefix
|
|
type PrefixedIPv4Address struct {
|
|
Address string
|
|
PrefixLength int
|
|
}
|
|
|
|
// PrefixedIPv6Address represents an IPv6 address with prefix
|
|
type PrefixedIPv6Address struct {
|
|
Address string
|
|
PrefixLength int
|
|
}
|
|
|
|
// Scope represents a device scope
|
|
type Scope struct {
|
|
ScopeDef string
|
|
ScopeItem string
|
|
}
|
|
|
|
// User represents a user account
|
|
type User struct {
|
|
Username string
|
|
Password string
|
|
UserLevel string // Administrator, Operator, User
|
|
}
|
|
|
|
// VideoSource represents a video source
|
|
type VideoSource struct {
|
|
Token string
|
|
Framerate float64
|
|
Resolution *VideoResolution
|
|
Imaging *ImagingSettings
|
|
}
|
|
|
|
// AudioSource represents an audio source
|
|
type AudioSource struct {
|
|
Token string
|
|
Channels int
|
|
}
|
|
|
|
// AudioOutput represents an audio output
|
|
type AudioOutput struct {
|
|
Token string
|
|
}
|
|
|
|
// ImagingOptions represents available imaging options
|
|
type ImagingOptions struct {
|
|
BacklightCompensation *BacklightCompensationOptions
|
|
Brightness *FloatRange
|
|
ColorSaturation *FloatRange
|
|
Contrast *FloatRange
|
|
Exposure *ExposureOptions
|
|
Focus *FocusOptions
|
|
IrCutFilterModes []string
|
|
Sharpness *FloatRange
|
|
WideDynamicRange *WideDynamicRangeOptions
|
|
WhiteBalance *WhiteBalanceOptions
|
|
}
|
|
|
|
// BacklightCompensationOptions represents backlight compensation options
|
|
type BacklightCompensationOptions struct {
|
|
Mode []string
|
|
Level *FloatRange
|
|
}
|
|
|
|
// ExposureOptions represents exposure options
|
|
type ExposureOptions struct {
|
|
Mode []string
|
|
Priority []string
|
|
MinExposureTime *FloatRange
|
|
MaxExposureTime *FloatRange
|
|
MinGain *FloatRange
|
|
MaxGain *FloatRange
|
|
MinIris *FloatRange
|
|
MaxIris *FloatRange
|
|
ExposureTime *FloatRange
|
|
Gain *FloatRange
|
|
Iris *FloatRange
|
|
}
|
|
|
|
// FocusOptions represents focus options
|
|
type FocusOptions struct {
|
|
AutoFocusModes []string
|
|
DefaultSpeed *FloatRange
|
|
NearLimit *FloatRange
|
|
FarLimit *FloatRange
|
|
}
|
|
|
|
// WideDynamicRangeOptions represents WDR options
|
|
type WideDynamicRangeOptions struct {
|
|
Mode []string
|
|
Level *FloatRange
|
|
}
|
|
|
|
// WhiteBalanceOptions represents white balance options
|
|
type WhiteBalanceOptions struct {
|
|
Mode []string
|
|
YrGain *FloatRange
|
|
YbGain *FloatRange
|
|
}
|
|
|
|
// MoveOptions represents imaging move options
|
|
type MoveOptions struct {
|
|
Absolute *AbsoluteFocusOptions
|
|
Relative *RelativeFocusOptions
|
|
Continuous *ContinuousFocusOptions
|
|
}
|
|
|
|
// AbsoluteFocusOptions represents absolute focus options
|
|
type AbsoluteFocusOptions struct {
|
|
Position FloatRange
|
|
Speed FloatRange
|
|
}
|
|
|
|
// RelativeFocusOptions represents relative focus options
|
|
type RelativeFocusOptions struct {
|
|
Distance FloatRange
|
|
Speed FloatRange
|
|
}
|
|
|
|
// ContinuousFocusOptions represents continuous focus options
|
|
type ContinuousFocusOptions struct {
|
|
Speed FloatRange
|
|
}
|
|
|
|
// ImagingStatus represents imaging status
|
|
type ImagingStatus struct {
|
|
FocusStatus *FocusStatus
|
|
}
|
|
|
|
// FocusStatus represents focus status
|
|
type FocusStatus struct {
|
|
Position float64
|
|
MoveStatus string
|
|
Error string
|
|
}
|
|
|
|
// Service represents an ONVIF service
|
|
type Service struct {
|
|
Namespace string
|
|
XAddr string
|
|
Capabilities interface{}
|
|
Version OnvifVersion
|
|
}
|
|
|
|
// OnvifVersion represents ONVIF version
|
|
type OnvifVersion struct {
|
|
Major int
|
|
Minor int
|
|
}
|
|
|
|
// DeviceServiceCapabilities represents device service capabilities
|
|
type DeviceServiceCapabilities struct {
|
|
Network *NetworkCapabilities
|
|
Security *SecurityCapabilities
|
|
System *SystemCapabilities
|
|
Misc *MiscCapabilities
|
|
}
|
|
|
|
// MiscCapabilities represents miscellaneous capabilities
|
|
type MiscCapabilities struct {
|
|
AuxiliaryCommands []string
|
|
}
|
|
|
|
// DiscoveryMode represents discovery mode
|
|
type DiscoveryMode string
|
|
|
|
const (
|
|
DiscoveryModeDiscoverable DiscoveryMode = "Discoverable"
|
|
DiscoveryModeNonDiscoverable DiscoveryMode = "NonDiscoverable"
|
|
)
|
|
|
|
// NetworkProtocol represents network protocol configuration
|
|
type NetworkProtocol struct {
|
|
Name NetworkProtocolType
|
|
Enabled bool
|
|
Port []int
|
|
}
|
|
|
|
// NetworkProtocolType represents protocol type
|
|
type NetworkProtocolType string
|
|
|
|
const (
|
|
NetworkProtocolHTTP NetworkProtocolType = "HTTP"
|
|
NetworkProtocolHTTPS NetworkProtocolType = "HTTPS"
|
|
NetworkProtocolRTSP NetworkProtocolType = "RTSP"
|
|
)
|
|
|
|
// NetworkGateway represents default gateway
|
|
type NetworkGateway struct {
|
|
IPv4Address []string
|
|
IPv6Address []string
|
|
}
|
|
|
|
// SystemDateTime represents system date and time
|
|
type SystemDateTime struct {
|
|
DateTimeType SetDateTimeType
|
|
DaylightSavings bool
|
|
TimeZone *TimeZone
|
|
UTCDateTime *DateTime
|
|
LocalDateTime *DateTime
|
|
}
|
|
|
|
// SetDateTimeType represents date/time set method
|
|
type SetDateTimeType string
|
|
|
|
const (
|
|
SetDateTimeManual SetDateTimeType = "Manual"
|
|
SetDateTimeNTP SetDateTimeType = "NTP"
|
|
)
|
|
|
|
// TimeZone represents timezone
|
|
type TimeZone struct {
|
|
TZ string // POSIX format
|
|
}
|
|
|
|
// DateTime represents date and time
|
|
type DateTime struct {
|
|
Time Time
|
|
Date Date
|
|
}
|
|
|
|
// Time represents time
|
|
type Time struct {
|
|
Hour int
|
|
Minute int
|
|
Second int
|
|
}
|
|
|
|
// Date represents date
|
|
type Date struct {
|
|
Year int
|
|
Month int
|
|
Day int
|
|
}
|
|
|
|
// SystemLogType represents system log type
|
|
type SystemLogType string
|
|
|
|
const (
|
|
SystemLogTypeSystem SystemLogType = "System"
|
|
SystemLogTypeAccess SystemLogType = "Access"
|
|
)
|
|
|
|
// SystemLog represents system log data
|
|
type SystemLog struct {
|
|
Binary *AttachmentData
|
|
String string
|
|
}
|
|
|
|
// AttachmentData represents attachment/binary data
|
|
type AttachmentData struct {
|
|
ContentType string
|
|
Include *Include
|
|
}
|
|
|
|
// Include represents XOP include
|
|
type Include struct {
|
|
Href string
|
|
}
|
|
|
|
// BackupFile represents backup file
|
|
type BackupFile struct {
|
|
Name string
|
|
Data AttachmentData
|
|
}
|
|
|
|
// FactoryDefaultType represents factory default type
|
|
type FactoryDefaultType string
|
|
|
|
const (
|
|
FactoryDefaultHard FactoryDefaultType = "Hard"
|
|
FactoryDefaultSoft FactoryDefaultType = "Soft"
|
|
)
|
|
|
|
// RelayOutput represents relay output
|
|
type RelayOutput struct {
|
|
Token string
|
|
Properties RelayOutputSettings
|
|
}
|
|
|
|
// RelayOutputSettings represents relay output settings
|
|
type RelayOutputSettings struct {
|
|
Mode RelayMode
|
|
DelayTime time.Duration
|
|
IdleState RelayIdleState
|
|
}
|
|
|
|
// RelayMode represents relay mode
|
|
type RelayMode string
|
|
|
|
const (
|
|
RelayModeMonostable RelayMode = "Monostable"
|
|
RelayModeBistable RelayMode = "Bistable"
|
|
)
|
|
|
|
// RelayIdleState represents relay idle state
|
|
type RelayIdleState string
|
|
|
|
const (
|
|
RelayIdleStateClosed RelayIdleState = "closed"
|
|
RelayIdleStateOpen RelayIdleState = "open"
|
|
)
|
|
|
|
// RelayLogicalState represents relay logical state
|
|
type RelayLogicalState string
|
|
|
|
const (
|
|
RelayLogicalStateActive RelayLogicalState = "active"
|
|
RelayLogicalStateInactive RelayLogicalState = "inactive"
|
|
)
|
|
|
|
// AuxiliaryData represents auxiliary command data
|
|
type AuxiliaryData string
|
|
|
|
// SupportInformation represents support information
|
|
type SupportInformation struct {
|
|
Binary *AttachmentData
|
|
String string
|
|
}
|
|
|
|
// SystemLogUriList represents system log URIs
|
|
type SystemLogUriList struct {
|
|
SystemLog []SystemLogUri
|
|
}
|
|
|
|
// SystemLogUri represents system log URI
|
|
type SystemLogUri struct {
|
|
Type SystemLogType
|
|
Uri string
|
|
}
|
|
|
|
// NetworkZeroConfiguration represents zero-configuration
|
|
type NetworkZeroConfiguration struct {
|
|
InterfaceToken string
|
|
Enabled bool
|
|
Addresses []string
|
|
}
|
|
|
|
// DynamicDNSInformation represents dynamic DNS info
|
|
type DynamicDNSInformation struct {
|
|
Type DynamicDNSType
|
|
Name string
|
|
TTL time.Duration
|
|
}
|
|
|
|
// DynamicDNSType represents dynamic DNS type
|
|
type DynamicDNSType string
|
|
|
|
const (
|
|
DynamicDNSNoUpdate DynamicDNSType = "NoUpdate"
|
|
DynamicDNSClientUpdates DynamicDNSType = "ClientUpdates"
|
|
DynamicDNSServerUpdates DynamicDNSType = "ServerUpdates"
|
|
)
|
|
|
|
// IPAddressFilter represents IP address filter
|
|
type IPAddressFilter struct {
|
|
Type IPAddressFilterType
|
|
IPv4Address []PrefixedIPv4Address
|
|
IPv6Address []PrefixedIPv6Address
|
|
}
|
|
|
|
// IPAddressFilterType represents filter type
|
|
type IPAddressFilterType string
|
|
|
|
const (
|
|
IPAddressFilterAllow IPAddressFilterType = "Allow"
|
|
IPAddressFilterDeny IPAddressFilterType = "Deny"
|
|
)
|
|
|
|
// RemoteUser represents remote user configuration
|
|
type RemoteUser struct {
|
|
Username string
|
|
Password string
|
|
UseDerivedPassword bool
|
|
}
|
|
|
|
// Certificate represents a certificate
|
|
type Certificate struct {
|
|
CertificateID string
|
|
Certificate BinaryData
|
|
}
|
|
|
|
// BinaryData represents binary data
|
|
type BinaryData struct {
|
|
ContentType string
|
|
Data []byte
|
|
}
|
|
|
|
// CertificateStatus represents certificate status
|
|
type CertificateStatus struct {
|
|
CertificateID string
|
|
Status bool
|
|
}
|
|
|
|
// CertificateInformation represents certificate information
|
|
type CertificateInformation struct {
|
|
CertificateID string
|
|
IssuerDN string
|
|
SubjectDN string
|
|
KeyUsage *CertificateUsage
|
|
ExtendedKeyUsage *CertificateUsage
|
|
KeyLength int
|
|
Version string
|
|
SerialNum string
|
|
SignatureAlgorithm string
|
|
Validity *DateTimeRange
|
|
}
|
|
|
|
// CertificateUsage represents certificate usage
|
|
type CertificateUsage struct {
|
|
Critical bool
|
|
Value string
|
|
}
|
|
|
|
// DateTimeRange represents date/time range
|
|
type DateTimeRange struct {
|
|
From time.Time
|
|
Until time.Time
|
|
}
|
|
|
|
// Dot11Capabilities represents 802.11 capabilities
|
|
type Dot11Capabilities struct {
|
|
TKIP bool
|
|
ScanAvailableNetworks bool
|
|
MultipleConfiguration bool
|
|
AdHocStationMode bool
|
|
WEP bool
|
|
}
|
|
|
|
// Dot11Status represents 802.11 status
|
|
type Dot11Status struct {
|
|
SSID string
|
|
BSSID string
|
|
PairCipher Dot11Cipher
|
|
GroupCipher Dot11Cipher
|
|
SignalStrength Dot11SignalStrength
|
|
ActiveConfigAlias string
|
|
}
|
|
|
|
// Dot11Cipher represents 802.11 cipher
|
|
type Dot11Cipher string
|
|
|
|
const (
|
|
Dot11CipherCCMP Dot11Cipher = "CCMP"
|
|
Dot11CipherTKIP Dot11Cipher = "TKIP"
|
|
Dot11CipherAny Dot11Cipher = "Any"
|
|
Dot11CipherExtended Dot11Cipher = "Extended"
|
|
)
|
|
|
|
// Dot11SignalStrength represents signal strength
|
|
type Dot11SignalStrength string
|
|
|
|
const (
|
|
Dot11SignalNone Dot11SignalStrength = "None"
|
|
Dot11SignalVeryBad Dot11SignalStrength = "Very Bad"
|
|
Dot11SignalBad Dot11SignalStrength = "Bad"
|
|
Dot11SignalGood Dot11SignalStrength = "Good"
|
|
Dot11SignalVeryGood Dot11SignalStrength = "Very Good"
|
|
Dot11SignalExtended Dot11SignalStrength = "Extended"
|
|
)
|
|
|
|
// Dot1XConfiguration represents 802.1X configuration
|
|
type Dot1XConfiguration struct {
|
|
Dot1XConfigurationToken string
|
|
Identity string
|
|
AnonymousID string
|
|
EAPMethod int
|
|
CACertificateID []string
|
|
EAPMethodConfiguration *EAPMethodConfiguration
|
|
}
|
|
|
|
// EAPMethodConfiguration represents EAP method configuration
|
|
type EAPMethodConfiguration struct {
|
|
TLSConfiguration *TLSConfiguration
|
|
Password string
|
|
}
|
|
|
|
// TLSConfiguration represents TLS configuration
|
|
type TLSConfiguration struct {
|
|
CertificateID string
|
|
}
|
|
|
|
// Dot11AvailableNetworks represents available 802.11 networks
|
|
type Dot11AvailableNetworks struct {
|
|
SSID string
|
|
BSSID string
|
|
AuthAndMangementSuite []Dot11AuthAndMangementSuite
|
|
PairCipher []Dot11Cipher
|
|
GroupCipher []Dot11Cipher
|
|
SignalStrength Dot11SignalStrength
|
|
}
|
|
|
|
// Dot11AuthAndMangementSuite represents auth suite
|
|
type Dot11AuthAndMangementSuite string
|
|
|
|
const (
|
|
Dot11AuthNone Dot11AuthAndMangementSuite = "None"
|
|
Dot11AuthDot1X Dot11AuthAndMangementSuite = "Dot1X"
|
|
Dot11AuthPSK Dot11AuthAndMangementSuite = "PSK"
|
|
Dot11AuthExtended Dot11AuthAndMangementSuite = "Extended"
|
|
)
|
|
|
|
// StorageConfiguration represents storage configuration
|
|
type StorageConfiguration struct {
|
|
Token string
|
|
Data StorageConfigurationData
|
|
}
|
|
|
|
// StorageConfigurationData represents storage configuration data
|
|
type StorageConfigurationData struct {
|
|
Type string
|
|
LocalPath string
|
|
StorageUri string
|
|
User *UserCredential
|
|
CertPathValidationPolicyID string
|
|
}
|
|
|
|
// UserCredential represents user credentials
|
|
type UserCredential struct {
|
|
UserName string
|
|
Password string
|
|
Token string
|
|
}
|
|
|
|
// LocationEntity represents geo location
|
|
type LocationEntity struct {
|
|
// Simplified - full implementation would include lat/long
|
|
Entity string
|
|
}
|
|
|
|
// PasswordComplexityConfiguration represents password complexity config
|
|
type PasswordComplexityConfiguration struct {
|
|
MinLen int
|
|
Uppercase int
|
|
Number int
|
|
SpecialChars int
|
|
BlockUsernameOccurrence bool
|
|
PolicyConfigurationLocked bool
|
|
}
|
|
|
|
// PasswordHistoryConfiguration represents password history config
|
|
type PasswordHistoryConfiguration struct {
|
|
Enabled bool
|
|
Length int
|
|
}
|
|
|
|
// AuthFailureWarningConfiguration represents auth failure warning config
|
|
type AuthFailureWarningConfiguration struct {
|
|
Enabled bool
|
|
MonitorPeriod int
|
|
MaxAuthFailures int
|
|
}
|
|
|
|
// IntRange represents integer range
|
|
type IntRange struct {
|
|
Min int
|
|
Max int
|
|
}
|