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.
524 lines
9.9 KiB
524 lines
9.9 KiB
package routers
|
|
|
|
// List of routers
|
|
type RoutersList []RoutersModel
|
|
|
|
// Main information about router
|
|
type RoutersModel struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
// Created time
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Enabled flag
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// List of gateway ports
|
|
GatewayPorts []GatewayPort `json:"gateway_ports"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// List of policies
|
|
Policies []Policy `json:"policies"`
|
|
|
|
// List of ports
|
|
Ports []Port `json:"ports"`
|
|
|
|
// Status information
|
|
Status Status `json:"status"`
|
|
|
|
// Updated time
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// Gateway port information
|
|
type GatewayPort struct {
|
|
// Created time
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// External L4 port maximum
|
|
ExternalL4PortMax int `json:"external_l4_port_max"`
|
|
|
|
// External L4 port minimum
|
|
ExternalL4PortMin int `json:"external_l4_port_min"`
|
|
|
|
// External network port
|
|
ExternalNetworkPort ExternalNetworkPort `json:"external_network_port"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// SNAT enabled flag
|
|
SNATEnabled bool `json:"snat_enabled"`
|
|
|
|
// Status information
|
|
Status Status `json:"status"`
|
|
|
|
// Updated time
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// External network port information
|
|
type ExternalNetworkPort struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
// Comment
|
|
Comment string `json:"comment"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Enabled flag
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// IPv4 address
|
|
IPv4 string `json:"ipv4"`
|
|
|
|
// IPv6 address
|
|
IPv6 string `json:"ipv6"`
|
|
|
|
// IPv6 configuration
|
|
IPv6Config IPv6Config `json:"ipv6_config"`
|
|
|
|
// MAC address
|
|
MAC string `json:"mac"`
|
|
|
|
// Router gateway port
|
|
RouterGatewayPort RouterGatewayPort `json:"router_gateway_port"`
|
|
|
|
// Floating IP
|
|
FloatingIP FloatingIP `json:"floating_ip"`
|
|
}
|
|
|
|
// IPv6 configuration information
|
|
type IPv6Config struct {
|
|
// Address mode
|
|
AddressMode string `json:"address_mode"`
|
|
|
|
// Enable periodic RA flag
|
|
EnablePeriodicRA bool `json:"enable_periodic_ra"`
|
|
|
|
// Interval RA
|
|
IntervalRA int `json:"interval_ra"`
|
|
|
|
// Router preference
|
|
RouterPreference string `json:"router_preference"`
|
|
}
|
|
|
|
// Router gateway port information
|
|
type RouterGatewayPort struct {
|
|
// Created time
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Router display name
|
|
RouterDisplayName string `json:"router_display_name"`
|
|
|
|
// Router ID
|
|
RouterID string `json:"router_id"`
|
|
|
|
// SNAT enabled flag
|
|
SNATEnabled bool `json:"snat_enabled"`
|
|
|
|
// Updated time
|
|
UpdatedAt string `json:"updated_at"`
|
|
}
|
|
|
|
// Floating IP information
|
|
type FloatingIP struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
// Created time
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// External network port
|
|
ExternalNetworkPort string `json:"external_network_port"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Logical port
|
|
LogicalPort LogicalPort `json:"logical_port"`
|
|
|
|
// Router
|
|
Router string `json:"router"`
|
|
|
|
// Updated time
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// Logical port information
|
|
type LogicalPort struct {
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
// Adapter MAC
|
|
AdapterMAC string `json:"adapter_mac"`
|
|
|
|
// Address detection flag
|
|
AddressDetection bool `json:"address_detection"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// Created time
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Enabled flag
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// External network ID
|
|
ExternalNetworkID string `json:"external_network_id"`
|
|
|
|
// Hypervisor
|
|
Hypervisor string `json:"hypervisor"`
|
|
|
|
// Hypervisor display name
|
|
HypervisorDisplayName string `json:"hypervisor_display_name"`
|
|
|
|
// Live migration target HV
|
|
LiveMigrationTargetHV string `json:"live_migration_target_hv"`
|
|
|
|
// Status information
|
|
Status Status `json:"status"`
|
|
|
|
// Bindings information
|
|
Bindings Bindings `json:"bindings"`
|
|
|
|
// Unique identifier
|
|
UniqueIdentifier string `json:"unique_identifier"`
|
|
|
|
// Updated time
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// Status information
|
|
type Status struct {
|
|
// Common status
|
|
Common string `json:"common"`
|
|
|
|
// Hypervisors status list
|
|
Hypervisors []HypervisorStatus `json:"hypervisors"`
|
|
}
|
|
|
|
// Hypervisor status information
|
|
type HypervisorStatus struct {
|
|
// Status
|
|
Status string `json:"status"`
|
|
|
|
// Name
|
|
Name string `json:"name"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Hypervisor status
|
|
HypervisorStatus string `json:"hypervisor_status"`
|
|
|
|
// Synced at time
|
|
SyncedAt string `json:"synced_at"`
|
|
}
|
|
|
|
// Bindings information
|
|
type Bindings struct {
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Segment display name
|
|
SegmentDisplayName string `json:"segment_display_name"`
|
|
|
|
// Segment ID
|
|
SegmentID string `json:"segment_id"`
|
|
|
|
// Port security flag
|
|
PortSecurity bool `json:"port_security"`
|
|
|
|
// Address detection flag
|
|
AddressDetection bool `json:"address_detection"`
|
|
|
|
// Is excluded from firewall flag
|
|
IsExcludedFromFirewall bool `json:"is_excluded_from_firewall"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
|
|
// Created time
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Updated time
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Logical port addresses list
|
|
LogicalPortAddresses []LogicalPortAddress `json:"logical_port_addresses"`
|
|
}
|
|
|
|
// Logical port address information
|
|
type LogicalPortAddress struct {
|
|
// IP address
|
|
IP string `json:"ip"`
|
|
|
|
// IP type
|
|
IPType string `json:"ip_type"`
|
|
|
|
// Is discovered flag
|
|
IsDiscovered bool `json:"is_discovered"`
|
|
|
|
// Is primary flag
|
|
IsPrimary bool `json:"is_primary"`
|
|
|
|
// MAC address
|
|
MAC string `json:"mac"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Logical port ID
|
|
LogicalPortID string `json:"logical_port_id"`
|
|
|
|
// Assigned at time
|
|
AssignedAt string `json:"assigned_at"`
|
|
}
|
|
|
|
// Policy information
|
|
type Policy struct {
|
|
// Action
|
|
Action string `json:"action"`
|
|
|
|
// Created time
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Enabled flag
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Match criteria
|
|
Match map[string]interface{} `json:"match"`
|
|
|
|
// Next IPv4 addresses list
|
|
NextIPv4Address []string `json:"next_ipv4_address"`
|
|
|
|
// Next IPv6 addresses list
|
|
NextIPv6Address []string `json:"next_ipv6_address"`
|
|
|
|
// Priority
|
|
Priority int `json:"priority"`
|
|
|
|
// Updated time
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// Port information
|
|
type Port struct {
|
|
// Created time
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// Enabled flag
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// IPv4 address
|
|
IPv4Address string `json:"ipv4_address"`
|
|
|
|
// IPv6 address
|
|
IPv6Address string `json:"ipv6_address"`
|
|
|
|
// IPv6 configuration
|
|
IPv6Config IPv6Config `json:"ipv6_config"`
|
|
|
|
// MAC address
|
|
MAC string `json:"mac"`
|
|
|
|
// Segment information
|
|
Segment Segment `json:"segment"`
|
|
|
|
// Segment ID
|
|
SegmentID string `json:"segment_id"`
|
|
|
|
// Status information
|
|
Status Status `json:"status"`
|
|
|
|
// Updated time
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// Segment information
|
|
type Segment struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
// Created time
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// DHCPv4 configuration
|
|
DHCPv4 DHCPv4 `json:"dhcp_v4"`
|
|
|
|
// DHCPv6 configuration
|
|
DHCPv6 DHCPv6 `json:"dhcp_v6"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Enabled flag
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Logical ports info list
|
|
LogicalPortsInfo []LogicalPortInfo `json:"logical_ports_info"`
|
|
|
|
// Routers info list
|
|
RoutersInfo []RouterInfo `json:"routers_info"`
|
|
|
|
// Status information
|
|
Status Status `json:"status"`
|
|
|
|
// IPv4 subnet
|
|
SubnetV4 string `json:"subnet_v4"`
|
|
|
|
// IPv6 subnet
|
|
SubnetV6 string `json:"subnet_v6"`
|
|
|
|
// Updated time
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// DHCPv4 configuration
|
|
type DHCPv4 struct {
|
|
// DNS servers list
|
|
DNS []string `json:"dns"`
|
|
|
|
// Excluded address ranges list
|
|
ExcludedAddressRanges []string `json:"excluded_address_ranges"`
|
|
|
|
// Gateway address
|
|
Gateway string `json:"gateway"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Lease time
|
|
LeaseTime int `json:"lease_time"`
|
|
|
|
// Server IP
|
|
ServerIP string `json:"server_ip"`
|
|
|
|
// Server MAC
|
|
ServerMAC string `json:"server_mac"`
|
|
|
|
// Enabled flag
|
|
Enabled bool `json:"enabled"`
|
|
}
|
|
|
|
// DHCPv6 configuration
|
|
type DHCPv6 struct {
|
|
// Address prefix
|
|
AddressPrefix string `json:"address_prefix"`
|
|
|
|
// DNS servers list
|
|
DNS []string `json:"dns"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Lease time
|
|
LeaseTime int `json:"lease_time"`
|
|
|
|
// Server MAC
|
|
ServerMAC string `json:"server_mac"`
|
|
|
|
// Enabled flag
|
|
Enabled bool `json:"enabled"`
|
|
}
|
|
|
|
// Logical port info
|
|
type LogicalPortInfo struct {
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
}
|
|
|
|
// Router info
|
|
type RouterInfo struct {
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
}
|