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 RTPTCP bool RTPRTSPTCP bool Extension *StreamingCapabilitiesExtension } // CapabilitiesExtension represents extension types for capabilities. 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{} // MediaServiceCapabilities represents media service capabilities. type MediaServiceCapabilities struct { SnapshotURI bool Rotation bool VideoSourceMode bool OSD bool TemporaryOSDText bool EXICompression bool MaximumNumberOfProfiles int RTPMulticast bool RTPTCP bool RTPRTSPTCP bool } // VideoEncoderConfigurationOptions represents available options for video encoder configuration. type VideoEncoderConfigurationOptions struct { QualityRange *FloatRange JPEG *JPEGOptions H264 *H264Options } // JPEGOptions represents JPEG encoder options. type JPEGOptions struct { ResolutionsAvailable []*VideoResolution FrameRateRange *FloatRange EncodingIntervalRange *IntRange } // H264Options represents H264 encoder options. type H264Options struct { ResolutionsAvailable []*VideoResolution GovLengthRange *IntRange FrameRateRange *FloatRange EncodingIntervalRange *IntRange H264ProfilesSupported []string } // VideoSourceMode represents a video source mode. type VideoSourceMode struct { Token string Enabled bool Resolution *VideoResolution } // OSDConfiguration represents OSD (On-Screen Display) configuration. type OSDConfiguration struct { Token string // Additional fields can be added based on ONVIF spec } // AudioEncoderConfigurationOptions represents available options for audio encoder configuration. type AudioEncoderConfigurationOptions struct { EncodingOptions []string BitrateList []int SampleRateList []int } // MetadataConfigurationOptions represents available options for metadata configuration. type MetadataConfigurationOptions struct { PTZStatusFilterOptions *PTZFilter } // AudioOutputConfiguration represents audio output configuration. type AudioOutputConfiguration struct { Token string Name string UseCount int OutputToken string } // AudioOutputConfigurationOptions represents available options for audio output configuration. type AudioOutputConfigurationOptions struct { OutputTokensAvailable []string } // AudioDecoderConfigurationOptions represents available options for audio decoder configuration. type AudioDecoderConfigurationOptions struct { AACDecOptions *AudioDecoderOptions G711DecOptions *AudioDecoderOptions G726DecOptions *AudioDecoderOptions } // AudioDecoderOptions represents audio decoder options. type AudioDecoderOptions struct { BitrateList []int SampleRateList []int } // GuaranteedNumberOfVideoEncoderInstances represents guaranteed number of video encoder instances. type GuaranteedNumberOfVideoEncoderInstances struct { TotalNumber int JPEG int H264 int MPEG4 int } // OSDConfigurationOptions represents available options for OSD configuration. type OSDConfigurationOptions struct { MaximumNumberOfOSDs int } // VideoSourceConfigurationOptions represents available options for video source configuration. type VideoSourceConfigurationOptions struct { BoundsRange *BoundsRange VideoSourceTokensAvailable []string } // AudioSourceConfigurationOptions represents available options for audio source configuration. type AudioSourceConfigurationOptions struct { InputTokensAvailable []string } // BoundsRange represents bounds range for video source configuration. type BoundsRange struct { X *IntRange Y *IntRange Width *IntRange Height *IntRange } // AudioDecoderConfiguration represents audio decoder configuration. type AudioDecoderConfiguration struct { Token string Name string UseCount int } // VideoAnalyticsConfiguration represents video analytics configuration. type VideoAnalyticsConfiguration struct { Token string Name string UseCount int AnalyticsEngineConfiguration *AnalyticsEngineConfiguration RuleEngineConfiguration *RuleEngineConfiguration } // AnalyticsEngineConfiguration represents analytics engine configuration. type AnalyticsEngineConfiguration struct { AnalyticsEngine *Config Parameters *ItemList } // RuleEngineConfiguration represents rule engine configuration. type RuleEngineConfiguration struct { Rule *Config } // Config represents a generic configuration. type Config struct { Parameters *ItemList } // ItemList represents a list of configuration items. type ItemList struct { SimpleItem []SimpleItem ElementItem []ElementItem } // SimpleItem represents a simple configuration item. type SimpleItem struct { Name string Value string } // ElementItem represents an element configuration item. type ElementItem struct { Name string } // VideoAnalyticsConfigurationOptions represents available options for video analytics configuration. type VideoAnalyticsConfigurationOptions struct { // Simplified for now - can be expanded based on ONVIF spec } // 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 { Entity string `xml:"Entity"` Token string `xml:"Token"` Fixed bool `xml:"Fixed"` Lon float64 `xml:"Lon,attr"` Lat float64 `xml:"Lat,attr"` Elevation float64 `xml:"Elevation,attr"` } // GeoLocation represents geographic location coordinates. type GeoLocation struct { Lon float64 `xml:"lon,attr,omitempty"` // Longitude in degrees Lat float64 `xml:"lat,attr,omitempty"` // Latitude in degrees Elevation float64 `xml:"elevation,attr,omitempty"` // Elevation in meters } // AccessPolicy represents device access policy configuration. type AccessPolicy struct { PolicyFile *BinaryData } // 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 }