OGC API - DGGS

The approved standard OpenAPI description OGC itself publishes for OGC API - DGGS. This is the STANDARD'S contract, not any one deployment of it — the servers block is a template, so it describes what a conformant implementation must offer rather than a callable host.

OpenAPI Specification

ogc-dggs-1-0-openapi-ogcapi-dggs-1-bundled.json Raw ↑
{
  "openapi": "3.0.0",
  "info": {
    "version": "1.0",
    "title": "OGC API - Discrete Global Grid Systems",
    "description": "Example API Definition for OGC API - DGGS - Part 1: Core",
    "contact": {
      "name": "Open Geospatial Consortium",
      "email": "info@ogc.org"
    },
    "license": {
      "name": "OGC License",
      "url": "http://www.opengeospatial.org/legal/"
    }
  },
  "servers": [
    {
      "description": "Example OGC API - DGGS server",
      "url": "https://maps.gnosis.earth/ogcapi"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "tags": [
          "Landing Page"
        ],
        "operationId": "getLandingPage",
        "summary": "Retrieve the OGC API landing page for this service.",
        "parameters": [
          {
            "$ref": "#/components/parameters/f-metadata"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/LandingPage"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conformance": {
      "get": {
        "tags": [
          "Conformance"
        ],
        "operationId": "getConformance",
        "summary": "Retrieve the set of OGC API conformance classes that are supported by this service.",
        "parameters": [
          {
            "$ref": "#/components/parameters/f-metadata"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Conformance"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api": {
      "get": {
        "tags": [
          "API"
        ],
        "operationId": "getAPI",
        "summary": "Retrieve this API definition.",
        "parameters": [
          {
            "$ref": "#/components/parameters/f-metadata"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/API"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/all-collections": {
      "get": {
        "tags": [
          "API"
        ],
        "operationId": "getAPICollections",
        "summary": "Retrieve the list of collections available from this API implementation & deployment.",
        "parameters": [
          {
            "$ref": "#/components/parameters/f-metadata"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Enumeration"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/dggs": {
      "get": {
        "tags": [
          "API"
        ],
        "operationId": "getAPIDGGRS",
        "summary": "Retrieve the list of shared Discrete Global Grid Reference Systems available from this API implementation & deployment.",
        "parameters": [
          {
            "$ref": "#/components/parameters/f-metadata"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Enumeration"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/collections": {
      "get": {
        "tags": [
          "Data Collections"
        ],
        "operationId": "getCollectionsList",
        "summary": "Retrieve the list of geospatial data collections available from this service.",
        "parameters": [
          {
            "$ref": "#/components/parameters/datetime"
          },
          {
            "$ref": "#/components/parameters/bbox"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The optional limit parameter limits the number of collections that are presented in the response document.\nOnly items are counted that are on the first level of the collection in the response document. Nested objects contained within the explicitly requested items shall not be counted.\n* Minimum = 1 * Maximum = 10000 * Default = 10",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10000,
              "default": 10
            },
            "style": "form",
            "explode": false
          },
          {
            "$ref": "#/components/parameters/f-metadata"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/CollectionsList"
          }
        }
      }
    },
    "/collections/{collectionId}": {
      "get": {
        "tags": [
          "Data Collections"
        ],
        "operationId": "getCollection",
        "summary": "Retrieve the description of a collection available from this service.",
        "parameters": [
          {
            "$ref": "#/components/parameters/collectionId-all"
          },
          {
            "$ref": "#/components/parameters/f-metadata"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Collection"
          }
        }
      }
    },
    "/dggs": {
      "get": {
        "tags": [
          "DGGRS Description"
        ],
        "summary": "Retrieve the list of available DGGRSs",
        "operationId": ".dataset.getDGGRSList",
        "parameters": [
          {
            "$ref": "#/components/parameters/f-metadata"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DGGSList"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/dggs/{dggrsId}": {
      "get": {
        "tags": [
          "DGGRS Description"
        ],
        "summary": "Retrieve the description of the specified Discrete Global Grid Reference System",
        "operationId": ".dataset.getDGGRS",
        "parameters": [
          {
            "$ref": "#/components/parameters/dggrsId"
          },
          {
            "$ref": "#/components/parameters/f-metadata"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DGGRS"
          },
          "404": {
            "description": "The requested DGGS id was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/exception"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/dggs/{dggrsId}/zones/{zoneId}": {
      "get": {
        "tags": [
          "DGGRS Description"
        ],
        "summary": "Retrieve information about a DGGRS Zone, such as geometry and data availability.",
        "operationId": ".dataset.getDGGRSZoneInfo",
        "parameters": [
          {
            "$ref": "#/components/parameters/dggrsId"
          },
          {
            "$ref": "#/components/parameters/zoneId"
          },
          {
            "$ref": "#/components/parameters/collections"
          },
          {
            "$ref": "#/components/parameters/datetime"
          }
        ],
        "responses": {
          "200": {
            "description": "DGGRS zone information returned as a response, potentially including id, geometry, links to DGGRS (rel: dggrs), dataset, (rel: dataset), collection (rel: geodata), data (rel: dggrs-zone-data) (if available for this zone)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/zone-info"
                }
              },
              "application/geo+json": {
                "schema": {
                  "allOf": [
                    {
                      "format": "geojson-feature"
                    },
                    {
                      "$ref": "#/components/schemas/zone-info/properties/geometry/allOf/1"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/collections/{collectionId}/dggs": {
      "get": {
        "tags": [
          "DGGRS Description"
        ],
        "summary": "Retrieve the list of available DGGRS for the specified collection",
        "operationId": ".collection.getDGGRSList",
        "parameters": [
          {
            "$ref": "#/components/parameters/f-metadata"
          },
          {
            "$ref": "#/components/parameters/collectionId-all"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DGGSList"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/collections/{collectionId}/dggs/{dggrsId}": {
      "get": {
        "tags": [
          "DGGRS Description"
        ],
        "summary": "Retrieve the description of the specified Discrete Global Grid Reference System in the context of a specified collection",
        "operationId": ".collection.getDGGRS",
        "parameters": [
          {
            "$ref": "#/components/parameters/dggrsId"
          },
          {
            "$ref": "#/components/parameters/f-metadata"
          },
          {
            "$ref": "#/components/parameters/collectionId-all"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DGGRS"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/collections/{collectionId}/dggs/{dggrsId}/zones/{zoneId}": {
      "get": {
        "tags": [
          "DGGRS Description"
        ],
        "summary": "Retrieve information about a DGGRS Zone, such as geometry and data availability, in the context of a specific collection.",
        "operationId": ".collection.getDGGRSZoneInfo",
        "parameters": [
          {
            "$ref": "#/components/parameters/dggrsId"
          },
          {
            "$ref": "#/components/parameters/zoneId"
          },
          {
            "$ref": "#/components/parameters/collectionId-all"
          },
          {
            "$ref": "#/components/parameters/collections"
          },
          {
            "$ref": "#/components/parameters/datetime"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/paths/~1dggs~1%7BdggrsId%7D~1zones~1%7BzoneId%7D/get/responses/200"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/dggs/{dggrsId}/zones/{zoneId}/data": {
      "get": {
        "tags": [
          "DGGS Data Retrieval"
        ],
        "summary": "Retrieve data from a DGGRS Zone. For a DGGRS defining a sub-zone order, optimized zone data packets such as DGGS-(UB)JSON for raster data, or DGGS-(UB)JSON-FG for vector data can be used.",
        "operationId": ".dataset.getDGGRSZoneData",
        "parameters": [
          {
            "$ref": "#/components/parameters/dggrsId"
          },
          {
            "$ref": "#/components/parameters/zoneId"
          },
          {
            "$ref": "#/components/parameters/collections"
          },
          {
            "$ref": "#/components/parameters/f-zoneData"
          },
          {
            "$ref": "#/components/parameters/properties"
          },
          {
            "$ref": "#/components/parameters/exclude-properties"
          },
          {
            "$ref": "#/components/parameters/subset"
          },
          {
            "$ref": "#/components/parameters/filter"
          },
          {
            "$ref": "#/components/parameters/crs"
          },
          {
            "$ref": "#/components/parameters/geometry"
          },
          {
            "$ref": "#/components/parameters/profile"
          },
          {
            "$ref": "#/components/parameters/datetime"
          },
          {
            "$ref": "#/components/parameters/zone-depth"
          },
          {
            "$ref": "#/components/parameters/values-offset"
          },
          {
            "$ref": "#/components/parameters/values-scale"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ZoneData"
          },
          "204": {
            "$ref": "#/components/responses/EmptyData"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/collections/{collectionId}/dggs/{dggrsId}/zones/{zoneId}/data": {
      "get": {
        "tags": [
          "DGGS Data Retrieval"
        ],
        "summary": "Retrieve data from a DGGRS Zone for a specific collection. For a DGGRS defining a sub-zone order, optimized zone data packets such as DGGS-(UB)JSON for raster data, or DGGS-(UB)JSON-FG for vector data can be used.",
        "operationId": ".collection.getDGGRSZoneData",
        "parameters": [
          {
            "$ref": "#/components/parameters/dggrsId"
          },
          {
            "$ref": "#/components/parameters/zoneId"
          },
          {
            "$ref": "#/components/parameters/collectionId-all"
          },
          {
            "$ref": "#/components/parameters/f-zoneData"
          },
          {
            "$ref": "#/components/parameters/properties"
          },
          {
            "$ref": "#/components/parameters/exclude-properties"
          },
          {
            "$ref": "#/components/parameters/subset"
          },
          {
            "$ref": "#/components/parameters/filter"
          },
          {
            "$ref": "#/components/parameters/crs"
          },
          {
            "$ref": "#/components/parameters/geometry"
          },
          {
            "$ref": "#/components/parameters/profile"
          },
          {
            "$ref": "#/components/parameters/datetime"
          },
          {
            "$ref": "#/components/parameters/zone-depth"
          },
          {
            "$ref": "#/components/parameters/values-offset"
          },
          {
            "$ref": "#/components/parameters/values-scale"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ZoneData"
          },
          "204": {
            "$ref": "#/components/responses/EmptyData"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/dggs/{dggrsId}/zones": {
      "get": {
        "tags": [
          "DGGS Zone Query"
        ],
        "summary": "Retrieve the list of zones with data for this dataset, or for a particular query",
        "operationId": ".dataset.getDGGRSZones",
        "parameters": [
          {
            "$ref": "#/components/parameters/collections"
          },
          {
            "$ref": "#/components/parameters/bbox"
          },
          {
            "$ref": "#/components/parameters/bbox-crs"
          },
          {
            "$ref": "#/components/parameters/dggrsId"
          },
          {
            "name": "zone-level",
            "in": "query",
            "description": "The DGGS hierarchy level at which to return the list of zones. The precision of the calculation to return the results depends on this parameter. Returned zones will have a level equal or smaller to this specified level. If `compact-zones` is set to true, all returned zones will be of this zone level. If not specified, this defaults to the most detailed zone that the system is able to return for the specific request.",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "style": "form",
            "explode": false
          },
          {
            "$ref": "#/components/parameters/zone-level"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/parent-zone"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/datetime"
          },
          {
            "$ref": "#/components/parameters/subset"
          },
          {
            "$ref": "#/components/parameters/subset-crs"
          },
          {
            "$ref": "#/components/parameters/crs"
          },
          {
            "$ref": "#/components/parameters/geometry"
          },
          {
            "$ref": "#/components/parameters/profile"
          },
          {
            "$ref": "#/components/parameters/filter"
          },
          {
            "$ref": "#/components/parameters/filter-lang"
          },
          {
            "$ref": "#/components/parameters/f-zoneQueries"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ZonesList"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/collections/{collectionId}/dggs/{dggrsId}/zones": {
      "get": {
        "tags": [
          "DGGS Zone Query"
        ],
        "summary": "Retrieve the list of zones with data for a specific collection, or for a particular query",
        "operationId": ".collection.getDGGRSZones",
        "parameters": [
          {
            "$ref": "#/components/parameters/collectionId-all"
          },
          {
            "$ref": "#/components/parameters/collections"
          },
          {
            "$ref": "#/components/parameters/bbox"
          },
          {
            "$ref": "#/components/parameters/bbox-crs"
          },
          {
            "$ref": "#/components/parameters/dggrsId"
          },
          {
            "$ref": "#/paths/~1dggs~1%7BdggrsId%7D~1zones/get/parameters/4"
          },
          {
            "$ref": "#/components/parameters/zone-level"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/parent-zone"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/datetime"
          },
          {
            "$ref": "#/components/parameters/subset"
          },
          {
            "$ref": "#/components/parameters/subset-crs"
          },
          {
            "$ref": "#/components/parameters/crs"
          },
          {
            "$ref": "#/components/parameters/geometry"
          },
          {
            "$ref": "#/components/parameters/profile"
          },
          {
            "$ref": "#/components/parameters/filter"
          },
          {
            "$ref": "#/components/parameters/filter-lang"
          },
          {
            "$ref": "#/components/parameters/f-zoneQueries"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ZonesList"
          },
          "406": {
            "$ref": "#/components/responses/NotAcceptable"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "confClasses": {
        "type": "object",
        "required": [
          "conformsTo"
        ],
        "properties": {
          "conformsTo": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "link": {
        "type": "object",
        "required": [
          "href",
          "rel"
        ],
        "properties": {
          "href": {
            "type": "string",
            "description": "Supplies the URI to a remote resource (or resource fragment).",
            "example": "http://data.example.com/buildings/123"
          },
          "rel": {
            "type": "string",
            "description": "The type or semantics of the relation.",
            "example": "alternate"
          },
          "type": {
            "type": "string",
            "description": "A hint indicating what the media type of the result of dereferencing the link should be.",
            "example": "application/geo+json"
          },
          "hreflang": {
            "type": "string",
            "description": "A hint indicating what the language of the result of dereferencing the link should be.",
            "example": "en"
          },
          "title": {
            "type": "string",
            "description": "Used to label the destination of a link such that it can be used as a human-readable identifier.",
            "example": "Trierer Strasse 70, 53115 Bonn"
          },
          "length": {
            "type": "integer"
          }
        }
      },
      "landingPage": {
        "type": "object",
        "required": [
          "links"
        ],
        "properties": {
          "title": {
            "type": "string",
            "title": "The title of the API.",
            "description": "While a title is not required, implementors are strongly advised to include one.",
            "example": "Buildings in Bonn"
          },
          "description": {
            "type": "string",
            "example": "Access to data about buildings in the city of Bonn via a Web API that conforms to the OGC API Common specification."
          },
          "attribution": {
            "type": "string",
            "title": "attribution for the API",
            "description": "The `attribution` should be short and intended for presentation to a user, for example, in a corner of a map. Parts of the text can be links to other resources if additional information is needed. The string can include HTML markup."
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/link"
            }
          }
        }
      },
      "exception": {
        "title": "Exception Schema",
        "description": "JSON schema for exceptions based on RFC 7807",
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer"
          },
          "detail": {
            "type": "string"
          },
          "instance": {
            "type": "string"
          }
        }
      },
      "collections": {
        "type": "object",
        "required": [
          "links",
          "collections"
        ],
        "properties": {
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/link"
            }
          },
          "numberMatched": {
            "$ref": "#/components/schemas/numberMatched"
          },
          "numberReturned": {
            "$ref": "#/components/schemas/numberReturned"
          },
          "collections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/collectionDesc"
            }
          }
        }
      },
      "collectionDesc": {
        "type": "object",
        "required": [
          "id",
          "links"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "identifier of the collection used, for example, in URIs",
            "example": "dem"
          },
          "title": {
            "type": "string",
            "description": "human readable title of the collection",
            "example": "Digital Elevation Model"
          },
          "description": {
            "type": "string",
            "description": "a description of the data in the collection",
            "example": "A Digital Elevation Model."
          },
          "attribution": {
            "type": "string",
            "title": "Attribution for the collection",
            "description": "Attribution for the collection that can contain markup text whose format may be indicated in the `attributionMediaType` property. That format can be either plain text (`text/plain`), HTML (`text/html`) or https://commonmark.org/[CommonMark] (`text/markdown`).\nIf the 'attributionMediaType' indicates something other than `text/plain`, the `attribution` element string should be interpreted by a markup parser selected based on that media type to be presented to the user\n(e.g., `text/markdown` will be parsed by a library supporting CommonMark). By allowing markup, the attribution string can import images (e.g., organization logos) and format the text (e.g., the name of the organization in italics)."
          },
          "attributionMediaType": {
            "title": "Media type of the attribution",
            "description": "Media type for the markup language of the attribution: It can be either plain text (`text/plain`), HTML (`text/html`) or https://commonmark.org/[CommonMark] (`text/markdown`).",
            "enum": [
              "text/plain",
              "text/html",
              "text/markdown"
            ]
          },
          "accessConstraints": {
            "description": "Restrictions on the availability of the collection that the user needs to be aware of before using or redistributing the data:\n\n* unclassified: Available for general disclosure\n* restricted: Not for general disclosure\n* confidential: Available for someone who can be entrusted with information\n* secret: Kept or meant to be kept private, unknown, or hidden from all but a select group of people\n* topSecret: Of the highest secrecy",
            "enum": [
              "unclassified",
              "restricted",
              "confidential",
              "secret",
              "topSecret"
            ]
          },
          "publisher": {
            "type": "string",
            "description": "Organization or individual responsible for making the data available"
          },
          "contacts": {
            "type": "array",
            "description": "A list of contacts qualified by their role(s) in association to the collection.",
            "minItems": 1,
            "items": {
              "type": "object",
              "description": "Identification of, and means of communication with, person responsible\nfor the resource.",
              "anyOf": [
                {
                  "required": [
                    "name"
                  ]
                },
                {
                  "required": [
                    "organization"
                  ]
                }
              ],
              "properties": {
                "identifier": {
                  "type": "string",
                  "description": "A value uniquely identifying a contact."
                },
                "name": {
                  "type": "string",
                  "description": "The name of the responsible person."
                },
                "position": {
                  "type": "string",
                  "description": "The name of the role or position of the responsible person taken from the organization's formal organizational hierarchy or chart."
                },
                "organization": {
                  "type": "string",
                  "description": "Organization/affiliation of the contact."
                },
                "logo": {
                  "description": "Graphic identifying a contact. The link relation should be `icon` and the media type should be an image media type.",
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/link"
                    },
                    {
                      "type": "object",
                      "required": [
                        "rel",
                        "type"
                      ],
                      "properties": {
                        "rel": {
                          "enum": [
                            "icon"
                          ]
                        }
                      }
                    }
                  ]
                },
                "phones": {
                  "type": "array",
                  "description": "Telephone numbers at which contact can be made.",
                  "items": {
                    "type": "object",
                    "required": [
                      "value"
                    ],
                    "properties": {
                      "value": {
                        "type": "string",
                        "description": "The value is the phone number itself.",
                        "pattern": "^\\+[1-9]{1}[0-9]{3,14}$",
                        "example": "+14165550142"
                      },
                      "roles": {
                        "allOf": [
                          {
                            "description": "The type of phone number (e.g. home, work, fax, etc.)."
                          },
                          {
                            "$ref": "#/components/schemas/role"
                          }
                        ]
                      }
                    }
                  }
                },
                "emails": {
                  "type": "array",
                  "description": "Email addresses at which contact can be made.",
                  "items": {
                    "type": "object",
                    "required": [
                      "value"
                    ],
                    "properties": {
                      "value": {
                        "type": "string",
                        "description": "The value is the email number itself.",
                        "format": "email"
                      },
                      "roles": {
                        "allOf": [
                          {
                            "description": "The type of email (e.g. home, work, etc.)."
                          },
                          {
                            "$ref": "#/components/schemas/role"
                          }
                        ]
                      }
                    }
                  }
                },
                "addresses": {
                  "type": "array",
              

# --- truncated at 32 KB (150 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ogc/refs/heads/main/openapi/_original/ogc-dggs-1-0-openapi-ogcapi-dggs-1-bundled.json