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.
137 lines
2.6 KiB
137 lines
2.6 KiB
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"`
|
|
}
|