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/cloudapi/extnet/models.go

249 lines
4.3 KiB

package extnet
// Main information about external network
type ItemExtNet struct {
// ID
ID uint64 `json:"id"`
// IPCIDR
IPCIDR string `json:"ipcidr"`
// Name
Name string `json:"name"`
// Status
Status string `json:"status"`
}
// Extend information about external network
type ItemExtNetExtend struct {
// Main information about external network
ItemExtNet
// IP address
IPAddr string `json:"ipaddr"`
}
// List of information about external network
type ListExtNets struct {
Data []ItemExtNet `json:"data"`
EntryCount uint64 `json:"entryCount"`
}
// List of extend information about external network
type ListExtNetExtends []ItemExtNetExtend
// Main information about compute with external network
type ItemExtNetCompute struct {
// Account ID
AccountID uint64 `json:"accountId"`
// Account name
AccountName string `json:"accountName"`
// List of extend information about external network
ExtNets ListExtNetExtends `json:"extnets"`
// ID
ID uint64 `json:"id"`
// Name
Name string `json:"name"`
// Resource group ID
RGID uint64 `json:"rgId"`
// Resource group name
RGName string `json:"rgName"`
}
// List of information about computes with external network
type ListExtNetComputes struct {
// Data
Data []ItemExtNetCompute `json:"data"`
// Entry count
EntryCount uint64 `json:"entryCount"`
}
// QOS
type QOS struct {
// EBurst
EBurst uint64 `json:"eBurst"`
// ERate
ERate uint64 `json:"eRate"`
// GUID
GUID string `json:"guid"`
// InBurst
InBurst uint64 `json:"inBurst"`
// InRate
InRate uint64 `json:"inRate"`
}
// Main information about reservations
type ItemReservation struct {
// Account ID
AccountID uint64 `json:"account_id"`
// ClientType
ClientType string `json:"clientType"`
// Description
Description string `json:"desc"`
// Domain name
DomainName string `json:"domainname"`
// Hostname
Hostname string `json:"hostname"`
// IP
IP string `json:"ip"`
// MAC
MAC string `json:"mac"`
// Type
Type string `json:"type"`
// Virtual machine ID
VMID uint64 `json:"vmId"`
}
// List of information about reservations
type ListReservations []ItemReservation
// VNFs
type VNFs struct {
DHCP uint64 `json:"dhcp"`
}
type Excluded struct {
// ClientType
ClientType string `json:"clientType"`
// Domain name
DomainName string `json:"domainname"`
// Host name
HostName string `json:"hostname"`
// IP
IP string `json:"ip"`
// MAC
MAC string `json:"mac"`
// Type
Type string `json:"type"`
// VMID
VMID uint64 `json:"vmId"`
}
// Detailed information about external network
type RecordExtNet struct {
// CKey
CKey string `json:"_ckey"`
// Meta
Meta []interface{} `json:"_meta"`
// CheckIps
CheckIPs []string `json:"checkIps"`
// Default
Default bool `json:"default"`
// Default QOS
DefaultQOS QOS `json:"defaultQos"`
// Description
Description string `json:"desc"`
// list of DNS
DNS []string `json:"dns"`
// Excluded
Excluded []Excluded `json:"excluded"`
// Free IPs
FreeIPs int64 `json:"free_ips"`
// Gateway
Gateway string `json:"gateway"`
// Grid ID
GID uint64 `json:"gid"`
// GUID
GUID uint64 `json:"guid"`
// ID
ID uint64 `json:"id"`
// IPCIDR
IPCIDR string `json:"ipcidr"`
// Milestones
Milestones uint64 `json:"milestones"`
// Name
Name string `json:"name"`
// Network
Network string `json:"network"`
// Network ID
NetworkID uint64 `json:"networkId"`
// OVS Bridge
OVSBridge string `json:"ovsBridge"`
// PreReservation IP num
PreReservationsNum uint64 `json:"preReservationsNum"`
// Prefix
Prefix uint64 `json:"prefix"`
// PriVNFDevID
PriVNFDevID uint64 `json:"priVnfDevId"`
// List reservations
Reservations ListReservations `json:"reservations"`
// Shared with
SharedWith []uint64 `json:"sharedWith"`
// Status
Status string `json:"status"`
// VLAN ID
VLANID uint64 `json:"vlanId"`
// VNFs
VNFs VNFs `json:"vnfs"`
}
// Detailed information about reserved address or address pool
type RecordReservedIP struct {
ExtnetID int `json:"extnet_id"`
Reservations []Reservations `json:"reservations"`
}
type Reservations struct {
AccountID int `json:"account_id"`
ClientType string `json:"clientType"`
DomainName string `json:"domainname"`
Hostname string `json:"hostname"`
IP string `json:"ip"`
Mac string `json:"mac"`
Type string `json:"type"`
VMID int `json:"vmId"`
}