189 lines
6.2 KiB
Go
189 lines
6.2 KiB
Go
package main
|
|
|
|
// Types transcribed from preseem/preseem.yaml (components.schemas).
|
|
// Only fields useful for read flows are modeled; the raw JSON body is
|
|
// always available via --json passthrough for anything not listed here.
|
|
|
|
type Paginator struct {
|
|
Page int `json:"page"`
|
|
PageCount int `json:"page_count"`
|
|
Limit int `json:"limit"`
|
|
TotalCount int `json:"total_count"`
|
|
}
|
|
|
|
type AccessPoint struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Tower string `json:"tower"`
|
|
IPAddress string `json:"ip_address"`
|
|
}
|
|
|
|
type AccessPointList struct {
|
|
Data []AccessPoint `json:"data"`
|
|
Paginator Paginator `json:"paginator"`
|
|
}
|
|
|
|
type APShaperRate struct {
|
|
UpSpeed int64 `json:"up_speed,omitempty"`
|
|
DownSpeed int64 `json:"down_speed,omitempty"`
|
|
Activate bool `json:"activate,omitempty"`
|
|
}
|
|
|
|
type SNMP3 struct {
|
|
SecurityName string `json:"security_name,omitempty"`
|
|
AuthKey string `json:"auth_key,omitempty"`
|
|
AuthProtocol string `json:"auth_protocol,omitempty"`
|
|
PrivKey string `json:"priv_key,omitempty"`
|
|
PrivProtocol string `json:"priv_protocol,omitempty"`
|
|
}
|
|
|
|
type AccessPointConfig struct {
|
|
ShaperRate *APShaperRate `json:"shaper_rate,omitempty"`
|
|
SNMPCommunity string `json:"snmp_community,omitempty"`
|
|
SNMP3 *SNMP3 `json:"snmp3,omitempty"`
|
|
}
|
|
|
|
// Score endpoints are field-heavy and don't paginate per spec — they
|
|
// return a top-level array.
|
|
// NB: the spec types numerics as `integer` but the live API returns
|
|
// floats for latency/throughput/scores. Use float64 throughout so
|
|
// decoding never breaks; printers round for display.
|
|
type AccessPointScore struct {
|
|
Name string `json:"name"`
|
|
Status string `json:"status"`
|
|
SiteName string `json:"site_name"`
|
|
ManufacturerName string `json:"manufacturer_name"`
|
|
ModelName string `json:"model_name"`
|
|
ManagementIP string `json:"management_ip"`
|
|
SystemMacAddress string `json:"system_mac_address"`
|
|
Connections float64 `json:"connections"`
|
|
Latency float64 `json:"latency"`
|
|
ThroughputTX float64 `json:"throughput_tx"`
|
|
ThroughputRX float64 `json:"throughput_rx"`
|
|
Frequency float64 `json:"frequency"`
|
|
ChannelWidth float64 `json:"channel_width"`
|
|
Firmware string `json:"firmware"`
|
|
RFScore float64 `json:"rf_score"`
|
|
RFScoreSeverity any `json:"rf_score_severity"`
|
|
APHealthScore float64 `json:"ap_health_score"`
|
|
APHealthSeverity string `json:"ap_health_score_severity"`
|
|
SubscriberCap float64 `json:"subscriber_capacity"`
|
|
SubscriberCapSev string `json:"subscriber_capacity_severity"`
|
|
SliceCondition string `json:"slice_condition"`
|
|
LatencySeverity string `json:"latency_severity"`
|
|
ModelSupportLvl string `json:"model_support_level"`
|
|
AirtimeRemTX float64 `json:"airtime_remaining_tx"`
|
|
AirtimeRemSevTX string `json:"airtime_remaining_severity_tx"`
|
|
RFScoreTrend string `json:"rf_score_trend"`
|
|
APHealthTrend string `json:"ap_health_score_trend"`
|
|
SubscriberCapTrnd string `json:"subscriber_capacity_trend"`
|
|
SerialNumber string `json:"serial_number"`
|
|
ElementID int `json:"element_id"`
|
|
}
|
|
|
|
type CPERadioScore struct {
|
|
Name string `json:"name"`
|
|
Status string `json:"status"`
|
|
APName string `json:"ap_name"`
|
|
APSiteName string `json:"ap_site_name"`
|
|
ManufacturerName string `json:"manufacturer_name"`
|
|
ModelName string `json:"model_name"`
|
|
ManagementIP string `json:"management_ip"`
|
|
SystemMacAddress string `json:"system_mac_address"`
|
|
Firmware string `json:"firmware"`
|
|
Frequency float64 `json:"frequency"`
|
|
ChannelWidth float64 `json:"channel_width"`
|
|
RFScore float64 `json:"rf_score"`
|
|
RFScoreSeverity any `json:"rf_score_severity"`
|
|
RFScoreTrend string `json:"rf_score_trend"`
|
|
BusinessValue float64 `json:"business_value_score"`
|
|
BusinessValueSev string `json:"business_value_score_severity"`
|
|
SliceCondition string `json:"slice_condition"`
|
|
SerialNumber string `json:"serial_number"`
|
|
ElementID int `json:"element_id"`
|
|
APID int `json:"ap_id"`
|
|
}
|
|
|
|
type Account struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
type AccountList struct {
|
|
Data []Account `json:"data"`
|
|
Paginator Paginator `json:"paginator"`
|
|
}
|
|
|
|
type Package struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
UpSpeed int64 `json:"up_speed,omitempty"`
|
|
DownSpeed int64 `json:"down_speed,omitempty"`
|
|
}
|
|
|
|
type PackageList struct {
|
|
Data []Package `json:"data"`
|
|
Paginator Paginator `json:"paginator"`
|
|
}
|
|
|
|
type ServiceAttachment struct {
|
|
CPEMac string `json:"cpe_mac,omitempty"`
|
|
NetworkPrefixes []string `json:"network_prefixes,omitempty"`
|
|
CPESerial string `json:"cpe_serial,omitempty"`
|
|
CPEIMSI string `json:"cpe_imsi,omitempty"`
|
|
Username string `json:"username,omitempty"`
|
|
}
|
|
|
|
type Service struct {
|
|
ID string `json:"id"`
|
|
Attachments []ServiceAttachment `json:"attachments,omitempty"`
|
|
UpSpeed int64 `json:"up_speed,omitempty"`
|
|
DownSpeed int64 `json:"down_speed,omitempty"`
|
|
Account string `json:"account"`
|
|
Package string `json:"package,omitempty"`
|
|
ParentDeviceID string `json:"parent_device_id,omitempty"`
|
|
}
|
|
|
|
type ServiceList struct {
|
|
Data []Service `json:"data"`
|
|
Paginator Paginator `json:"paginator"`
|
|
}
|
|
|
|
type Router struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Site string `json:"site"`
|
|
Host string `json:"host"`
|
|
}
|
|
|
|
type RouterList struct {
|
|
Data []Router `json:"data"`
|
|
Paginator Paginator `json:"paginator"`
|
|
}
|
|
|
|
type OLT struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Site string `json:"site"`
|
|
Host string `json:"host"`
|
|
}
|
|
|
|
type OLTList struct {
|
|
Data []OLT `json:"data"`
|
|
Paginator Paginator `json:"paginator"`
|
|
}
|
|
|
|
type SiteAttachment struct {
|
|
NetworkPrefixes []string `json:"network_prefixes,omitempty"`
|
|
}
|
|
|
|
type Site struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Attachment *SiteAttachment `json:"attachment,omitempty"`
|
|
}
|
|
|
|
type SiteList struct {
|
|
Data []Site `json:"data"`
|
|
Paginator Paginator `json:"paginator"`
|
|
}
|