All Downloads are FREE. Search and download functionalities are using the official Maven repository.

schema.v2.2.free_bike_status.json Maven / Gradle / Ivy

The newest version!
{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id":
    "https://github.com/MobilityData/gbfs/blob/v2.2/gbfs.md#free_bike_statusjson",
  "description":
    "Describes the vehicles that are available for rent (as of v2.1-RC2).",
  "type": "object",
  "properties": {
    "last_updated": {
      "description":
        "Last time the data in the feed was updated in POSIX time.",
      "type": "integer",
      "minimum": 1450155600
    },
    "ttl": {
      "description":
        "Number of seconds before the data in the feed will be updated again (0 if the data should always be refreshed).",
      "type": "integer",
      "minimum": 0
    },
    "version": {
      "description":
        "GBFS version number to which the feed conforms, according to the versioning framework (added in v1.1).",
      "type": "string",
      "const": "2.2"
    },
    "data": {
      "description":
        "Array that contains one object per bike as defined below.",
      "type": "object",
      "properties": {
        "bikes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "bike_id": {
                "description": "Rotating (as of v2.0) identifier of a vehicle.",
                "type": "string"
              },
              "lat": {
                "description": "The latitude of the vehicle.",
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              "lon": {
                "description": "The longitude of the vehicle.",
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              "is_reserved": {
                "description": "Is the vehicle currently reserved?",
                "type": "boolean"
              },
              "is_disabled": {
                "description": "Is the vehicle currently disabled (broken)?",
                "type": "boolean"
              },
              "rental_uris": {
                "description":
                  "Contains rental uris for Android, iOS, and web in the android, ios, and web fields (added in v1.1).",
                "type": "object",
                "properties": {
                  "android": {
                    "description":
                      "URI that can be passed to an Android app with an intent (added in v1.1).",
                    "type": "string",
                    "format": "uri"
                  },
                  "ios": {
                    "description":
                      "URI that can be used on iOS to launch the rental app for this vehicle (added in v1.1).",
                    "type": "string",
                    "format": "uri"
                  },
                  "web": {
                    "description":
                      "URL that can be used by a web browser to show more information about renting this vehicle (added in v1.1).",
                    "type": "string",
                    "format": "uri"
                  }
                }
              },
              "vehicle_type_id": {
                "description":
                  "The vehicle_type_id of this vehicle (added in v2.1-RC).",
                "type": "string"
              },
              "last_reported": {
                "description":
                  "The last time this vehicle reported its status to the operator's backend in POSIX time (added in v2.1-RC).",
                "type": "number",
                "minimum": 1450155600
              },
              "current_range_meters": {
                "description":
                  "The furthest distance in meters that the vehicle can travel without recharging or refueling with the vehicle's current charge or fuel (added in v2.1-RC).",
                "type": "number",
                "minimum": 0
              },
              "station_id": {
                "description":
                  "Identifier referencing the station_id if the vehicle is currently at a station (added in v2.1-RC2).",
                "type": "string"
              },
              "pricing_plan_id": {
                "description":
                  "The plan_id of the pricing plan this vehicle is eligible for (added in v2.1-RC2).",
                "type": "string"
              }
            },
            "anyOf": [
              {
                "required": ["lat", "lon"],
                "errorMessage": "Both 'lat' and 'lon' are required."
              },
              {
                "required": ["station_id"],
                "properties": {
                  "lat": {
                    "not": {}
                  },
                  "lon": {
                    "not": {}
                  }
                },
                "errorMessage": "'station_id' is required if 'lat' and 'lon' are not present."
              }
            ],
            "required": ["bike_id", "is_reserved", "is_disabled"]
          }
        }
      },
      "required": ["bikes"]
    }
  },
  "required": ["last_updated", "ttl", "version", "data"]
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy