package domain import "time" type SystemStatus struct { Model string `json:"model"` HardwareProfile string `json:"hardware_profile"` FirmwareVersion string `json:"firmware_version"` BuildNumber string `json:"build_number"` DeviceID string `json:"device_id"` SystemTime time.Time `json:"system_time"` UptimeSeconds int64 `json:"uptime_seconds"` TemperatureCelsius *float64 `json:"temperature_celsius"` LoadAverages []float64 `json:"load_averages"` CPUUsagePercent *float64 `json:"cpu_usage_percent"` MemoryTotalBytes uint64 `json:"memory_total_bytes"` MemoryUsedBytes uint64 `json:"memory_used_bytes"` MemoryAvailableBytes uint64 `json:"memory_available_bytes"` MemoryUsagePercent *float64 `json:"memory_usage_percent"` Storage *StorageMetrics `json:"storage"` NetworkInterfaces []SystemNetworkInterface `json:"network_interfaces"` SerialPortCount int `json:"serial_port_count"` ActiveSessions int `json:"active_sessions"` ActiveAlarms int `json:"active_alarms"` ProtectedLogUsagePercent int `json:"protected_log_usage_percent"` MostUsedPort string `json:"most_used_port"` MostUsedPortBytes uint64 `json:"most_used_port_bytes"` TotalSerialRXBytes uint64 `json:"total_serial_rx_bytes"` TotalSerialTXBytes uint64 `json:"total_serial_tx_bytes"` ActivePortCount int `json:"active_port_count"` OOB OOBStatus `json:"oob"` } type SystemNetworkInterface struct { Name string `json:"name"` Device string `json:"device"` MACAddress string `json:"mac_address"` Link string `json:"link"` SpeedMbps int `json:"speed_mbps"` RXBytes uint64 `json:"rx_bytes"` TXBytes uint64 `json:"tx_bytes"` Addresses []string `json:"addresses"` } type SystemRuntimeMetrics struct { BuildNumber string DeviceID string SystemTime time.Time UptimeSeconds int64 TemperatureCelsius *float64 LoadAverages []float64 CPUUsagePercent *float64 MemoryTotalBytes uint64 MemoryUsedBytes uint64 MemoryAvailableBytes uint64 MemoryUsagePercent *float64 Storage *StorageMetrics NetworkInterfaces []SystemNetworkInterface } type StorageMetrics struct { Path string `json:"path"` TotalBytes uint64 `json:"total_bytes"` UsedBytes uint64 `json:"used_bytes"` AvailableBytes uint64 `json:"available_bytes"` ReservedBytes uint64 `json:"reserved_bytes"` UsagePercent float64 `json:"usage_percent"` } type ServiceHealth struct { Service string `json:"service"` Status string `json:"status"` Detail string `json:"detail"` LastCheckedAt time.Time `json:"last_checked_at"` } type OOBStatus struct { PrimaryInterface string `json:"primary_interface"` FallbackInterface string `json:"fallback_interface"` HealthCheckTarget string `json:"health_check_target"` HealthCheckIntervalSecond int `json:"health_check_interval_seconds"` FailureThreshold int `json:"failure_threshold"` PrimaryLink string `json:"primary_link"` FallbackAvailable bool `json:"fallback_available"` FallbackActive bool `json:"fallback_active"` FailoverReason string `json:"failover_reason"` LastFailoverAt *time.Time `json:"last_failover_at"` } type NetworkAdvancedSettings struct { Mode string `json:"mode"` BondMode string `json:"bond_mode"` BondMii int `json:"bond_mii"` BridgeSTP bool `json:"bridge_stp"` } type DDNSSettings struct { Enabled bool `json:"enabled"` Provider string `json:"provider"` IPv4Enabled bool `json:"ipv4_enabled"` IPv6Enabled bool `json:"ipv6_enabled"` Username string `json:"username"` Password string `json:"password,omitempty"` IPv4Domain string `json:"ipv4_domain"` IPv6Domain string `json:"ipv6_domain"` CheckIPURL string `json:"check_ip_url"` CustomProvider string `json:"custom_provider"` CustomPath string `json:"custom_path"` } type NetworkState struct { HostName string `json:"host_name"` OperatingMode string `json:"operating_mode"` Advanced NetworkAdvancedSettings `json:"advanced"` DDNS DDNSSettings `json:"ddns"` Interfaces []NetworkInterface `json:"interfaces"` OOB OOBStatus `json:"oob"` RoutingMode string `json:"routing_mode"` RollbackTimeoutSeconds int `json:"rollback_timeout_seconds"` DefaultRoute string `json:"default_route,omitempty"` Apply *NetworkApplyStatus `json:"apply,omitempty"` } type NetworkInterface struct { Name string `json:"name"` Device string `json:"device"` DeviceTreeNode string `json:"device_tree_node"` PHY string `json:"phy"` IdentitySource string `json:"identity_source"` ActiveMedium string `json:"active_medium"` Link string `json:"link"` Speed string `json:"speed"` Address string `json:"address"` Gateway string `json:"gateway"` Role string `json:"role"` AddressMode string `json:"address_mode"` DNSServers []string `json:"dns_servers"` IPv6Mode string `json:"ipv6_mode"` IPv6Address string `json:"ipv6_address"` IPv6Gateway string `json:"ipv6_gateway"` IPv6DNSServers []string `json:"ipv6_dns_servers"` Weight int `json:"weight"` } type NetworkAdvancedUpdate struct { Mode *string `json:"mode,omitempty"` BondMode *string `json:"bond_mode,omitempty"` BondMii *int `json:"bond_mii,omitempty"` BridgeSTP *bool `json:"bridge_stp,omitempty"` } type DDNSSettingsUpdate struct { Enabled *bool `json:"enabled,omitempty"` Provider *string `json:"provider,omitempty"` IPv4Enabled *bool `json:"ipv4_enabled,omitempty"` IPv6Enabled *bool `json:"ipv6_enabled,omitempty"` Username *string `json:"username,omitempty"` Password *string `json:"password,omitempty"` IPv4Domain *string `json:"ipv4_domain,omitempty"` IPv6Domain *string `json:"ipv6_domain,omitempty"` CheckIPURL *string `json:"check_ip_url,omitempty"` CustomProvider *string `json:"custom_provider,omitempty"` CustomPath *string `json:"custom_path,omitempty"` } type NetworkUpdate struct { HostName *string `json:"host_name,omitempty"` OperatingMode *string `json:"operating_mode,omitempty"` Advanced *NetworkAdvancedUpdate `json:"advanced,omitempty"` DDNS *DDNSSettingsUpdate `json:"ddns,omitempty"` OOB *OOBSettingsUpdate `json:"oob,omitempty"` Interfaces []NetworkInterfaceUpdate `json:"interfaces,omitempty"` } type NetworkInterfaceUpdate struct { Name string `json:"name"` AddressMode *string `json:"address_mode,omitempty"` Address *string `json:"address,omitempty"` Gateway *string `json:"gateway,omitempty"` DNSServers *[]string `json:"dns_servers,omitempty"` IPv6Mode *string `json:"ipv6_mode,omitempty"` IPv6Address *string `json:"ipv6_address,omitempty"` IPv6Gateway *string `json:"ipv6_gateway,omitempty"` IPv6DNSServers *[]string `json:"ipv6_dns_servers,omitempty"` Role *string `json:"role,omitempty"` Weight *int `json:"weight,omitempty"` } type OOBSettingsUpdate struct { PrimaryInterface *string `json:"primary_interface,omitempty"` FallbackInterface *string `json:"fallback_interface,omitempty"` HealthCheckTarget *string `json:"health_check_target,omitempty"` HealthCheckIntervalSecond *int `json:"health_check_interval_seconds,omitempty"` FailureThreshold *int `json:"failure_threshold,omitempty"` } type NetworkApplyStatus struct { TransactionID string `json:"transaction_id,omitempty"` State string `json:"state"` Deadline *time.Time `json:"deadline,omitempty"` } type NetworkTransactionRequest struct { TransactionID string `json:"transaction_id"` } type Port struct { Channel string `json:"channel"` Alias string `json:"alias"` Status string `json:"status"` Mode string `json:"mode"` ListenerPort int `json:"listener_port"` SerialType string `json:"serial_type"` BaudRate int `json:"baud_rate"` DataBits int `json:"data_bits"` Parity string `json:"parity"` StopBits int `json:"stop_bits"` StopBitsMode string `json:"stop_bits_mode"` FlowControl string `json:"flow_control"` RTSControl string `json:"rts_control"` DTRControl string `json:"dtr_control"` IgnoreJammed bool `json:"ignore_jammed"` ConnectedUsers int `json:"connected_users"` MaxViewers int `json:"max_viewers"` Writer string `json:"writer"` AlarmKeyword string `json:"alarm_keyword"` DataLogMode string `json:"data_log_mode"` DataPackage DataPackage `json:"data_package"` DataLog DataLog `json:"data_log"` Operation1 PortOperation `json:"operation_1"` Operation2 PortOperation `json:"operation_2"` RedirectTo []string `json:"redirect_to"` Runtime *PortRuntime `json:"runtime,omitempty"` } type DataPackage struct { Mode string `json:"mode"` Length int `json:"length"` TimeoutMillis int `json:"timeout_ms"` DelimiterProcess string `json:"delimiter_process"` Delimiter1 int `json:"delimiter_1"` Delimiter2 int `json:"delimiter_2"` } type DataLogTrigger struct { Length int `json:"length"` TimeoutMillis int `json:"timeout_ms"` Process string `json:"process"` Character1 int `json:"character_1"` Character2 int `json:"character_2"` } type DataLog struct { Read bool `json:"read"` Send bool `json:"send"` ShowTimestamp bool `json:"show_timestamp"` ShowDirection bool `json:"show_direction"` ShowUsername bool `json:"show_username"` ShowIPAddress bool `json:"show_ip_address"` ShowPort bool `json:"show_port"` Format string `json:"format"` ReadTrigger DataLogTrigger `json:"read_trigger"` SendTrigger DataLogTrigger `json:"send_trigger"` } type PortOperation struct { Mode string `json:"mode"` Port int `json:"port"` Host string `json:"host,omitempty"` KeepAliveSeconds int `json:"keep_alive_seconds"` TimeoutMilliseconds int `json:"timeout_ms"` InactivityTimeoutMilliseconds int `json:"inactivity_timeout_ms"` MaxClients int `json:"max_clients"` Authentication string `json:"authentication"` Username string `json:"username,omitempty"` PasswordStored bool `json:"password_stored"` Credential string `json:"credential,omitempty"` ClearCredential bool `json:"clear_credential,omitempty"` Newline string `json:"newline"` ControlShortcut string `json:"control_shortcut"` SwitchShortcut string `json:"switch_shortcut"` QuitShortcut string `json:"quit_shortcut"` BreakShortcut string `json:"break_shortcut,omitempty"` InterruptShortcut string `json:"interrupt_shortcut,omitempty"` } type PortRuntime struct { HardwareAvailable bool `json:"hardware_available"` HardwareMessage string `json:"hardware_message,omitempty"` HardwareProfile string `json:"hardware_profile,omitempty"` MappingVersion string `json:"mapping_version,omitempty"` Device string `json:"device,omitempty"` ProfileApplied bool `json:"profile_applied"` AppliedLine *PortLineSettings `json:"applied_line,omitempty"` LinkState string `json:"link_state"` LinkSignal string `json:"link_signal"` LinkAvailable bool `json:"link_available"` LinkEverUp bool `json:"link_ever_up"` LinkMessage string `json:"link_message,omitempty"` CRProbeEnabled bool `json:"cr_probe_enabled"` CRProbeState string `json:"cr_probe_state,omitempty"` CRProbeMethod string `json:"cr_probe_method,omitempty"` CRProbeLastAt *time.Time `json:"cr_probe_last_at,omitempty"` CRProbeResponseAt *time.Time `json:"cr_probe_response_at,omitempty"` CRProbeConfirmedAt *time.Time `json:"cr_probe_confirmed_at,omitempty"` CRProbeBytes int `json:"cr_probe_response_bytes,omitempty"` CRProbeResponses int `json:"cr_probe_consecutive_responses,omitempty"` CRProbeMisses int `json:"cr_probe_consecutive_misses,omitempty"` CRProbeUp bool `json:"cr_probe_up"` CRProbeEverUp bool `json:"cr_probe_ever_up"` CRProbeMessage string `json:"cr_probe_message,omitempty"` SessionState string `json:"session_state"` SessionActive bool `json:"session_active"` RXBytes uint64 `json:"rx_bytes"` TXBytes uint64 `json:"tx_bytes"` LastRXAt *time.Time `json:"last_rx_at,omitempty"` RXAgeMillis int64 `json:"rx_age_ms,omitempty"` QueuedBytes int `json:"queued_bytes"` Operations []PortOperationRuntime `json:"operations,omitempty"` } type PortOperationRuntime struct { Operation int `json:"operation"` Mode string `json:"mode"` Host string `json:"host,omitempty"` Port int `json:"port,omitempty"` State string `json:"state"` ActiveClients int `json:"active_clients"` Sources []string `json:"sources,omitempty"` Targets []string `json:"targets,omitempty"` } type PortLineSettings struct { BaudRate int `json:"baud_rate"` DataBits int `json:"data_bits"` Parity string `json:"parity"` StopBits int `json:"stop_bits"` StopBitsMode string `json:"stop_bits_mode"` FlowControl string `json:"flow_control"` RTSControl string `json:"rts_control"` DTRControl string `json:"dtr_control"` IgnoreJammed bool `json:"ignore_jammed"` } type PortUpdate struct { Alias *string `json:"alias,omitempty"` Mode *string `json:"mode,omitempty"` SerialType *string `json:"serial_type,omitempty"` BaudRate *int `json:"baud_rate,omitempty"` DataBits *int `json:"data_bits,omitempty"` Parity *string `json:"parity,omitempty"` StopBits *int `json:"stop_bits,omitempty"` StopBitsMode *string `json:"stop_bits_mode,omitempty"` FlowControl *string `json:"flow_control,omitempty"` RTSControl *string `json:"rts_control,omitempty"` DTRControl *string `json:"dtr_control,omitempty"` IgnoreJammed *bool `json:"ignore_jammed,omitempty"` AlarmKeyword *string `json:"alarm_keyword,omitempty"` DataLogMode *string `json:"data_log_mode,omitempty"` DataPackage *DataPackage `json:"data_package,omitempty"` DataLog *DataLog `json:"data_log,omitempty"` Operation1 *PortOperation `json:"operation_1,omitempty"` Operation2 *PortOperation `json:"operation_2,omitempty"` RedirectTo []string `json:"redirect_to,omitempty"` } type PortBulkUpdate struct { Channels []string `json:"channels"` Update PortUpdate `json:"update"` } type PortBulkRestart struct { Channels []string `json:"channels"` } type GreenLEDForceRequest struct { Force *bool `json:"force"` } type GreenLEDPulseRequest struct { DwellMilliseconds int `json:"dwell_ms"` } type AlarmRule struct { RuleID string `json:"rule_id"` Name string `json:"name"` Source string `json:"source"` Channel string `json:"channel"` Trigger string `json:"trigger"` Severity string `json:"severity"` Delivery []string `json:"delivery"` Enabled bool `json:"enabled"` } type AlarmRuleUpdate struct { Trigger *string `json:"trigger,omitempty"` Delivery []string `json:"delivery,omitempty"` Enabled *bool `json:"enabled,omitempty"` } type AlarmDeliveryPolicy struct { RetryCount int `json:"retry_count"` RetryIntervalSeconds int `json:"retry_interval_seconds"` PendingQueueLimit int `json:"pending_queue_limit"` NotifyOnRetryExhausted bool `json:"notify_on_retry_exhausted"` } type AlarmDeliveryPolicyUpdate struct { RetryCount *int `json:"retry_count,omitempty"` RetryIntervalSeconds *int `json:"retry_interval_seconds,omitempty"` PendingQueueLimit *int `json:"pending_queue_limit,omitempty"` NotifyOnRetryExhausted *bool `json:"notify_on_retry_exhausted,omitempty"` } type AlarmDeliveryTestRequest struct { RuleID string `json:"rule_id,omitempty"` Delivery []string `json:"delivery,omitempty"` Message string `json:"message,omitempty"` } type EmailNotificationSettings struct { Enabled bool `json:"enabled"` SMTPHost string `json:"smtp_host"` SMTPPort int `json:"smtp_port"` STARTTLSEnabled bool `json:"starttls_enabled"` AuthEnabled bool `json:"auth_enabled"` Username string `json:"username,omitempty"` PasswordStored bool `json:"password_stored"` From string `json:"from"` To []string `json:"to"` CC []string `json:"cc"` CustomTitle string `json:"custom_title"` CustomContent string `json:"custom_content"` } type EmailNotificationUpdate struct { Enabled *bool `json:"enabled,omitempty"` SMTPHost *string `json:"smtp_host,omitempty"` SMTPPort *int `json:"smtp_port,omitempty"` STARTTLSEnabled *bool `json:"starttls_enabled,omitempty"` AuthEnabled *bool `json:"auth_enabled,omitempty"` Username *string `json:"username,omitempty"` PasswordStored *bool `json:"password_stored,omitempty"` From *string `json:"from,omitempty"` To []string `json:"to,omitempty"` CC []string `json:"cc,omitempty"` CustomTitle *string `json:"custom_title,omitempty"` CustomContent *string `json:"custom_content,omitempty"` Password string `json:"password,omitempty"` ClearPassword bool `json:"clear_password,omitempty"` } type SNMPTrapTargetSettings struct { Targets []SNMPTrapTarget `json:"targets"` } type SNMPTrapTarget struct { TargetID string `json:"target_id"` Host string `json:"host"` Port int `json:"port"` Version string `json:"version"` Username string `json:"username,omitempty"` AuthProtocol string `json:"auth_protocol,omitempty"` PrivacyProtocol string `json:"privacy_protocol,omitempty"` EngineID string `json:"engine_id,omitempty"` CredentialStored bool `json:"credential_stored"` PrivacyKeyStored bool `json:"privacy_key_stored"` Enabled bool `json:"enabled"` Credential string `json:"credential,omitempty"` PrivacyKey string `json:"privacy_key,omitempty"` ClearCredential bool `json:"clear_credential,omitempty"` ClearPrivacyKey bool `json:"clear_privacy_key,omitempty"` } type SNMPTrapTargetUpdate struct { Targets []SNMPTrapTarget `json:"targets"` } type SNMPAgentSettings struct { Enabled bool `json:"enabled"` Location string `json:"location"` Contact string `json:"contact"` V1Enabled bool `json:"v1_enabled"` V2CEnabled bool `json:"v2c_enabled"` V3Enabled bool `json:"v3_enabled"` ReadOnlyCommunityStored bool `json:"read_only_community_stored"` ReadWriteCommunityStored bool `json:"read_write_community_stored"` V3Users []SNMPV3User `json:"v3_users"` } type SNMPV3User struct { Username string `json:"username"` Access string `json:"access"` AuthProtocol string `json:"auth_protocol"` PrivacyProtocol string `json:"privacy_protocol"` AuthKeyStored bool `json:"auth_key_stored"` PrivacyKeyStored bool `json:"privacy_key_stored"` Enabled bool `json:"enabled"` AuthKey string `json:"auth_key,omitempty"` PrivacyKey string `json:"privacy_key,omitempty"` ClearAuthKey bool `json:"clear_auth_key,omitempty"` ClearPrivacyKey bool `json:"clear_privacy_key,omitempty"` } type SNMPAgentUpdate struct { Enabled *bool `json:"enabled,omitempty"` Location *string `json:"location,omitempty"` Contact *string `json:"contact,omitempty"` V1Enabled *bool `json:"v1_enabled,omitempty"` V2CEnabled *bool `json:"v2c_enabled,omitempty"` V3Enabled *bool `json:"v3_enabled,omitempty"` ReadOnlyCommunityStored *bool `json:"read_only_community_stored,omitempty"` ReadWriteCommunityStored *bool `json:"read_write_community_stored,omitempty"` V3Users []SNMPV3User `json:"v3_users,omitempty"` ReadOnlyCommunity string `json:"read_only_community,omitempty"` ReadWriteCommunity string `json:"read_write_community,omitempty"` ClearReadOnlyCommunity bool `json:"clear_read_only_community,omitempty"` ClearReadWriteCommunity bool `json:"clear_read_write_community,omitempty"` } type DirectSessionRequest struct { Access string `json:"access,omitempty"` } type DirectSession struct { SessionID string `json:"session_id"` Channel string `json:"channel"` Actor string `json:"actor"` Access string `json:"access"` ViewerCount int `json:"viewer_count"` MaxViewers int `json:"max_viewers"` Writer string `json:"writer"` State string `json:"state"` Message string `json:"message"` AuditID string `json:"audit_id"` StreamURL string `json:"stream_url"` StreamProtocol string `json:"stream_protocol"` StreamTicket string `json:"stream_ticket"` TicketExpiresAt *time.Time `json:"ticket_expires_at,omitempty"` } type PortLogFilter struct { Channel string Keyword string EventType string Direction string Actor string From time.Time To time.Time Limit int Offset int } type LinkLogFilter struct { Kind string Resource string State string EventType string Keyword string From time.Time To time.Time Limit int Offset int } type SystemLogFilter struct { Category string Severity string Keyword string From time.Time To time.Time Limit int Offset int } type SystemLogEvent struct { AuditProtected bool `json:"audit_protected,omitempty"` Timestamp time.Time `json:"timestamp"` Category string `json:"category,omitempty"` Severity string `json:"severity"` Source string `json:"source"` Message string `json:"message"` Actor string `json:"actor,omitempty"` Action string `json:"action,omitempty"` Target string `json:"target,omitempty"` AuditID string `json:"audit_id,omitempty"` } type PortLogEvent struct { Timestamp time.Time `json:"timestamp"` Channel string `json:"channel"` EventType string `json:"event_type"` Direction string `json:"direction,omitempty"` Actor string `json:"actor"` Command string `json:"command,omitempty"` ReturnValue string `json:"return_value,omitempty"` Message string `json:"message"` Match string `json:"match,omitempty"` KeywordMatches []string `json:"keyword_matches,omitempty"` AlarmTriggered bool `json:"alarm_triggered"` Redacted bool `json:"redacted"` Payload []byte `json:"payload_base64,omitempty"` PayloadBytes int `json:"payload_bytes,omitempty"` PayloadEncoding string `json:"payload_encoding,omitempty"` DisplayFormat string `json:"display_format,omitempty"` ShowTimestamp bool `json:"show_timestamp"` ShowDirection bool `json:"show_direction"` ShowUsername bool `json:"show_username"` ShowIPAddress bool `json:"show_ip_address"` ShowPort bool `json:"show_port"` RemoteAddress string `json:"remote_address,omitempty"` RemotePort int `json:"remote_port,omitempty"` } type LinkStateObservation struct { Kind string `json:"kind"` Resource string `json:"resource"` State string `json:"state"` Signal string `json:"signal"` ObservedAt time.Time `json:"observed_at,omitempty"` } type PortLogClearResult struct { Channel string `json:"channel"` Deleted int `json:"deleted"` AuditID string `json:"audit_id"` } type SystemLogClearResult struct { Deleted int `json:"deleted"` AuditID string `json:"audit_id"` } type LinkLogEvent struct { Timestamp time.Time `json:"timestamp"` Kind string `json:"kind"` Resource string `json:"resource"` State string `json:"state"` PreviousState string `json:"previous_state,omitempty"` Signal string `json:"signal"` EventType string `json:"event_type"` AlarmTriggered bool `json:"alarm_triggered"` MatchedRuleIDs []string `json:"matched_rule_ids,omitempty"` Message string `json:"message"` } type LogExportRequest struct { Format string `json:"format,omitempty"` LogType string `json:"log_type,omitempty"` Category string `json:"category,omitempty"` Severity string `json:"severity,omitempty"` Channel string `json:"channel,omitempty"` Kind string `json:"kind,omitempty"` Resource string `json:"resource,omitempty"` State string `json:"state,omitempty"` Keyword string `json:"keyword,omitempty"` EventType string `json:"event_type,omitempty"` Direction string `json:"direction,omitempty"` Actor string `json:"actor,omitempty"` From time.Time `json:"from,omitempty"` To time.Time `json:"to,omitempty"` MaxRows int `json:"max_rows,omitempty"` } type LogRetentionSettings struct { SystemDays int `json:"system_days"` AuditDays int `json:"audit_days"` PortDays int `json:"port_days"` ProtectedUsageWarningPct int `json:"protected_usage_warning_pct"` PreserveOnFactoryReset bool `json:"preserve_on_factory_reset"` LocalSystemEnabled bool `json:"local_system_enabled"` LocalConfigurationEnabled bool `json:"local_configuration_enabled"` LocalOperationEnabled bool `json:"local_operation_enabled"` LocalStatusEnabled bool `json:"local_status_enabled"` RemoteSystemEnabled bool `json:"remote_system_enabled"` RemoteConfigurationEnabled bool `json:"remote_configuration_enabled"` RemoteOperationEnabled bool `json:"remote_operation_enabled"` RemoteStatusEnabled bool `json:"remote_status_enabled"` KeepaliveEnabled bool `json:"keepalive_enabled"` KeepaliveIntervalMinutes int `json:"keepalive_interval_minutes"` AllPortStatusEnabled bool `json:"all_port_status_enabled"` AllPortStatusIntervalMinutes int `json:"all_port_status_interval_minutes"` SinglePortStatusEnabled bool `json:"single_port_status_enabled"` SinglePortStatusRealtime bool `json:"single_port_status_realtime"` SinglePortStatusIntervalMinutes int `json:"single_port_status_interval_minutes"` } type LogPolicySettings struct { MaxRetentionDays int `json:"max_retention_days"` CommandResultCapture bool `json:"command_result_capture"` PhysicalLinkLogging bool `json:"physical_link_logging"` PeriodicStatusLogging bool `json:"periodic_status_logging"` LinkPollIntervalSeconds int `json:"link_poll_interval_seconds"` KeepaliveIntervalSeconds int `json:"keepalive_interval_seconds"` SnapshotIntervalSeconds int `json:"snapshot_interval_seconds"` AtRestEncryption bool `json:"at_rest_encryption"` LocalStorage bool `json:"local_storage"` RemoteSyslogForwarding bool `json:"remote_syslog_forwarding"` RawUARTPayloadCapture bool `json:"raw_uart_payload_capture"` DirectModePayloadCapture bool `json:"direct_mode_payload_capture"` MaxPayloadBytes int `json:"max_payload_bytes"` MaxCommandCharacters int `json:"max_command_characters"` MaxReturnCharacters int `json:"max_return_characters"` } type LogRetentionUpdate struct { SystemDays *int `json:"system_days,omitempty"` AuditDays *int `json:"audit_days,omitempty"` PortDays *int `json:"port_days,omitempty"` ProtectedUsageWarningPct *int `json:"protected_usage_warning_pct,omitempty"` PreserveOnFactoryReset *bool `json:"preserve_on_factory_reset,omitempty"` LocalSystemEnabled *bool `json:"local_system_enabled,omitempty"` LocalConfigurationEnabled *bool `json:"local_configuration_enabled,omitempty"` LocalOperationEnabled *bool `json:"local_operation_enabled,omitempty"` LocalStatusEnabled *bool `json:"local_status_enabled,omitempty"` RemoteSystemEnabled *bool `json:"remote_system_enabled,omitempty"` RemoteConfigurationEnabled *bool `json:"remote_configuration_enabled,omitempty"` RemoteOperationEnabled *bool `json:"remote_operation_enabled,omitempty"` RemoteStatusEnabled *bool `json:"remote_status_enabled,omitempty"` KeepaliveEnabled *bool `json:"keepalive_enabled,omitempty"` KeepaliveIntervalMinutes *int `json:"keepalive_interval_minutes,omitempty"` AllPortStatusEnabled *bool `json:"all_port_status_enabled,omitempty"` AllPortStatusIntervalMinutes *int `json:"all_port_status_interval_minutes,omitempty"` SinglePortStatusEnabled *bool `json:"single_port_status_enabled,omitempty"` SinglePortStatusRealtime *bool `json:"single_port_status_realtime,omitempty"` SinglePortStatusIntervalMinutes *int `json:"single_port_status_interval_minutes,omitempty"` } type BrowserTimeSyncRequest struct { BrowserTime time.Time `json:"browser_time"` Timezone string `json:"timezone,omitempty"` } type TimeSettings struct { Mode string `json:"mode"` Timezone string `json:"timezone"` NTPServers []string `json:"ntp_servers"` } type TimeSettingsUpdate struct { Mode *string `json:"mode,omitempty"` Timezone *string `json:"timezone,omitempty"` NTPServers []string `json:"ntp_servers,omitempty"` } type ManagementAccessSettings struct { HTTPEnabled bool `json:"http_enabled"` HTTPPort int `json:"http_port"` HTTPSEnabled bool `json:"https_enabled"` HTTPSPort int `json:"https_port"` SSHEnabled bool `json:"ssh_enabled"` SSHPort int `json:"ssh_port"` TelnetEnabled bool `json:"telnet_enabled"` TelnetPort int `json:"telnet_port"` SerialConsoleEnabled bool `json:"serial_console_enabled"` IdleTimeoutMinutes int `json:"idle_timeout_minutes"` CaptchaEnabled bool `json:"captcha_enabled"` LoginDetectionMinutes int `json:"login_detection_minutes"` LoginSecurityHitCount int `json:"login_security_hit_count"` } type ManagementAccessUpdate struct { HTTPEnabled *bool `json:"http_enabled,omitempty"` HTTPPort *int `json:"http_port,omitempty"` HTTPSEnabled *bool `json:"https_enabled,omitempty"` HTTPSPort *int `json:"https_port,omitempty"` SSHEnabled *bool `json:"ssh_enabled,omitempty"` SSHPort *int `json:"ssh_port,omitempty"` TelnetEnabled *bool `json:"telnet_enabled,omitempty"` TelnetPort *int `json:"telnet_port,omitempty"` SerialConsoleEnabled *bool `json:"serial_console_enabled,omitempty"` IdleTimeoutMinutes *int `json:"idle_timeout_minutes,omitempty"` CaptchaEnabled *bool `json:"captcha_enabled,omitempty"` LoginDetectionMinutes *int `json:"login_detection_minutes,omitempty"` LoginSecurityHitCount *int `json:"login_security_hit_count,omitempty"` } type RemoteSyslogSettings struct { Enabled bool `json:"enabled"` Host string `json:"host"` Port int `json:"port"` Protocol string `json:"protocol"` Facility string `json:"facility"` } type RemoteSyslogUpdate struct { Enabled *bool `json:"enabled,omitempty"` Host *string `json:"host,omitempty"` Port *int `json:"port,omitempty"` Protocol *string `json:"protocol,omitempty"` Facility *string `json:"facility,omitempty"` } type TLSCertificateSettings struct { ActiveCertificateID string `json:"active_certificate_id"` Subject string `json:"subject"` Issuer string `json:"issuer"` NotBefore time.Time `json:"not_before"` NotAfter time.Time `json:"not_after"` FingerprintSHA256 string `json:"fingerprint_sha256"` Source string `json:"source"` PrivateKeyStored bool `json:"private_key_stored"` } type TLSCertificateUpdate struct { ActiveCertificateID *string `json:"active_certificate_id,omitempty"` } type TLSCertificateEntry struct { CertificateID string `json:"certificate_id"` Subject string `json:"subject"` Issuer string `json:"issuer"` CommonName string `json:"common_name"` NotBefore time.Time `json:"not_before"` NotAfter time.Time `json:"not_after"` FingerprintSHA256 string `json:"fingerprint_sha256"` Source string `json:"source"` PrivateKeyStored bool `json:"private_key_stored"` KeyBits int `json:"key_bits"` Active bool `json:"active"` } type TLSCertificateInventory struct { ActiveCertificateID string `json:"active_certificate_id"` Certificates []TLSCertificateEntry `json:"certificates"` } type TLSCertificateSubject struct { Country string `json:"country,omitempty"` Province string `json:"province,omitempty"` Locality string `json:"locality,omitempty"` Organization string `json:"organization,omitempty"` OrganizationalUnit string `json:"organizational_unit,omitempty"` CommonName string `json:"common_name,omitempty"` Email string `json:"email,omitempty"` } type TLSCertificateCreateRequest struct { CertificateID string `json:"certificate_id"` TLSCertificateSubject } type TLSCertificateImportRequest struct { CertificateID string `json:"certificate_id"` CertificatePEM string `json:"certificate_pem"` PrivateKeyPEM string `json:"private_key_pem,omitempty"` Password string `json:"password,omitempty"` } type TLSCSRRequest struct { TLSCertificateSubject } type TLSCSRArtifact struct { CertificateID string `json:"certificate_id"` Filename string `json:"filename"` PEM string `json:"pem"` } type DiagnosticsRequest struct { Target string `json:"target,omitempty"` Port int `json:"port,omitempty"` Count int `json:"count,omitempty"` MaxHops int `json:"max_hops,omitempty"` TimeoutSeconds int `json:"timeout_seconds,omitempty"` MaxOutputBytes int `json:"max_output_bytes,omitempty"` } type SupportBundleArtifact struct { BundleID string `json:"bundle_id"` Filename string `json:"filename"` SizeBytes int `json:"size_bytes"` SHA256 string `json:"sha256"` Content []byte `json:"-"` } type ConfigSummary struct { PendingChanges int `json:"pending_changes"` PendingSections []string `json:"pending_sections"` RunningRevision int `json:"running_revision"` PersistentRevision int `json:"persistent_revision"` RunningDiffersFromPersistent bool `json:"running_differs_from_persistent"` } type ConfigExport struct { FormatVersion int `json:"format_version"` GeneratedAt time.Time `json:"generated_at"` Summary ConfigSummary `json:"summary"` Running ConfigExportState `json:"running"` Persistent ConfigExportState `json:"persistent"` Pending ConfigExportPending `json:"pending"` } type ConfigExportState struct { Ports []Port `json:"ports"` AlarmRules []AlarmRule `json:"alarm_rules"` AlarmDelivery AlarmDeliveryPolicy `json:"alarm_delivery"` EmailNotification EmailNotificationSettings `json:"email_notification"` SNMPAgent SNMPAgentSettings `json:"snmp_agent"` SNMPTrapTargets SNMPTrapTargetSettings `json:"snmp_trap_targets"` Network NetworkState `json:"network"` Time TimeSettings `json:"time"` Logs LogRetentionSettings `json:"logs"` Management ManagementAccessSettings `json:"management"` RemoteSyslog RemoteSyslogSettings `json:"remote_syslog"` TLSCertificate TLSCertificateSettings `json:"tls_certificate"` ExternalAuth ExternalAuthSettings `json:"external_auth"` } type ConfigExportPending struct { Ports []Port `json:"ports"` AlarmRules []AlarmRule `json:"alarm_rules"` AlarmDelivery *AlarmDeliveryPolicy `json:"alarm_delivery,omitempty"` EmailNotification *EmailNotificationSettings `json:"email_notification,omitempty"` SNMPAgent *SNMPAgentSettings `json:"snmp_agent,omitempty"` SNMPTrapTargets *SNMPTrapTargetSettings `json:"snmp_trap_targets,omitempty"` Network *NetworkState `json:"network,omitempty"` NetworkInterfaces []NetworkInterface `json:"network_interfaces"` Time *TimeSettings `json:"time,omitempty"` Logs *LogRetentionSettings `json:"logs,omitempty"` Management *ManagementAccessSettings `json:"management,omitempty"` RemoteSyslog *RemoteSyslogSettings `json:"remote_syslog,omitempty"` TLSCertificate *TLSCertificateSettings `json:"tls_certificate,omitempty"` ExternalAuth *ExternalAuthSettings `json:"external_auth,omitempty"` } type AuditEvent struct { AuditID string `json:"audit_id"` Timestamp time.Time `json:"timestamp"` Actor string `json:"actor"` Surface string `json:"surface"` Action string `json:"action"` Target string `json:"target"` Command string `json:"command"` Result string `json:"result"` ReturnValue string `json:"return_value"` Message string `json:"message"` Redacted bool `json:"redacted"` } type Operation struct { OperationID string `json:"operation_id"` State string `json:"state"` Message string `json:"message"` AuditID string `json:"audit_id"` Result map[string]any `json:"result,omitempty"` ProgressPercent int `json:"progress_percent"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` CompletedAt *time.Time `json:"completed_at,omitempty"` } type CommandResult struct { Result string `json:"result"` Message string `json:"message"` AuditID string `json:"audit_id"` Config *ConfigSummary `json:"config,omitempty"` Operation *Operation `json:"operation,omitempty"` NetworkApply *NetworkApplyStatus `json:"network_apply,omitempty"` } type ErrorResponse struct { Error ErrorBody `json:"error"` } type ErrorBody struct { Code string `json:"code"` Message string `json:"message"` }