gbfs-typescript-types
Version:
Language Bindings for GBFS in Typescript.
262 lines (247 loc) • 7.7 kB
TypeScript
// Copyright 2024 MobilityData
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* Describes the types of vehicles that System operator has available for rent (added in
* v2.1-RC).
*/
export interface VehicleTypes {
/**
* Response data in the form of name:value pairs.
*/
data: Data;
/**
* Last time the data in the feed was updated in RFC3339 format.
*/
last_updated: string;
/**
* Number of seconds before the data in the feed will be updated again (0 if the data should
* always be refreshed).
*/
ttl: number;
/**
* GBFS version number to which the feed conforms, according to the versioning framework.
*/
version: Version;
[ ]: any;
}
/**
* Response data in the form of name:value pairs.
*/
export interface Data {
/**
* Array that contains one object per vehicle type in the system as defined below.
*/
vehicle_types: VehicleType[];
[ ]: any;
}
export interface VehicleType {
/**
* The capacity of the vehicle cargo space (excluding passengers), expressed in kilograms.
*/
cargo_load_capacity?: number;
/**
* Cargo volume available in the vehicle, expressed in liters.
*/
cargo_volume_capacity?: number;
/**
* The color of the vehicle. Added in v2.3
*/
color?: string;
/**
* A plan_id as defined in system_pricing_plans.json added in v2.3-RC.
*/
default_pricing_plan_id?: string;
/**
* Maximum time in minutes that a vehicle can be reserved before a rental begins added in
* v2.3-RC.
*/
default_reserve_time?: number;
/**
* Customer-readable description of the vehicle type outlining special features or how-tos.
* An array with one object per supported language with the following keys:
*/
description?: Description[];
/**
* Vehicle air quality certificate. added in v2.3.
*/
eco_labels?: EcoLabel[];
/**
* The vehicle's general form factor.
*/
form_factor: FormFactor;
/**
* Maximum quantity of CO2, in grams, emitted per kilometer, according to the WLTP. Added in
* v2.3
*/
g_CO2_km?: number;
/**
* The name of the vehicle manufacturer. An array with one object per supported language
* with the following keys:
*/
make?: Make[];
/**
* The maximum speed in kilometers per hour this vehicle is permitted to reach in accordance
* with local permit and regulations. Added in v2.3
*/
max_permitted_speed?: number;
/**
* The furthest distance in meters that the vehicle can travel without recharging or
* refueling when it has the maximum amount of energy potential.
*/
max_range_meters?: number;
/**
* The name of the vehicle model. An array with one object per supported language with the
* following keys:
*/
model?: Model[];
/**
* The public name of this vehicle type. An array with one object per supported language
* with the following keys:
*/
name?: Name[];
/**
* Array of all pricing plan IDs as defined in system_pricing_plans.json added in v2.3-RC.
*/
pricing_plan_ids?: string[];
/**
* The primary propulsion type of the vehicle. Updated in v2.3 to represent car-sharing
*/
propulsion_type: PropulsionType;
/**
* The rated power of the motor for this vehicle type in watts. Added in v2.3
*/
rated_power?: number;
/**
* The conditions for returning the vehicle at the end of the trip. Added in v2.3-RC as
* return_type, and updated to return_constraint in v2.3.
*/
return_constraint?: ReturnConstraint;
/**
* The number of riders (driver included) the vehicle can legally accommodate
*/
rider_capacity?: number;
/**
* Description of accessories available in the vehicle.
*/
vehicle_accessories?: VehicleAccessory[];
/**
* An object where each key defines one of the items listed below added in v2.3-RC.
*/
vehicle_assets?: VehicleAssets;
/**
* URL to an image that would assist the user in identifying the vehicle. JPEG or PNG. Added
* in v2.3
*/
vehicle_image?: string;
/**
* Unique identifier of a vehicle type.
*/
vehicle_type_id: string;
/**
* Number of wheels this vehicle type has. Added in v2.3
*/
wheel_count?: number;
[ ]: any;
}
export interface Description {
/**
* IETF BCP 47 language code.
*/
language: string;
/**
* The translated text.
*/
text: string;
[ ]: any;
}
export interface EcoLabel {
/**
* Country code following the ISO 3166-1 alpha-2 notation. Added in v2.3.
*/
country_code?: string;
/**
* Name of the eco label. Added in v2.3.
*/
eco_sticker?: string;
[ ]: any;
}
/**
* The vehicle's general form factor.
*/
export type FormFactor = "bicycle" | "cargo_bicycle" | "car" | "moped" | "scooter_standing" | "scooter_seated" | "other" | "scooter";
export interface Make {
/**
* IETF BCP 47 language code.
*/
language: string;
/**
* The translated text.
*/
text: string;
[ ]: any;
}
export interface Model {
/**
* IETF BCP 47 language code.
*/
language: string;
/**
* The translated text.
*/
text: string;
[ ]: any;
}
export interface Name {
/**
* IETF BCP 47 language code.
*/
language: string;
/**
* The translated text.
*/
text: string;
[ ]: any;
}
/**
* The primary propulsion type of the vehicle. Updated in v2.3 to represent car-sharing
*/
export type PropulsionType = "human" | "electric_assist" | "electric" | "combustion" | "combustion_diesel" | "hybrid" | "plug_in_hybrid" | "hydrogen_fuel_cell";
/**
* The conditions for returning the vehicle at the end of the trip. Added in v2.3-RC as
* return_type, and updated to return_constraint in v2.3.
*/
export type ReturnConstraint = "free_floating" | "roundtrip_station" | "any_station" | "hybrid";
export type VehicleAccessory = "air_conditioning" | "automatic" | "manual" | "convertible" | "cruise_control" | "doors_2" | "doors_3" | "doors_4" | "doors_5" | "navigation";
/**
* An object where each key defines one of the items listed below added in v2.3-RC.
*/
export interface VehicleAssets {
/**
* Date that indicates the last time any included vehicle icon images were modified or
* updated added in v2.3-RC.
*/
icon_last_modified: string;
/**
* A fully qualified URL pointing to the location of a graphic icon file that MAY be used to
* represent this vehicle type on maps and in other applications added in v2.3-RC.
*/
icon_url: string;
/**
* A fully qualified URL pointing to the location of a graphic icon file to be used to
* represent this vehicle type when in dark mode added in v2.3-RC.
*/
icon_url_dark?: string;
[ ]: any;
}
export type Version = "3.1-RC";