390 lines
8.7 KiB
TypeScript
390 lines
8.7 KiB
TypeScript
/* eslint-disable */
|
|
/**
|
|
* This file was automatically generated by json-schema-to-typescript.
|
|
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
* and run json-schema-to-typescript to regenerate this file.
|
|
*/
|
|
|
|
/**
|
|
* Version number of the schema; this is not the version of the file within an IXP; but the schema version
|
|
*/
|
|
export type IXPMemberListSchemaVersion = string;
|
|
/**
|
|
* Timestamp of when the data was exported
|
|
*/
|
|
export type IXPMemberListSchemaExportTimestamp = string;
|
|
/**
|
|
* A list of schemas representing IXP information
|
|
*/
|
|
export type IXPInfoList = {
|
|
/**
|
|
* IXP numeric identifier, persistent value free to set by the IXP
|
|
*/
|
|
ixp_id: number;
|
|
/**
|
|
* Short name of the IXP
|
|
*/
|
|
shortname: string;
|
|
/**
|
|
* Name of the IXP
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* Website of the IXP
|
|
*/
|
|
url?: string;
|
|
/**
|
|
* URL to statistics API
|
|
*/
|
|
stats_api?: string;
|
|
/**
|
|
* ISO country code where the IXP is located
|
|
*/
|
|
country?: string;
|
|
/**
|
|
* IXP ID from the IX-F database
|
|
*/
|
|
ixf_id: number;
|
|
/**
|
|
* PeeringDB ID of the IX - the y in: https://www.peeringdb.com/ix/y
|
|
*/
|
|
peeringdb_id?: number;
|
|
/**
|
|
* Support email address
|
|
*/
|
|
support_email?: string;
|
|
/**
|
|
* Support phone number
|
|
*/
|
|
support_phone?: string;
|
|
/**
|
|
* Support contact hours, eg. 24/7, 8/5, etc
|
|
*/
|
|
support_contact_hours?: string;
|
|
/**
|
|
* Emergency support email address
|
|
*/
|
|
emergency_email?: string;
|
|
/**
|
|
* Emergency support phone number
|
|
*/
|
|
emergency_phone?: string;
|
|
/**
|
|
* Emergency support contact hours, eg. 24/7, 8/5, etc
|
|
*/
|
|
emergency_contact_hours?: string;
|
|
/**
|
|
* Billing email address
|
|
*/
|
|
billing_email?: string;
|
|
/**
|
|
* Billing phone number
|
|
*/
|
|
billing_phone?: string;
|
|
/**
|
|
* Billing contact hours, eg. 24/7, 8/5, etc
|
|
*/
|
|
billing_contact_hours?: string;
|
|
/**
|
|
* Peering policy choices available in the member list
|
|
*/
|
|
peering_policy_list?: string[];
|
|
/**
|
|
* Switches available at the IXP
|
|
*/
|
|
switch?: {
|
|
/**
|
|
* Unique ID of the switch
|
|
*/
|
|
id?: number;
|
|
/**
|
|
* Switch name
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* Colo the switch is located in
|
|
*/
|
|
colo?: string;
|
|
/**
|
|
* Peering DB ID of the data centre
|
|
*/
|
|
pdb_facility_id?: number;
|
|
/**
|
|
* City the switch is located in
|
|
*/
|
|
city?: string;
|
|
/**
|
|
* Country the switch is located in
|
|
*/
|
|
country?: string;
|
|
/**
|
|
* Free text field to indicate the manufacturer of the switch for informational purposes.
|
|
*/
|
|
manufacturer?: string;
|
|
/**
|
|
* Free text field to indicate the model of the switch for informational purposes. Should not be present without manufacturer.
|
|
*/
|
|
model?: string;
|
|
/**
|
|
* Free text field to indicate the software of the switch for informational purposes.
|
|
*/
|
|
software?: string;
|
|
[k: string]: unknown;
|
|
}[];
|
|
/**
|
|
* VLANs available at the IXP
|
|
*/
|
|
vlan?: {
|
|
/**
|
|
* Unique ID of the VLAN
|
|
*/
|
|
id?: number;
|
|
/**
|
|
* VLAN name
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* IPv4 details in this VLAN
|
|
*/
|
|
ipv4?: {
|
|
/**
|
|
* Prefix of the IPv4 address
|
|
*/
|
|
prefix?: string;
|
|
/**
|
|
* Mask length of the IPv4 address
|
|
*/
|
|
mask_length?: number;
|
|
/**
|
|
* URLs of looking glass(es) available for this VLAN and protocol.
|
|
*/
|
|
looking_glass_urls?: string[];
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* IPv6 details in this VLAN
|
|
*/
|
|
ipv6?: {
|
|
/**
|
|
* Prefix of the IPv6 address
|
|
*/
|
|
prefix?: string;
|
|
/**
|
|
* Mask length of the IPv6 address
|
|
*/
|
|
mask_length?: number;
|
|
/**
|
|
* URLs of looking glass(es) available for this VLAN and protocol.
|
|
*/
|
|
looking_glass_urls?: string[];
|
|
[k: string]: unknown;
|
|
};
|
|
[k: string]: unknown;
|
|
}[];
|
|
[k: string]: unknown;
|
|
}[];
|
|
/**
|
|
* A list of schemas representing IXP members
|
|
*/
|
|
export type IXPMemberList = {
|
|
/**
|
|
* AS number of the network
|
|
*/
|
|
asnum: number;
|
|
/**
|
|
* Participant type: peering, ixp or other
|
|
*/
|
|
member_type?: "peering" | "ixp" | "other";
|
|
/**
|
|
* Name of the network
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* URL to website of the network
|
|
*/
|
|
url?: string;
|
|
/**
|
|
* Peering policy of the network
|
|
*/
|
|
peering_policy?: string;
|
|
/**
|
|
* URL to the network's peering policy
|
|
*/
|
|
peering_policy_url?: string;
|
|
/**
|
|
* Date when the network joined the IXP
|
|
*/
|
|
member_since?: string;
|
|
/**
|
|
* List of contact email addresses of the network
|
|
*/
|
|
contact_email?: string[];
|
|
/**
|
|
* List of contact phone numbers of the network
|
|
*/
|
|
contact_phone?: string[];
|
|
/**
|
|
* Network contact hours, eg. 24/7, 8/5, etc
|
|
*/
|
|
contact_hours?: string;
|
|
/**
|
|
* List of connections of the network at the IXP
|
|
*/
|
|
connection_list: {
|
|
/**
|
|
* IXP numeric identifier, persistent value free to set by the IXP, referencing the same ID as used in the ixp_list element
|
|
*/
|
|
ixp_id: number;
|
|
/**
|
|
* State of the connection
|
|
*/
|
|
state?: string;
|
|
/**
|
|
* Date when the connection was activated
|
|
*/
|
|
connected_since?: string;
|
|
/**
|
|
* List of interfaces making up the connection
|
|
*/
|
|
if_list?: {
|
|
/**
|
|
* Switch ID where the interface or LAG is connected, persistent value free to set by the IXP
|
|
*/
|
|
switch_id?: number;
|
|
/**
|
|
* Speed of the interface or LAG in Mb, i.e. 10G = 10000
|
|
*/
|
|
if_speed?: number;
|
|
/**
|
|
* Type of the interface or LAG
|
|
*/
|
|
if_type?: string;
|
|
[k: string]: unknown;
|
|
}[];
|
|
vlan_list?: {
|
|
/**
|
|
* The VLAN ID this connection is placed in, persistent value free to set by the IXP
|
|
*/
|
|
vlan_id?: number;
|
|
/**
|
|
* The network's IPv4 address details in this VLAN
|
|
*/
|
|
ipv4?: {
|
|
/**
|
|
* The IPv4 address
|
|
*/
|
|
address?: string;
|
|
/**
|
|
* The IPv4 AS-MACRO, if applicable
|
|
*/
|
|
as_macro?: string;
|
|
/**
|
|
* The max number of prefixes on this connection for IPv4
|
|
*/
|
|
max_prefix?: number;
|
|
/**
|
|
* Does this IPv4 address connect to the IXP routeserver
|
|
*/
|
|
routeserver?: boolean;
|
|
/**
|
|
* MAC address of the member interface (format: lowercase string xx:xx:xx:xx:xx:xx)
|
|
*/
|
|
mac_addresses?: string[];
|
|
/**
|
|
* Array of IX operated service(s) available from this connection.
|
|
*/
|
|
services?: {
|
|
/**
|
|
* The IX operated service available from this connection.
|
|
*/
|
|
type?: "ixroutecollector" | "ixrouteserver";
|
|
/**
|
|
* Free text field to indicate the operating system of the route server for informational purposes.
|
|
*/
|
|
os?: string;
|
|
/**
|
|
* Free text field to indicate the operating system version of the route server for informational purposes. Should not be present without os.
|
|
*/
|
|
os_version?: string;
|
|
/**
|
|
* Free text field to indicate the BGP software daemon that provides the route server for informational purposes.
|
|
*/
|
|
daemon?: string;
|
|
/**
|
|
* Free text field to indicate the BGP software daemon version that provides the route server for informational purposes. Should not be present without daemon.
|
|
*/
|
|
daemon_version?: string;
|
|
[k: string]: unknown;
|
|
}[];
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* The network's IPv6 address details in this VLAN
|
|
*/
|
|
ipv6?: {
|
|
/**
|
|
* The IPv6 address
|
|
*/
|
|
address?: string;
|
|
/**
|
|
* The IPv6 AS-MACRO, if applicable
|
|
*/
|
|
as_macro?: string;
|
|
/**
|
|
* The max number of prefixes on this connection for IPv6
|
|
*/
|
|
max_prefix?: number;
|
|
/**
|
|
* Does this IPv6 address connect to the IXP routeserver
|
|
*/
|
|
routeserver?: boolean;
|
|
/**
|
|
* MAC address of the member interface (format: lowercase string xx:xx:xx:xx:xx:xx)
|
|
*/
|
|
mac_addresses?: string[];
|
|
/**
|
|
* Array of IX operated service(s) available from this connection.
|
|
*/
|
|
services?: {
|
|
/**
|
|
* The IX operated service available from this connection.
|
|
*/
|
|
type?: "ixroutecollector" | "ixrouteserver";
|
|
/**
|
|
* Free text field to indicate the operating system of the route server for informational purposes.
|
|
*/
|
|
os?: string;
|
|
/**
|
|
* Free text field to indicate the operating system version of the route server for informational purposes. Should not be present without os.
|
|
*/
|
|
os_version?: string;
|
|
/**
|
|
* Free text field to indicate the BGP software daemon that provides the route server for informational purposes.
|
|
*/
|
|
daemon?: string;
|
|
/**
|
|
* Free text field to indicate the BGP software daemon version that provides the route server for informational purposes. Should not be present without daemon.
|
|
*/
|
|
daemon_version?: string;
|
|
[k: string]: unknown;
|
|
}[];
|
|
[k: string]: unknown;
|
|
};
|
|
[k: string]: unknown;
|
|
}[];
|
|
[k: string]: unknown;
|
|
}[];
|
|
[k: string]: unknown;
|
|
}[];
|
|
|
|
/**
|
|
* A JSON schema representing an IXP Member List
|
|
*/
|
|
export interface IXPMemberListSchema {
|
|
version: IXPMemberListSchemaVersion;
|
|
timestamp: IXPMemberListSchemaExportTimestamp;
|
|
ixp_list: IXPInfoList;
|
|
member_list: IXPMemberList;
|
|
[k: string]: unknown;
|
|
}
|