You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
decort-golang-sdk/pkg/cloudbroker/grid/models.go

240 lines
4.3 KiB

package grid
// Resource information
type Resources struct {
// Current resources
Current RecordResource `json:"Current"`
// Reserved resources
Reserved RecordResource `json:"Reserved"`
}
// Resource consumption information
type RecordResourcesConsumption struct {
// Current resources
Consumed RecordResource `json:"Consumed"`
// Reserved resources
Reserved RecordResource `json:"Reserved"`
// GID
GID uint64 `json:"id"`
}
type ListResourceConsumption struct {
// Data
Data []RecordResourcesConsumption `json:"data"`
// Entry count
EntryCount uint64 `json:"entryCount"`
}
// Resource details
type RecordResource struct {
// Number of CPU
CPU uint64 `json:"cpu"`
// Disk size
DiskSize float64 `json:"disksize"`
// Disk size max
DiskSizeMax int64 `json:"disksizemax"`
// External IPs
ExtIPs uint64 `json:"extips"`
// External traffic
ExtTraffic uint64 `json:"exttraffic"`
// Number of GPU
GPU uint64 `json:"gpu"`
// Number of RAM
RAM uint64 `json:"ram"`
// SEPs
SEPs map[string]map[string]DiskUsage `json:"seps"`
}
// Disk usage
type DiskUsage struct {
// Disk size
DiskSize float64 `json:"disksize"`
// Disk size max
DiskSizeMax float64 `json:"disksizemax"`
}
// Detailed information about grid
type RecordGrid struct {
// CKey
CKey string `json:"_ckey"`
// Meta
Meta []interface{} `json:"_meta"`
// AuthBroker
AuthBroker []interface{} `json:"authBroker"`
// Flag
Flag string `json:"flag"`
// Grid ID
GID uint64 `json:"gid"`
// GUID
GUID uint64 `json:"guid"`
// ID
ID uint64 `json:"id"`
// Location code
LocationCode string `json:"locationCode"`
// Name
Name string `json:"name"`
}
// Information about grid
type ItemGridList struct {
// Resource information
Resources Resources `json:"Resources"`
// AuthBroker
AuthBroker []interface{} `json:"authBroker"`
// Flag
Flag string `json:"flag"`
// Grid ID
GID uint64 `json:"gid"`
// GUID
GUID uint64 `json:"guid"`
// ID
ID uint64 `json:"id"`
// Location code
LocationCode string `json:"locationCode"`
// Name
Name string `json:"name"`
}
// List Grids
type ListGrids struct {
//Data
Data []ItemGridList `json:"data"`
// Entry count
EntryCount uint64 `json:"entryCount"`
}
// List emails
type ListEmails struct {
//Data
Data []string `json:"data"`
// Entry count
EntryCount uint64 `json:"entryCount"`
}
// Detailed information about grid settings
type RecordSettingsGrid struct {
//Allowed ports
Allowedports []int `json:"allowedports"`
//Cleanup retention period
CleanupRetentionPeriod uint64 `json:"cleanupRetentionPeriod"`
//Docker registry
DockerRegistry DockerRegistry `json:"docker_registry"`
//Enable uptime monitor
EnableUptimeMonitor bool `json:"enableUptimeMonitor"`
//Extnet max prereservation num
ExtnetMaxPreReservationsNum int `json:"extnetMaxPreReservationsNum"`
//Healthcheck notifications
HealthcheckNotifications HealthcheckNotifications `json:"healthcheck_notifications"`
//k8s cleanup enabled
K8sCleanupEnabled bool `json:"k8s_cleanup_enabled"`
//Limits
Limits interface{} `json:"limits"`
//Location url
LocationURL string `json:"location_url"`
//Net QOS
NetQOS NetQOS `json:"net_qos"`
//Networks
Networks string `json:"networks"`
//Prometheus
Prometheus Prometheus `json:"prometheus"`
//Vins max prereservation num
VinsMaxPreReservationsNum int `json:"vinsMaxPreReservationsNum"`
//Vnfdev mgmt net range
VnfdevMgmtNetRange string `json:"vnfdev_mgmt_net_range"`
}
// DockerRegistry in grid settings
type DockerRegistry struct {
//Password
Password string `json:"password"`
//Server
Server string `json:"server"`
//Username
Username string `json:"username"`
}
// NetQOS in grid settings
type NetQOS struct {
// ExtNet Net QOS settings
ExtNet SettingsNetQOS `json:"ext_net"`
// VINS Net QOS settings
VINS SettingsNetQOS `json:"vins"`
}
// SettingsNetQOS in grid settings
type SettingsNetQOS struct {
//ERate
ERate uint64 `json:"eRate"`
//InBurst
InBurst uint64 `json:"inBurst"`
//InRate
InRate uint64 `json:"inRate"`
}
// HealthcheckNotifications settings in grid
type HealthcheckNotifications struct {
//Emails
Emails []Emails `json:"emails"`
}
type Emails struct {
//Address
Address string `json:"address"`
//Enabled
Enabled bool `json:"enabled"`
}
// Prometheus setting in grid
type Prometheus struct {
//ScrapeInterval
ScrapeInterval int `json:"scrapeInterval"`
}