{ "$id": "https://raw.githubusercontent.com/Open-Telecoms-Data/open-fibre-data-standard/0__3__0/schema/network-schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Network", "description": "A telecommunication network. A network consists of a set of nodes interconnected by spans.", "type": "object", "required": [ "id", "links" ], "properties": { "id": { "title": "Identifier", "description": "A universally unique identifier for this network, as defined by [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122). For more information, see the [identifier reference](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/identifiers.html).", "format": "uuid", "type": "string" }, "name": { "title": "Network name", "description": "A name for this network.", "type": "string", "minLength": 1 }, "nodes": { "title": "Nodes", "description": "Information about the nodes that belong to this network. Information about nodes should be embedded in this field unless:\n\n* The network is too large to load in to memory, in which case a link to a streamable bulk nodes file may be provided in `.links`\n* The data is published via an API and the network is too large to return in a single API response, in which case a link to a paginated nodes endpoint may be provided in `.links`.\n\nFor more information, see [how to format data for publication](https://open-fibre-data-standard.readthedocs.io/en/latest/guidance/publication.html#how-to-format-data-for-publication).", "type": "array", "items": { "$ref": "#/$defs/Node" }, "minItems": 1, "uniqueItems": true }, "spans": { "title": "Spans", "description": "Information about the spans that belong to this network. Information about spans should be embedded in this field unless:\n\n* The network is too large to load in to memory, in which case a link to a streamable bulk spans file may be provided in `.links`\n* The data is published via an API and the network is too large to return in a single API response, in which case a link to a paginated spans endpoint may be provided in `.links`.\n\nFor more information, see [how to format data for publication](https://open-fibre-data-standard.readthedocs.io/en/latest/guidance/publication.html#how-to-format-data-for-publication).", "type": "array", "items": { "$ref": "#/$defs/Span" }, "minItems": 1, "uniqueItems": true }, "phases": { "title": "Phases", "description": "Information about the phases in which this network is deployed.", "type": "array", "items": { "$ref": "#/$defs/Phase" }, "minItems": 1, "uniqueItems": true }, "organisations": { "title": "Organisations", "description": "Information about the organisations involved in this network. Organisation references elsewhere in the schema are used to refer back to this entries in this list.", "type": "array", "items": { "$ref": "#/$defs/Organisation" }, "minItems": 1, "uniqueItems": true }, "contracts": { "title": "Contracts", "description": "Information about contracts related to this network.", "type": "array", "items": { "$ref": "#/$defs/Contract" }, "minItems": 1, "uniqueItems": true }, "website": { "title": "Website", "description": "The URL of the website for this network.", "format": "iri", "type": "string", "$comment": "" }, "publisher": { "title": "Publisher", "description": "The publisher of this network.", "type": "object", "properties": { "name": { "title": "Name", "description": "A name for this organisation.", "type": "string", "minLength": 1 }, "identifier": { "title": "Organisation identifier", "description": "An identifier for this organisation.", "$ref": "#/$defs/Identifier" } }, "minProperties": 1 }, "publicationDate": { "title": "Publication date", "description": "The date when this network was published.", "format": "date", "type": "string", "$comment": "" }, "collectionDate": { "title": "Collection date", "description": "The date when the location data was collected. If a dataset was produced by digitising a map, the date that the data for the map was collected.", "format": "date", "type": "string", "$comment": "" }, "crs": { "title": "Coordinate reference system", "description": "The coordinate reference system used in this network. If this network includes any coordinate data (in `Node.location` or `Span.route`) then this field must be provided.", "$ref": "#/$defs/CoordinateReferenceSystem" }, "accuracy": { "title": "Accuracy", "description": "The horizontal uncertainty, in metres, of the coordinates in this dataset relative to the datum of the coordinate reference system specified in `crs`. Further details about the accuracy of coordinates in this dataset can be provided in `.accuracyDetails`.", "type": "number" }, "accuracyDetails": { "title": "Accuracy details", "description": "Further details about the accuracy specified in `accuracy`. For example, the confidence level of the accuracy measurement, the methodology used to calculate the accuracy, or a local classification of accuracy.", "type": "string", "minLength": 1 }, "language": { "title": "Language", "description": "The default language of this network,from the open [language codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#language). A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", "type": "string", "codelist": "language.csv", "openCodelist": true, "minLength": 1 }, "links": { "title": "Links", "description": "Links to related resources. The first item in the links array must be a link to the canonical JSON schema that describes the structure of the data. Links to API endpoints for nodes and spans should be provided when a network is too large to return in a single API response and links to bulk files should be provided when a network is too large to load into memory, for more information, see [how to publish large networks](https://open-fibre-data-standard.readthedocs.io/en/latest/guidance/publication.html#how-to-publish-large-networks).", "type": "array", "prefixItems": [ { "type": "object", "properties": { "href": { "type": "string", "const": "https://raw.githubusercontent.com/Open-Telecoms-Data/open-fibre-data-standard/0__3__0/schema/network-schema.json" }, "rel": { "type": "string", "const": "describedby" } } } ], "items": { "$ref": "#/$defs/Link" }, "minItems": 1, "uniqueItems": true } }, "$defs": { "Node": { "title": "Node", "description": "A point within a network. A node may be an access point or may reflect a geographic point at which a span splits, aggregates or crosses a border. Nodes can allow for interconnections to other networks or connections to end users.", "type": "object", "properties": { "id": { "title": "Identifier", "description": "An identifier for this node. The identifier must be unique within the scope of the `nodes` array.", "type": "string", "minLength": 1 }, "name": { "title": "Node name", "description": "A name for this node.", "type": "string", "minLength": 1 }, "phase": { "title": "Phase", "description": "The phase to which this node belongs.", "$ref": "#/$defs/PhaseReference" }, "status": { "title": "Status", "description": "The status of this node, from the closed [nodeStatus codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodestatus).", "type": "string", "codelist": "nodeStatus.csv", "openCodelist": false, "enum": [ "proposed", "planned", "underConstruction", "operational", "decommissioned", "inactive" ] }, "location": { "title": "Node location", "description": "In the [JSON publication format](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/publication_formats/json.html), a GeoJSON [Point](https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.4) geometry describing the physical location of this node. In the [CSV publication format](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/publication_formats/csv.html), a [well-known text](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) POINT geometry.", "$ref": "#/$defs/Geometry" }, "address": { "title": "Node address", "description": "The physical address of this node.", "$ref": "#/$defs/Address" }, "type": { "title": "Node type", "description": "The type of this node, from the open [nodeType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodetype). For nodes with multiple network providers, the union of the node types for each provider.", "type": "array", "items": { "type": [ "string" ], "minLength": 1 }, "codelist": "nodeType.csv", "openCodelist": true, "minItems": 1, "uniqueItems": true }, "accessPoint": { "title": "Access point", "description": "Whether active or passive transmission equipment is installed at this node which is capable of providing access to the network.", "type": "boolean" }, "internationalConnections": { "title": "International connections", "description": "The international connections available at this node. For all connections, `.country` is required.", "type": "array", "items": { "$ref": "#/$defs/Address" }, "minItems": 1, "uniqueItems": true }, "power": { "title": "Power availability", "description": "Whether power for active network equipment is available at this node.", "type": "boolean", "$comment": "" }, "technologies": { "title": "Technologies", "description": "The active technologies used at this node, from the open [nodeTechnologies codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#nodetechnologies). For nodes with multiple network providers, the union of the active technologies used by each provider.", "type": "array", "items": { "type": [ "string" ], "minLength": 1 }, "codelist": "nodeTechnologies.csv", "openCodelist": true, "minItems": 1, "uniqueItems": true }, "physicalInfrastructureProvider": { "title": "Physical infrastructure provider", "description": "The organisation that owns the passive network infrastructure for this node, i.e. the non-electrical elements, such as dark fibre, ducts and physical sites.", "$ref": "#/$defs/OrganisationReference" }, "networkProviders": { "title": "Network providers", "description": "The organisations that operate the active network infrastructure for this node, i.e. the electrical elements, such as optical transceivers, switches and routers. In open business models, network providers provide wholesale access to service providers such as retail internet service providers. Network providers can own or lease the active network infrastructure.", "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/47", "type": "array", "items": { "$ref": "#/$defs/OrganisationReference" }, "minItems": 1, "uniqueItems": true } }, "required": [ "id" ], "minProperties": 1 }, "Span": { "title": "Span", "description": "A physical connection between two nodes.", "type": "object", "properties": { "id": { "title": "Identifier", "description": "An identifier for this span. The identifier must be unique within the scope of the `spans` array.", "type": "string", "minLength": 1 }, "name": { "title": "Span name", "description": "A name for this span.", "type": "string", "minLength": 1 }, "phase": { "title": "Phase", "description": "The phase to which this span belongs.", "$ref": "#/$defs/PhaseReference" }, "status": { "title": "Span status", "description": "The status of the network infrastructure for this span, from the closed [spanStatus codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#spanstatus).", "type": "string", "codelist": "spanStatus.csv", "openCodelist": false, "enum": [ "operational", "underConstruction", "planned", "decommissioned", "proposed", "inactive" ] }, "readyForServiceDate": { "title": "Ready for service date", "description": "The date this span was ready to carry traffic. For spans with multiple network providers, the earliest of the dates at which each provider's network was ready to carry traffic on this span.", "format": "date", "type": "string", "$comment": "" }, "start": { "title": "Start", "description": "The identifier of one of two nodes that this span connects. It must match the `.id` of a node in the `nodes` array. If `directed == true`, it represents the starting point of the span. Otherwise, the distinction between `start` and `end` is arbitrary.", "type": "string", "minLength": 1 }, "end": { "title": "End", "description": "The identifier of one of two nodes that this span connects. It must match the `.id` of a node in the `nodes` array. If `directed == true`, it represents the end point of the span. Otherwise, the distinction between `start` and `end` is arbitrary.", "type": "string", "minLength": 1 }, "directed": { "title": "Directed", "description": "Whether this span is directed. If `True`, then `.start` represents the start of the span and `.end` represents the end. Otherwise, `.start` and `.end` reference this span's endpoints with no direction implied.", "type": "boolean", "$comment": "" }, "route": { "title": "Span route", "description": "In the [JSON publication format](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/publication_formats/json.html), a GeoJSON [LineString](https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.4) geometry describing the route of this span. In the [CSV publication format](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/publication_formats/csv.html), a [well-known text](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) LINESTRING geometry.", "$ref": "#/$defs/Geometry" }, "physicalInfrastructureProvider": { "title": "Physical infrastructure provider", "description": "The organisation that owns the passive network infrastructure for this span, i.e. the non-electrical elements, such as dark fibre, ducts and physical sites.", "$ref": "#/$defs/OrganisationReference" }, "networkProviders": { "title": "Network providers", "description": "The organisations that operate the active network infrastructure for this span, i.e. the electrical elements, such as optical transceivers, switches and routers. In open business models, network providers provide wholesale access to service providers such as retail internet service providers. Network providers can own or lease the active network infrastructure.", "$comment": "https://github.com/Open-Telecoms-Data/open-fibre-data-standard/issues/47", "type": "array", "items": { "$ref": "#/$defs/OrganisationReference" }, "minItems": 1, "uniqueItems": true }, "supplier": { "title": "Supplier", "description": "The organisation responsible for installing the cable for this span.", "$ref": "#/$defs/OrganisationReference" }, "transmissionMedium": { "title": "Transmission medium", "description": "The physical media of this span, from the closed [transmissionMedium codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#transmissionmedium).", "type": "array", "items": { "type": [ "string" ], "enum": [ "fibre", "microwave", "copper", "coaxial" ], "minLength": 1 }, "codelist": "transmissionMedium.csv", "openCodelist": false, "minItems": 1, "uniqueItems": true }, "deployment": { "title": "Deployment", "description": "The physical deployment of this span, from the closed [deployment codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#deployment). Further details of this span's deployment can be provided in `.deploymentDetails`.", "type": "array", "items": { "type": [ "string" ], "enum": [ "aboveGround", "belowGround" ], "minLength": 1 }, "codelist": "deployment.csv", "openCodelist": false, "minItems": 1, "uniqueItems": true }, "deploymentDetails": { "title": "Deployment details", "description": "Further details of this span's deployment.", "$ref": "#/$defs/DeploymentDetails" }, "darkFibre": { "title": "Dark fibre availability", "description": "Whether access to dark fibre is available on this span.", "type": "boolean", "$comment": "" }, "fibreType": { "title": "Fibre type", "description": "The type of fibre used in this span, from the closed [fibreType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#fibretype). Further details of the span's fibre type can be provided in `.fibreTypeDetails`.", "type": "string", "codelist": "fibreType.csv", "openCodelist": false, "enum": [ "G.651.1", "G.652", "G.653", "G.654", "G.655", "G.656", "G.657" ] }, "fibreTypeDetails": { "title": "Fibre type details", "description": "Further details about this span's fibre type.", "$ref": "#/$defs/FibreTypeDetails" }, "fibreCount": { "title": "Fibre count", "description": "The number of individual optical fibres in this span.", "type": "integer", "$comment": "" }, "fibreLength": { "title": "Fibre length", "description": "The physical length in kilometres, of fibre optic cable used in this span.", "type": "number", "$comment": "" }, "technologies": { "title": "Technologies", "description": "The active technologies used on this span, from the open [spanTechnologies codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#spantechnologies). For spans with multiple network providers, the union of the active technologies used by each provider.", "type": "array", "items": { "type": [ "string" ], "minLength": 1 }, "codelist": "spanTechnologies.csv", "openCodelist": true, "minItems": 1, "uniqueItems": true }, "capacity": { "title": "Capacity", "description": "The transmission rate, or throughput, of this span, expressed in Gbit/sec (Gbps). The equipped capacity is the total capacity of the circuits (e.g. E1, DS3, STM-1 etc.) which have been activated in the network transmission equipment of the span. For spans with multiple network providers, the sum of the capacity of each provider's network on this span. Further details of this span's capacity can be provided in `.capacityDetails`.", "type": "number", "$comment": "" }, "capacityDetails": { "title": "Capacity details", "description": "Further details about this span's capacity", "$ref": "#/$defs/CapacityDetails" }, "countries": { "title": "Countries", "description": "The countries in which this span is physically located, from the closed [country codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country).", "type": "array", "items": { "type": [ "string" ], "enum": [ "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "XK", "YE", "YT", "ZA", "ZM", "ZW" ], "minLength": 1 }, "codelist": "country.csv", "openCodelist": false, "minItems": 1, "uniqueItems": true } }, "required": [ "id" ], "minProperties": 1 }, "Phase": { "title": "Phase", "description": "A set of nodes and/or spans deployed as a group.", "type": "object", "properties": { "id": { "title": "Identifier", "description": "An identifier for this phase. The identifier must be unique within the scope of the `phases` array.", "type": "string", "minLength": 1 }, "name": { "title": "Name", "description": "A name for this phase.", "type": "string", "minLength": 1 }, "description": { "title": "Description", "description": "A description for this phase.", "type": "string", "minLength": 1 }, "funders": { "title": "Funders", "description": "Information about the organisations that provide financing for the development or operation of this phase, also known as investors or financers.", "type": "array", "items": { "$ref": "#/$defs/OrganisationReference" }, "minItems": 1, "uniqueItems": true } }, "required": [ "id" ], "minProperties": 1 }, "Organisation": { "title": "Organisation", "description": "An organisation.", "type": "object", "properties": { "id": { "title": "Local identifier", "description": "A local identifier for this organisation. The identifier must be unique within the scope of the `organisations` array.", "type": "string", "minLength": 1 }, "name": { "title": "Name", "description": "A name for this organisation.", "type": "string", "minLength": 1 }, "identifier": { "title": "Organisation identifier", "description": "An identifier for this organisation.", "$ref": "#/$defs/Identifier" }, "country": { "title": "Country", "description": "The country in which this organisation is legally registered, from the closed [country codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country).", "type": "string", "codelist": "country.csv", "openCodelist": false, "enum": [ "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "XK", "YE", "YT", "ZA", "ZM", "ZW" ] }, "roles": { "title": "Roles", "description": "This organisation's roles in this network, from the open [organisationRole codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#organisationrole). Further details about this organisation's roles can be provided in `.roleDetails`.", "type": "array", "items": { "type": [ "string" ], "minLength": 1 }, "codelist": "organisationRole.csv", "openCodelist": true, "minItems": 1, "uniqueItems": true }, "roleDetails": { "title": "Role details", "description": "Further details about this organisation's roles in the network", "type": "string", "minLength": 1 }, "website": { "title": "Website", "description": "The URL of the website for this organisation.", "format": "iri", "type": "string", "$comment": "" }, "logo": { "title": "Logo", "description": "The URL of the logo for this organisation.", "format": "iri", "type": "string", "$comment": "" } }, "required": [ "id" ], "minProperties": 1 }, "Contract": { "title": "Contract", "description": "An agreement between the public and private sectors to develop a network.", "type": "object", "properties": { "id": { "title": "Identifier", "description": "An identifier for this contract. The identifier must be unique within the scope of the `contracts` array.", "type": "string", "minLength": 1 }, "title": { "title": "Contract title", "description": "A title for this contract.", "type": "string", "minLength": 1 }, "description": { "title": "Contract description", "description": "A description for this contract.", "type": "string", "minLength": 1 }, "type": { "title": "Contract type", "description": "The type of this contract, from the open [contractType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#contracttype).", "type": "string", "codelist": "contractType.csv", "openCodelist": true, "minLength": 1 }, "value": { "title": "Contract value", "description": "The value of this contract.", "$ref": "#/$defs/Value" }, "dateSigned": { "title": "Date signed", "description": "The date this contract was signed.", "format": "date", "type": "string", "$comment": "" }, "documents": { "title": "Contract documents", "description": "The documents related to this contract.", "type": "array", "items": { "$ref": "#/$defs/Document" }, "minItems": 1, "uniqueItems": true }, "relatedPhases": { "title": "Related phases", "description": "The phases to which this contract relates.", "type": "array", "items": { "$ref": "#/$defs/PhaseReference" }, "minItems": 1, "uniqueItems": true } }, "required": [ "id" ], "minProperties": 1 }, "Geometry": { "title": "Geometry", "description": "A [GeoJSON Geometry object](https://datatracker.ietf.org/doc/html/rfc7946#section-3.1).", "type": "object", "properties": { "type": { "title": "Type", "description": "The [GeoJSON geometry type](https://datatracker.ietf.org/doc/html/rfc7946#section-1.4) that is described by `.coordinates`, from the closed [geometryType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#geometrytype). This must be 'Point' when referenced by `Node.location`, and 'LineString' when referenced by `Span.route`.", "type": "string", "codelist": "geometryType.csv", "openCodelist": false, "enum": [ "LineString", "Point" ] }, "coordinates": { "title": "Coordinates", "description": "One or more [GeoJSON positions](https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.1). For geometries of type 'Point', the coordinates member must be a single position. For geometries of type 'LineString' the coordinates member must be an array of positions.\n\nEach position is an array of numbers with two or more elements. The first two elements are longitude and latitude, or easting and northing, precisely in that order. Longitude and latitude must be expressed using the World Geodetic System 1984 [WGS 84](https://datatracker.ietf.org/doc/html/rfc7946#ref-WGS84) datum in units of decimal degrees. Altitude or elevation may be included as an optional third element and must be expressed as the height in meters above or below the WGS 84 reference ellipsoid\n\nTherefore, geometries of type 'Point' must be a single array, e.g. [longitude, latitude], and geometries of type 'LineString' must be an array of arrays, e.g. [[longitude, latitude], [longitude, latitude]].", "type": "array", "items": { "type": [ "number", "array" ], "minItems": 1 }, "minItems": 1 } }, "required": [ "type", "coordinates" ], "minProperties": 1, "additionalProperties": false }, "OrganisationReference": { "title": "Organisation reference", "description": "The local identifier and name of the organisation being referenced. Used to cross-reference to the `organisations` array.", "type": "object", "properties": { "id": { "title": "Local identifier", "description": "The local identifier of the organisation being referenced. This must match the `.id` of an organisation in the `organisations` array.", "type": "string", "minLength": 1 }, "name": { "title": "Name", "description": "The name of the organisation being referenced. This must match the `.name` of the organisation in the `organisations` array whose `.id` matches the `.id` of this organisation reference.", "type": "string", "minLength": 1 } }, "required": [ "id" ], "minProperties": 1 }, "PhaseReference": { "title": "Phase reference", "description": "The identifier and name of the phase being referenced. Used for cross-referencing.", "type": "object", "properties": { "id": { "title": "Identifier", "description": "The identifier of the phase being referenced. This must match the `.id` of a phase in the `phases` array.", "type": "string", "minLength": 1 }, "name": { "title": "Name", "description": "The name of the phase being referenced. This must match the `.name` of the phase in the `phases` array whose `.id` matches the `.id` of this phase reference.", "type": "string", "minLength": 1 } }, "required": [ "id" ], "minProperties": 1 }, "Address": { "title": "Address", "description": "An address.", "type": "object", "properties": { "streetAddress": { "title": "Street address", "description": "The street address. For example, 1600 Amphitheatre Pkwy.", "type": "string", "minLength": 1 }, "locality": { "title": "Locality", "description": "The locality. For example, Mountain View.", "type": "string", "minLength": 1 }, "region": { "title": "Region", "description": "The region. For example, CA.", "type": "string", "minLength": 1 }, "postalCode": { "title": "Postal code", "description": "The postal code. For example, 94043.", "type": "string", "minLength": 1 }, "country": { "title": "Country", "description": "The country in which the address is physically located, from the closed [country codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#country).", "type": "string", "codelist": "country.csv", "openCodelist": false, "enum": [ "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "XK", "YE", "YT", "ZA", "ZM", "ZW" ] } }, "minProperties": 1 }, "Value": { "title": "Value", "description": "A financial value.", "type": "object", "properties": { "amount": { "title": "Amount", "description": "The amount of this value.", "type": "number", "$comment": "" }, "currency": { "title": "Currency", "description": "The currency of this value, from the closed [currency codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#currency).", "type": "string", "codelist": "currency.csv", "openCodelist": false, "enum": [ "ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARP", "ARS", "ARY", "ATS", "AUD", "AWG", "AYM", "AZM", "AZN", "BAD", "BAM", "BBD", "BDT", "BEC", "BEF", "BEL", "BGJ", "BGK", "BGL", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHC", "CHE", "CHF", "CHW", "CLF", "CLP", "CNY", "COP", "COU", "CRC", "CSD", "CSJ", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHP", "GHS", "GIP", "GMD", "GNE", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAJ", "LAK", "LBP", "LKR", "LRD", "LSL", "LSM", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MDL", "MGA", "MGF", "MKD", "MLF", "MMK", "MNT", "MOP", "MRO", "MRU", "MTL", "MTP", "MUR", "MVQ", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEH", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROK", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLE", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "STN", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGW", "UGX", "USD", "USN", "USS", "UYI", "UYN", "UYP", "UYU", "UYW", "UZS", "VEB", "VED", "VEF", "VES", "VNC", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWC", "ZWD", "ZWL", "ZWN", "ZWR" ] } }, "minProperties": 1 }, "Document": { "title": "Document", "description": "A piece of electronic or physical matter that provides information or evidence or that serves as an official record.", "type": "object", "properties": { "title": { "title": "Title", "description": "A title for this document.", "type": "string", "minLength": 1 }, "description": { "title": "Description", "description": "A description of this document. Descriptions should not exceed 250 words. If the document is not accessible online, the description should describe how to access a copy of the document.", "type": "string", "minLength": 1 }, "url": { "title": "URL", "description": "A web address for accessing this document.", "format": "iri", "type": "string", "$comment": "" }, "format": { "title": "Format", "description": "The format of this document, from the open [mediaType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#mediatype).", "type": "string", "codelist": "mediaType.csv", "openCodelist": true, "minLength": 1 } }, "minProperties": 1 }, "Identifier": { "title": "Organisation identifier", "description": "An organisation identifier.", "type": "object", "properties": { "id": { "title": "Identifier", "description": "The identifier assigned to the organisation in the register identified in `.scheme`.", "type": "string", "minLength": 1 }, "scheme": { "title": "Scheme", "description": "The register from which the identifier in `.id` is drawn, from the open [organisationIdentifierScheme codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#organisationidentifierscheme).", "type": "string", "codelist": "organisationIdentifierScheme.csv", "openCodelist": true, "minLength": 1 }, "legalName": { "title": "Legal name", "description": "The legally registered name of the organisation", "type": "string", "minLength": 1 }, "uri": { "title": "URI", "description": "A canonical URI for this identifier, such as those provided by Open Corporates. Do not use this field to provide the website of the organisation: instead, use `Organisation.website`.", "format": "iri", "type": "string", "$comment": "" } }, "minProperties": 1 }, "CoordinateReferenceSystem": { "title": "Coordinate reference system", "description": "The coordinate reference system used in the data.", "type": "object", "properties": { "name": { "title": "Name", "description": "The name of the coordinate reference system.", "format": "uri", "type": "string", "const": "urn:ogc:def:crs:OGC::CRS84", "$comment": "" }, "uri": { "title": "Uniform Resource Identifier", "description": "A URI for the coordinate reference system.", "format": "uri", "type": "string", "const": "http://www.opengis.net/def/crs/OGC/1.3/CRS84", "$comment": "" } }, "required": [ "name", "uri" ], "minProperties": 1 }, "Link": { "title": "Link", "description": "A link to a related resource.", "type": "object", "properties": { "href": { "title": "Link target", "description": "The URL of this related resource.", "format": "iri", "type": "string", "$comment": "" }, "rel": { "title": "Link relation type", "description": "The relationship with this related resource, from the open [linkRelationType codelist](https://open-fibre-data-standard.readthedocs.io/en/latest/reference/codelists.html#linkrelationtype). The 'describedby' code must only be used in the first item in the `links` array to link to the schema that describes the structure of the data.", "type": "string", "codelist": "linkRelationType.csv", "openCodelist": true, "minLength": 1, "pattern": "^(?!(describedby))" } }, "required": [ "href", "rel" ], "minProperties": 1 }, "FibreTypeDetails": { "title": "Fibre type details", "description": "Further details about a span's fibre type.", "type": "object", "properties": { "fibreSubtype": { "title": "Fibre subtype", "description": "The sub-category of the fibre type. For example, G.652.B.", "type": "string", "minLength": 1 }, "description": { "title": "Description", "description": "A description of this span's fibre type.", "type": "string", "minLength": 1 } }, "minProperties": 1 }, "DeploymentDetails": { "title": "Deployment details", "description": "Further details about a span's deployment.", "type": "object", "properties": { "description": { "title": "Description", "description": "A description of this span's deployment.", "type": "string", "minLength": 1 } }, "minProperties": 1 }, "CapacityDetails": { "title": "Capacity details", "description": "Further details about a span's capacity.", "type": "object", "properties": { "description": { "title": "Description", "description": "A description of this span's capacity.", "type": "string", "minLength": 1 } }, "minProperties": 1 } }, "minProperties": 1 }