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"` // 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"` // Logical ports attached to a network object group LogicalPorts LogicalPorts `json:"logical_ports"` // Name of a network object group Name string `json:"name"` // Security policies of a network object group SecurityPolicies SecurityPolicies `json:"security_policies"` // Version ID VersionID uint64 `json:"version_id"` } // Info about counters type Counter struct { // 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"` } // List of counters type Counters []Counter // Info about an external network port type ExternalNetworkPort struct { // Bridge network name BridgeNetworkName string `json:"bridge_network_name"` // Default gateaway for IPv4 DefaultGateawayIPv4 string `json:"default_gateaway_ipv4"` // Default gateaway for IPv6 DefaultGateawayIPv6 string `json:"default_gateaway_ipv6"` // Description Description string `json:"description"` // 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"` // Status Status Status `json:"status"` // Version ID VersionID string `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 string `json:"vlan_tag"` } // 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"` // 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 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 a logical ports type LogicalPorts []LogicalPort // 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 to net object group ID AppliedToNetObjectGroupID string `json:"applied_to_net_object_group_id"` // 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"` // Version ID VersionID uint64 `json:"version_id"` // Updated at UpdatedAt string `json:"updated_at"` } // List of security policies type SecurityPolicies []SecurityPolicy // 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 { // Common Common string `json:"common"` // Info about hypervisors Hypervisors HypervisorsInfo `json:"hypervisors"` } // 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"` // Is excluded from firewall IsExcludedFromFirewall bool `json:"is_excluded_from_firewall"` // 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 { // 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 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 // TODO type SecurityRule struct{} type SecurityRules []SecurityRule