{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/microsoft.graph.deviceGeoLocation",
  "title": "deviceGeoLocation",
  "required": [
    "@odata.type"
  ],
  "type": "object",
  "properties": {
    "altitude": {
      "oneOf": [
        {
          "type": "number",
          "format": "double",
          "nullable": true
        },
        {
          "type": "string",
          "nullable": true
        },
        {
          "$ref": "#/components/schemas/ReferenceNumeric"
        }
      ],
      "description": "Altitude, given in meters above sea level"
    },
    "heading": {
      "oneOf": [
        {
          "type": "number",
          "format": "double",
          "nullable": true
        },
        {
          "type": "string",
          "nullable": true
        },
        {
          "$ref": "#/components/schemas/ReferenceNumeric"
        }
      ],
      "description": "Heading in degrees from true north"
    },
    "horizontalAccuracy": {
      "oneOf": [
        {
          "type": "number",
          "format": "double",
          "nullable": true
        },
        {
          "type": "string",
          "nullable": true
        },
        {
          "$ref": "#/components/schemas/ReferenceNumeric"
        }
      ],
      "description": "Accuracy of longitude and latitude in meters"
    },
    "lastCollectedDateTime": {
      "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
      "type": "string",
      "description": "Time at which location was recorded, relative to UTC",
      "format": "date-time"
    },
    "latitude": {
      "oneOf": [
        {
          "type": "number",
          "format": "double",
          "nullable": true
        },
        {
          "type": "string",
          "nullable": true
        },
        {
          "$ref": "#/components/schemas/ReferenceNumeric"
        }
      ],
      "description": "Latitude coordinate of the device's location"
    },
    "longitude": {
      "oneOf": [
        {
          "type": "number",
          "format": "double",
          "nullable": true
        },
        {
          "type": "string",
          "nullable": true
        },
        {
          "$ref": "#/components/schemas/ReferenceNumeric"
        }
      ],
      "description": "Longitude coordinate of the device's location"
    },
    "speed": {
      "oneOf": [
        {
          "type": "number",
          "format": "double",
          "nullable": true
        },
        {
          "type": "string",
          "nullable": true
        },
        {
          "$ref": "#/components/schemas/ReferenceNumeric"
        }
      ],
      "description": "Speed the device is traveling in meters per second"
    },
    "verticalAccuracy": {
      "oneOf": [
        {
          "type": "number",
          "format": "double",
          "nullable": true
        },
        {
          "type": "string",
          "nullable": true
        },
        {
          "$ref": "#/components/schemas/ReferenceNumeric"
        }
      ],
      "description": "Accuracy of altitude in meters"
    },
    "@odata.type": {
      "type": "string"
    }
  },
  "description": "Device location"
}