Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
json-schemas/versions/ixp-member-list-0.7.schema.json
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
447 lines (423 sloc)
17.1 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$schema": "http://json-schema.org/draft-04/schema", | |
"title": "IXP Member List Schema", | |
"description": "A JSON schema representing an IXP Member List", | |
"type": "object", | |
"required": ["version", "timestamp", "ixp_list", "member_list"], | |
"properties": { | |
"version": { | |
"title": "IXP Member List Schema Version", | |
"description": "Version number of the schema; this is not the version of the file within an IXP; but the schema version", | |
"type": "string" | |
}, | |
"timestamp": { | |
"title": "IXP Member List Schema export timestamp", | |
"description": "Timestamp of when the data was exported", | |
"type": "string", | |
"format": "date-time" | |
}, | |
"ixp_list": { | |
"title": "IXP Info List", | |
"description": "A list of schemas representing IXP information", | |
"type": "array", | |
"items": | |
{ | |
"description": "A single IXP entry", | |
"type": "object", | |
"required": ["ixf_id","ixp_id","shortname"], | |
"properties": { | |
"ixp_id": { | |
"description": "IXP numeric identifier, persistent value free to set by the IXP", | |
"type": "integer" | |
}, | |
"shortname": { | |
"description": "Short name of the IXP", | |
"type": "string" | |
}, | |
"name": { | |
"description": "Name of the IXP", | |
"type": "string" | |
}, | |
"url": { | |
"description": "Website of the IXP", | |
"type": "string", | |
"format": "uri" | |
}, | |
"stats_api": { | |
"description": "URL to statistics API", | |
"type": "string", | |
"format": "uri" | |
}, | |
"country": { | |
"description": "ISO country code where the IXP is located", | |
"type": "string" | |
}, | |
"ixf_id": { | |
"description": "IXP ID from the IX-F database", | |
"type": "integer" | |
}, | |
"peeringdb_id": { | |
"description": "PeeringDB ID of the IX - the y in: https://www.peeringdb.com/ix/y", | |
"type": "integer" | |
}, | |
"support_email": { | |
"description": "Support email address", | |
"type": "string", | |
"format" : "email" | |
}, | |
"support_phone": { | |
"description": "Support phone number", | |
"type": "string" | |
}, | |
"support_contact_hours": { | |
"description": "Support contact hours, eg. 24/7, 8/5, etc", | |
"type": "string" | |
}, | |
"emergency_email": { | |
"description": "Emergency support email address", | |
"type": "string", | |
"format" : "email" | |
}, | |
"emergency_phone": { | |
"description": "Emergency support phone number", | |
"type": "string" | |
}, | |
"emergency_contact_hours": { | |
"description": "Emergency support contact hours, eg. 24/7, 8/5, etc", | |
"type": "string" | |
}, | |
"billing_email": { | |
"description": "Billing email address", | |
"type": "string", | |
"format" : "email" | |
}, | |
"billing_phone": { | |
"description": "Billing phone number", | |
"type": "string" | |
}, | |
"billing_contact_hours": { | |
"description": "Billing contact hours, eg. 24/7, 8/5, etc", | |
"type": "string" | |
}, | |
"peering_policy_list": { | |
"description": "Peering policy choices available in the member list", | |
"type": "array", | |
"items": | |
{ | |
"type": "string" | |
} | |
}, | |
"switch": { | |
"description": "Switches available at the IXP", | |
"type": "array", | |
"items": | |
{ | |
"type": "object", | |
"properties": { | |
"id": { | |
"description": "Unique ID of the switch", | |
"type": "integer" | |
}, | |
"name": { | |
"description": "Switch name", | |
"type": "string" | |
}, | |
"colo": { | |
"description": "Colo the switch is located in", | |
"type": "string" | |
}, | |
"pdb_facility_id": { | |
"description": "Peering DB ID of the data centre", | |
"type": "integer" | |
}, | |
"city": { | |
"description": "City the switch is located in", | |
"type": "string" | |
}, | |
"country": { | |
"description": "Country the switch is located in", | |
"type": "string" | |
}, | |
"manufacturer": { | |
"description": "Free text field to indicate the manufacturer of the switch for informational purposes.", | |
"type": "string" | |
}, | |
"model": { | |
"description": "Free text field to indicate the model of the switch for informational purposes. Should not be present without manufacturer.", | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"vlan": { | |
"description": "VLANs available at the IXP", | |
"type": "array", | |
"items": | |
{ | |
"description": "A single VLAN entry", | |
"type": "object", | |
"properties": { | |
"id": { | |
"description": "Unique ID of the VLAN", | |
"type": "integer" | |
}, | |
"name": { | |
"description": "VLAN name", | |
"type": "string" | |
}, | |
"ipv4": { | |
"description": "IPv4 details in this VLAN", | |
"type": "object", | |
"properties": { | |
"prefix": { | |
"description": "Prefix of the IPv4 address", | |
"type": "string", | |
"format": "ipv4" | |
}, | |
"mask_length": { | |
"description": "Mask length of the IPv4 address", | |
"type": "integer" | |
}, | |
"looking_glass_urls": { | |
"description": "URLs of looking glass(es) available for this VLAN and protocol.", | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uri" | |
} | |
} | |
} | |
}, | |
"ipv6": { | |
"description": "IPv6 details in this VLAN", | |
"type": "object", | |
"properties": { | |
"prefix": { | |
"description": "Prefix of the IPv6 address", | |
"type": "string", | |
"format": "ipv6" | |
}, | |
"mask_length": { | |
"description": "Mask length of the IPv6 address", | |
"type": "integer" | |
}, | |
"looking_glass_urls": { | |
"description": "URLs of looking glass(es) available for this VLAN and protocol.", | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "uri" | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
"member_list": { | |
"title": "IXP Member List", | |
"description": "A list of schemas representing IXP members", | |
"type": "array", | |
"items": | |
{ | |
"description": "A single member entry", | |
"type": "object", | |
"required": ["asnum","connection_list"], | |
"properties": { | |
"asnum": { | |
"description": "AS number of the network", | |
"type": "integer" | |
}, | |
"member_type": { | |
"description": "Participant type: peering, ixp, pro bono, routeserver or other", | |
"type": "string", | |
"enum": ["peering","ixp","other"] | |
}, | |
"name": { | |
"description": "Name of the network", | |
"type": "string" | |
}, | |
"url": { | |
"description": "URL to website of the network", | |
"type": "string", | |
"format": "uri" | |
}, | |
"peering_policy": { | |
"description": "Peering policy of the network", | |
"type": "string" | |
}, | |
"peering_policy_url": { | |
"description": "URL to the network's peering policy", | |
"type": "string", | |
"format": "uri" | |
}, | |
"member_since": { | |
"description": "Date when the network joined the IXP", | |
"type": "string", | |
"format": "date-time" | |
}, | |
"contact_email": { | |
"description": "List of contact email addresses of the network", | |
"type": "array", | |
"items": | |
{ | |
"type": "string", | |
"format" : "email" | |
} | |
}, | |
"contact_phone": { | |
"description": "List of contact phone numbers of the network", | |
"type": "array", | |
"items": | |
{ | |
"type": "string" | |
} | |
}, | |
"contact_hours": { | |
"description": "Network contact hours, eg. 24/7, 8/5, etc", | |
"type": "string" | |
}, | |
"connection_list": { | |
"description": "List of connections of the network at the IXP", | |
"type": "array", | |
"items": | |
{ | |
"description": "A single connection entry", | |
"type": "object", | |
"required": ["ixp_id"], | |
"properties": { | |
"ixp_id": { | |
"description": "IXP numeric identifier, persistent value free to set by the IXP, referencing the same ID as used in the ixp_list element", | |
"type": "integer" | |
}, | |
"state": { | |
"description": "State of the connection", | |
"type": "string" | |
}, | |
"connected_since": { | |
"description": "Date when the connection was activated", | |
"type": "string", | |
"format": "date-time" | |
}, | |
"if_list": { | |
"description": "List of interfaces making up the connection", | |
"type": "array", | |
"items": | |
{ | |
"description": "A single interface entry", | |
"type": "object", | |
"properties": { | |
"switch_id": { | |
"description": "Switch ID where the interface or LAG is connected, persistent value free to set by the IXP", | |
"type": "integer" | |
}, | |
"if_speed": { | |
"description": "Speed of the interface or LAG in Mb, i.e. 10G = 10000", | |
"type": "integer" | |
}, | |
"if_type": { | |
"description": "Type of the interface or LAG", | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"vlan_list": { | |
"type": "array", | |
"items": | |
{ | |
"description": "A single VLAN entry", | |
"type": "object", | |
"properties": { | |
"vlan_id": { | |
"description": "The VLAN ID this connection is placed in, persistent value free to set by the IXP", | |
"type": "integer" | |
}, | |
"ipv4": { | |
"description": "The network's IPv4 address details in this VLAN", | |
"type": "object", | |
"properties": { | |
"address": { | |
"description": "The IPv4 address", | |
"type": "string", | |
"format": "ipv4" | |
}, | |
"as_macro": { | |
"description": "The IPv4 AS-MACRO, if applicable", | |
"type": "string" | |
}, | |
"max_prefix": { | |
"description": "The max number of prefixes on this connection for IPv4", | |
"type": "integer" | |
}, | |
"routeserver": { | |
"description": "Does this IPv4 address connect to the IXP routeserver", | |
"type": "boolean" | |
}, | |
"mac_addresses": { | |
"description": "MAC address of the member interface (format: lowercase string xx:xx:xx:xx:xx:xx)", | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
}, | |
"service_type": { | |
"description": "ENUM field to indicate the service type(s) available from this connection. Defined types: 'ixrouteserver' (IX operated route server), 'ixroutecollector' (IX operated route collector)", | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
} | |
}, | |
"ipv6": { | |
"description": "The network's IPv6 address details in this VLAN", | |
"type": "object", | |
"properties": { | |
"address": { | |
"description": "The IPv6 address", | |
"type": "string", | |
"format": "ipv6" | |
}, | |
"as_macro": { | |
"description": "The IPv6 AS-MACRO, if applicable", | |
"type": "string" | |
}, | |
"max_prefix": { | |
"description": "The max number of prefixes on this connection for IPv6", | |
"type": "integer" | |
}, | |
"routeserver": { | |
"description": "Does this IPv6 address connect to the IXP routeserver", | |
"type": "boolean" | |
}, | |
"mac_addresses": { | |
"description": "MAC address of the member interface (format: lowercase string xx:xx:xx:xx:xx:xx)", | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
}, | |
"service_type": { | |
"description": "ENUM field to indicate the service type(s) available from this connection. Defined types: 'ixrouteserver' (IX operated route server), 'ixroutecollector' (IX operated route collector)", | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} |