package adrspools

type AddressPoolsList struct {
	Pools []NetworkAddressPool
}

// Main information about network address pool
type NetworkAddressPool 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"`

	// Updated time
	UpdatedAt string `json:"updated_at"`

	// Description
	Description string `json:"description"`

	// ID
	ID string `json:"id"`

	// Name
	Name string `json:"name"`

	// Network address type
	NetAddressType string `json:"net_address_type"`

	// List of network addresses
	NetAddresses []NetworkAddress `json:"net_addresses"`

	// Pool counters
	PoolCounters PoolCounters `json:"pool_counters"`

	// Version ID
	VersionID uint64 `json:"version_id"`
}

// Network address information
type NetworkAddress struct {
	// ID
	ID string `json:"id"`

	// IP address
	IPAddr string `json:"ip_addr"`

	// Network address type
	NetAddressType string `json:"net_address_type"`

	// Network address pool ID
	NetAddressPoolID string `json:"net_address_pool_id"`
}

// Pool counters information
type PoolCounters struct {
	// Security rules count
	SecurityRules uint64 `json:"security_rules"`
}
