Documentation
¶
Overview ¶
Package client implements a Versa API client
Package client implements a Versa API client
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ApplianceLite ¶
type ApplianceLite struct { Name string `json:"name"` UUID string `json:"uuid"` LastUpdatedTime string `json:"last-updated-time"` PingStatus string `json:"ping-status"` SyncStatus string `json:"sync-status"` CreatedAt string `json:"createdAt"` YangCompatibility string `json:"yang-compatibility-status"` ServicesStatus string `json:"services-status"` OverallStatus string `json:"overall-status"` // ControlStatus is a misspelled field in the API ControlStatus string `json:"controll-status"` //nolint:misspell PathStatus string `json:"path-status"` TemplateStatus string `json:"templateStatus"` OwnerOrg string `json:"ownerOrg"` Type string `json:"type"` SngCount int `json:"sngCount"` SoftwareVersion string `json:"softwareVersion"` Connector string `json:"connector"` ConnectorType string `json:"connectorType"` BranchID string `json:"branchId"` Services []string `json:"services"` IPAddress string `json:"ipAddress"` Location string `json:"location"` StartTime string `json:"startTime"` StolenSuspected bool `json:"stolenSuspected"` Hardware Hardware `json:"Hardware"` SPack SPack `json:"SPack"` OssPack OssPack `json:"OssPack"` RefreshCycleCount int `json:"refreshCycleCount"` BranchMaintenanceMode bool `json:"branch-maintenance-mode"` ApplianceTags []string `json:"applianceTags"` LockDetails LockDetails `json:"lockDetails"` Unreachable bool `json:"unreachable"` BranchInMaintenanceMode bool `json:"branchInMaintenanceMode"` Nodes Nodes `json:"nodes"` UcpeNodes UcpeNodes `json:"ucpe-nodes"` }
ApplianceLite encapsulates metadata for appliances
type ApplianceLiteResponse ¶
type ApplianceLiteResponse struct { Appliances []ApplianceLite `json:"appliances"` TotalCount int `json:"totalCount"` }
ApplianceLiteResponse /versa/ncs-services/vnms/appliance/appliance/lite
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is an HTTP Versa client.
func NewClient ¶
func NewClient(endpoint, analyticsEndpoint, username, password string, useHTTP bool, options ...ClientOptions) (*Client, error)
NewClient creates a new Versa HTTP client.
func (*Client) GetAppliancesLite ¶
func (client *Client) GetAppliancesLite() ([]ApplianceLite, error)
GetAppliancesLite retrieves a list of appliances in a paginated manner
func (*Client) GetControllerMetadata ¶
func (client *Client) GetControllerMetadata() ([]ControllerStatus, error)
GetControllerMetadata retrieves the controller metadata
func (*Client) GetDirectorStatus ¶
func (client *Client) GetDirectorStatus() (*DirectorStatus, error)
GetDirectorStatus retrieves the director status
type ClientOptions ¶
type ClientOptions func(*Client)
ClientOptions are the functional options for the Versa client
func WithLookback ¶
func WithLookback(lookback time.Duration) ClientOptions
WithLookback is a functional option to set the client lookback interval
func WithMaxAttempts ¶
func WithMaxAttempts(maxAttempts int) ClientOptions
WithMaxAttempts is a functional option to set the client max attempts
func WithMaxCount ¶
func WithMaxCount(maxCount int) ClientOptions
WithMaxCount is a functional option to set the client max count
func WithMaxPages ¶
func WithMaxPages(maxPages int) ClientOptions
WithMaxPages is a functional option to set the client max pages
func WithTLSConfig ¶
func WithTLSConfig(insecure bool, CAFile string) (ClientOptions, error)
WithTLSConfig is a functional option to set the HTTP Client TLS Config
type Content ¶
type Content interface { ApplianceLiteResponse | ControllerResponse | DirectorStatus }
Content encapsulates the content types of the Versa API
type ControllerResponse ¶
type ControllerResponse struct { ControllerStatuses []ControllerStatus `json:"applianceStatus"` HAStatus HAStatus `json:"haStatus"` }
ControllerResponse /versa/ncs-services/vnms/dashboard/status/headEnds
type ControllerStatus ¶
type ControllerStatus struct { Name string `json:"name"` UUID string `json:"uuid"` Status string `json:"status"` LockStatus string `json:"lockStatus"` SyncStatus string `json:"syncStatus"` IPAddress string `json:"ip-address"` }
ControllerStatus encapsulates metadata for a controller
type DirectorStatus ¶
type DirectorStatus struct { HAConfig struct { ClusterID string `json:"clusterid"` FailoverTimeout int `json:"failoverTimeout"` SlaveStartTimeout int `json:"slaveStartTimeout"` AutoSwitchOverTimeout int `json:"autoSwitchOverTimeout"` AutoSwitchOverEnabled bool `json:"autoSwitchOverEnabled"` DesignatedMaster bool `json:"designatedMaster"` StartupMode string `json:"startupMode"` MyVnfManagementIPs []string `json:"myVnfManagementIps"` VDSBInterfaces []string `json:"vdsbinterfaces"` StartupModeHA bool `json:"startupModeHA"` MyNcsHaSetAsMaster bool `json:"myNcsHaSet"` PingViaAnyDeviceSuccessful bool `json:"pingViaAnyDeviceSuccessful"` PeerReachableViaNcsPortDevices bool `json:"peerReachableViaNcsPortAndDevices"` HAEnabledOnBothNodes bool `json:"haEnabledOnBothNodes"` } `json:"haConfig"` HADetails struct { Enabled bool `json:"enabled"` DesignatedMaster bool `json:"designatedMaster"` PeerVnmsHaDetails []struct { } `json:"peerVnmsHaDetails"` EnableHaInProgress bool `json:"enableHaInProgress"` } `json:"haDetails"` VDSBInterfaces []string `json:"vdSBInterfaces"` SystemDetails struct { CPUCount int `json:"cpuCount"` CPULoad string `json:"cpuLoad"` Memory string `json:"memory"` MemoryFree string `json:"memoryFree"` Disk string `json:"disk"` DiskUsage string `json:"diskUsage"` } `json:"systemDetails"` PkgInfo struct { Version string `json:"version"` PackageDate string `json:"packageDate"` Name string `json:"name"` PackageID string `json:"packageId"` UIPackageID string `json:"uiPackageId"` Branch string `json:"branch"` } `json:"pkgInfo"` SystemUpTime struct { CurrentTime string `json:"currentTime"` ApplicationUpTime string `json:"applicationUpTime"` SysProcUptime string `json:"sysProcUptime"` SysUpTimeDetail string `json:"sysUpTimeDetail"` } `json:"systemUpTime"` }
DirectorStatus /versa/ncs-services/vnms/dashboard/vdStatus
type HAStatus ¶
type HAStatus struct {
Enabled bool `json:"enabled"`
}
HAStatus encapsulates HA status metadata for a headend
type Hardware ¶
type Hardware struct { Model string `json:"model"` CPUCores int `json:"cpuCores"` Memory string `json:"memory"` LPM bool `json:"lpm"` Fanless bool `json:"fanless"` IntelQuickAssistAcceleration bool `json:"intelQuickAssistAcceleration"` SerialNo string `json:"serialNo"` CPUCount int `json:"cpuCount"` CPULoad int `json:"cpuLoad"` InterfaceCount int `json:"interfaceCount"` PackageName string `json:"packageName"` SSD bool `json:"ssd"` }
Hardware encapsulates hardware metadata for an appliance
type LockDetails ¶
LockDetails encapsulates lock metadata for an appliance
type Nodes ¶
type Nodes struct {
NodeStatusList []interface{} `json:"nodeStatusList"`
}
Nodes encapsulates node metadata for an appliance
type OssPack ¶
type OssPack struct {
OsspackVersion string `json:"osspackVersion"`
}
OssPack encapsulates OssPack metadata for an appliance