Documentation
¶
Overview ¶
Package peeringdb provides structures and functions to interact with the PeeringDB API. The API documentation is available here: https://www.peeringdb.com/apidocs/
The PeeringDB API is based on REST principles and the output is formatted in JSON. This is what this package do. It queries the API with correct URL and parameters. It then parses the JSON response and make it Go structures. For now this package can only be used to do GET requests. So it cannot be used to make any changes on any PeeringDB record.
There is two levels of structures in this package. The first level is a representation of the first level of the JSON returned by the API. These structures are named *Resource. They all have the same layout a Meta field, containing metadata returned by the API, and a Data field being an array of the second level structures.
All calls to the PeeringDB API are made using the "depth=1" parameter. This means that sets will be expanded as interger slices instead of slice of structures. This speeds up the API processing time. To get the structures for a given set, you just have to iterate over the set and call the right function to retrieve structures from IDs.
Let's take an example. When we request one or several objects from the PeeringDB API, the response is always formatted in the same way. First comes the metadata, then comes data. Data are always in an array since it might contain more than one object. So when we ask the API to give us a network object (called Net and represented by the struct of the same name), this package will parse the first level as a NetResource structure. This structure contains metadata in its Meta field (if their is any) and Net structures in the Data field (being an array).
Example ¶
api := NewAPI()
// Look for the organization given a name
search := make(map[string]interface{})
search["name"] = "LuxNetwork S.A."
// Get the organization, pointer to slice returned
organizations, err := api.GetOrganization(search)
// If an error as occurred, print it
if err != nil {
fmt.Println(err)
return
}
// No organization found
if len(*organizations) < 1 {
fmt.Printf("No organization found with name '%s'\n", search["name"])
return
}
// Several organizations found
if len(*organizations) > 1 {
fmt.Printf("More than one organizations found with name '%s'\n",
search["name"])
return
}
// Get the first found organization
org := (*organizations)[0]
// Find if there are networks linked to the organization
if len(org.NetworkSet) > 0 {
// For each network
for _, networkID := range org.NetworkSet {
// Get the details and print it
network, err := api.GetNetworkByID(networkID)
if err != nil {
fmt.Println(err)
} else {
fmt.Print(network.Name)
}
}
}
Output: LuxNetwork S.A.
Index ¶
- Variables
- type API
- func (api *API) GetASN(asn int) *Network
- func (api *API) GetAllFacilities() (*[]Facility, error)
- func (api *API) GetAllInternetExchangeFacilities() (*[]InternetExchangeFacility, error)
- func (api *API) GetAllInternetExchangeLANs() (*[]InternetExchangeLAN, error)
- func (api *API) GetAllInternetExchangePrefixes() (*[]InternetExchangePrefix, error)
- func (api *API) GetAllInternetExchanges() (*[]InternetExchange, error)
- func (api *API) GetAllNetworkContacts() (*[]NetworkContact, error)
- func (api *API) GetAllNetworkFacilities() (*[]NetworkFacility, error)
- func (api *API) GetAllNetworkInternetExchangeLANs() (*[]NetworkInternetExchangeLAN, error)
- func (api *API) GetAllNetworks() (*[]Network, error)
- func (api *API) GetAllOrganizations() (*[]Organization, error)
- func (api *API) GetFacility(search map[string]interface{}) (*[]Facility, error)
- func (api *API) GetFacilityByID(id int) (*Facility, error)
- func (api *API) GetInternetExchange(search map[string]interface{}) (*[]InternetExchange, error)
- func (api *API) GetInternetExchangeByID(id int) (*InternetExchange, error)
- func (api *API) GetInternetExchangeFacility(search map[string]interface{}) (*[]InternetExchangeFacility, error)
- func (api *API) GetInternetExchangeFacilityByID(id int) (*InternetExchangeFacility, error)
- func (api *API) GetInternetExchangeLAN(search map[string]interface{}) (*[]InternetExchangeLAN, error)
- func (api *API) GetInternetExchangeLANByID(id int) (*InternetExchangeLAN, error)
- func (api *API) GetInternetExchangePrefix(search map[string]interface{}) (*[]InternetExchangePrefix, error)
- func (api *API) GetInternetExchangePrefixByID(id int) (*InternetExchangePrefix, error)
- func (api *API) GetNetwork(search map[string]interface{}) (*[]Network, error)
- func (api *API) GetNetworkByID(id int) (*Network, error)
- func (api *API) GetNetworkContact(search map[string]interface{}) (*[]NetworkContact, error)
- func (api *API) GetNetworkContactByID(id int) (*NetworkContact, error)
- func (api *API) GetNetworkFacility(search map[string]interface{}) (*[]NetworkFacility, error)
- func (api *API) GetNetworkFacilityByID(id int) (*NetworkFacility, error)
- func (api *API) GetNetworkInternetExchangeLAN(search map[string]interface{}) (*[]NetworkInternetExchangeLAN, error)
- func (api *API) GetNetworkInternetExchangeLANByID(id int) (*NetworkInternetExchangeLAN, error)
- func (api *API) GetOrganization(search map[string]interface{}) (*[]Organization, error)
- func (api *API) GetOrganizationByID(id int) (*Organization, error)
- type Facility
- type InternetExchange
- type InternetExchangeFacility
- type InternetExchangeLAN
- type InternetExchangePrefix
- type Network
- type NetworkContact
- type NetworkFacility
- type NetworkInternetExchangeLAN
- type Organization
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrBuildingURL is the error that will be returned if the URL to call the // API cannot be built as expected. ErrBuildingURL = errors.New("Error while building the URL to call the PeeringDB API.") // ErrBuildingRequest is the error that will be returned if the HTTP // request to call the API cannot be built as expected. ErrBuildingRequest = errors.New("Error while building the request to send to the PeeringDB API.") // ErrQueryingAPI is the error that will be returned if there is an issue // while making the request to the API. ErrQueryingAPI = errors.New("Error while querying PeeringDB API.") )
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
// contains filtered or unexported fields
}
API is the structure used to interact with the PeeringDB API. This is the main structure of this package. All functions to make API calls are associated to this structure.
func NewAPI ¶
func NewAPI() *API
NewAPI returns a pointer to a new API structure. It uses the publicly known PeeringDB API endpoint.
func NewAPIFromURL ¶
NewAPIFromURL returns a pointer to a new API structure from a given URL. If the given URL is empty it will use the default PeeringDB API URL.
func NewAPIFromURLWithAuth ¶
NewAPIFromURLWithAuth returns a pointer to a new API structure from a given URL. If the given URL is empty it will use the default PeeringDB API URL. It will use the provided login and password to attempt an authentication while making API calls.
func NewAPIWithAPIKey ¶
NewAPIWithAuth returns a pointer to a new API structure. The API will point to the publicly known PeeringDB API endpoint and will use the provided login and password to attempt an authentication while making API calls.
func NewAPIWithAuth ¶
NewAPIWithAuth returns a pointer to a new API structure. The API will point to the publicly known PeeringDB API endpoint and will use the provided login and password to attempt an authentication while making API calls.
func (*API) GetASN ¶
GetASN is a simplified function to get PeeringDB details about a given AS number. It basically gets the Net object matching the AS number. If the AS number cannot be found, nil is returned.
Example ¶
api := NewAPI()
as29467 := api.GetASN(29467)
fmt.Printf("Name: %s\n", as29467.Name)
fmt.Printf("AS number: %d\n", as29467.ASN)
Output: Name: LuxNetwork S.A. AS number: 29467
func (*API) GetAllFacilities ¶
GetAllFacilities returns a pointer to a slice of Facility structures that the PeeringDB API can provide. If an error occurs, the returned error will be non-nil. The can be nil if no object could be found.
func (*API) GetAllInternetExchangeFacilities ¶
func (api *API) GetAllInternetExchangeFacilities() (*[]InternetExchangeFacility, error)
GetAllInternetExchangeFacilities returns a pointer to a slice of InternetExchangeFacility structures that the PeeringDB API can provide. If an error occurs, the returned error will be non-nil. The can be nil if no object could be found.
func (*API) GetAllInternetExchangeLANs ¶
func (api *API) GetAllInternetExchangeLANs() (*[]InternetExchangeLAN, error)
GetAllInternetExchangeLANs returns a pointer to a slice of InternetExchangeLAN structures that the PeeringDB API can provide. If an error occurs, the returned error will be non-nil. The can be nil if no object could be found.
func (*API) GetAllInternetExchangePrefixes ¶
func (api *API) GetAllInternetExchangePrefixes() (*[]InternetExchangePrefix, error)
GetAllInternetExchangePrefixes returns a pointer to a slice of InternetExchangePrefix structures that the PeeringDB API can provide. If an error occurs, the returned error will be non-nil. The can be nil if no object could be found.
func (*API) GetAllInternetExchanges ¶
func (api *API) GetAllInternetExchanges() (*[]InternetExchange, error)
GetAllInternetExchanges returns a pointer to a slice of InternetExchange structures that the PeeringDB API can provide. If an error occurs, the returned error will be non-nil. The can be nil if no object could be found.
func (*API) GetAllNetworkContacts ¶
func (api *API) GetAllNetworkContacts() (*[]NetworkContact, error)
GetAllNetworkContacts returns a pointer to a slice of NetworkContact structures that the PeeringDB API can provide. If an error occurs, the returned error will be non-nil. The can be nil if no object could be found.
func (*API) GetAllNetworkFacilities ¶
func (api *API) GetAllNetworkFacilities() (*[]NetworkFacility, error)
GetAllNetworkFacilities returns a pointer to a slice of NetworkFacility structures that the PeeringDB API can provide. If an error occurs, the returned error will be non-nil. The can be nil if no object could be found.
func (*API) GetAllNetworkInternetExchangeLANs ¶
func (api *API) GetAllNetworkInternetExchangeLANs() (*[]NetworkInternetExchangeLAN, error)
GetAllNetworkInternetExchangeLANs returns a pointer to a slice of NetworkInternetExchangeLAN structures that the PeeringDB API can provide. If an error occurs, the returned error will be non-nil. The can be nil if no object could be found.
func (*API) GetAllNetworks ¶
GetAllNetworks returns a pointer to a slice of Network structures that the PeeringDB API can provide. If an error occurs, the returned error will be non-nil. The can be nil if no object could be found.
func (*API) GetAllOrganizations ¶
func (api *API) GetAllOrganizations() (*[]Organization, error)
GetAllOrganizations returns a pointer to a slice of Organization structures that the PeeringDB API can provide. If an error occurs, the returned error will be non-nil. The can be nil if no object could be found.
func (*API) GetFacility ¶
GetFacility returns a pointer to a slice of Facility structures that the PeeringDB API can provide matching the given search parameters map. If an error occurs, the returned error will be non-nil. The returned value can be nil if no object could be found.
func (*API) GetFacilityByID ¶
GetFacilityByID returns a pointer to a Facility structure that matches the given ID. If the ID is lesser than 0, it will return nil. The returned error will be non-nil if an issue as occurred while trying to query the API. If for some reasons the API returns more than one object for the given ID (but it must not) only the first will be used for the returned value.
func (*API) GetInternetExchange ¶
func (api *API) GetInternetExchange(search map[string]interface{}) (*[]InternetExchange, error)
GetInternetExchange returns a pointer to a slice of InternetExchange structures that the PeeringDB API can provide matching the given search parameters map. If an error occurs, the returned error will be non-nil. The returned value can be nil if no object could be found.
func (*API) GetInternetExchangeByID ¶
func (api *API) GetInternetExchangeByID(id int) (*InternetExchange, error)
GetInternetExchangeByID returns a pointer to a InternetExchange structure that matches the given ID. If the ID is lesser than 0, it will return nil. The returned error will be non-nil if an issue as occurred while trying to query the API. If for some reasons the API returns more than one object for the given ID (but it must not) only the first will be used for the returned value.
func (*API) GetInternetExchangeFacility ¶
func (api *API) GetInternetExchangeFacility(search map[string]interface{}) (*[]InternetExchangeFacility, error)
GetInternetExchangeFacility returns a pointer to a slice of InternetExchangeFacility structures that the PeeringDB API can provide matching the given search parameters map. If an error occurs, the returned error will be non-nil. The returned value can be nil if no object could be found.
func (*API) GetInternetExchangeFacilityByID ¶
func (api *API) GetInternetExchangeFacilityByID(id int) (*InternetExchangeFacility, error)
GetInternetExchangeFacilityByID returns a pointer to a InternetExchangeFacility structure that matches the given ID. If the ID is lesser than 0, it will return nil. The returned error will be non-nil if an issue as occurred while trying to query the API. If for some reasons the API returns more than one object for the given ID (but it must not) only the first will be used for the returned value.
func (*API) GetInternetExchangeLAN ¶
func (api *API) GetInternetExchangeLAN(search map[string]interface{}) (*[]InternetExchangeLAN, error)
GetInternetExchangeLAN returns a pointer to a slice of InternetExchangeLAN structures that the PeeringDB API can provide matching the given search parameters map. If an error occurs, the returned error will be non-nil. The returned value can be nil if no object could be found.
func (*API) GetInternetExchangeLANByID ¶
func (api *API) GetInternetExchangeLANByID(id int) (*InternetExchangeLAN, error)
GetInternetExchangeLANByID returns a pointer to a InternetExchangeLAN structure that matches the given ID. If the ID is lesser than 0, it will return nil. The returned error will be non-nil if an issue as occurred while trying to query the API. If for some reasons the API returns more than one object for the given ID (but it must not) only the first will be used for the returned value.
func (*API) GetInternetExchangePrefix ¶
func (api *API) GetInternetExchangePrefix(search map[string]interface{}) (*[]InternetExchangePrefix, error)
GetInternetExchangePrefix returns a pointer to a slice of InternetExchangePrefix structures that the PeeringDB API can provide matching the given search parameters map. If an error occurs, the returned error will be non-nil. The returned value can be nil if no object could be found.
func (*API) GetInternetExchangePrefixByID ¶
func (api *API) GetInternetExchangePrefixByID(id int) (*InternetExchangePrefix, error)
GetInternetExchangePrefixByID returns a pointer to a InternetExchangePrefix structure that matches the given ID. If the ID is lesser than 0, it will return nil. The returned error will be non-nil if an issue as occurred while trying to query the API. If for some reasons the API returns more than one object for the given ID (but it must not) only the first will be used for the returned value.
func (*API) GetNetwork ¶
GetNetwork returns a pointer to a slice of Network structures that the PeeringDB API can provide matching the given search parameters map. If an error occurs, the returned error will be non-nil. The returned value can be nil if no object could be found.
func (*API) GetNetworkByID ¶
GetNetworkByID returns a pointer to a Network structure that matches the given ID. If the ID is lesser than 0, it will return nil. The returned error will be non-nil if an issue as occurred while trying to query the API. If for some reasons the API returns more than one object for the given ID (but it must not) only the first will be used for the returned value.
func (*API) GetNetworkContact ¶
func (api *API) GetNetworkContact(search map[string]interface{}) (*[]NetworkContact, error)
GetNetworkContact returns a pointer to a slice of NetworkContact structures that the PeeringDB API can provide matching the given search parameters map. If an error occurs, the returned error will be non-nil. The returned value can be nil if no object could be found.
func (*API) GetNetworkContactByID ¶
func (api *API) GetNetworkContactByID(id int) (*NetworkContact, error)
GetNetworkContactByID returns a pointer to a NetworkContact structure that matches the given ID. If the ID is lesser than 0, it will return nil. The returned error will be non-nil if an issue as occurred while trying to query the API. If for some reasons the API returns more than one object for the given ID (but it must not) only the first will be used for the returned value.
func (*API) GetNetworkFacility ¶
func (api *API) GetNetworkFacility(search map[string]interface{}) (*[]NetworkFacility, error)
GetNetworkFacility returns a pointer to a slice of NetworkFacility structures that the PeeringDB API can provide matching the given search parameters map. If an error occurs, the returned error will be non-nil. The returned value can be nil if no object could be found.
func (*API) GetNetworkFacilityByID ¶
func (api *API) GetNetworkFacilityByID(id int) (*NetworkFacility, error)
GetNetworkFacilityByID returns a pointer to a NetworkFacility structure that matches the given ID. If the ID is lesser than 0, it will return nil. The returned error will be non-nil if an issue as occurred while trying to query the API. If for some reasons the API returns more than one object for the given ID (but it must not) only the first will be used for the returned value.
func (*API) GetNetworkInternetExchangeLAN ¶
func (api *API) GetNetworkInternetExchangeLAN(search map[string]interface{}) (*[]NetworkInternetExchangeLAN, error)
GetNetworkInternetExchangeLAN returns a pointer to a slice of NetworkInternetExchangeLAN structures that the PeeringDB API can provide matching the given search parameters map. If an error occurs, the returned error will be non-nil. The returned value can be nil if no object could be found.
func (*API) GetNetworkInternetExchangeLANByID ¶
func (api *API) GetNetworkInternetExchangeLANByID(id int) (*NetworkInternetExchangeLAN, error)
GetNetworkInternetExchangeLANByID returns a pointer to a NetworkInternetExchangeLAN structure that matches the given ID. If the ID is lesser than 0, it will return nil. The returned error will be non-nil if an issue as occurred while trying to query the API. If for some reasons the API returns more than one object for the given ID (but it must not) only the first will be used for the returned value.
func (*API) GetOrganization ¶
func (api *API) GetOrganization(search map[string]interface{}) (*[]Organization, error)
GetOrganization returns a pointer to a slice of Organization structures that the PeeringDB API can provide matching the given search parameters map. If an error occurs, the returned error will be non-nil. The returned value can be nil if no object could be found.
func (*API) GetOrganizationByID ¶
func (api *API) GetOrganizationByID(id int) (*Organization, error)
GetOrganizationByID returns a pointer to a Organization structure that matches the given ID. If the ID is lesser than 0, it will return nil. The returned error will be non-nil if an issue as occurred while trying to query the API. If for some reasons the API returns more than one object for the given ID (but it must not) only the first will be used for the returned value.
type Facility ¶
type Facility struct {
ID int `json:"id"`
OrganizationID int `json:"org_id"`
OrganizationName string `json:"org_name"`
Organization Organization `json:"organization,omitempty"`
Name string `json:"name"`
Website string `json:"website"`
CLLI string `json:"clli"`
Rencode string `json:"rencode"`
Npanxx string `json:"npanxx"`
Notes string `json:"notes"`
NetCount int `json:"net_count"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
Status string `json:"status"`
Address1 string `json:"address1"`
Address2 string `json:"address2"`
City string `json:"city"`
Country string `json:"country"`
State string `json:"state"`
Zipcode string `json:"zipcode"`
}
Facility is the representation of a location where network operators and Internet exchange points are located. Most of the time you know a facility as a datacenter.
type InternetExchange ¶
type InternetExchange struct {
ID int `json:"id"`
OrganizationID int `json:"org_id"`
Organization Organization `json:"org,omitempty"`
Name string `json:"name"`
NameLong string `json:"name_long"`
City string `json:"city"`
Country string `json:"country"`
RegionContinent string `json:"region_continent"`
Media string `json:"media"`
Notes string `json:"notes"`
ProtoUnicast bool `json:"proto_unicast"`
ProtoMulticast bool `json:"proto_multicast"`
ProtoIPv6 bool `json:"proto_ipv6"`
Website string `json:"website"`
URLStats string `json:"url_stats"`
TechEmail string `json:"tech_email"`
TechPhone string `json:"tech_phone"`
PolicyEmail string `json:"policy_email"`
PolicyPhone string `json:"policy_phone"`
FacilitySet []int `json:"fac_set"`
InternetExchangeLANSet []int `json:"ixlan_set"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
Status string `json:"status"`
}
InternetExchange is a structure representing an Internet exchange point. It is directly linked to the Organization that manage the IX.
type InternetExchangeFacility ¶
type InternetExchangeFacility struct {
ID int `json:"id"`
InternetExchangeID int `json:"ix_id"`
InternetExchange InternetExchange `json:"ix,omitempty"`
FacilityID int `json:"fac_id"`
Facility Facility `json:"fac,omitempty"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
Status string `json:"status"`
}
InternetExchangeFacility is a structure used to link an InternetExchange structure with a Facility structure. It helps to know where an Internet exchange points can be found, or what Internet exchange points can be found in a given facility.
type InternetExchangeLAN ¶
type InternetExchangeLAN struct {
ID int `json:"id"`
InternetExchangeID int `json:"ix_id"`
InternetExchange InternetExchange `json:"ix,omitempty"`
Name string `json:"name"`
Description string `json:"descr"`
MTU int `json:"mtu"`
Dot1QSupport bool `json:"dot1q_support"`
RouteServerASN int `json:"rs_asn"`
ARPSponge string `json:"arp_sponge"`
NetworkSet []int `json:"net_set"`
InternetExchangePrefixSet []int `json:"ixpfx_set"`
Status string `json:"status"`
IXFURL string `json:"ixf_ixp_member_list_url"`
IXFURLVisibility string `json:"ixf_ixp_member_list_url_visible"`
Updated time.Time `json:"updated"`
Created time.Time `json:"created"`
}
InternetExchangeLAN is a structure representing the one of the network (LAN) of an Internet exchange points. It contains details about the LAN like the MTU, VLAN support, etc.
type InternetExchangePrefix ¶
type InternetExchangePrefix struct {
ID int `json:"id"`
InternetExchangeLANID int `json:"ixlan_id"`
InternetExchangeLAN InternetExchangeLAN `json:"ixlan,omitempty"`
Protocol string `json:"protocol"`
Prefix string `json:"prefix"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
Status string `json:"status"`
}
InternetExchangePrefix is a structure representing the prefix used by an Internet exchange point. It is directly linked to an InternetExchangeLAN.
type Network ¶
type Network struct {
ID int `json:"id"`
OrganizationID int `json:"org_id"`
Organization Organization `json:"org,omitempty"`
Name string `json:"name"`
AKA string `json:"aka"`
Website string `json:"website"`
ASN int `json:"asn"`
LookingGlass string `json:"looking_glass"`
RouteServer string `json:"route_server"`
IRRASSet string `json:"irr_as_set"`
InfoType string `json:"info_type"`
InfoPrefixes4 int `json:"info_prefixes4"`
InfoPrefixes6 int `json:"info_prefixes6"`
InfoTraffic string `json:"info_traffic"`
InfoRatio string `json:"info_ratio"`
InfoScope string `json:"info_scope"`
InfoUnicast bool `json:"info_unicast"`
InfoMulticast bool `json:"info_multicast"`
InfoIPv6 bool `json:"info_ipv6"`
Notes string `json:"notes"`
PolicyURL string `json:"policy_url"`
PolicyGeneral string `json:"policy_general"`
PolicyLocations string `json:"policy_locations"`
PolicyRatio bool `json:"policy_ratio"`
PolicyContracts string `json:"policy_contracts"`
NetworkFacilitySet []int `json:"netfac_set"`
NetworkInternetExchangeLANSet []int `json:"netixlan_set"`
NetworkContactSet []int `json:"poc_set"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
Status string `json:"status"`
}
Network is a structure representing a network. Basically, a network is an Autonomous System identified by an AS number and other details. It belongs to an Organization, contains one or more NetworkContact, and is part of several Facility and InternetExchangeLAN.
type NetworkContact ¶
type NetworkContact struct {
ID int `json:"id"`
NetworkID int `json:"net_id"`
Network Network `json:"net"`
Role string `json:"role"`
Visible string `json:"visible"`
Name string `json:"name"`
Phone string `json:"phone"`
Email string `json:"email"`
URL string `json:"url"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
Status string `json:"status"`
}
NetworkContact represents a contact for a network.
type NetworkFacility ¶
type NetworkFacility struct {
ID int `json:"id"`
Name string `json:"name"`
City string `json:"city"`
Country string `json:"country"`
NetworkID int `json:"net_id"`
Network Network `json:"net"`
FacilityID int `json:"fac_id"`
LocalASN int `json:"local_asn"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
Status string `json:"status"`
}
NetworkFacility is a structure used to link a Network with a Facility. It helps to know where a network is located (it can be in several facilities). For example, it can be used to search common facilities between several networks to know where they can interconnect themselves directly.
type NetworkInternetExchangeLAN ¶
type NetworkInternetExchangeLAN struct {
ID int `json:"id"`
NetworkID int `json:"net_id"`
Network Network `json:"net,omitempty"`
InternetExchangeID int `json:"ix_id"`
Name string `json:"name"`
InternetExchangeLANID int `json:"ixlan_id"`
Notes string `json:"notes"`
Speed int `json:"speed"`
ASN int `json:"asn"`
IPAddr4 string `json:"ipaddr4"`
IPAddr6 string `json:"ipaddr6"`
IsRSPeer bool `json:"is_rs_peer"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
Status string `json:"status"`
}
NetworkInternetExchangeLAN is a structure allowing to know to which InternetExchangeLAN a network is connected. It can be used, for example, to know what are the common Internet exchange LANs between several networks.
type Organization ¶
type Organization struct {
ID int `json:"id"`
Name string `json:"name"`
Website string `json:"website"`
Notes string `json:"notes"`
NetworkSet []int `json:"net_set"`
FacilitySet []int `json:"fac_set"`
InternetExchangeSet []int `json:"ix_set"`
Address1 string `json:"address1"`
Address2 string `json:"address2"`
City string `json:"city"`
Country string `json:"country"`
State string `json:"state"`
Zipcode string `json:"zipcode"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
Status string `json:"status"`
}
Organization is a structure representing an Organization. An organization can be seen as an enterprise linked to networks, facilities and internet exchange points.