v12.8.0
This commit is contained in:
136
pkg/sdn/segments/models.go
Normal file
136
pkg/sdn/segments/models.go
Normal file
@@ -0,0 +1,136 @@
|
||||
package segments
|
||||
|
||||
import "time"
|
||||
|
||||
// List segments
|
||||
type ListSegment []SegmentResponse
|
||||
|
||||
// Main information about network segment
|
||||
type SegmentResponse struct {
|
||||
// Access group ID
|
||||
AccessGroupID string `json:"access_group_id"`
|
||||
|
||||
// Access group name
|
||||
AccessGroupName string `json:"access_group_name"`
|
||||
|
||||
// Created time
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
|
||||
// Detailed description of the router port
|
||||
Description string `json:"description"`
|
||||
|
||||
// DHCP IPv4
|
||||
DHCPv4 DHCPv4Config `json:"dhcp_v4"`
|
||||
|
||||
// DHCP IPv6
|
||||
DHCPv6 DHCPv6Config `json:"dhcp_v6"`
|
||||
|
||||
// User-friendly name for the segment
|
||||
DisplayName string `json:"display_name"`
|
||||
|
||||
// Whether the segment is enabled
|
||||
Enabled bool `json:"enabled"`
|
||||
|
||||
// ID of segment
|
||||
ID string `json:"id"`
|
||||
|
||||
// Logical ports info
|
||||
LogicalPortsInfo []EntityInfo `json:"logical_ports_info"`
|
||||
|
||||
// Routers info
|
||||
RoutersInfo []EntityInfo `json:"routers_info"`
|
||||
|
||||
// Status
|
||||
Status Status `json:"status"`
|
||||
|
||||
// IPv4 subnet in CIDR notation
|
||||
SubnetV4 string `json:"subnet_v4"`
|
||||
|
||||
// IPv6 subnet in CIDR notation
|
||||
SubnetV6 string `json:"subnet_v6"`
|
||||
|
||||
// Update time
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
|
||||
// ID of version
|
||||
VersionID uint64 `json:"version_id"`
|
||||
}
|
||||
|
||||
type DHCPv4Config struct {
|
||||
// DNS
|
||||
DNS []string `json:"dns"`
|
||||
|
||||
// Excluded address ranges
|
||||
ExcludedAddressRanges []string `json:"excluded_address_ranges"`
|
||||
|
||||
// Gateway
|
||||
Gateway string `json:"gateway"`
|
||||
|
||||
// ID of config
|
||||
ID string `json:"id"`
|
||||
|
||||
// Lease time
|
||||
LeaseTime uint64 `json:"lease_time"`
|
||||
|
||||
// Server IP
|
||||
ServerIP string `json:"server_ip"`
|
||||
|
||||
// Server MAC
|
||||
ServerMAC string `json:"server_mac"`
|
||||
|
||||
// Whether the config is enabled
|
||||
Enabled bool `json:"enabled"`
|
||||
}
|
||||
|
||||
type DHCPv6Config struct {
|
||||
// Address prefix
|
||||
AddressPrefix string `json:"address_prefix"`
|
||||
|
||||
// DNS
|
||||
DNS []string `json:"dns"`
|
||||
|
||||
// ID of config
|
||||
ID string `json:"id"`
|
||||
|
||||
// Lease time
|
||||
LeaseTime uint64 `json:"lease_time"`
|
||||
|
||||
// Server MAC
|
||||
ServerMAC string `json:"server_mac"`
|
||||
|
||||
// Whether the config is enabled
|
||||
Enabled bool `json:"enabled"`
|
||||
}
|
||||
|
||||
type EntityInfo struct {
|
||||
// User-friendly name for entity
|
||||
DisplayName string `json:"display_name"`
|
||||
|
||||
// ID of entity
|
||||
ID string `json:"id"`
|
||||
}
|
||||
|
||||
type Status struct {
|
||||
// Common
|
||||
Common string `json:"common"`
|
||||
|
||||
// Hypervisors status
|
||||
Hypervisors []HypervisorStatus `json:"hypervisors"`
|
||||
}
|
||||
|
||||
type HypervisorStatus struct {
|
||||
// Status
|
||||
Status string `json:"status"`
|
||||
|
||||
// Name of hypervisor
|
||||
Name string `json:"name"`
|
||||
|
||||
// User-friendly name for the hypervisor
|
||||
DisplayName string `json:"display_name"`
|
||||
|
||||
// Hypervisor status
|
||||
HypervisorStatus string `json:"hypervisor_status"`
|
||||
|
||||
// Synced time
|
||||
SyncedAt time.Time `json:"synced_at"`
|
||||
}
|
||||
Reference in New Issue
Block a user