1003 lines
20 KiB
Go
1003 lines
20 KiB
Go
package netobjgroups
|
|
|
|
// Information about a version
|
|
type RecordVersion struct {
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// List of network object groups
|
|
type NetObjGroupList struct {
|
|
Objects []RecordNetObjGroup
|
|
}
|
|
|
|
// Main info about a network object group
|
|
type RecordNetObjGroup struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
// Addresses
|
|
Addresses NetAddresses `json:"addresses"`
|
|
|
|
// Counters
|
|
Counters Counter `json:"counters"`
|
|
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// External network ports attached to a network object group
|
|
ExternalNetworkPorts ExternalNetworkPorts `json:"external_network_ports"`
|
|
|
|
// ID of a network object group
|
|
ID string `json:"id"`
|
|
|
|
// L2 connection ports attached to a network object group
|
|
L2ConnectionPorts L2ConnectionPorts `json:"l2_connection_ports"`
|
|
|
|
// Logical ports attached to a network object group
|
|
LogicalPorts LogicalPorts `json:"logical_ports"`
|
|
|
|
// Name of a network object group
|
|
Name string `json:"name"`
|
|
|
|
// Purpose of a network object group
|
|
Purpose string `json:"purpose"`
|
|
|
|
// Security policies of a network object group
|
|
SecurityPolicies SecurityPolicies `json:"security_policies"`
|
|
|
|
// Type of a network object group
|
|
Type string `json:"type"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// Info about counters
|
|
type Counter struct {
|
|
// Amount of addresses
|
|
AddressesCount uint64 `json:"addresses_count"`
|
|
|
|
// Amount of L2 connection ports
|
|
L2ConnectionPortsCount uint64 `json:"l2_connection_ports_count"`
|
|
|
|
// Amount of logical ports
|
|
LogicalPortsCount uint64 `json:"logical_ports_count"`
|
|
|
|
// Amount of security policies
|
|
SecurityPoliciesCount uint64 `json:"security_policies_count"`
|
|
|
|
// Amount of security rules
|
|
SecurityRulesCount uint64 `json:"security_rules_count"`
|
|
}
|
|
|
|
// Info about a net address
|
|
type NetAddress struct {
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// IP address
|
|
IPAddr string `json:"ip_addr"`
|
|
|
|
// IP address range end
|
|
IPAddrRangeEnd string `json:"ip_addr_range_end"`
|
|
|
|
// IP prefix
|
|
IPPrefix string `json:"ip_prefix"`
|
|
|
|
// MAC address
|
|
MACAddr string `json:"mac_addr"`
|
|
|
|
// Net address type
|
|
NetAddressType string `json:"net_address_type"`
|
|
}
|
|
|
|
// List of net addresses
|
|
type NetAddresses []NetAddress
|
|
|
|
// Request info about a net address
|
|
type NetAddressRequest struct {
|
|
// IP address
|
|
// Required: false
|
|
IPAddr string `url:"ip_addr" json:"ip_addr"`
|
|
|
|
// IP address range end
|
|
// Required: false
|
|
IPAddrRangeEnd string `url:"ip_addr_range_end" json:"ip_addr_range_end"`
|
|
|
|
// IP prefix
|
|
// Required: false
|
|
IPPrefix string `url:"ip_prefix" json:"ip_prefix"`
|
|
|
|
// MAC address
|
|
// Required: false
|
|
MACAddr string `url:"mac_addr" json:"mac_addr"`
|
|
|
|
// Net address type
|
|
// Required: true
|
|
NetAddressType string `url:"net_address_type" json:"net_address_type" validate:"required"`
|
|
}
|
|
|
|
// Info about an L2 connection port
|
|
type L2ConnectionPort struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// L2 external network
|
|
L2ExternalNetwork L2ExternalNetwork `json:"l2_external_network"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// List of L2 connection ports
|
|
type L2ConnectionPorts []L2ConnectionPort
|
|
|
|
// Info about an L2 external network
|
|
type L2ExternalNetwork struct {
|
|
// Bridge network name
|
|
BridgeNetworkName string `json:"bridge_network_name"`
|
|
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Hypervisors
|
|
Hypervisors []string `json:"hypervisors"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
|
|
// VLAN Tag
|
|
VLANTag *int `json:"vlan_tag"`
|
|
}
|
|
|
|
// Info about an external network port
|
|
type ExternalNetworkPort struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
// Bridge network name
|
|
BridgeNetworkName string `json:"bridge_network_name"`
|
|
|
|
// Comment
|
|
Comment string `json:"comment"`
|
|
|
|
// Default gateway for IPv4
|
|
DefaultGatewayIPv4 string `json:"default_gateway_ipv4"`
|
|
|
|
// Default gateway for IPv6
|
|
DefaultGatewayIPv6 string `json:"default_gateway_ipv6"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// Is a logical port enabled
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// Details of external network ports
|
|
ExternalNetworkPorts ExternalNetworkPortsField `json:"external_network_ports"`
|
|
|
|
// Hypervisors
|
|
Hypervisors []string `json:"hypervisors"`
|
|
|
|
// ID of an external network port
|
|
ID string `json:"id"`
|
|
|
|
// IP v4
|
|
IPv4 string `json:"ipv4"`
|
|
|
|
// Status
|
|
Status Status `json:"status"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
|
|
// Subnet for V4
|
|
SubnetV4 string `json:"subnet_v4"`
|
|
|
|
// Subnet for V6
|
|
SubnetV6 string `json:"subnet_v6"`
|
|
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// VLAN Tag
|
|
VLANTag int `json:"vlan_tag"`
|
|
|
|
// MAC
|
|
MAC string `json:"mac"`
|
|
}
|
|
|
|
// List of external network ports
|
|
type ExternalNetworkPorts []ExternalNetworkPort
|
|
|
|
// Info about a logical port
|
|
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"`
|
|
|
|
// Is address detected
|
|
AddressDetection bool `json:"address_detection"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Is a logical port enabled
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// Exclude firewall settings
|
|
ExcludeFirewall ExcludeFirewall `json:"exclude_firewall"`
|
|
|
|
// External network ID
|
|
ExternalNetworkID string `json:"external_network_id"`
|
|
|
|
// Hypervisor
|
|
Hypervisor string `json:"hypervisor"`
|
|
|
|
// Hypervisor display name
|
|
HypervisorDisplayName string `json:"hypervisor_display_name"`
|
|
|
|
// Labels
|
|
Labels Labels `json:"labels"`
|
|
|
|
// Live migration target HV
|
|
LiveMigrationTargetHV string `json:"live_migration_target_hv"`
|
|
|
|
// Status
|
|
Status Status `json:"status"`
|
|
|
|
// Bindings
|
|
Bindings Bindings `json:"bindings"`
|
|
|
|
// Unique identifier
|
|
UniqueIdentifier string `json:"unique_identifier"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// List of logical ports
|
|
type LogicalPorts []LogicalPort
|
|
|
|
// Info about exclude firewall settings
|
|
type ExcludeFirewall struct {
|
|
// Exclusion reason
|
|
ExclusionReason string `json:"exclusion_reason"`
|
|
|
|
// Is logical port addresses excluded
|
|
LogicalPortAddressesExcluded bool `json:"logical_port_addresses_excluded"`
|
|
|
|
// Is logical port excluded
|
|
LogicalPortExcluded bool `json:"logical_port_excluded"`
|
|
}
|
|
|
|
// Labels for a logical port
|
|
type Labels struct {
|
|
// VM ID
|
|
VMID string `json:"vm_id"`
|
|
|
|
// VM name
|
|
VMName string `json:"vm_name"`
|
|
}
|
|
|
|
// Info about a security policy
|
|
type SecurityPolicy struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
// Applied net object groups
|
|
AppliedNetObjectGroups AppliedNetObjectGroups `json:"applied_net_object_groups"`
|
|
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Is a security policy enabled
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// End priority
|
|
EndPriority uint64 `json:"end_priority"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Security rules
|
|
SecurityRules SecurityRules `json:"security_rules"`
|
|
|
|
// Start priority
|
|
StartPriority uint64 `json:"start_priority"`
|
|
|
|
// Status
|
|
Status Status `json:"status"`
|
|
|
|
// Type
|
|
Type string `json:"type"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
}
|
|
|
|
// List of security policies
|
|
type SecurityPolicies []SecurityPolicy
|
|
|
|
// Info about an applied net object group in a security policy
|
|
type AppliedNetObjectGroup struct {
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Name
|
|
Name string `json:"name"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// List of applied net object groups
|
|
type AppliedNetObjectGroups []AppliedNetObjectGroup
|
|
|
|
// Details of external network ports field
|
|
type ExternalNetworkPortField struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
Comment string `json:"comment"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Is a security policy enabled
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// IP v4
|
|
IPv4 string `json:"ipv4"`
|
|
|
|
// IP v6
|
|
IPv6 string `json:"ipv6"`
|
|
|
|
// Config for IP v6
|
|
IPv6Config IPv6Config `json:"ipv6_config"`
|
|
|
|
// MAC
|
|
MAC string `json:"mac"`
|
|
|
|
// Info about a router gateaway port
|
|
RouterGateawayPort RouterGateawayPort `json:"router_gateaway_port"`
|
|
|
|
// Info about a floating IP
|
|
FloatingIP FloatingIP `json:"floating_ip"`
|
|
}
|
|
|
|
// List of external network ports fields
|
|
type ExternalNetworkPortsField []ExternalNetworkPortField
|
|
|
|
// Info about a status
|
|
type Status struct {
|
|
// Operation status
|
|
OperationStatus string `json:"operation_status"`
|
|
|
|
// Info about hypervisors
|
|
Hypervisors HypervisorsInfo `json:"hypervisors"`
|
|
|
|
// Hypervisor status
|
|
HypervisorStatus string `json:"hypervisor_status"`
|
|
}
|
|
|
|
// Config for IP v6
|
|
type IPv6Config struct {
|
|
// Address mode
|
|
AddressMode string `json:"address_mode"`
|
|
|
|
// Is periodic RA enabled
|
|
EnablePeriodicRA bool `json:"enable_periodic_ra"`
|
|
|
|
// Interval RA
|
|
IntervalRA uint64 `json:"interval_ra"`
|
|
|
|
// Router preference
|
|
RouterPreference string `json:"router_preference"`
|
|
}
|
|
|
|
// Info about a router gateaway port
|
|
type RouterGateawayPort struct {
|
|
// Created at
|
|
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"`
|
|
|
|
// Is SNAT enabled
|
|
SNATEnabled bool `json:"snat_enabled"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
}
|
|
|
|
// Info about a floating IP
|
|
type FloatingIP struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// External network port in floating IP
|
|
ExternalNetworkPort ExternalNetworkPortFieldInFloatingIP `json:"external_network_port"`
|
|
|
|
// Logical port
|
|
LogicalPort LogicalPort `json:"logical_port"`
|
|
|
|
// Router
|
|
Router Router `json:"router"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// TODO later
|
|
type ExternalNetworkPortFieldInFloatingIP struct{}
|
|
|
|
// Info about a router
|
|
type Router struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Is a security policy enabled
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// Gateaway ports
|
|
GateawayPorts GateawayPorts `json:"gateaway_ports"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Policies
|
|
Policies Policies `json:"policies"`
|
|
|
|
// Port
|
|
Port Ports `json:"ports"`
|
|
|
|
// Status
|
|
Status Status `json:"status"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// Info about bindings
|
|
type Bindings struct {
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Segment display name
|
|
SegmentDisplayName string `json:"segment_display_name"`
|
|
|
|
// Segment ID
|
|
SegmentID string `json:"segment_id"`
|
|
|
|
// Is a port secured
|
|
PortSecurity bool `json:"port_security"`
|
|
|
|
// Is an address detected
|
|
AddressDetection bool `json:"address_detection"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Logical port addresses
|
|
LogicalPortAddresses LogicalPortAddresses `json:"logical_port_addresses"`
|
|
}
|
|
|
|
// Info about a gateaway port
|
|
type GateawayPort struct {
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// Max external L4 port
|
|
ExternalL4PortMax uint64 `json:"external_l4_port_max"`
|
|
|
|
// Min external L4 port
|
|
ExternalL4PortMin uint64 `json:"external_l4_port_min"`
|
|
|
|
// External network port in floating IP
|
|
ExternalNetworkPortFieldInFloatingIP ExternalNetworkPortFieldInFloatingIP `json:"external_network_port"` // to check
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Is SNAT enabled
|
|
SNATEnabled bool `json:"snat_enabled"`
|
|
|
|
// Status
|
|
Status Status `json:"status"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// List of gateaway ports
|
|
type GateawayPorts []GateawayPort
|
|
|
|
// Info about a policy
|
|
type Policy struct {
|
|
// Action
|
|
Action string `json:"action"`
|
|
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Is a security policy enabled
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Match
|
|
Match string `json:"match"`
|
|
|
|
// List of next IP v4 addresses
|
|
NextIPv4Address []string `json:"next_ipv4_address"`
|
|
|
|
// List of next IP v6 addresses
|
|
NextIPv6Address []string `json:"next_ipv6_address"`
|
|
|
|
// Priority
|
|
Priority int `json:"priority"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// List of policies
|
|
type Policies []Policy
|
|
|
|
// Info about a port
|
|
type Port struct {
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// Is a security policy enabled
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// IPv4 address
|
|
IPv4Address string `json:"ipv4_address"`
|
|
|
|
// IPv6 address
|
|
IPv6Address string `json:"ipv6_address"`
|
|
|
|
// Config for IPv6
|
|
IPv6Config IPv6Config `json:"ipv6_config"`
|
|
|
|
// MAC
|
|
MAC string `json:"mac"`
|
|
|
|
// Segment
|
|
Segment Segment `json:"segment"`
|
|
|
|
// Segment ID
|
|
SegmentID string `json:"segment_id"`
|
|
|
|
// Status
|
|
Status Status `json:"status"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// VersionID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// List of ports
|
|
type Ports []Port
|
|
|
|
// Info about a segment
|
|
type Segment struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Access group name
|
|
AccessGroupName string `json:"access_group_name"`
|
|
|
|
// Created at
|
|
CreatedAt string `json:"created_at"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
DHCPv4 DHCPv4 `json:"dhcp_v4"`
|
|
DHCPv6 DHCPv6 `json:"dhcp_v6"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Is a security policy enabled
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Info about logical ports
|
|
LogicalPortsInfo LogicalPortsInfo `json:"logical_ports_info"`
|
|
|
|
// Info about routers
|
|
RoutersInfo RoutersInfo `json:"routers_info"`
|
|
|
|
// Status
|
|
Status Status `json:"status"`
|
|
|
|
// Subnet v4
|
|
SubnetV4 string `json:"subnet_v4"`
|
|
|
|
// Subnet v6
|
|
SubnetV6 string `json:"subnet_v6"`
|
|
|
|
// Updated at
|
|
UpdatedAt string `json:"updated_at"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// Info about DHCP v4
|
|
type DHCPv4 struct {
|
|
// List of DNS
|
|
DNS []string `json:"dns"`
|
|
|
|
// List of excluded address ranges
|
|
ExcludedAddressRanges []string `json:"excluded_address_ranges"`
|
|
|
|
// Gateaway
|
|
Gateaway string `json:"gateaway"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Lease time
|
|
LeaseTime uint64 `json:"lease_time"`
|
|
|
|
// Server IP
|
|
ServerIP string `json:"server_ip"`
|
|
|
|
// is there a server MAC
|
|
ServerMAC bool `json:"server_mac"`
|
|
|
|
// Is a security policy enabled
|
|
Enabled bool `json:"enabled"`
|
|
}
|
|
|
|
// Info about DHCP v6
|
|
type DHCPv6 struct {
|
|
// Address prefix
|
|
AddressPrefix string `json:"address_prefix"`
|
|
|
|
// List of DNS
|
|
DNS []string `json:"dns"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Lease time
|
|
LeaseTime uint64 `json:"lease_time"`
|
|
|
|
// Server MAC
|
|
ServerMAC string `json:"server_mac"`
|
|
|
|
// Is a security policy enabled
|
|
Enabled bool `json:"enabled"`
|
|
}
|
|
|
|
// Info about logical ports
|
|
type LogicalPortsInfo struct {
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
}
|
|
|
|
// Info about routers
|
|
type RoutersInfo struct {
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
}
|
|
|
|
// Info about a hypervisor
|
|
type HypervisorInfo struct {
|
|
// Operation status
|
|
OperationStatus string `json:"operation_status"`
|
|
|
|
// Name
|
|
Name string `json:"name"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Hypervisor status
|
|
HypervisorStatus string `json:"hypervisor_status"`
|
|
|
|
// Synced at
|
|
SyncedAt string `json:"synced_at"`
|
|
}
|
|
|
|
// List of hypervisors info
|
|
type HypervisorsInfo []HypervisorInfo
|
|
|
|
type LogicalPortAddress struct {
|
|
// IP
|
|
IP string `json:"ip"`
|
|
|
|
// IP Type
|
|
IPType string `json:"ip_type"`
|
|
|
|
// Is logical port address discovered
|
|
IsDiscovered bool `json:"is_discovered"`
|
|
|
|
// Is logical port address primary
|
|
IsPrimary bool `json:"is_primary"`
|
|
|
|
// MAC
|
|
MAC string `json:"mac"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Logical port ID
|
|
LogicalPortID string `json:"logical_port_id"`
|
|
|
|
// Assigned at
|
|
AssignedAt string `json:"assigned_at"`
|
|
}
|
|
|
|
// List of logical port addresses
|
|
type LogicalPortAddresses []LogicalPortAddress
|
|
|
|
// Info about a security rule
|
|
type SecurityRule struct {
|
|
// Access group ID
|
|
AccessGroupID string `json:"access_group_id"`
|
|
|
|
// Action
|
|
Action string `json:"action"`
|
|
|
|
// Description
|
|
Description string `json:"description"`
|
|
|
|
// Destination net object
|
|
DestinationNetObject *SecurityRuleNetObject `json:"destination_net_object"`
|
|
|
|
// Direction
|
|
Direction string `json:"direction"`
|
|
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Is enabled
|
|
Enabled bool `json:"enabled"`
|
|
|
|
// Filter
|
|
Filter *SecurityRuleFilter `json:"filter"`
|
|
|
|
// ID
|
|
ID string `json:"id"`
|
|
|
|
// Is log enabled
|
|
LogEnabled bool `json:"log_enabled"`
|
|
|
|
// Log name
|
|
LogName string `json:"log_name"`
|
|
|
|
// Log severity
|
|
LogSeverity string `json:"log_severity"`
|
|
|
|
// Priority
|
|
Priority int `json:"priority"`
|
|
|
|
// Security policy ID
|
|
SecurityPolicyID string `json:"security_policy_id"`
|
|
|
|
// Source net object
|
|
SourceNetObject *SecurityRuleNetObject `json:"source_net_object"`
|
|
|
|
// Is statistics enabled
|
|
StatisticsEnabled bool `json:"statistics_enabled"`
|
|
|
|
// Type
|
|
Type string `json:"type"`
|
|
|
|
// Version ID
|
|
VersionID uint64 `json:"version_id"`
|
|
}
|
|
|
|
// List of security rules
|
|
type SecurityRules []SecurityRule
|
|
|
|
// Info about a security rule net object
|
|
type SecurityRuleNetObject struct {
|
|
// Display name
|
|
DisplayName string `json:"display_name"`
|
|
|
|
// Net address pool ID
|
|
NetAddressPoolID string `json:"net_address_pool_id"`
|
|
|
|
// Net object group ID
|
|
NetObjectGroupID string `json:"net_object_group_id"`
|
|
}
|
|
|
|
// Info about a security rule filter
|
|
type SecurityRuleFilter struct {
|
|
// Filters
|
|
Filters SecurityRuleFilters `json:"filters"`
|
|
|
|
// Name
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// Security rule filters
|
|
type SecurityRuleFilters struct {
|
|
// Filter all traffic
|
|
All bool `json:"all"`
|
|
|
|
// Filter ARP traffic
|
|
ARP bool `json:"arp"`
|
|
|
|
// Filter DHCP traffic
|
|
DHCP bool `json:"dhcp"`
|
|
|
|
// Custom filter expression
|
|
Expression string `json:"expression"`
|
|
|
|
// Filter ICMP traffic
|
|
ICMP bool `json:"icmp"`
|
|
|
|
// Filter IP traffic
|
|
IP bool `json:"ip"`
|
|
|
|
// Filter IPv4 traffic
|
|
IPv4 bool `json:"ip_v4"`
|
|
|
|
// Filter IPv6 traffic
|
|
IPv6 bool `json:"ip_v6"`
|
|
|
|
// Keep tracking opened sessions
|
|
KeepOpenedSessions bool `json:"keep_opened_sessions"`
|
|
|
|
// Filter Neighbor Discovery traffic
|
|
ND bool `json:"nd"`
|
|
|
|
// Filter TCP traffic
|
|
TCP bool `json:"tcp"`
|
|
|
|
// List of TCP destination ports to filter
|
|
TCPDstPorts []string `json:"tcp_dst_ports"`
|
|
|
|
// Filter UDP traffic
|
|
UDP bool `json:"udp"`
|
|
|
|
// List of UDP destination ports to filter
|
|
UDPDstPorts []string `json:"udp_dst_ports"`
|
|
}
|