mirror of https://github.com/jetkvm/kvm.git
41 lines
1.7 KiB
Go
41 lines
1.7 KiB
Go
package network
|
|
|
|
import (
|
|
"net"
|
|
"time"
|
|
)
|
|
|
|
type IPv6Address struct {
|
|
Address net.IP `json:"address"`
|
|
Prefix net.IPNet `json:"prefix"`
|
|
ValidLifetime *time.Time `json:"valid_lifetime"`
|
|
PreferredLifetime *time.Time `json:"preferred_lifetime"`
|
|
Scope int `json:"scope"`
|
|
}
|
|
|
|
type NetworkConfig struct {
|
|
Hostname string `json:"hostname,omitempty"`
|
|
Domain string `json:"domain,omitempty"`
|
|
|
|
IPv4Mode string `json:"ipv4_mode" one_of:"dhcp,static,disabled" default:"dhcp"`
|
|
IPv4Static struct {
|
|
Address string `json:"address" validate_type:"ipv4"`
|
|
Netmask string `json:"netmask" validate_type:"ipv4"`
|
|
Gateway string `json:"gateway" validate_type:"ipv4"`
|
|
DNS []string `json:"dns" validate_type:"ipv4"`
|
|
} `json:"ipv4_static,omitempty" required_if:"ipv4_mode,static"`
|
|
|
|
IPv6Mode string `json:"ipv6_mode" one_of:"slaac,dhcpv6,slaac_and_dhcpv6,static,link_local,disabled" default:"slaac"`
|
|
IPv6Static struct {
|
|
Address string `json:"address" validate_type:"ipv6"`
|
|
Netmask string `json:"netmask" validate_type:"ipv6"`
|
|
Gateway string `json:"gateway" validate_type:"ipv6"`
|
|
DNS []string `json:"dns" validate_type:"ipv6"`
|
|
} `json:"ipv6_static,omitempty" required_if:"ipv6_mode,static"`
|
|
|
|
LLDPMode string `json:"lldp_mode,omitempty" one_of:"disabled,basic,all" default:"basic"`
|
|
LLDPTxTLVs []string `json:"lldp_tx_tlvs,omitempty" one_of:"chassis,port,system,vlan" default:"chassis,port,system,vlan"`
|
|
MDNSMode string `json:"mdns_mode,omitempty" one_of:"disabled,auto,ipv4_only,ipv6_only" default:"auto"`
|
|
TimeSyncMode string `json:"time_sync_mode,omitempty" one_of:"ntp_only,ntp_and_http,http_only,custom" default:"ntp_and_http"`
|
|
}
|