/* 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; }